详细摘要 摘要
生成:2025-05-18 16:27摘要详情
- 音频文件
- MIT | Liquid AI | Introduction to LLM Post-Training
- 摘要类型
- 详细摘要
- LLM 提供商
- openai
- LLM 模型
- gemini-2.5-pro-exp-03-25
- 已创建
- 2025-05-18 16:27:49
摘要内容
概览/核心摘要 (Executive Summary)
本次演讲深入探讨了大型语言模型(LLM)后训练(Post-Training)的核心概念、关键技术及未来趋势。后训练的目标是将预训练好的基础模型转化为能够遵循指令、回答问题并符合人类偏好的实用助手。这一过程主要包括两个阶段:监督微调(Supervised Fine-Tuning, SFT),通过指令和对应回答教会模型理解任务结构;以及偏好对齐(Preference Alignment),通过对比“选择的答案”和“拒绝的答案”,使模型行为更符合预期。高质量数据是后训练成功的基石,强调数据的准确性(Accuracy)、多样性(Diversity)和复杂性(Complexity),而非单纯追求数量。演讲详细介绍了包括全参数微调、LoRA、QLoRA等SFT技术,以及PPO、DPO等偏好对齐算法,并提及了模型合并(如SLERP、DARE TIES)作为提升模型性能的有效手段。评估是后训练不可或缺的一环,尽管充满挑战,但结合自动化基准、人工评估及LLM辅助评估等多种方法至关重要。最后,演讲展望了测试时计算扩展(Test-Time Compute Scaling),如Best-of-N、过程奖励模型(Process Reward Models, PRM)等新兴趋势,指出通过在推理阶段增加计算投入可进一步提升模型表现。
LLM 后训练 (Post-Training) 概述
后训练发生于预训练之后,旨在将仅能预测下一个词元(token)的基础模型(base model)转化为有用的AI助手。
- 后训练的目标与定义:
- Maxime Labonne观点:“后训练的目标是把一个基础模型变成一个有用的助手。”
- 基础模型本身不具备回答问题或遵循指令的能力,后训练赋予其这些能力。
- 后训练的两个主要阶段:
- 监督微调 (Supervised Fine-Tuning, SFT):
- 向模型输入指令和对应的期望答案。
- 教会模型回答问题,并学习特定的结构或聊天模板(chat template)。
- 使模型能够遵循指令和回答问题。
- 偏好对齐 (Preference Alignment):
- 在SFT之后进行,旨在让模型的回答更符合用户的偏好。
- 提供一个问题和两个答案:一个“选择的答案”(chosen answer,期望模型产生的行为)和一个“拒绝的答案”(rejected answer,不期望模型产生的文本)。
- 通过对比学习,让模型知道应避免输出何种类型的文本。
- 监督微调 (Supervised Fine-Tuning, SFT):
后训练中的数据集构建
与预训练阶段使用海量原始文本不同,后训练数据集规模小得多,更侧重于数据质量。
- 数据集的核心:质量优先
- Maxime Labonne观点:“什么是好的数据?我认为这是整个后训练过程中的核心问题。”
- 好的数据包含三个维度:
- 准确性 (Accuracy):答案是否与问题相关?是否给出了正确答案?对于复杂问题(如代码、数学),可能需要单元测试或求解器来验证。
- 多样性 (Diversity):样本之间应具有显著差异,覆盖用户与模型交互的各种可能性。过度使用合成数据可能导致多样性崩溃。
- 复杂性 (Complexity):通过具有挑战性的问题和长而详细、包含逐步推理的答案来提升模型能力。可以使用如
autoevo框架(原文提及为autoevo,疑为Evolv-Instruct或类似概念的口误/简写)提升样本复杂度。
- 不同类型的微调及其数据需求(这些是大致估计,受模型大小、任务复杂度等因素影响):
- 通用型微调 (General Purpose Fine-tuning):创建能回答各类问题的通用助手(如ChatGPT)。可能需要超过一百万的样本。
- 领域特定型微调 (Domain Specific Fine-tuning):针对特定领域(医疗、法律、金融)或特定语言进行微调,嵌入更多领域知识。数据需求相对较少。
- 注意:如果基础模型完全不了解某种语言,微调可能效果不佳,因为没有足够的词元进行有效训练。
- 任务特定型微调 (Task Specific Fine-tuning):专注于学习单一功能,如摘要生成、拼写检查。所需样本更少。
- 何时进行微调(针对领域特定型和任务特定型):
- Maxime Labonne建议:“总是从上下文学习(In-context Learning)和RAG(Retrieval Augmented Generation)流程开始,因为测试起来容易得多。”
- 如果RAG在答案质量、延迟、推理速度等方面不达标,可以考虑微调。
- 微调的适用场景:
- 改变语气或格式:如调整邮件写作助手的语气。
- 增加知识:学习关于个人或公司的特定事实(但无法学会一门全新的语言)。
- 模型蒸馏:将大模型(如GPT-4)蒸馏到更小的模型,以降低成本和延迟,提高推理速度。
- 提升特定任务的输出质量:在非常细分的任务上(如制作图表),微调模型可能超越前沿模型。
- 重要性:务必评估微调效果,并进行迭代优化。
- 公司进行开源和微调的动机:主要是为了控制(Control)(不愿将数据发送到云端API)和可定制性(Customizability)(改变语气格式,创建自有模型)。
- 数据生成流程与示例
- 通用数据生成流程:
- 种子数据 (Seed Data):可以是原始文本、指令答案对、用户问题等。
- 数据精炼 (Refine):生成指令、答案或两者。例如,使用反向翻译(back translation)为原始文本生成对应问题。
- 评分与过滤 (Scoring and Filtering):使用启发式方法或LLM作为裁判来衡量答案质量,过滤不良样本。
- 经典数据处理:数据去重、去污染(确保不训练测试集内容)、数据过滤(如排除特定关键词)。
- 指令遵循 (Instruction Following) 数据集创建示例:
- 从提示(prompts)和约束(constraints)开始(例如,“你的整个回答都应该是英文且全小写”)。
- 查询LLM获取答案。
- 运行单元测试验证约束是否被遵循(如使用
langdetect库检测语言,检查是否全小写)。 - 进行去污染(如避免与
IFEval评估集过于相似的样本)。 - 进行关键词排除。
- UltraFeedback (偏好数据集创建示例):
- 从提示开始。
- 查询多个不同的LLM生成答案。
- 使用一个裁判LLM(judge LLM)对每个答案进行评分。
- 选择评分最高的作为“选择的答案”,评分最低的作为“拒绝的答案”。
- 移除重复项和过短的答案。
- 案例研究:OpenHermes- préférence plan [原文为Open Perfect Plan,根据上下文及Maxime Labonne的工作,应为OpenHermes数据集或类似概念]:一个通过合并Hugging Face上多个可用数据集构建的开源偏好数据集。其类别混合(大量数学、代码,少量聊天数据和指令遵循数据)为通用型微调提供了参考。
- 通用数据生成流程:
- 聊天模板 (Chat Template) 的重要性
- 将存储格式的数据(如Alpaca格式)映射到一个结构,让模型知道谁在说话(系统、用户、助手)。
- 使用特殊词元(如
IM_START,IM_END[原文为I start, I end,根据常见实践推测])标记消息的开始、角色和结束。 - 模型在监督微调阶段重点学习这种模板结构。
- Maxime Labonne强调:“这种结构非常非常重要,这是区分仅能自动补全文本的基础模型和能够实际遵循指令并进行完整对话的后训练模型的关键。”
后训练中的训练算法
- 推荐的微调库:
- TRL (Transformer Reinforcement Learning):Hugging Face出品,基于Transformers,功能强大,算法更新及时。
- Axolotl:基于TRL,更用户友好,可自动预处理数据集,训练配置使用YAML文件,便于分享和参考。
- Unsloth:单GPU微调效率极高,能处理量化等。
- 监督微调 (SFT) 技术:
- 全参数微调 (Full Fine-tuning):加载完整精度的模型,重新训练所有参数。质量最高,但显存(VRAM)需求巨大。
- 参数高效微调 (Parameter-Efficient Fine-tuning, PEFT) - LoRA (Low-Rank Adaptation):加载模型,但仅训练新增的适配器(adapter)矩阵A和B(约占总参数的0.5%)。速度更快,成本更低,但仍需加载完整模型。
- QLoRA (Quantized LoRA):加载模型的4位精度量化版本,再应用LoRA。显著降低加载模型的成本,适用于硬件受限场景,但训练更慢,性能略有下降(几个百分点)。
- Maxime Labonne建议:如果条件允许,优先选择LoRA而非QLoRA;全参数微调通常不是必需的,除非是LLM公司在训练基础模型。
- 偏好对齐 (Preference Alignment) 技术(超过100种不同技术):
- PPO (Proximal Policy Optimization):传统且原始的偏好对齐算法。需要加载三个模型(策略模型、训练模型、奖励模型),并计算KL散度以防偏离初始策略。质量好,但复杂且成本高。
- DPO (Direct Preference Optimization):成本更低,通常只需加载两个模型(若使用LoRA,可仅加载一个模型和对应的适配器)。速度更快,使用更便宜,参数更易调整。尽管质量可能略低于PPO,但在实践中通常不是问题。
- Maxime Labonne建议:“除非你是OpenAI,或者拥有无限资源,否则我推荐使用DPO而非PPO。” DPO更用户友好,参数调整更容易。
- 关键训练参数调整:
- 学习率 (Learning Rate):最重要的参数,控制参数更新幅度。常见值供参考。
- 批大小 (Batch Size) 和 最大长度 (Max Length):直接影响显存占用。可以通过梯度累积(effective batch size vs. real batch size)来处理批大小限制。
- 轮次 (Epochs):完整遍历训练集的次数,通常在3-5次之间,需监控。
- 优化器 (Optimizer):推荐AdamW,是一个强大的基线。
- 注意力机制 (Attention Mechanism):推荐Flash Attention,处理长序列效率高。
- 实验监控:
- 学习率问题:损失曲线出现尖峰(loss spike)通常意味着学习率过高。平滑下降的曲线更理想。
- 其他监控指标:训练损失(train loss)、验证损失(validation loss,需预留1-2%验证集,监控是否过拟合)、梯度范数(gradient norm,不希望看到过多尖峰或持续过高)。
模型合并 (Model Merging)
模型合并是指将不同模型的参数简单平均、融合或组合起来,以创造一个更强大的模型。
- 模型合并的理念与价值:
- Maxime Labonne观点:“这最初有点像个笑话,现在每个人都在用它。每个LLM公司都在应用模型合并。”
- 可以将“随机”模型合并成一个更强的模型。
- 是一种可能被低估但应用广泛的技术。
- 主流合并技术:
- SLERP (Spherical Linear Interpolation):球形线性插值,在球面上移动而非直线。通常能产生更好的合并效果,在开源社区很流行,可靠性高,但一次只能合并两个模型。
- DARE TIES (Drop And REscale, Trim Iterate Elect Sign) [原文为their ties or their linear,根据其描述和Maxime Labonne的工作,应指DARE TIES或类似技术]:
- DARE:随机修剪并重新缩放源模型的参数。
- TIES:保留源模型中最重要的参数,并解决符号冲突问题(如一个模型参数为正,另一个为负,简单相加得零,TIES会处理这种情况)。
- 模型合并的实践与案例:
- 合并条件:通常需要模型具有相同大小和相同架构(例如,只合并Llama 2模型之间,不合并Llama 2和Llama 3)。
- 精度问题:不推荐合并全精度模型和量化模型,因为量化模型的性能下降会影响合并结果。最好使用全精度模型进行合并。
- 权重分配:可以为不同模型分配不同权重。例如,对已知性能较好的模型赋予更高权重。
- 迭代合并:可以合并已合并过的模型,形成复杂的“家族树”。例如,演讲者创建的
NeuralDaredevil(书中提及,此处为the devil, eight b[不确定具体模型名称]) 模型就是通过多层合并实现。 - 参数调整(如
merging_kit中的density和weight):选择合适的权重和参数更像是一门“炼金术”,需要通过实验和评估来确定最佳配置。 - 效果:合并后的模型在基准测试中可能优于所有源模型。
- 应用案例:构建特定语言模型(如芬兰语)
- 在芬兰语原始文本上进行持续预训练(Continuum Pre-training)。
- 在芬兰语上进行监督微调和偏好对齐。
- 此时模型在芬兰语上表现良好,但在其他方面很差(灾难性遗忘)。
- 解决方案:将训练好的芬兰语模型与一个通用的指令微调模型(如Llama 3 Instruct)进行合并。
- 结果:获得一个既擅长芬兰语,又在其他方面表现良好的模型。
- Maxime Labonne总结:“模型合并的威力之一在于它允许你将这些不同的技能结合起来,而不会损害其余部分。”
- 适用性:模型合并主要针对文本模型,也可用于视觉语言模型(VLM),但不能赋予模型完全新的能力,而是组合具有相同架构的不同模型的现有能力。
LLM 评估 (Evaluation)
评估是LLM领域的主要问题,虽然不完美,但至关重要。
- 评估的重要性与挑战:
- Maxime Labonne观点:“评估是LLM世界中的主要问题。它运作得不是很好,我们也不太清楚自己在做什么。但它确实非常重要……因为所有这些训练和后训练都是关于优化某些东西……如果我们没有正确的评估,我们就是在为错误的事情进行优化。”
- 自动化基准测试 (Automated Benchmarks):
- 示例:MMLU,Open LLM Leaderboard。
- 原理:给定数据集(样本)和度量标准(如MMLU中的准确率)。
- 优点:可扩展性好,成本效益高,可针对特定任务(数学、代数等)设计,可复现。
- 缺点:与模型的实际使用方式(聊天交互)不符,难以评估自由形式或复杂问题。
- 可以有更专注的基准:企业场景、领域特定(如为芬兰语、代码、医疗领域创建评估套件)。
- 人工评估 (Human Evaluation) 与聊天机器人竞技场 (Chatbot Arena):
- 原理:人类对匿名模型的答案进行评分(例如,哪个更好)。通过大量比较计算Elo得分。
- 优点:可以精确定义评估标准(如专注于毒性),灵活性高,数据污染风险低,直接反映人类偏好。
- 缺点:难以扩展,成本高,耗时,人类存在偏见(如偏爱更长、更自信的答案,即使答案是错误的)。
- Maxime Labonne观点:“这绝对不是最终的评估方式,但它仍然是一个非常重要的工具。”
- 自动化基准与人类偏好的低相关性:
- 关键发现:Chatbot Arena(代表人类偏好)的排名与MMLU、GSM8K(数学)、HumanEval(代码)等自动化基准的排名相关性通常较差。
- 启示:模型可能在MMLU上表现优异,但在人类偏好方面表现糟糕,反之亦然。因此,两种方法是互补的,需要结合使用。
- LLM 作为评估者 (LLM-as-a-Judge):
- 原理:用LLM生成答案,并用其他LLM(或LLM陪审团)来评判这些答案。
- 优点:比人工评估更易扩展,能处理复杂任务,提供接近人类偏好的直接反馈(两者相关性较高)。
- 缺点:裁判LLM自身也存在偏见(与人类偏见相似),需要质量验证(可能仍需部分人工评估确保LLM裁判与人类评估一致)。
- 构建自定义评估方案的建议:
- 尽早开始:在微调之前就定义好评估标准(类似测试驱动开发)。
- 持续迭代:评估数据集可能会根据模型表现不断演进。
- 组合方法:结合自动化基准和人工/LLM裁判。
- 对比评估:不仅与自己的微调模型比较,也与其他模型、其他架构进行比较。
未来趋势:测试时计算扩展 (Test-Time Compute Scaling)
核心思想是在推理(inference)阶段投入更多计算以提升模型性能。
- 核心思想:
- Maxime Labonne观点:“目前最大的趋势,我认为在2025年初,被称为测试时计算扩展……如果我们尝试在推理过程中投入计算呢?”
- 主要方法:
- 多数投票 (Majority Voting):针对一个问题,让LLM生成多个解决方案,选择出现频率最高的那个。
- 原理:通过多次采样(通常使用较高的temperature以获得多样性答案)来弥补非贪婪解码过程中因随机性引入的错误。
- Best-of-N:生成N个不同解决方案,然后使用奖励模型(Reward Model)或裁判LLM对每个答案进行评分,选择得分最高的。
- 过程奖励模型 (Process Reward Models, PRM):不对最终答案评分,而是对答案中的每一步进行评分。
- 评分代表该步骤最终能得到正确答案的概率。
- 可以迭代进行:用LLM生成部分解决方案 -> 用PRM评估步骤 -> 选择最佳步骤并扩展 -> 重复。
- 示例:一个数学问题,PRM会拒绝中间步骤错误的解答路径,引导模型向正确步骤探索。
- 多数投票 (Majority Voting):针对一个问题,让LLM生成多个解决方案,选择出现频率最高的那个。
- 效果展示:
- Hugging Face的研究表明,使用如Llama 2 13B [原文为lamath point 21B,疑为Llama 2 13B 或类似模型] 和 Mistral 7B [原文为M three b,疑为Mistral 7B] 等模型,通过增加每个问题的生成次数(即增加测试时计算),其性能可以超越Llama 3.1 8B和Llama 3.1 70B [原文为lama 3.18b and lama H 3.1 70b,根据上下文推测] 等更大的模型。
- 结论:“这真正表明你可以用推理速度来换取输出质量。”
总结与问答环节要点
- 后训练的核心循环 (Post-Training Loop):
- 创建数据集(花费约1/3时间):关注数据质量(准确性、多样性、复杂性)。
- 训练模型(花费约1/3时间):运用SFT、偏好对齐、模型合并等技术。
- 评估模型(花费约1/3时间):结合多种评估方法,获取反馈。
- 评估结果会反馈到数据集的改进,形成迭代优化的循环。评估主要是在评估数据的质量和混合比例。
- 问答环节关键点:
- 商业模式探讨 (B2C通用模型 vs. B2B微调模型):
- 提问者:从LLM提供商的盈利角度看,B2C通用模型和B2B微调模型哪个更有机会?
- Maxime Labonne观点:B2C模型市场目前已非常饱和,难以与Google、OpenAI、Anthropic等巨头竞争。进行微调并针对B2B客户可能更好,并可能以此为杠杆最终发展成B2C公司。
- 微调中的知识更新与RAG的结合:
- 提问者:通过微调添加的知识是冻结的,而知识会不断发展,RAG如何与此比较或结合?
- Maxime Labonne观点:不应是“微调 vs RAG”,而应是“RAG 或 微调 + RAG”。如果RAG有意义,最好将其与微调模型结合使用。
- 无输入输出对的强化学习算法选择:
- 提问者:如果没有输入输出对,想通过强化学习改变模型语气或个性,应使用哪种算法?
- Maxime Labonne建议:对于改变语气这类任务,推荐使用偏好对齐,特别是DPO算法。数据生成可以参考如UltraFeedback的流程。
- 多轮对话的偏好对齐:
- 提问者:所介绍的技术主要针对单轮交互,是否可以进行多轮优化的偏好对齐?
- Maxime Labonne观点:完全可以扩展到多轮对话,并且推荐这样做,因为单轮有效的策略(如指令遵循)在多轮中可能失效。
- 模型合并中不同语言模型的处理 (分词器问题):
- 提问者:合并不同语言模型(如芬兰语和英语)时,输入输出空间差异大,分词器如何处理?
- Maxime Labonne解释:分词器通常在预训练前基于校准数据集创建,该数据集多为英语。在后训练阶段更改分词器会导致性能急剧下降,因为模型需要重新学习词元ID和嵌入的映射。示例中默认使用基础模型和指令版本相同的分词器。理想情况下,分词器应为特定语言设计。
- 利用 Best-of-N 等技术提供不确定性度量:
- 提问者:Best-of-N等技术产生的多个答案的得分分布差异,能否给最终用户提供关于模型确定性的感知,尤其是在安全关键应用中?
- Maxime Labonne观点:可以将其用作不确定性的度量。在特定用例中,也可以使用针对特定任务(如测量毒性)定制的奖励模型,并仅基于该指标提供分数,从而为特定用例定制Best-of-N技术。
- 商业模式探讨 (B2C通用模型 vs. B2B微调模型):