前提:本文是使用阿里云的人工智能PAI平台的交互式建模(DSW)来进行的如下操作
安装LLaMA-Factory
# 克隆项目 git clone https://github.com/hiyouga/LLaMA-Factory.git # 安装项目依赖 cd LLaMA-Factory pip install -r requirements.txt pip install transformers_stream_generator bitsandbytes tiktoken auto-gptq optimum autoawq pip install --upgrade tensorflow pip uninstall flash-attn -y # 运行 CUDA_VISIBLE_DEVICES=0 python src/train_web.py
注意:如果启动后的界面显示error,则需要下载模型展示工具:
pip install "gradio>=3.38.0,<4.0.0"
启动成功后的界面:
训练集配置
自定义训练集
# 自定义数据集 [ { "instruction": "用户指令(必填)", "input": "用户输入(选填)", "output": "模型回答(必填)", "system": "系统提示词(选填)", "history": [ ["第一轮指令(选填)", "第一轮回答(选填)"], ["第二轮指令(选填)", "第二轮回答(选填)"] ] } ]
将自定义训练集放到LLaMA-Factory的data目录下,并在dataset_info.json文件中加入文件的SHA1值:
生成SHA1值:
Get-FileHash -Path "C:\path\to\your\file.ext" -Algorithm SHA1
最后就可以在界面上看见自定义的数据集
微调方法
full:微调整个模型。 冻结(freeze):冻结大多数模型参数,只微调少数参数。 lora:冻结一些模型参数,只微调一些,但特别是在某些层上。高级配置
分为Train, Evaluate & Predict, Chat, 和Export 选项卡
Train选项
训练阶段
分为Pre-Training, Supervised Fine-Tuning, Reward Modeling, PPO, and DPO。我们在这里选择Supervised Fine-Tuning,可以提高特定任务的准确性
学习率
较高的学习率可以加速模型的学习,但过高的学习率可能会导致模型“跳过”最优解。速率过低会减慢学习速度。默认5e-5
损失函数曲线:loss
损失函数值越小,模型预测性能越好
Chat选项
根据对应的适配器导入训练好的模型,来进行测试
Export选项
填写导出到文件的目录位置来进行导出训练好的模型
效果图:
cto自定义llamagitchat数据集fine-tuning自定义训练tiktoktransformersclone适配器tokenflowjsontpugradio效果图stemimu