大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练
SFT 教模型怎么答,偏好对齐教模型哪个答更好。效果已经能用、但语气、安全、啰嗦程度不满意时,再在 SFT 基础上做 DPO 等对齐。多卡训练在两张 GPU 以上时通常自动分布式,单卡 LoRA 训七 B 以下多数够用。进阶能力包括多模态、继续预训练、Agent、长上下文等,用到再查 examples 即可。把 SFT 闭环走熟,比收集所有进阶名词更重要。
一、什么时候需要「对齐」
监督微调解决的是「会不会按指令回答」。它不解决「多个回答里哪个更好」。如果你已经有一个能用的 SFT 模型,但仍然观察到:回答普遍太长太啰嗦,不该答的问题也瞎答,两种说法里总选更差的那个——这时可以在 SFT 之后做偏好对齐。
LLaMA Factory 支持 DPO、ORPO、KTO 等阶段,yaml 里改 stage 即可。建议始终先有一个还行的 SFT 模型,再对齐。跳过 SFT 直接对齐,就像没学会走路就开始练跑步姿势,根基不稳。
二、DPO:最常听到的一种对齐方式
DPO 的直觉很好理解:给模型看「好回答」和「差回答」的对比,让它学会偏向好的那个。不需要单独训练奖励模型,流程比经典 RLHF 短。
数据格式与 SFT 不同,需要成对偏好样本,在 dataset_info.json 里设 ranking: true。示例配置可在 examples/train_lora/ 下搜索 dpo 相关 yaml。
典型写法是在 SFT 模型基础上继续训,stage 设为 dpo,model_name_or_path 指向 SFT 产出目录,dataset 指向偏好数据。对齐训练的 epoch 不宜多,一到三个 epoch 常见,过多可能变啰嗦或过度拒答。
三、其他对齐方式,知道名字即可
ORPO 试图把 SFT 和对齐合成一步,省流程。KTO 只需标注好或坏,不要求严格成对。PPO 加 RM 是经典 RLHF 路线,流程长,工业界仍有使用,但对入门者不是首选。
从「能部署」到「更好用」,SFT 往往已经覆盖八成需求。产品对语气、安全、拒答策略要求更高时,再叠加 DPO 或 ORPO。
四、多卡训练:你需要吗
一张 GPU,LoRA,七 B 以下模型,单卡在多数场景够用。一张卡 OOM,先按第五篇做 QLoRA 和 batch 调整,再加卡。两张以上 GPU,直接 llamafactory-cli train,框架检测到多卡后通常自动分布式,不必手写 torchrun。七十 B 级别,需要 DeepSpeed 或 FSDP 配置,可参考 examples 里带 deepspeed 的 yaml 和 examples/extras/fsdp_qlora/。
加卡之前先问:瓶颈真的是算力吗?还是数据、评估、迭代节奏?很多团队过早上多卡,问题却在数据质量。
五、其他进阶能力,按需查阅
多模态微调,用于 LLaVA、Qwen-VL 等图文模型。继续预训练 stage: pt,用于有大量领域纯文本、想先灌知识再 SFT。Agent 和工具调用,数据用 ShareGPT 格式并带 tools 字段。长上下文,加大 cutoff_len 并配合 rope_scaling 等。Benchmark 评测 MMLU、C-Eval,用于和其他模型比分数。
这些能力在 examples/README_zh.md 都有索引。用到再查,不必一次学完。学习路径应该是螺旋上升,不是横向铺名词。
六、关于 v1 新框架
项目里有 src/llamafactory/v1/ 和 examples/v1/,代表新一代训练架构,YAML 风格和启动方式与经典路径略有不同,有时需要 USE_V1=1 等环境变量。经典路径——本文八篇所基于的 train 加 yaml——仍是当前最稳妥的上手方式。等主路走通、确有需求,再迁移 v1。
七、八篇笔记的回顾
第一篇建立认知:LLaMA Factory 能做什么。第二篇动手跑通官方示例。第三篇认清项目结构和 yaml。第四篇准备数据和 template。第五篇用 LoRA 解决显存。第六篇认真做 SFT 和迭代。第七篇导出、合并、部署。第八篇在需要时进入对齐和多卡。
官方文档在 llamafactory.readthedocs.io,数据格式见 data/README_zh.md,示例索引见 examples/README_zh.md,安装和报错问题可参考 GitHub Issues 中的常见问题汇总。论文《LlamaFactory: Unified Efficient Fine-Tuning of 100+ Language Models》适合想建立系统认知时阅读。
八、最后一句话
把 SFT 闭环走熟,比收集所有进阶名词重要。对齐、多卡、多模态,都是在你证明「微调确实解决了业务问题」之后的加分项。到这一步,你已经不是「会用工具的人」,而是「能迭代模型的人」了。
