大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练

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 闭环走熟,比收集所有进阶名词重要。对齐、多卡、多模态,都是在你证明「微调确实解决了业务问题」之后的加分项。到这一步,你已经不是「会用工具的人」,而是「能迭代模型的人」了。

相关推荐
嘿嘿-6614 小时前
Windows 一键使用 GPT-6 Astra:Codex CLI 配置教程
java·人工智能·windows·gpt·chatgpt·web
我爱cope14 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
冬奇Lab14 小时前
Code Agent 解剖(22):从零扩展——用 Markdown 写一个 Skill
人工智能
小饕14 小时前
llama.cpp 参数调优指南:Jetson 8GB 实战手记
人工智能·llama·大模型端侧部署
火山引擎开发者社区14 小时前
Viking AI 搜索 × SearchCLI:搭建售后助手,让搜索能力参与售后回答
人工智能
冬奇Lab14 小时前
一天一个开源项目(第210篇):herdr - AI 编程 Agent 的运行时底座
人工智能·开源·资讯
dadanhuang15 小时前
PyTorch深度学习与实践【04】【迭代周期、autograd、构建计算图、*params参数解包、.grad属性】
人工智能·pytorch·深度学习
JavaPub-rodert15 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
米小虾15 小时前
告别逐 token 蹦字:扩散语言模型(dLLM)到底能不能终结自回归?
人工智能·llm
火山引擎开发者社区15 小时前
从多模态数据湖到 Agent 湖:Lance 的格式设计与实践|Lance Meetup 火热报名中
人工智能