由于近期项目需求,我们计划在机器狗上部署对话大模型,并结合具体业务场景进行定制化回答。在技术选型过程中,我们对比了RAG(Retrieval-Augmented Generation)和模型微调两种策略。RAG虽然在知识检索方面表现优异,但需要额外部署文本嵌入模型,增加了部署复杂性和资源开销。相比之下,模型微调能够直接针对特定场景优化模型性能,避免了冗余组件的引入,因此我们最终选择了微调策略。
在微调框架的选择上,我们采用了LLaMA-Factory。这是一款开源的低代码大模型微调框架,集成了当前业界广泛使用的微调技术,能够显著简化微调流程。其核心优势在于支持通过Web UI界面实现零代码微调,大幅降低了技术门槛,同时保留了高度的灵活性。通过该框架,我们能够快速将业务场景数据注入模型,实现高效的知识定制化,最终满足项目对对话大模型的实际需求。
1. 环境配置
默认anaconda、cuda都已经安装完毕!
conda create -n Llama-Factory python=3.10
python 推荐3.10
torch推荐2.4
torch在阿里云直接下载离线版的cuda版本安装,链接
微调Deepseek-r1:1.5b需要8G左右的显存
git llama factory项目
cd LLaMA-Factory pip install -e ".[torch,metrics]"
验证安装
llamafactory-cli version
2. 准备数据集
[
{
"instruction": "人类指令",
"input": "人类输入",
"output": "模型回答"
}
]
这里的“input”可以省略
再把对应的数据的文件名放入dataset_info.json里
3. 开始训练
启动llamafactory
llamafactory-cli webui
运行以上命令会自动跳转一个gradio的界面,如果报错可以尝试升级gradio
pip install --upgrade gradio
加载模型
加载数据集
查看数据集
调整参数
设置权重保存路径
开始训练
4. 测试模型
训练结束后,会绘制loss曲线
加载训练的权重,开始对话
测试完成,微调成功
最后如果模型有用的话可导出微调的模型
再通过ollma加载导出的模型,加载自己的模型的方法可参考这篇文章
Ubuntu部署deepseek(离线版)_ubuntu离线部署deepseek-优快云博客
补充说明
- 用于微调的数据集很关键!!!
- 损失下降的慢可以尝试增加学习率