news 2026/7/15 3:24:27

CPT、SFT、DPO分别是什么

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CPT、SFT、DPO分别是什么

在大语言模型(LLM, Large Language Model)的训练和对齐流程中,CPT、SFT、DPO是三个关键阶段的缩写,分别代表:


1.CPT:Continued Pre-Training(继续预训练)

有时也称为Domain-specific Pre-TrainingPost-Pretraining

✅ 目的:

在通用预训练(如 LLaMA、Qwen 的原始训练)之后,用特定领域或高质量语料继续训练模型,使其掌握更专业、更新或更符合目标场景的知识。

🔧 做什么?
  • 输入:大量无标注文本(如医学论文、代码、金融报告、中文百科等)
  • 方法:依然使用自回归语言建模目标(即预测下一个词,损失函数为交叉熵)
  • 模型结构不变,继续训练 Transformer 的所有参数
🌰 举例:
  • 用 GitHub 代码继续训练 → 得到更强的代码生成能力(如 CodeLLaMA)
  • 用中文书籍/网页继续训练 → 提升中文理解(如 Chinese-LLaMA)
  • 用最新新闻数据训练 → 更新模型知识截止日期
⚠️ 注意:
  • CPT 不涉及指令(instruction)或人类偏好
  • 输出仍是“通用语言模型”,不会自动遵循指令

2.SFT:Supervised Fine-Tuning(监督微调)

也叫Instruction Tuning(指令微调)

✅ 目的:

教会模型理解和遵循人类指令,将“通用语言模型”转变为“有用助手”。

🔧 做什么?
  • 输入:人工编写的 (指令, 回答) 对,例如:
    {"instruction":"解释牛顿第一定律","output":"牛顿第一定律指出:任何物体都要保持匀速直线运动或静止状态,直到外力迫使它改变运动状态为止。"}
  • 方法:以监督学习方式微调模型,最小化生成回答与标准答案的交叉熵损失
  • 通常只微调部分参数(如全参数微调、LoRA)
🌰 效果:
  • 模型学会格式化输出、多轮对话、任务分解等
  • 但可能仍会生成不真实、有害或冗长的回答(因为 SFT 数据有限,且未建模人类偏好)

3.DPO:Direct Preference Optimization(直接偏好优化)

一种替代 RLHF(基于强化学习的人类反馈)的对齐方法

✅ 目的:

让模型输出更符合人类偏好的回答(如有帮助、诚实、无害),而不仅仅是模仿 SFT 数据。

🔧 做什么?
  • 输入:偏好数据集,每条包含:
    • 一个 prompt
    • 两个模型生成的回答:chosen(优选)vsrejected(次选)
    • 由人类标注哪个更好
  • 方法:不使用强化学习,而是通过一个巧妙的损失函数直接优化策略模型,使其更倾向于生成 “chosen” 回答
📐 DPO 核心思想(简化):

如果人类认为回答 A 比 B 好,那么模型对 A 的 log-probability 应该显著高于 B。

✅ DPO 优势(vs RLHF):
项目RLHFDPO
是否需要奖励模型(RM)✅ 需要先训练 RM❌ 不需要
是否使用强化学习(PPO)✅ 是,复杂不稳定❌ 否,纯监督式训练
实现难度
训练稳定性较差更好


✅ 总结对比表

阶段全称输入数据目标是否需要标注
CPTContinued Pre-Training大量无标签文本扩展知识/领域适应❌ 无监督
SFTSupervised Fine-Tuning(指令, 回答) 对学会遵循指令✅ 人工编写
DPODirect Preference Optimization(prompt, chosen, rejected)对齐人类偏好✅ 人工偏好标注

💡 补充说明

  • RLHF(Reinforcement Learning from Human Feedback)是 DPO 之前的主流对齐方法,包含两步:
    1. 用偏好数据训练奖励模型(Reward Model, RM)
    2. 用 PPO 算法优化语言模型以最大化 RM 奖励
  • DPO 是 RLHF 的“简化替代方案”,效果相当甚至更好,已成为当前主流(如 Llama-3、Qwen2 等都采用 DPO)

大模型训练,典型的流程就是:
CPT → SFT → DPO,逐步从“知识丰富”到“听话”再到“靠谱”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 12:02:26

Linux 内存管理:TLB ASID

文章目录1. 前言2. TLB ASID 的硬件支持2.1 概念2.2 TLB 查找3. Linux 下 TLB ASID 管理4. 参考资料1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. TLB ASID 的硬件支持 2.1 概念 什么是 TLB&…

作者头像 李华
网站建设 2026/7/14 3:53:15

基于微信小程序的数字博物馆系统的设计与实现(程序+文档+讲解)

课题介绍在文博资源数字化、展览体验便捷化需求升级的背景下,传统博物馆存在 “线下参观受限、展品解读单一、互动体验不足” 的痛点,基于微信小程序 SpringBoot 构建的数字博物馆系统,适配游客、博物馆管理员、讲解员等角色,实现…

作者头像 李华
网站建设 2026/7/12 21:29:57

代码随想录算法训练营Day49 | Prim算法、Kruskal算法

Prim算法 53. 寻宝(第七期模拟笔试) 1.思路 本题是最小生成树的模板题,图中有n个节点,那么一定可以用 n-1 条边将所有节点连接到一起,并且总权重最小。 Prim 算法:从一个顶点开始,逐步“生长”…

作者头像 李华
网站建设 2026/7/11 12:13:20

30、Linux软件包管理与源码构建全攻略

Linux软件包管理与源码构建全攻略 在Linux系统中,软件包的管理和源码构建是非常重要的操作。下面将详细介绍DEB文件处理、源码构建以及SRPM安装的相关内容。 1. RPM验证报告字符含义 在RPM验证报告中,有一些特定的字符代表着不同的含义,如下表所示: | 字符 | 含义 | |…

作者头像 李华
网站建设 2026/7/14 9:59:12

Flink Rebalance、Rescale、Shuffle 核心区别

Flink 中的 Rebalance、Rescale、Shuffle 是三种核心的数据流分区策略,用于定义上游算子的并行子任务如何将数据分发到下游算子的并行子任务。三者的核心差异体现在数据分配方式、网络开销、适用场景上,选择不当会直接影响作业的性能和数据分布的均匀性。以下是详细的对比与解…

作者头像 李华
网站建设 2026/7/14 7:01:13

42、Linux编程:软件开发工具探索与实践

Linux编程:软件开发工具探索与实践 1. 编程基础概念 在编程过程中,通常会经历编辑、编译和调试的循环,多数程序员需多次重复此流程,直至程序正确运行。除了掌握这些基本步骤,还需熟悉以下术语和概念: - 变量 :用于存储不同类型的数据,可将其视为数据的占位符,如同…

作者头像 李华