MIT 6.S191 Lecture 8: Large Language Models — Post-Training
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | Liquid AI (Guest Lecture) |
| 日期 | 2025年春季 |

引言:什么是 Post-Training
本讲由 Liquid AI 的研究人员(《LLM Engineer's Handbook》作者)主讲,系统介绍了大语言模型(LLM)的 Post-Training(后训练)流程。Post-Training 是预训练之后的所有训练步骤,目标是将一个只会预测下一个 token 的 base model 转化为一个真正有用的 AI assistant。
在预训练阶段,模型在海量原始文本上以 next-token prediction 为目标进行训练,产生的 base model 虽然具备强大的语言建模能力,但并不具备回答问题或遵循指令的能力。Post-Training 正是弥补这一鸿沟的关键环节。
Post-Training 的两个核心阶段
- Supervised Fine-Tuning (SFT):通过指令-回答对(instruction-answer pairs)教会模型遵循指令、以对话形式回答问题。模型在此阶段学习 chat template 结构(system / user / assistant)。
- Preference Alignment(偏好对齐):通过对比 chosen answer(期望回答)与 rejected answer(不期望回答)来调整模型行为,使其产出更符合人类偏好的回答。
Pre-Training vs. Post-Training 的数据规模差异
预训练使用数万亿(trillions)tokens 的原始文本,数据集规模极为庞大。而 Post-Training 的数据集相对小得多,通常在数千到百万量级,但对数据质量的要求远高于数量。这一差异是理解 Post-Training 方法论的基础。
本章小结
Post-Training 是将 base model 转化为实用 assistant 的核心环节,包含 SFT 和 Preference Alignment 两个主要阶段。它的特点是数据规模远小于预训练,但对质量要求极高。
Fine-Tuning 的类型与适用场景
三种 Fine-Tuning 类型
讲者将 Fine-Tuning 分为三类,各自对应不同的数据规模需求和目标:
| 类型 | 目标 | 数据规模 | 示例 |
|---|---|---|---|
| 通用型 (General Purpose) | 创建全能 chatbot | \(>\)100万样本 | ChatGPT, Claude |
| 领域型 (Domain Specific) | 嵌入领域知识 | 数千\(≈\)数十万 | 医疗/法律/金融 |
| 任务型 (Task Specific) | 学习单一功能 | 数百\(≈\)数千 | 摘要、拼写检查 |
数据需求受多因素影响
上述样本数量仅为粗略估计。实际需求取决于:(1) 模型规模——模型越大,所需样本越少;(2) 任务复杂度——若 base model 对目标语言/领域的知识接近于零(如从未见过的小语种),fine-tuning 的效果会非常有限,因为缺乏足够 token 来"从头学习"。
何时应该 Fine-Tune
讲者建议遵循一个明确的决策流程:
- 优先尝试 In-Context Learning / RAG:门槛最低,便于快速验证。
-
若效果不满意,考虑以下四种 fine-tuning 动机:
-
改变输出风格/格式:如调整模型生成邮件的语气
- 添加领域知识(浅层):如教模型关于你公司的事实
- 知识蒸馏:将 GPT-4 级别能力蒸馏到更小的模型中,降低成本和延迟
- 提升特定任务质量:如 diagram 生成,可在窄任务上超越 frontier model
企业选择 Fine-Tuning 的商业动机
除了技术层面,企业选择开源模型 + fine-tuning 路线还有两个重要的非技术原因:(1) 数据控制——不希望将敏感数据通过 API 发送到云端;(2) 定制化——希望深度定制模型的行为、语气和输出格式,创建专属模型。
本章小结
Fine-Tuning 分为通用型、领域型和任务型三个层次,数据需求依次递减。实际操作中应先尝试 in-context learning,确认不足后再考虑 fine-tuning。Fine-Tuning 的价值不仅在于技术提升,还在于给予企业对模型和数据的控制权。
Post-Training 数据集:质量的三个维度
好数据的定义
讲者认为数据质量是整个 Post-Training 流程中最核心的问题,可以从三个维度来衡量:
数据质量的三维框架
- Accuracy(准确性):回答是否正确。对于简单问题较易验证;对于代码可通过 unit test 验证,对于数学可通过 solver 验证。
- Diversity(多样性):样本之间是否覆盖了用户可能的各种交互场景。多样性不足会导致模型在某些领域能力严重缺失。
- Complexity(复杂度):样本是否足够有挑战性,包含多步推理、chain-of-thought 等。
多样性的重要性
通过对不同数据集的 embedding 进行 2D 可视化,可以直观看到差异:
- 真实用户对话(如 ShareGPT、WildChat):embedding 分布覆盖极广,因为用户提问涉及方方面面
- 数学数据集:embedding 高度聚集在单一区域
- 代码数据集:同样集中在有限区域
因此,若目标是构建通用 LLM,仅有数学和代码数据远远不够,必须引入多样化的对话数据来扩展覆盖范围。
合成数据的多样性陷阱
合成数据(synthetic data)的一大风险在于多样性坍缩。少量合成数据可以有效扩充多样性,但过多合成数据反而会导致数据分布收窄、多样性急剧下降,最终降低整体数据质量。
复杂度提升:Auto-Evol
低复杂度样本如"埃菲尔铁塔多高?"只需几个词即可回答。可以使用 Auto-Evol 等框架,让 LLM 对 prompt 进行改写以提升复杂度——例如要求多角度分析、比较不同时期数据、解释工程原理等。改写后的问题需要更长、更详细的回答,自然提升了数据的复杂度。
数据格式
Post-Training 使用两种主要数据格式:
| 格式 | 组成 | 用途 |
|---|---|---|
| Instruction Data | system prompt + instruction + output | SFT |
| Preference Data | instruction + chosen answer + rejected answer | DPO/PPO |
本章小结
数据质量由准确性、多样性和复杂度三个维度共同决定。在构建数据集时,需特别关注合成数据的多样性风险,并可使用 Auto-Evol 等工具提升样本复杂度。
数据集生成流水线
Instruction Data 生成
讲者介绍了一个典型的 instruction data 生成流水线:
- Seed Data:起点可以是原始文本、已有的 QA 对、或用户真实查询
- 指令生成:若只有原始文本(即答案),可通过 back translation(反向翻译)让 LLM 生成对应的问题
- 答案生成:使用 LLM 基于指令生成回答
-
评分与过滤:
-
使用启发式规则或 LLM-as-Judge 评估质量
- 数据去重(deduplication)
- 去污染(decontamination)——确保不包含测试集样本
- 关键词过滤——移除不需要的内容
Instruction Following 数据的特殊处理
Instruction following 是一类专注于约束遵循的数据。例如:"用全小写英文回答"。生成此类数据时,可以将约束条件附加到 prompt 之后,让 LLM 生成回答,然后用程序化测试验证约束是否被满足(如语言检测、大小写检查),筛除不符合要求的样本。
Preference Data 生成:Ultra Feedback 范式
Preference data 的生成采用不同策略:
- 给定 prompt,查询多个不同 LLM(而非单一模型)
- 使用 Judge LLM 对每个回答评分
- 取最高分的回答作为 chosen,最低分的作为 rejected
- 去重、移除过短回答等后处理
Decontamination(去污染)
去污染是数据生成流水线中至关重要的一步。例如,IFEval 是一个广泛使用的 instruction following 评测集。在生成训练数据时,必须确保生成的样本与测试集不存在高相似度,否则会导致评测分数虚高但实际能力并未提升。
案例:Open Perfect Blend 数据集
讲者展示了自己制作的 Open Perfect Blend 数据集,这是一个面向通用 fine-tuning 的混合数据集。其类别配比大致为:
- Math(数学):较大比例
- Code(代码):较大比例
- Chat(通用对话):中等比例
- Instruction Following:较小比例
这种混合比例(data mixture)的设计直接决定了模型在不同能力维度上的表现。
Chat Template
数据准备完成后的最后一步是应用 Chat Template。这是让模型理解"谁在说话"的关键结构:
<|im_start|>system
You are a helpful assistant.
<|im_end|>
<|im_start|>user
What is the capital of France?
<|im_end|>
<|im_start|>assistant
The capital of France is Paris.
<|im_end|>
特殊 token <|im_start|> 和 <|im_end|> 标记每条消息的起止,角色标签(system / user / assistant)明确说话者身份。多轮对话通过重复 user-assistant 对实现。
Chat Template 是 SFT 的核心学习目标
Chat Template 的结构是 SFT 阶段模型需要学习的核心内容之一。正是这种结构化的对话格式让 base model 从"只会续写文本"进化为"能进行多轮对话的 assistant"。不同模型家族(Llama, Mistral, Qwen 等)使用不同的 chat template,但原理相同。
本章小结
数据集生成是一个系统化的流水线,包括种子数据准备、指令/答案生成、评分过滤、去重去污染等步骤。Preference data 通过多模型采样 + Judge 评分的方式获取。最终需将数据格式化为 Chat Template 供 SFT 训练使用。
训练算法与技术
推荐的 Fine-Tuning 工具库
讲者推荐了三个主流的 fine-tuning 工具库:
| 工具 | 开发方 | 特点 |
|---|---|---|
| TRL | Hugging Face | 基于 Transformers,算法种类最全,与最新研究保持同步 |
| Axolotl | 社区 | 基于 TRL,YAML 配置驱动,易于分享和复现训练配置 |
| Unsloth | 社区 | 单 GPU 优化,极高效率,内置量化等实用功能 |
SFT 的三种训练技术
Full Fine-Tuning vs. LoRA vs. QLoRA
- Full Fine-Tuning:全精度加载模型,训练 100% 参数。质量最高但 VRAM 需求极大,通常需要整个 GPU 集群。
- LoRA (Low-Rank Adaptation):冻结原始模型权重,仅训练附加的低秩适配器矩阵 A 和 B。仅需训练约 0.5% 的参数,速度快、VRAM 需求低,推荐作为默认选择。
- QLoRA (Quantized LoRA):先将模型量化为 4-bit 精度再加载,然后应用 LoRA。进一步降低 VRAM 需求,但训练速度更慢,性能有轻微下降(几个百分点)。
LoRA 的数学原理:对于原始权重矩阵 \(W \in \mathbb{R}^{d \times k}\),LoRA 添加低秩分解:
其中:
- \(B \in \mathbb{R}^{d \times r}\),\(A \in \mathbb{R}^{r \times k}\)
- \(r \ll \min(d, k)\) 为秩(rank),通常取 8-64
- 训练时仅更新 \(A\) 和 \(B\),原始 \(W\) 被冻结
Full Fine-Tuning 通常是过度的
除非你是一家专门训练 LLM 的公司,否则 LoRA 几乎总是更好的选择。Full Fine-Tuning 可能导致过拟合,且性能提升往往不值得额外的计算开销。如果 LoRA 的 VRAM 需求仍然过高,才考虑退而使用 QLoRA。
Preference Alignment 算法
偏好对齐领域有超过 100 种不同算法,但讲者建议只需记住两个:
PPO (Proximal Policy Optimization)
PPO 是经典的 RLHF 算法,需要三个模型同时加载:
- Frozen Model(参考策略):训练前的模型快照,用于计算 KL divergence
- Train Model(当前策略):接收 prompt 生成回答的模型
- Reward Model:对生成的回答进行评分
训练流程:Train Model 生成回答 \(\rightarrow\) Reward Model 评分 \(\rightarrow\) 使用 KL divergence 约束策略更新幅度 \(\rightarrow\) 更新 Train Model 参数。
优点是质量上限高,缺点是需要三个模型、极其昂贵且调参困难。
DPO (Direct Preference Optimization)
DPO 只需要两个模型(若使用 LoRA 则实际上只需加载一个基础模型 + 两组适配器):
其中:
- \(y_w\) 为 chosen answer,\(y_l\) 为 rejected answer
- \(\pi_\theta\) 为训练中的策略,\(\pi_{\text{ref}}\) 为参考策略
- \(\beta\) 控制偏离参考策略的惩罚强度
实践建议:DPO 优于 PPO
除非拥有 OpenAI 级别的无限资源,否则推荐使用 DPO。DPO 更快、更便宜、更易调参,质量仅略低于 PPO。DPO 不需要单独的 reward model,直接在 preference data 上优化,大幅简化了训练流程。
关键训练超参数
| 参数 | 推荐值 | 说明 |
|---|---|---|
| Learning Rate | \(1 × 10^-5≈5 × 10^-5\) | 最关键参数,过高导致 loss spike |
| Batch Size | 受 VRAM 限制 | 可用 gradient accumulation 模拟大 batch |
| Max Length | 受 VRAM 限制 | 决定输入序列的最大长度 |
| Epochs | 3\(≈\)5 | 完整遍历训练集的次数 |
| Optimizer | AdamW | 强基线,通常无需更换 |
| Attention | Flash Attention | 高效注意力实现,尤其加速长序列处理 |
Gradient Accumulation 与 Effective Batch Size
当 GPU 内存不足以支持期望的 batch size 时,可以使用 gradient accumulation:在多个 forward pass 后累积梯度,再统一更新权重。这样 effective batch size = per-GPU batch size \(\times\) accumulation steps \(\times\) GPU 数量,能在不增加内存的前提下模拟更大的 batch。
训练监控
训练过程中需要监控三个核心指标:
- Training Loss:应平滑下降,若出现 loss spike 通常意味着 learning rate 过高
- Validation Loss:用 1-2% 的数据作为验证集,监控是否过拟合
- Gradient Norm:梯度的幅值,过多 spike 可能暗示数据问题
Loss Spike 诊断
如果训练初期 loss 平稳下降,但随后突然出现大幅跳升(spike),最可能的原因是learning rate 过高。解决方法是降低 learning rate,应能获得更平滑的 loss 曲线。注意不要将训练初期的微小波动误判为 spike——小幅初始波动通常是正常现象。
本章小结
SFT 推荐使用 LoRA 作为默认训练技术,Preference Alignment 推荐使用 DPO。关键超参数中 learning rate 最为重要,AdamW + Flash Attention 是可靠的默认选择。训练过程中应密切监控 training loss、validation loss 和 gradient norm。
Model Merging:无需训练的模型增强
基本概念
Model Merging 是一种将多个模型的参数直接组合的技术,无需额外训练。最初被视为"玩笑",但现在已被每家 LLM 公司采用。
核心思想:取多个经过不同 fine-tuning 的同架构模型,通过数学操作(如加权平均)合并其参数,得到一个综合多方优势的新模型。
Model Merging 的限制条件
- 只能合并相同架构、相同规模的模型(如只能 Llama 3 合并 Llama 3,不能跨代合并)
- 建议使用全精度模型进行合并——量化模型的精度损失会传播到合并结果
- 选择合适的权重和参数更像是"炼金术"而非严格科学——需要反复实验
主要合并技术
SLERP (Spherical Linear Interpolation)
SLERP 在球面上进行插值(而非直线插值),通常比简单的线性平均产生更好的合并效果。
其中 \(\Omega = \arccos(\mathbf{p}_0 \cdot \mathbf{p}_1 / \|\mathbf{p}_0\| \|\mathbf{p}_1\|)\),\(t \in {[}0, 1{]}\) 为插值系数。
特点:简单可靠,在开源社区非常流行;但只能合并两个模型。
DARE + TIES
更高级的合并技术,可处理两个以上的模型:
- DARE (Drop And REscale):随机剪枝并重新缩放源模型的参数
- TIES (TrIm, Elect Sign, merge):保留最显著的参数,并通过 sign consensus(符号一致性)解决参数正负相消的问题
Sign consensus 的动机:若模型 A 的某参数为正、模型 B 的相同参数为负,简单平均得到接近零的结果,实际上丢失了两个模型各自学到的信息。TIES 通过投票机制确定参数符号,避免这种抵消。
Model Merging 的实际配置
使用 mergekit 等工具,通过 YAML 配置文件定义合并方案:
- density:控制保留参数的比例(TIES 方法中不保留全部参数)
- weight:控制各源模型在合并中的权重(可根据评估分数赋予不同权重)
讲者展示了 Daredevil 8B 模型的家族树——通过迭代合并(合并的模型再与其他模型合并)可以构建出复杂的模型谱系,最终产物在多个 benchmark 上超越所有源模型。
应用案例:语言特定模型
以构建芬兰语 LLM 为例的完整流程:
- 在芬兰语原始文本上做 continual pre-training(5-100B tokens)
- 在芬兰语 instruction data 上做 SFT
- 在芬兰语 preference data 上做 Preference Alignment
- 问题:模型芬兰语能力大增,但其他所有能力严重退化
- 解决方案:将芬兰语模型与通用 instruct 模型(如 Llama 3 Instruct)合并
- 结果:获得一个既擅长芬兰语、又保持通用能力的模型
Model Merging 的核心价值
Model Merging 能够将不同模型的专长叠加在一起,而不会牺牲各自的已有能力。这是解决 fine-tuning 过程中"灾难性遗忘"(catastrophic forgetting)问题的一种高效策略,尤其适合语言特定模型、领域特定模型等场景。
本章小结
Model Merging 是一种零训练成本的模型增强技术,通过参数级别的数学操作组合多个模型的优势。SLERP 适合两模型合并,DARE+TIES 支持多模型合并。它是解决 fine-tuning 导致能力退化问题的有力工具。
模型评估
评估的重要性
讲者坦言 LLM 评估是整个领域最大的难题之一——"我们其实不太知道自己在做什么"。但评估依然至关重要,因为 Post-Training 的本质是优化,如果评估指标不对,优化方向就会偏离。
评估方法一:Automated Benchmarks
原理:给定问题集(如 MMLU 的多选题),模型选择答案,以准确率等指标计分。
| Benchmark | 领域 | 指标 |
|---|---|---|
| MMLU | 通用知识(57个学科) | 准确率 |
| GSM8K | 小学数学推理 | 准确率 |
| MATH | 竞赛数学 | 准确率 |
| HumanEval | 代码生成 | pass@k |
| IFEval | Instruction Following | 约束满足率 |
优点:可扩展、低成本、可复现、可针对特定任务设计。
缺点:不反映模型的实际使用方式——用户与模型是对话,而非做选择题。
评估方法二:Human Evaluation(人类评估)
原理:人类评审员在两个匿名模型的回答中选择更好的那个(如 Chatbot Arena)。
优点:
- 直接反映人类偏好,是 Post-Training 的终极优化目标
- 可精细控制评估维度(如只关注毒性、只关注准确性)
- 数据污染风险低
缺点:
- 极难规模化,成本高、耗时长
- 人类评审有严重偏见:更长的回答、更自信的语气会被偏好,即使内容有误
人类偏好与自动化 Benchmark 不相关
讲者展示了一项关键发现:Chatbot Arena 排名与 MMLU、GSM8K、HumanEval 等自动化 benchmark 的相关性非常低。一个 MMLU 高分的模型可能在人类偏好上表现很差,反之亦然。因此,必须同时使用两类评估方法才能全面了解模型能力。
评估方法三:LLM-as-Judge
为了在规模化和人类偏好之间找到折中,可以使用 LLM 替代人类进行评估:
- 单 Judge:一个强力 LLM(如 GPT-4)对回答评分
- 多 Judge(Jury):多个 LLM 组成评审团,投票决定优劣——更稳健可靠
优点:与人类偏好高度相关,能处理自由形式的复杂任务,提供直接反馈。
缺点:LLM judge 自身也有偏见(且与人类偏见高度相似),仍需少量人类评估来校验 judge 的一致性。
自建评估体系的建议
- 尽早开始——在 fine-tuning 之前就设计评估,类似 test-driven development
- 持续迭代——评估数据集不是一成不变的,需根据模型表现不断修正
- 混合使用——自动化 benchmark + LLM-as-Judge + 少量人类评估
- 横向比较——不仅比较自己的各版本 fine-tune,也与其他模型和架构对比
评估驱动的迭代开发
讲者强调 Post-Training 的时间分配应大致为:数据准备占三分之一,训练占三分之一,评估占三分之一。评估不是事后验证,而是贯穿整个流程的核心环节。每轮评估的结果直接指导下一轮数据和训练的改进方向。
本章小结
LLM 评估主要有三种方法:自动化 benchmark(可扩展但不反映真实使用)、人类评估(最接近目标但难以规模化)、LLM-as-Judge(折中方案)。三者互补,应组合使用。人类偏好与自动化 benchmark 的低相关性是设计评估体系时必须认识到的关键事实。
Test-Time Compute Scaling
核心思想
Training-time scaling(增加训练数据和算力)已被证明有效。Test-Time Compute Scaling 将同样的理念应用于推理阶段:在推理时投入更多计算来换取更高质量的输出。
Majority Voting(多数投票)
最简单的 test-time scaling 方法:
- 对同一个问题(如数学题),让模型生成 \(N\) 个不同回答(使用非零温度以获得多样性)
- 取出现频率最高的答案作为最终输出
直觉:由于 top-p 采样引入的随机性,模型偶尔会选择错误的 token 导致整条推理链偏离。通过多次采样,正确答案大概率会更频繁地出现。
Best-of-N(最优选择)
Majority Voting 的改进版:
- 生成 \(N\) 个不同回答
- 使用 Reward Model 或 Judge LLM 对每个回答评分
- 选择得分最高的回答
相比 Majority Voting,Best-of-N 利用了外部评估信号,通常效果更好,但需要额外运行一个评估模型。
Process Reward Model (PRM)
更精细的方法——不评估整体答案,而是评估每个推理步骤:
Process Reward Model 的工作流程
- LLM 生成部分解答(partial solution)
- PRM 对每个步骤评分——分数代表"该步骤最终导向正确答案的概率"
- 选择得分最高的步骤继续扩展
- 重复上述过程,逐步构建完整解答
这形成了一种树搜索(tree search)机制:在推理步骤的空间中进行搜索,由 PRM 引导搜索方向。
讲者用一个 base-8 乘法的例子演示了这一过程:
- Attempt 1:第一步正确,但第二步在十进制而非八进制下计算,PRM 拒绝
- Attempt 2:多了一步正确步骤,但最终仍犯同样错误,PRM 再次拒绝
- Attempt 4:所有步骤均正确,PRM 通过
Scaling 实验结果
Hugging Face 团队的实验显示:
- 使用 Llama 3.2 1B 和 3B(小模型),通过增加每题的生成次数
- 在数学 benchmark 上,小模型 + test-time scaling 可以超越 Llama 3.1 8B 甚至 Llama 3.1 70B
推理速度与输出质量的权衡
Test-Time Compute Scaling 的本质是用推理时间(inference speed)换输出质量(output quality)。这意味着一个小而高效的模型 + 充足的推理预算,可以在特定任务上匹敌甚至超越体量大得多的模型。这对资源受限的场景具有重要意义。
Reward Model 从何而来
Test-Time Compute Scaling 中使用的 Reward Model 可以复用 Preference Alignment 阶段(PPO 训练流程中)训练的 reward model。这个模型的输入是文本,输出是 0 到 1 之间的质量分数。也可以直接用 Judge LLM(通过 prompting)替代专门训练的 reward model。
本章小结
Test-Time Compute Scaling 是 2025 年初最重要的趋势之一,核心是在推理时投入更多计算以提升输出质量。从简单的 Majority Voting 到 Best-of-N,再到基于 Process Reward Model 的步骤级搜索,方法复杂度和效果依次递增。实验证明小模型 + test-time scaling 可超越大模型。
总结与延伸
Post-Training 流程总览
整个 Post-Training 是一个迭代循环,由三个等重的环节构成:
- 数据构建(约 1/3 时间):设计数据混合比例,确保准确性、多样性和复杂度,通过 seed data + LLM 生成 + 过滤的流水线批量生产高质量训练数据
- 模型训练(约 1/3 时间):SFT(推荐 LoRA)\(\rightarrow\) Preference Alignment(推荐 DPO)\(\rightarrow\) 可选的 Model Merging
- 评估迭代(约 1/3 时间):自动化 benchmark + LLM-as-Judge + 人类评估三管齐下,评估结果反馈到下一轮数据和训练的改进
核心要点回顾
本讲核心 Takeaways
- Post-Training 将 base model 转化为有用的 assistant,核心步骤为 SFT + Preference Alignment
- 数据质量 \(>\) 数据数量,三个维度:Accuracy, Diversity, Complexity
- LoRA 是大多数场景下的最佳 SFT 技术,DPO 是最实用的对齐算法
- Model Merging 是零成本组合多模型优势的利器
- 人类偏好与 automated benchmark 相关性低,必须组合使用多种评估方法
- Test-Time Compute Scaling 用推理时间换输出质量,是当前最重要的趋势
方法选择的工程决策表
| 目标场景 | 优先方法 | 关键判断标准 |
|---|---|---|
| 先快速验证需求 | In-context learning / RAG | 不要过早进入 fine-tuning,先看 base model 是否已足够好 |
| 需要稳定输出格式或语气 | SFT(通常配 LoRA) | 样本质量是否足够高,输出风格是否可被明确示范 |
| 需要让回答更符合人类偏好 | DPO / Preference Alignment | 是否有 chosen vs rejected 的偏好数据,评估是否覆盖真实用户偏好 |
| 需要组合多个模型专长 | Model Merging | 各模型能力是否互补,以及合并后是否有退化风险 |
| 推理阶段还有预算 | Test-Time Compute Scaling | 延迟和成本是否允许用更多采样换更高质量 |
给实践者的落地顺序
如果把这一讲转成工程上的执行建议,最稳妥的顺序通常是:
- 先用最小成本的 prompting / RAG 确认问题边界
- 再用高质量小数据集做 SFT,解决风格和格式问题
- 若要进一步提升可用性,再引入偏好数据做 DPO
- 最后根据成本、延迟与效果,选择 model merging 或 test-time scaling 作为增强手段
拓展阅读
- LLM Engineer's Handbook——讲者撰写的系统性参考书
- Open Perfect Blend (Hugging Face)——通用 SFT 数据集混合方案
- mergekit——开源模型合并工具
- TRL (Hugging Face)——最全面的 Post-Training 工具库
- Rafailov et al., Direct Preference Optimization (NeurIPS 2023)——DPO 原始论文
- Hu et al., LoRA: Low-Rank Adaptation of Large Language Models (ICLR 2022)——LoRA 原始论文
- Snell et al., Scaling LLM Test-Time Compute (2024)——Test-Time Compute 的理论基础
- Chatbot Arena (https://arena.lmsys.org)——基于人类偏好的模型排名