在人工智能领域,特别是大语言模型(LLM)的开发和部署过程中,虽然预训练(Pre-training)为模型提供了广泛的语言理解和生成能力,但后训练是真正将这些基础能力转化为特定任务和实际应用价值的关键步骤。后训练能显著提升模型的性能、安全性、可控性以及效率,更符合人类的期望和特定场景的需求。
通过后训练,一个通用的语言模型可以被调优为一个专业的法律助手、医疗咨询师,或者一个能高效运行在手机等边缘设备上的轻量级应用。

什么是后训练?
定义
后训练(Post-Training)是指在模型完成初步的预训练(Pre-training)之后,进行的一系列优化和调整过程。
预训练是在海量的通用文本数据上进行的,目的是让模型学习到基本的语言规律、世界知识和一定的推理能力。预训练模型往往像一个“通才”,虽然知识面广,但在特定任务或特定领域的表现可能不够精准,或者其行为模式可能不完全符合人类的期望。
后训练就是为了解决这些问题而存在的。通过在特定数据集上对预训练模型进行进一步的训练,使其适应特定的需求。
过程可以类比为,一个大学毕业生虽然掌握了专业知识,但进入具体工作岗位前,需要接受岗前培训,学习公司的规章制度、业务流程以及特定岗位的技能要求。
后训练的目标是提升模型在特定任务上的性能,输出更符合人类的偏好,或者能在资源受限的环境下高效运行。
后训练的核心在于“ refinement ”(精炼)和“ alignment ”(对齐)。
精炼:指的是通过特定数据让模型在某个方面的能力得到加强,比如代码生成、数学推理,或者对特定领域知识的掌握。
对齐:更侧重于让模型的输出与人类的价值观、偏好以及指令相一致,确保模型是安全、有用且无害的。
后训练的时机与目的
后训练的时机是在模型完成了大规模的预训练之后。当我们需要模型在以下几个方面有所提升时,就需要考虑进行后训练:
- 提升特定任务性能:当预训练模型在您关心的特定任务(如文本摘要、情感分析、代码生成、问答系统)上表现不佳,或者您希望它在某个垂直领域(如法律、医疗、金融)有更专业的表现时,就需要通过后训练来注入领域知识或优化任务相关能力。
- 对齐人类偏好与价值观:预训练模型可能会生成不准确、带有偏见、甚至有害的内容。后训练,特别是基于人类反馈的强化学习(RLHF)或直接偏好优化(DPO),可以帮助模型学习人类的偏好,使其输出更安全、更有帮助、更符合伦理规范 。Llama3的后训练目标就包括了奖励模型和语言模型,通过人类标注的偏好数据训练奖励模型,然后进行拒绝采样和DPO,以与人类偏好对齐 。
- 提高模型效率与部署便捷性:大型预训练模型参数量巨大,对计算资源和存储空间要求很高,难以在边缘设备或资源受限的环境下部署。后训练中的模型压缩技术,如量化、剪枝和知识蒸馏,可以显著减小模型体积、降低推理延迟,更容易部署 。例如,训练后量化可以将模型大小减小4倍,速度提升2-3倍 。
- 适应特定数据分布或格式:如果您的应用场景涉及到特定类型的数据(如特定格式的表格、代码)或需要模型遵循特定的输出格式(如JSON),后训练可以帮助模型更好地理解和处理这些数据 。Qwen2.5模型的后训练就显著提升了其在理解结构化数据(如表格)和生成结构化输出(尤其是JSON)方面的能力 。
- 迭代改进与持续学习:模型上线后,可能会遇到新的问题或用户反馈。后训练也可以作为一个持续的过程,根据新的数据和反馈不断优化模型,保持最佳性能并适应变化的需求 。
后训练的目的是将一个通用的、原始的预训练模型,转化为一个更专业、更安全、更高效、更能满足特定应用需求的定制化模型。是模型开发生命周期中不可或缺的一环,直接决定了模型在实际应用中的表现和价值。
后训练的主要技术
针对大语言模型(LLM)的后训练技术
针对大语言模型(LLM)的后训练技术,核心目标是提升模型在特定任务上的表现,输出更符合人类偏好,增强在特定领域的知识和能力。技术可以分为几大类:
- 监督微调(Supervised Fine-Tuning, SFT):这是最基础也是最常用的后训练方法。通过在高质量的、人工标注的(输入,输出)数据对上进行训练,来教会模型如何执行特定任务或遵循特定指令 。例如,为了让模型学会进行多轮对话,SFT数据会包含用户和助手之间的对话历史,以及期望的助手回复 。Llama3的后训练就包含了多轮的SFT,使用人类注释数据和合成数据 。SFT的目标是让模型学会“模仿”标注数据中的理想回答。
- 偏好对齐(Preference Alignment):SFT后的模型虽然能回答问题,但答案的质量、安全性或有用性可能仍有不足。偏好对齐技术旨在解决这个问题,通过让模型学习区分“好”答案和“坏”答案,使其更倾向于生成人类偏好的回答。常见的技术包括:
- 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF):是一种复杂但效果显著的技术。首先收集人类对模型不同输出的排序或评分,然后训练一个奖励模型(Reward Model, RM)来预测人类偏好,最后使用强化学习算法(如PPO)来优化语言模型,使其生成能获得更高奖励(即更符合人类偏好)的文本 。Llama3和GLM-4的后训练都应用了RLHF或类似的RL技术 。
- 直接偏好优化(Direct Preference Optimization, DPO):DPO是一种比RLHF更简单、更高效的偏好对齐方法。不需要显式地训练奖励模型,是直接利用偏好数据优化语言模型,学会区分被选中的(chosen)和被拒绝的(rejected)回答。DPO在训练速度、成本和调参难度上通常优于PPO,因此在实践中越来越受欢迎。
- 高效微调技术(Parameter-Efficient Fine-Tuning, PEFT):由于LLM参数量巨大,全参数微调(Full Fine-Tuning)需要巨大的计算资源和显存。PEFT技术通过仅微调模型的一小部分参数或添加少量可训练参数来实现模型适配,大幅降低计算成本。常见的PEFT方法包括:
- LoRA(Low-Rank Adaptation):LoRA在模型的注意力权重矩阵旁边添加低秩分解矩阵进行微调,不是直接更新原始的大权重矩阵 。
- QLoRA(Quantized LoRA):QLoRA结合了量化和LoRA,先将基础模型量化为低精度(如4-bit),然后在量化后的模型上应用LoRA进行微调,进一步降低了显存需求,使得在单个GPU上微调大型模型成为可能。
- Adapter:Adapter在Transformer层的中间插入小型神经网络模块进行微调,而保持预训练模型的主干参数不变 。
- 模型融合(Model Merging):是一种将多个同结构、同大小的已训练模型(例如,多个针对不同任务微调的Llama 3 8B模型)的参数通过某种方式(如加权平均)合并起来,得到一个可能能力更强的新模型的技术 。常用的模型融合技术包括TIES、DARE和SLERP等。
| 技术类别 |
核心思想 |
主要方法举例 |
应用目标 |
| 监督微调 (SFT) |
使用特定任务数据继续训练预训练模型,调整模型参数 |
指令微调, 自适应微调, 基于提示的微调 |
提升模型在特定任务或领域的性能,增强指令遵循能力 |
| 偏好对齐 |
通过人类反馈优化模型,使其输出更符合人类偏好 |
基于人类反馈的强化学习 (RLHF), 直接偏好优化 (DPO) |
对齐人类偏好,提升模型输出的安全性、有用性和无害性,增强对话质量 |
| 高效微调 (PEFT) |
仅微调模型的一小部分参数或添加少量可训练参数,降低计算成本 |
LoRA, QLoRA, Adapter |
在资源有限的情况下适配大型模型 |
| 模型融合 |
将多个已训练模型的参数合并,得到能力更强的新模型 |
TIES, DARE, SLERP |
结合不同模型的优势,提升整体性能 |
针对模型压缩与优化的后训练技术
当大型预训练模型需要在资源受限的环境(如移动设备、嵌入式系统)中部署,或者需要降低推理成本时,模型压缩与优化技术就显得尤为重要。这些技术通常在模型训练完成后应用,属于后训练的一部分,减小模型体积、降低计算复杂度和内存占用,尽可能保持模型的性能。主要的模型压缩与优化后训练技术包括:
- 训练后量化(Post-Training Quantization, PTQ):量化是将模型中的权重和/或激活值从高精度表示(如32位浮点数,FP32)转换为低精度表示(如16位浮点数FP16、8位整数INT8,甚至4位整数INT4)的过程 。PTQ是在模型训练完成后直接进行量化,无需重新训练或仅需少量校准数据。Google AI Edge提供的PTQ选项包括动态范围量化(更小4倍,速度提升2-3倍,适用于CPU)、完整整数量化(更小4倍,速度提升3倍以上,适用于CPU、Edge TPU、微控制器)和Float16量化(更小2倍,GPU加速,适用于CPU、GPU)。英特尔也提供了用于PTQ的INCQuantizer类 。量化可以显著减小模型大小和加速推理,但可能会导致一定的精度损失,需要仔细选择量化方法和校准数据来权衡。
- 训练后剪枝(Post-Training Pruning, PTP):剪枝是通过移除模型中不重要的权重或神经元(甚至整个层或注意力头)来减小模型大小和计算量的技术 。基于幅度的剪枝是一种常见方法,它认为绝对值较小的权重对模型输出的贡献较小,可以移除。剪枝后,模型通常需要进行微调(re-training)以恢复损失的精度 。剪枝可以分为权重剪枝(删除单个连接)、神经元剪枝(删除整个神经元)和结构化剪枝(删除更大的结构,如滤波器或层)。剪枝的目标是得到一个更稀疏、更紧凑的模型。
- 知识蒸馏(Knowledge Distillation, KD):知识蒸馏是一种模型压缩技术,核心思想是让一个小型模型(学生模型)去学习一个大型、高性能模型(教师模型)的行为和知识 。在后训练阶段,教师模型(通常是经过充分训练的大型LLM)的“软标签”(soft labels,即输出概率分布)或中间层特征被用来指导学生模型的训练。学生模型通过学习模仿教师模型的输出,可以在参数量远小于教师模型的情况下,达到接近甚至超越教师模型的性能。例如,DeepSeek-RI模型就作为教师模型,将其先进的推理能力迁移到更小的模型架构上 。知识蒸馏不仅可以压缩模型,有时还能提升学生模型的泛化能力。
| 技术类别 |
核心思想 |
主要方法/特点 |
应用目标 |
| 训练后量化 (PTQ) |
降低模型参数的数值精度 |
将float32权重转换为int8等低精度格式,使用校准数据集优化量化过程 |
减小模型大小,加速推理,降低功耗,便于边缘设备部署 |
| 训练后剪枝 (PTP) |
移除模型中不重要的参数(权重、神经元等) |
根据参数重要性进行剪枝,可能需要剪枝后重新训练以恢复性能 |
减少模型参数数量和计算量,提高推理速度,适用于资源受限环境 |
| 知识蒸馏 |
用大型教师模型指导小型学生模型训练,迁移知识 |
学生模型学习教师模型的软标签或特征表示 |
压缩模型大小,提升小型模型的性能和泛化能力 |
常见的后训练技术
监督微调(SFT)
监督微调(Supervised Fine-Tuning, SFT)是大语言模型后训练中最基础且核心的一环。核心思想非常简单:使用高质量的、人工标注的(输入,输出)数据对来进一步训练预训练模型,使其适应特定任务或学会遵循特定指令 。可以将SFT想象成给模型提供一本“标准答案”手册,让它学习在特定情境下应该给出什么样的回应。这些标注数据由领域专家或经过培训的标注员精心构建,确保其准确性和有用性。例如,在构建一个客服聊天机器人时,SFT数据可能包含大量的用户提问和对应的理想客服回答。在Llama3的后训练中,SFT数据主要由人类注释收集的提示及其通过拒绝采样得到的响应、针对特定能力的合成数据以及少量人类策划的数据组成 。
SFT的实施过程如下:
- 准备数据集:收集或构建一个高质量的、与目标任务相关的标注数据集。每个样本包含一个输入(例如,用户的问题、指令)和一个期望的输出(例如,模型的理想回答、执行结果)。数据的质量和多样性对SFT的效果至关重要 。
- 选择基础模型:选择一个合适的预训练语言模型作为SFT的起点。这个基础模型应该已经具备较好的语言理解和生成能力。
- 配置训练参数:设置训练的超参数,如学习率、批次大小、训练轮数(epochs)等。这些参数的选择会影响训练的速度和最终模型的性能 。例如,Llama3最大的模型在SFT时学习率设为1e-5,训练步数在8.5k到9k之间 。
- 执行训练:在准备好的数据集上对基础模型进行微调。训练过程中,模型会尝试预测给定输入下的输出,并将其预测与标注的真实输出进行比较,计算损失(loss),然后通过反向传播算法更新模型的参数,以最小化损失。
- 评估与迭代:训练完成后,在独立的验证集或测试集上评估模型的性能。如果效果不理想,可能需要调整数据集、超参数或训练策略,并进行多轮迭代。
SFT的优点在于其概念简单、易于实现,并且对于提升模型在特定任务上的表现非常有效 。可以帮助模型学会新的技能,如代码生成、文本摘要,或者使其更好地遵循指令格式,例如学习特定的对话模板。
SFT也有一些局限性,高度依赖标注数据的质量,如果数据中存在偏见或错误,模型也会学习这些不好的模式。标准的SFT不直接优化模型以符合人类的广泛偏好(例如,生成更有趣或更安全的回答),需要后续的偏好对齐步骤(如RLHF或DPO)来完成 。全参数SFT的计算成本较高,对于非常大的模型,可能需要高效的微调技术(如LoRA)来降低资源消耗 。
直接偏好优化(DPO)
直接偏好优化(Direct Preference Optimization, DPO)是一种新兴且日益流行的后训练技术,用于对齐大语言模型与人类的偏好。与基于人类反馈的强化学习(RLHF)相比,DPO提供了一种更简单、计算成本更低且通常更容易调优的方法来达到类似的目标 。RLHF涉及训练一个独立的奖励模型来预测人类偏好,然后使用强化学习算法(如PPO)来优化语言模型以最大化这个奖励。而DPO的核心思想是直接利用包含偏好信息的数据集来优化语言模型本身,无需显式地训练奖励模型。
DPO的工作原理概括为以下几个步骤:
- 准备偏好数据集:构建一个数据集,其中每个样本包含一个提示(prompt),以及针对该提示的至少两个模型生成的回答:一个是被人类标注者“偏好”或“选中”的回答(chosen response),另一个是被“拒绝”或认为较差的回答(rejected response)。Llama3在收集偏好数据时,甚至引入了第三个“编辑过的响应”(edited response),其偏好顺序为 edited > chosen > rejected 。
- 定义损失函数:DPO通过一个精心设计的损失函数来优化语言模型。这个损失函数鼓励模型为“偏好”的回答分配更高的概率,而为“拒绝”的回答分配更低的概率。巧妙地利用了Bradley-Terry模型等成对比较模型的理论,将偏好学习问题转化为一个监督学习问题。
- 优化语言模型:使用标准的梯度下降方法,通过最小化DPO损失函数来更新语言模型的参数。这个过程直接调整模型的策略,使其更倾向于生成人类偏好的文本。
DPO相较于RLHF的主要优势在于:
- 更简单:DPO避免了RLHF中训练奖励模型和使用复杂强化学习算法的步骤,实现起来更直接。
- 更高效:由于不需要额外的奖励模型和RL循环,DPO的训练通常更快,计算资源消耗更少 。可能只需要加载一个(或两个,如果使用参考模型)语言模型,而PPO可能需要同时加载原始模型、训练中的模型和奖励模型 。
- 更稳定,更容易调参:RLHF中的PPO算法 notoriously 难以调参,对超参数非常敏感。DPO作为一个监督学习问题,其训练过程通常更稳定,超参数调整也相对简单 。
- 效果相当甚至更好:在许多实验中,DPO在偏好对齐任务上取得了与PPO相当甚至更好的效果,尤其是在资源有限的情况下,DPO的简单性使其成为一个更具吸引力的选择 。
强化学习(RL)
强化学习(Reinforcement Learning, RL)在大型语言模型的后训练中扮演着至关重要的角色,尤其是在对齐模型行为与人类偏好、提升模型在复杂交互任务中的表现方面。与监督学习不同,强化学习并非通过提供“标准答案”来训练模型,而是让模型通过与环境的交互来学习最优策略,以最大化累积奖励。在后训练语境下,环境可以是用户提出的问题或指令,模型的行动是生成文本,奖励则反映了生成文本的质量(例如,是否准确、有帮助、无害、流畅等)。
基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)是RL在后训练中包含以下关键步骤:
- 收集人类偏好数据:首先,需要收集一个数据集,其中包含人类对不同模型生成响应的偏好排序或评分。例如,给定一个提示,标注者可能会看到几个不同的模型输出,被要求将它们从最好到最差进行排序,或者对每个输出进行打分 。
- 训练奖励模型(Reward Model, RM):利用收集到的人类偏好数据来训练一个奖励模型。这个奖励模型的任务是,给定一个提示和模型生成的响应,预测人类对该响应的偏好程度(即给出一个标量奖励值)。Llama3在训练奖励模型时,会移除边际项,并过滤掉相似响应样本,同时使用所有偏好数据进行训练 。
- 使用RL算法优化语言模型(Policy Model):在奖励模型训练完成后,将其作为优化语言模型的信号。语言模型(策略模型)通过强化学习算法(如近端策略优化 Proximal Policy Optimization, PPO)进行微调,目标是生成能够从奖励模型获得更高奖励的响应 。为了防止模型过度优化奖励模型而偏离原始语言模型太远(例如,生成无意义但能骗过奖励模型的文本),通常会加入一个KL散度惩罚项,约束策略模型与原始预训练模型之间的差异 。
强化学习的优势是能处理复杂的、序列性的决策问题,可以通过设计合适的奖励函数来引导模型学习特定的行为模式。RL也存在一些挑战:
- 奖励函数设计困难:设计一个能准确、全面地反映人类偏好的奖励函数非常困难。不完善的奖励函数可能导致模型学习到 unintended 的行为(奖励黑客,reward hacking)。
- 样本效率低,训练不稳定:RL需要大量的交互数据才能学习到有效的策略,训练过程可能不稳定,对超参数敏感 。
- 计算成本高:RLHF等涉及多个模型(策略模型、奖励模型、参考模型)和复杂优化过程的方法,计算成本通常较高。
训练后量化(PTQ)
训练后量化(Post-Training Quantization, PTQ)是一种重要的模型优化技术,减小模型的大小并加速推理速度,尽可能减少对模型准确率的负面影响。在模型完成训练后进行,无需或仅需少量未标注的校准数据,因此被称为“训练后”量化。核心思想是将模型中的权重(weights)和/或激活值(activations)从高精度的浮点数表示(例如32位浮点数,FP32)转换为低精度的表示,例如16位浮点数(FP16或BF16)、8位整数(INT8),甚至4位整数(INT4)或2位整数(INT2)。
关键好处:模型占用的存储空间显著减小,内存带宽需求降低,以及在某些硬件(如支持低精度运算的CPU、GPU或专用加速器如Edge TPU)上可以实现更快的计算速度。
Google AI Edge提供了一些常见的PTQ选项及其优势 :
- 动态范围量化(Dynamic Range Quantization):这是最简单的PTQ形式,仅将权重从FP32转换为INT8,而激活值在推理时动态量化和反量化。这种方法可以将模型大小减小约4倍,CPU延迟提升2-3倍,且通常对准确率影响较小。
- 完整整数量化(Full Integer Quantization):这种方法不仅量化权重,还将激活值也转换为INT8(或其他整数格式)。这需要一个小型的代表性校准数据集来确定激活值的动态范围。完整整数量化可以实现约4倍的模型压缩和3倍以上的速度提升,并且模型可以完全在仅支持整数的硬件(如微控制器、Edge TPU)上运行。
- Float16量化(Float16 Quantization):将权重和/或激活值转换为16位浮点数(FP16或BF16)。这可以将模型大小减小约2倍,并且在支持FP16运算的GPU上可以获得显著的加速。
PTQ的过程包括以下步骤:
- 选择量化方案:确定要量化的部分(仅权重,还是权重和激活值)、目标精度(如INT8, FP16)以及量化的粒度(如逐层量化、逐通道量化)。
- 校准(对于完整整数量化):如果量化激活值,通常需要一个小的、具有代表性的校准数据集。模型在推理这些校准数据时,会收集激活值的统计信息(如最小值和最大值),用于确定量化参数(如缩放因子和零点)。
- 转换与部署:根据选择的量化方案和校准得到的参数,将原始FP32模型转换为量化模型。转换后的模型可以部署到目标硬件上运行。
训练后剪枝(PTP)
训练后剪枝(Post-Training Pruning, PTP)是一种模型压缩技术,目标是通过移除神经网络中不重要的参数(权重)或结构单元(如神经元、通道、甚至整个层),来减小模型的大小、降低计算复杂度并加速推理,尽可能保持模型的性能。与量化不同,剪枝是通过减少模型中的连接数量或单元数量来实现压缩的。可以将剪枝想象成给模型“瘦身”,去掉那些对最终输出贡献不大的“赘肉”。剪枝在模型训练完成后进行,因此属于后训练优化的一部分。
PTP的过程包括以下几个步骤:
- 重要性评估:首先,需要评估模型中每个参数或结构单元的重要性。常用的评估方法包括:
- 基于幅度的剪枝(Magnitude-based Pruning):这是最简单也最常用的方法。它认为权重绝对值越小的参数,对模型输出的贡献越小,因此可以优先被剪枝 。
- 基于灵敏度的剪枝(Sensitivity-based Pruning):分析移除某个参数或单元对模型损失函数或准确率的影响程度,影响越小的被认为越不重要。
- 基于梯度的剪枝:利用梯度信息来判断参数的重要性。
- 剪枝策略:根据重要性评估结果,选择要移除的参数或单元。剪枝可以有不同的粒度:
- 非结构化剪枝(Unstructured Pruning):也称为权重剪枝,逐个移除单个权重。这种方法可以达到很高的稀疏度,但剪枝后的模型通常是不规则的,难以在通用硬件上获得实际的加速,除非有专门的稀疏计算库支持 。
- 结构化剪枝(Structured Pruning):移除整个结构单元,如神经元、通道(filters)、注意力头或甚至整个层。这种方法产生的模型仍然是规则的,可以直接在现有硬件上获得加速,但可能比非结构化剪枝更难保持精度 。
- 剪枝执行:按照选定的策略和剪枝比例(例如,移除20%的权重)移除不重要的参数或单元。
- 微调(Fine-tuning / Re-training):剪枝操作不可避免地会导致模型性能的下降。因此,在剪枝之后,通常需要对模型进行微调,在剩余的参数上重新训练一段时间,以恢复损失的精度 。这个微调过程使用的学习率通常较小。
剪枝技术对于减小模型体积和计算量非常有效,尤其是在资源受限的设备上部署模型时。例如,在计算机视觉领域,通过剪枝可以显著减小深度神经网络的大小和计算需求 。对于大型语言模型,剪枝也是一个重要的研究方向,尽管由于其巨大的参数量和复杂的结构,LLM的剪枝面临更大的挑战。
对于非技术人员而言,理解PTP的关键在于它是一种通过“去掉模型中不重要的部分”来使模型变得更小、更快的方法。选择合适的剪枝策略和剪枝比例,在剪枝后进行充分的微调,是保证模型性能的关键。与量化类似,剪枝也需要在模型压缩率和性能保持之间进行权衡。
知识蒸馏
知识蒸馏(Knowledge Distillation, KD)是一种模型压缩和性能提升技术,核心思想是将一个大型、高性能、复杂的模型(称为教师模型,Teacher Model)所学习到的“知识”迁移到一个小型、轻量级的模型(称为学生模型,Student Model)中。这种方法使学生模型能在参数量远小于教师模型的情况下,达到接近甚至有时超越教师模型的性能。知识蒸馏在模型训练完成后进行,属于后训练优化的一部分,创建一个更小、更高效的模型,保留大型模型的强大能力。例如,DeepSeek-RI模型就作为教师模型,将其先进的推理能力迁移到更小的模型架构上 。
知识蒸馏的过程涉及以下步骤:
- 训练教师模型:首先,需要一个在目标任务上表现优异的、大型的教师模型。这个模型通常参数量较大,训练成本较高。
- 定义学生模型:设计一个小型的学生模型,其结构更简单,参数量更少,计算复杂度更低。
- 迁移知识:学生模型的训练目标是模仿教师模型的行为。通过两种方式实现:
- 软标签学习(Soft Target Learning):教师模型在训练数据上会产生“软标签”,即输出概率分布(例如,对于一张猫的图片,教师模型可能输出“猫: 0.9, 狗: 0.05, 狐狸: 0.05”)。这些软标签包含了比“硬标签”(例如,“猫: 1”)更丰富的信息,反映了类别间的相似性。学生模型在学习真实标签的同时,也学习拟合教师模型的软标签。
- 特征表示学习(Feature Representation Learning):学生模型也可以学习模仿教师模型中间层的特征表示,学习到更鲁棒的特征提取能力。
- 学生模型训练:学生模型通过最小化一个组合损失函数进行训练。这个损失函数通常包含两部分:一部分是学生模型预测与真实硬标签之间的标准损失(如交叉熵损失),另一部分是学生模型预测与教师模型软标签(或特征)之间的蒸馏损失(如KL散度)。
知识蒸馏的优势在于,能压缩模型,有时还能提升学生模型的泛化能力和鲁棒性。是因为学生模型从教师模型那里学习到了更平滑、更丰富的知识表示。对于非技术人员而言,可以将知识蒸馏理解为一种“师徒传承”的过程,小模型(学生)通过向大模型(老师)学习,快速掌握复杂技能。
如何判断是否需要后训练?
判断一个模型是否需要后训练,需要综合考虑模型在当前应用场景下的表现以及部署环境的限制。以下是一些常见的信号,表明可能需要对模型进行后训练:
- 模型在新应用或领域表现不佳,需要适应新数据/任务:如果一个预训练模型被直接应用于一个新的、与预训练数据分布不同的领域或任务时,其性能可能会显著下降。例如,一个在通用语料上训练的语言模型,在处理特定行业的专业文本(如法律文书、医学报告)时,可能无法准确理解专业术语或行业规范,导致生成的内容质量不高或出现错误。这种情况下,就需要通过后训练(如监督微调SFT),使用该特定领域的数据对模型进行优化,使其适应新的数据特点和任务需求。
- 需要在资源受限的移动设备或嵌入式系统上部署模型,要求更小更高效:许多先进的深度学习模型参数量巨大,计算复杂度高,难以直接部署到存储空间有限、计算能力较弱的移动设备(如智能手机、平板电脑)或嵌入式系统(如智能摄像头、可穿戴设备)上。如果直接部署,可能会导致应用运行缓慢、耗电量高,甚至无法运行。此时,就需要采用模型压缩的后训练技术,如训练后量化(PTQ)或训练后剪枝(PTP),来减小模型体积、降低计算量,使其满足部署环境的资源限制。
- 模型推理耗时过长,影响用户体验,需要加速模型:在某些实时性要求较高的应用场景中,如在线翻译、实时语音识别、交互式对话系统等,模型的推理速度至关重要。如果模型推理耗时过长,用户可能需要等待较长时间才能得到结果,这会严重影响用户体验。通过后训练技术,如量化、剪枝或知识蒸馏,可以优化模型结构,减少计算量,从而显著提升模型的推理速度,满足实时性要求。
- 模型输出不符合特定要求或偏好:有时,模型虽然能够完成任务,但其输出风格、语气或内容可能不符合特定的应用需求或用户偏好。例如,一个通用的文本生成模型可能生成的内容过于通用,缺乏特定领域的专业性,或者其语气不够友好、正式。在这种情况下,可以通过基于人类反馈的强化学习(RLHF)或直接偏好优化(DPO)等后训练技术,利用人类偏好数据对模型进行调整,使其输出更符合期望。
- 模型存在偏见或安全问题:预训练模型可能会从训练数据中学习到一些社会偏见(如性别、种族偏见)或产生不安全、不道德的输出。如果发现模型存在此类问题,可以通过后训练,使用经过筛选和修正的数据对模型进行微调,或者引入特定的约束和惩罚项,以减少偏见,提升模型的安全性和可靠性。
如何选择合适的后训练技术?
考虑优化目标和计算资源:首先,需要明确后训练的主要目标是什么。
如果目标是提升模型在特定任务上的准确率或使其适应新的领域,那么可以选择监督微调(SFT)或直接偏好优化(DPO)。
如果目标是缩小模型体积、加速推理以在资源受限的设备上部署,那么训练后量化(PTQ)、训练后剪枝(PTP)或知识蒸馏是更合适的选择 。
需要评估可用的计算资源,例如,SFT和知识蒸馏通常需要较多的计算资源和时间进行训练,而PTQ和PTP(尤其是PTQ)的实施成本相对较低。
具体场景与技术的匹配:
-
希望中文模型适应法律领域:这种情况下,目标是提升模型在特定专业领域的理解和生成能力。可以选择监督微调(SFT)。首先,需要收集或构建一个包含大量法律相关文本(如法律法规、案例、合同)及其对应标签或期望输出的数据集。然后,使用这个数据集对预训练的中文语言模型进行SFT。通过微调,模型能学习法律领域的专业术语、表达习惯和逻辑结构,从而在回答法律咨询、分析法律文书等任务上表现更专业。
-
在手机端部署CNN图像分类模型:手机端部署对模型的大小和推理速度有严格要求。训练后量化(PTQ)是一个非常有效且相对简单的压缩方法 。PTQ可以将CNN模型的权重和激活值从FP32转换为INT8,显著减小模型体积(约减小4倍)并加速推理(在支持INT8运算的硬件上),只需要一个小的校准数据集,无需重新训练,部署成本较低。
-
已有预训练模型但无GPU资源进行大规模训练:如果计算资源有限,但仍希望对模型进行压缩和优化,可以考虑训练后剪枝(PTP)。PTP可以在CPU上完成,通过移除模型中不重要的权重或神经元来减少参数量。剪枝后的模型虽然可能需要进行微调以恢复性能,但微调所需的计算量通常远小于从头训练。选择合适的剪枝率和剪枝策略,可以在模型大小、速度和精度之间取得平衡。
-
部署小型模型到边缘设备,且希望保持较高性能:当需要在计算能力和存储空间都非常有限的边缘设备上部署模型时,知识蒸馏是一个很好的选择。可以训练一个大型的教师模型(在云端或高性能服务器上),然后使用知识蒸馏技术将其知识迁移到一个小型的学生模型中。学生模型结构简单、参数量少,适合在边缘设备上运行,同时又能从教师模型那里学习到丰富的知识,从而保持较高的性能。
-
希望模型输出更符合人类偏好或特定风格:如果对模型的输出风格、创造性或安全性有特定要求,可以考虑使用直接偏好优化(DPO)或基于人类反馈的强化学习(RLHF)。这些技术利用人类对模型不同输出的偏好数据来指导模型训练,生成更符合期望的文本。例如,可以用于优化聊天机器人的对话质量,使其回复更自然、更有帮助。
后训练的实施步骤
-
评估模型当前性能,判断是否需要后训练:这是后训练流程的起点。首先,需要在目标数据集或实际应用场景中对预训练模型或现有模型的性能进行全面评估。评估指标应根据具体任务而定,例如,对于分类任务可以是准确率、精确率、召回率;对于生成任务可以是BLEU、ROUGE等;对于部署场景,需要关注模型的推理速度、内存占用等。通过评估,明确模型当前存在的问题,例如推理速度太慢、准确率不够高、模型体积过大等。只有明确了问题,才能决定是否需要以及如何进行后训练。
-
根据优化目标和模型类型,选择合适的后训练技术:在确定需要进行后训练后,下一步是根据第一步评估中发现的问题(即优化目标)以及模型的类型(例如,是LLM还是CNN)来选择合适的后训练技术。如果目标是提升LLM在特定任务上的表现,可以考虑SFT或DPO 。如果目标是压缩CNN模型以便在手机端部署,PTQ或PTP可能是更好的选择 。选择技术时还需考虑其复杂性、所需资源以及预期的效果。
-
准备必要的资源,包括数据(如微调数据、校准数据)和计算资源:不同的后训练技术对数据的需求不同。例如,SFT需要特定任务的有标签数据;PTQ需要少量无标签的校准数据来收集激活值的统计信息;知识蒸馏则需要训练数据以及教师模型生成的软标签。需要根据所选技术准备相应的数据集。后训练过程(尤其是SFT、RL、知识蒸馏)可能需要一定的计算资源,如GPU,也需要提前规划和准备。
-
应用选定的后训练技术,调整参数以观察效果:在准备好数据和资源后,就可以开始应用选定的后训练技术。例如,如果选择SFT,就需要设置学习率、批次大小、训练轮数等超参数,并在微调数据集上训练模型。如果选择PTQ,需要选择合适的量化算法和校准方法。在实施过程中,可能需要尝试不同的参数配置,并观察模型在验证集上的表现,以找到最优的设置。
-
在验证集上评估后训练模型的性能(准确率、速度、大小等):完成一轮后训练后,必须对优化后的模型进行严格的评估。使用一个独立的验证集(与训练集和测试集不重叠)来评估模型在目标任务上的性能,包括主要的评估指标(如准确率)以及相关的效率指标(如推理速度、模型大小)。与原始模型进行对比,判断后训练是否达到了预期的效果。
-
分析结果,若未达到预期,调整后训练方法或参数,重复过程:如果后训练的效果未达到预期,例如性能提升不明显,或者精度损失过大,就需要分析原因。可能是所选技术不适用,参数设置不当,或者数据质量不高。根据分析结果,调整后训练的方法(例如,从PTQ切换到PTP)或参数(例如,调整学习率、剪枝率),然后重复步骤4和步骤5,进行迭代优化。这个过程可能需要多次尝试才能找到最佳方案。
-
完成优化后,将后训练模型部署到目标环境,享受提升的性能:当后训练模型在验证集上达到满意的性能后,就可以将其部署到实际的目标环境中进行应用。在部署后,还需要持续监控模型在实际运行中的表现,收集用户反馈,以便在必要时进行进一步的调整和优化。成功部署后,用户将能够体验到模型性能或效率的提升所带来的益处。

