什么是 SFT、DPO、CPT

部署运行你感兴趣的模型镜像

SFT、DPO、CPT 这三个概念,它们都是在大语言模型(LLM)训练和对齐过程中常见的方法,但目的和方式不一样。

  1. SFT(Supervised Fine-Tuning,监督式微调)

定义:
SFT 是在一个已经预训练过的大模型(通常是语言模型)上,利用人工标注的 高质量指令-回复数据集 进行监督学习的过程。

特点:
• 数据集是人工或人工审核过的,通常成对(prompt → answer)。
• 训练目标是让模型输出尽量接近人工标注的答案。
• 常用于 第一步对齐:让大模型从“通用预测下一个词” → “能回答人类指令”。

举例:
• 给模型一个问题:“如何写一封求职邮件?”
• 人类标注的高质量答案作为标签。
• 模型在训练时学习模仿人类的这种输出。

优缺点:
• 优点:效果直观,能快速把模型调整到能“像人一样回答问题”。
• 缺点:标注数据成本高,且模型只会“模仿”,没有价值偏好或对齐保证。

  1. DPO(Direct Preference Optimization,直接偏好优化)

定义:
DPO 是一种 基于人类偏好(Human Preference) 的对齐方法,它是 RLHF(强化学习人类反馈) 的改进。

过程:
1. 收集成对的回答:比如同一个问题,模型生成两个不同答案。
2. 人类(或偏好模型)标注:哪个答案更好。
3. DPO 通过一个数学公式,把这种“偏好”转化成模型的优化目标,直接更新参数。

特点:
• 不需要训练一个单独的奖励模型(避免了 RLHF 中 reward model 的复杂性)。
• 更稳定、更高效,训练收敛速度快。
• 本质上是让模型学会:“在相似问题下,尽量生成被人类偏好的那个答案”。

举例:
• 提问:“给我写一段儿童能懂的黑洞解释。”
• 模型 A 回答太复杂,模型 B 回答生动易懂。
• 人类选择 B,DPO 会优化模型参数,让它未来更倾向于生成类似 B 的答案。

优缺点:
• 优点:效果好,训练更简单,比 RLHF 稳定。
• 缺点:仍然依赖人工偏好数据,且需要多答案对比数据。

  1. CPT(Continual Pre-Training,持续预训练)

定义:
CPT 指在一个已经预训练的语言模型上,继续使用新的大规模 无监督语料 进行预训练。

特点:
• 数据集不是人工标注的,而是网络文本、垂直行业数据、领域文档等。
• 目标还是 预测下一个词(LM objective),而不是监督任务。
• 主要用于 模型的知识迁移或领域适配。

举例:
• 你有一个通用大模型,但想让它在 医学领域 更强。
• 你收集了大量医学文献、病例报告,用它们对模型做 CPT。
• 结果:模型的医学知识更丰富,但对齐(alignment)层面没变化。

优缺点:
• 优点:简单有效,可以快速给模型“加知识”。
• 缺点:不能保证模型学会更好的指令遵循或价值对齐。

🔑 总结对比

方法 数据来源 训练目标 适用场景 优点 缺点
SFT 人工标注的 prompt-答复对 模仿人类答案 指令微调、对齐基础 简单直观,能快速对齐 依赖高质量标注,覆盖有限
DPO 人类偏好(答案对比数据) 优化人类偏好概率 对齐优化(比 RLHF 更简洁) 稳定高效,效果好 需要成对偏好数据
CPT 无监督文本(行业/领域语料) 预测下一个词 知识补充,领域适配 简单有效,扩展知识 无法对齐价值观或风格

👉 可以这么理解:
• CPT = 给模型“补知识”。
• SFT = 教模型“如何听懂并回答问题”。
• DPO = 教模型“怎么回答才更符合人类偏好”。

您可能感兴趣的与本文相关的镜像

Qwen3-VL-30B

Qwen3-VL-30B

图文对话
Qwen3-VL

Qwen3-VL是迄今为止 Qwen 系列中最强大的视觉-语言模型,这一代在各个方面都进行了全面升级:更优秀的文本理解和生成、更深入的视觉感知和推理、扩展的上下文长度、增强的空间和视频动态理解能力,以及更强的代理交互能力

### SFTDPO的概念 #### 监督微调(Supervised Fine-Tuning, SFT) 监督微调是指利用标注好的数据集对预训练的大规模语言模型进行进一步训练的过程。在这个过程中,模型通过最小化预测输出与真实标签之间的差异来进行调整,从而更好地适应特定的任务需求[^1]。 ```python # 假设有一个简单的线性回归模型用于说明SFT概念 import numpy as np from sklearn.linear_model import LinearRegression # 创建一些模拟的数据点 (X,y),其中y=2*X+噪声 np.random.seed(0) X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1).reshape(-1) model = LinearRegression() model.fit(X, y.ravel()) # 使用这些带标签的数据来拟合模型 ``` #### 对抗性偏好优化(Direct Preference Optimization, DPO) 对抗性偏好优化则是一种不需要显式构建奖励函数的方法,它直接基于成对比较样本来更新模型参数。这种方法能够使模型学会模仿那些被认为更好的响应模式,而无需依赖于复杂的强化学习框架中的代理(agent)或环境(environment)[^2]。 ```python # 这里展示的是一个假设性的伪代码片段,用来表示如何实现DPO的核心思想 def dpo_update(model, positive_sample, negative_sample): pos_output = model.predict([positive_sample]) neg_output = model.predict([negative_sample]) loss = compute_loss(pos_output, neg_output) # 计算两个样本间的相对质量损失 gradients = calculate_gradients(loss) # 根据损失计算梯度 apply_gradients(gradients) # 应用梯度以改进模型性能 ``` ### 区别与联系 两者的主要区别在于: - **机制不同**:SFT依靠传统的有监督学习方式,即给定输入和对应的期望输出;而DPO则是采用了一种新颖的方式——通过对立样本的学习来指导模型朝着更优的方向发展。 - **复杂程度**:相较于传统上较为繁琐的RLHF流程(涉及多个阶段如行为克隆、奖励建模等),DPO极大地简化了整个过程,并且对于超参更加稳健,在实际应用中可能更容易部署和维护[^3]。 然而,值得注意的是,尽管存在上述差异,这两种技术都旨在让大型语言模型更好地理解并遵循人类意图,进而提高其在具体应用场景下的表现效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值