使用LLaMA-Factory来实现微调ChatGLM-3B

SEO教程2025-06-2542
    正在检查是否收录...

前提:本文是使用阿里云的人工智能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