LLamaFactory 微调实战
介绍基于 LlamaFactory 的大模型微调实战。涵盖全量微调、LoRA、QLoRA 等参数更新方式,以及 SFT、DPO、PPO 等训练目标。详解 Docker 环境配置、数据集处理及关键超参数(rank、alpha、target)调优技巧,并提供评估指标设置建议,适用于 LLM 抽取任务等场景。

介绍基于 LlamaFactory 的大模型微调实战。涵盖全量微调、LoRA、QLoRA 等参数更新方式,以及 SFT、DPO、PPO 等训练目标。详解 Docker 环境配置、数据集处理及关键超参数(rank、alpha、target)调优技巧,并提供评估指标设置建议,适用于 LLM 抽取任务等场景。

本文以 LLM 实体抽取任务为例,介绍基于 LlamaFactory 的微调流程。
LlamaFactory 支持多种微调方式,主要分为参数更新策略和训练目标两个维度。
做法:模型所有参数都更新。 优点:
做法:大部分参数冻结,只训练很少一部分(如最后几层、Adapter)。 优点:成本低、稳定。 缺点:可塑性有限,效果上限通常不如 LoRA/全量。 适用场景:快速适配、资源很紧、轻微对齐/迁移。
做法:冻结原权重,在注意力/MLP 的线性层旁边加一对低秩矩阵 A,B,只训练增量部分。 优点:
做法:基座权重量化到 4bit(NF4),仍然只训练 LoRA 参数。 优点:显存最省,单卡也能训更大的模型。 缺点:依赖 bitsandbytes/量化算子,速度可能慢一点,有数值兼容坑。 适用场景:有限 GPU 上把模型尺寸顶上去,非常常用。
数据:(prompt, response) 的标准监督数据。 原理:最大化参考答案的似然(cross-entropy)。 优点:最简单、最稳、最常用的第一步;让模型学会按指令说话。 缺点:只能学到数据分布,不直接优化偏好/安全。
数据:偏好对比(A vs B)或打分数据。 用途:预测人类更喜欢哪个回答,为 RL(如 PPO)提供 reward。 优点:将人类偏好变成可优化的标量信号。 缺点:需维护额外模型;reward 容易被钻空子。
数据:prompt + RM 评分。 原理:用 PPO 最大化 reward,同时用 KL 约束偏离原模型。 优点:能直接优化偏好得分。 缺点:成本最高、最难调;对实现细节敏感。
DPO(Direct Preference Optimization)
KTO
ORPO / SimPO
推荐使用 Docker 环境:hiyouga/llamafactory:latest。
镜像已包含 LlamaFactory 代码,需挂载本地权重目录。
/workspace/code/LlamaFactory
详细步骤请参考官方文档 readme_zh.md。
自定义数据需在 dataset_info 中注册配置。
--lora_rank 决定 LoRA 低秩矩阵的秩(容量)。
r=4/8,结构化输出 r=16,难迁移 r=32/64。--lora_alpha 控制 LoRA 更新幅度。
alpha = 2*r。--lora_target 决定 LoRA 插到哪些线性层上。
all:会插入不关键层,导致慢、占用多、不稳。调参技巧
rank。learning_rate 或 alpha/r。dropout 或减 rank。针对结构化数据,建议使用准确率(Accuracy)作为评估指标。
--do_eval \
# evaluation=True
--eval_strategy steps \
# 以步为单位
--eval_steps 20 \
--compute_accuracy true \
# 是否计算 acc
--val_size 0.1 \
# 数据集划分

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online