当前位置:AIGC资讯 > AIGC > 正文

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

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

填写导出到文件的目录位置来进行导出训练好的模型

效果图:

更新时间 2024-06-15