后训练的应用案例
案例1:某医疗领域的大型语言模型,经SFT后对领域术语的理解准确度提高了20%,问答响应更专业。
在这个案例中,一个通用的大型语言模型被应用于医疗健康领域,用于回答用户关于疾病、药物、治疗方案等方面的咨询。然而,初始模型在处理医疗专业术语、理解复杂病历描述以及提供符合医学规范的答案方面表现不佳。为了提高模型在该领域的专业性,研发团队收集了大量医疗文献、临床指南、电子病历以及医患问答数据,对这些数据进行了清洗和标注。采用监督微调(SFT)的方法,使用这些医疗领域数据对预训练的语言模型进行了进一步的训练。经过SFT后,模型对医疗术语的理解准确度提升了约20%,能更准确地把握用户咨询的意图,生成更专业、更可靠的回答。
案例2:一个在云端训练的深度CNN模型,经PTQ压缩后大小减小4倍,推理速度提升3倍,成功部署于手机应用。
一家公司开发了一个基于深度卷积神经网络(CNN)的图像识别应用,模型在云端服务器上训练,能高精度地识别数千种物体。为了将该功能集成到其手机应用程序中,供用户离线使用,面临着模型体积过大和推理速度过慢的挑战。原始的FP32模型大小约为200MB,在高端手机上单张图片的推理时间也需要数秒,无法满足移动应用的实时性和存储限制要求。为了解决这个问题,采用了训练后量化(PTQ)技术。通过PTQ,他们将模型的权重和激活值从FP32转换为INT8精度。这个过程仅需一个包含少量代表性图像的小型校准数据集,无需重新训练模型。量化后的模型大小减小到了约50MB(减小了4倍),并且在支持INT8运算的移动处理器上,推理速度提升了近3倍,达到了每秒处理多张图片的水平。
后训练的价值与展望
后训练作为模型开发流程中的重要环节,价值在于能显著提升模型在特定场景的表现和效率,最大化模型的实用价值。通过后训练,通用的预训练模型可以被“雕琢”成适应特定任务的“利器”,
随着深度学习模型的不断增大和应用的日益广泛,后训练技术将持续扮演关键角色。一方面,针对大语言模型的后训练技术将更加注重对齐人类意图、提升生成内容的安全性、减少偏见,并探索更高效、更稳定的训练方法。另一方面,模型压缩技术将朝着更高压缩比、更低精度、更强硬件适应性的方向发展,以满足日益增长的端侧智能需求。自动化的后训练流程、可解释的后训练效果评估以及针对特定硬件平台的后训练优化也将是重要的研究方向。理解后训练的原理和技术,根据实际需求合理选择和应用这些方法,对于开发者和企业来说,是提升AI产品竞争力和推动AI技术落地应用的关键。