一文彻底搞懂大模型 - LLaMA-Factory 原创
如何高效地微调和部署大型语言模型(LLM)?LLaMA-Factory作为一个开源的微调框架,应运而生,为开发者提供了一个简便、高效的工具,以便在现有的预训练模型基础上,快速适应特定任务需求,提升模型表现。LLaMA-Factory作为一个功能强大且高效的大模型微调框架,通过其用户友好的界面和丰富的功能特性,为开发者提供了极大的便利。
LLaMA-Factory
一、LLaMA-Factory
什么是LLaMA-Factory?LLaMA-Factory,全称Large Language Model Factory,即大型语言模型工厂。它支持多种预训练模型和微调算法,提供了一套完整的工具和接口,使得用户能够轻松地对预训练的模型进行定制化的训练和调整,以适应特定的应用场景,如智能客服、语音识别、机器翻译等。
LLaMA-Factory
- 支持的模型:LLaMA-Factory支持多种大型语言模型,包括但不限于LLaMA、BLOOM、Mistral、Baichuan、Qwen、ChatGLM等。
- 集成方法:包括(增量)预训练、指令监督微调、奖励模型训练、PPO训练、DPO训练和ORPO训练等多种方法。
- 运算精度与优化算法:提供32比特全参数微调、16比特冻结微调、16比特LoRA微调和基于AQLM/AWQ/GPTQ/LLM.int8的2/4/8比特QLoRA微调等多种精度选择,以及GaLore、DoRA、LongLoRA、LLaMA Pro、LoRA+、LoftQ和Agent微调等先进算法。
LLaMA-Factory
LLaMA-Factory提供了简洁明了的操作界面和丰富的文档支持,使得用户能够轻松上手并快速实现模型的微调与优化。用户可以根据自己的需求选择不同的模型、算法和精度进行微调,以获得最佳的训练效果。
LLaMA-Factory
二、模型微调(Fine-Tuning)
如何使用LLaMA-Factory进行模型微调?使用LLaMA-Factory进行模型微调是一个涵盖从选择模型、数据加载、参数配置到训练、评估优化直至部署应用的全面且高效的流程。
1. 选择模型:根据应用场景和需求选择合适的预训练模型。
- 设置语言:进入WebUI后,可以切换到中文(zh)。
- 配置模型:选择LLaMA3-8B-Chat模型。
- 配置微调方法:微调方法则保持默认值lora,使用LoRA轻量化微调方法能极大程度地节约显存。
2. 加载数据:将准备好的数据集加载到LLaMA-Factory中。
- LLaMA-Factory项目内置了丰富的数据集,放在了
data
目录下。同时也可以自己准备自定义数据集,将数据处理为框架特定的格式,放到指定的data目录下。
3. 配置参数:根据实际情况调整学习率、批次大小等训练参数。
- 学习率+梯度累积:设置学习率为1e-4,梯度累积为2,有利于模型拟合。
- 计算类型:如果是NVIDIA V100显卡,计算类型保持为fp16;如果使用了AMD A10系列显卡,可以更改计算类型为bf16。
- LoRA参数设置:设置LoRA+学习率比例为16,LoRA+被证明是比LoRA学习效果更好的算法。在LoRA作用模块中填写all,即将LoRA层挂载到模型的所有线性层上,提高拟合效果。
4. 开始训练:启动训练过程,并监控模型的训练进度和性能表现。
- 输出目录:将输出目录修改为train_llama3,训练后的LoRA权重将会保存在此目录中。
- 预览命令:点击「预览命令」可展示所有已配置的参数,如果想通过代码运行微调,可以复制这段命令,在命令行运行。
- 开始:点击「开始」启动模型微调。
- 训练完毕:启动微调后需要等待一段时间,待模型下载完毕后可在界面观察到训练进度和损失曲线。模型微调大约需要20分钟,显示“训练完毕”代表微调成功。
5. 评估与优化:使用LLaMA-Factory提供的评估工具对模型性能进行评估,并根据评估结果进行针对性的优化。
- 刷新适配器:微调完成后,点击页面顶部的「刷新适配器」
- 适配器路径:点击适配器路径,即可弹出刚刚训练完成的LoRA权重,点击选择下拉列表中的train_llama3选项,在模型启动时即可加载微调结果。
- 评估模型:选择「Evaluate&Predict」栏,在数据集下拉列表中选择「eval」(验证集)评估模型。
- 输出目录:更改输出目录为
eval_llama3
,模型评估结果将会保存在该目录中。 - 开始评估:最后点击开始按钮启动模型评估。
- 评估分数:模型评估大约需要5分钟左右,评估完成后会在界面上显示验证集的分数。
- ROUGE分数:其中ROUGE分数衡量了模型输出答案(predict)和验证集中标准答案(label)的相似度,ROUGE分数越高代表模型学习得更好。
6. 部署应用:将训练好的模型部署到实际应用场景中,实现其功能和价值。
- 加载模型:选择「Chat」栏,确保适配器路径是
train_llama3
,点击「加载模型」即可在Web UI中和微调模型进行对话。
- 卸载模型:点击「卸载模型」,点击“×”号取消适配器路径,再次点击「加载模型」,即可与微调前的原始模型聊天。
本文转载自公众号架构师带你玩转AI 作者:AllenTang
原文链接:https://mp.weixin.qq.com/s/EEfrvqiGxW5imyq3JEQlRA