微调 Mistral
用于微调此模型的代码:abacaj/mistral-7b-sft。将你的数据以 train.jsonl
和 validation.jsonl
的形式添加到 data 文件夹中。
注意:此仓库用于 Mistral 的完整微调,而非 QLora 或其他方法。
如何运行
安装依赖:
python -m venv env \
&& source env/bin/activate \
&& pip install -r requirements.txt
获取 Hugging Face 令牌并设置变量:
export HF_TOKEN="[在此插入令牌]"
运行训练代码:
torchrun --nnodes=1 --nproc-per-node=<替换为 GPU 数量> train.py
建议
- 如果使用小批量大小运行,请降低学习率
- 我不需要调整梯度裁剪或权重衰减,但你的情况可能有所不同
- 使用足够的数据,建议 > 1k 样本
- 我在 40k 样本上运行了 3 个周期,还需要对周期进行更多实验,因为模型仍在改进
- 更好的方法是判断你的模型是在改进还是过拟合甚至变差,你应该在你的任务上添加评估。这是不属于训练的数据。例如,对于代码补全,你可以在 mbpp 验证集或你自定义的集合上评估你的模型
- 如果你有足够的 GPU 内存,请使用 FSDP 选项:
backward_prefetch=BackwardPrefetch.BACKWARD_PRE
,否则使用backward_prefetch=BackwardPrefetch.BACKWARD_POST
。这可能导致内存溢出,所以它被设置为 None