一鱼两吃:为什么 SFT 和 GRPO 可以共用同一批数据

引言

在传统机器学习范式中,我们习惯将"训练集"与"测试集"严格分离,不同训练阶段使用不同数据集几乎是金科玉律。然而,DeepSeek R1 的训练流程(SFT + GRPO)却打破了这一惯例------在两个阶段使用同一批(或高度重叠的)数据,不仅可行,而且是一种极其高效的策略

这背后的核心洞察是:两个阶段利用数据的"维度"不同,训练目标完全互补。

为了便于理解,我们用一个"学生解题"的比喻来拆解这个过程。


第一阶段:SFT------老师讲题,学生"抄写"

数据格式<Prompt, Thinking_Process, Final_Answer>

在监督微调(Supervised Fine-Tuning)阶段,模型扮演的是一个"认真听课的学生"。它看到题目后,会逐字逐句地学习老师提供的标准解题过程

核心目标 :让模型掌握格式与套路 。例如学会使用 <think> 标签、学会分步骤推理、学会组织思维链的语言风格。

内在局限:模型可能只是在"死记硬背"老师的解法,并未真正理解每一步推导的内在逻辑。就像学生能复述老师的板书,却不一定能独立应对变式题。


第二阶段:GRPO------遮住答案,学生"刷题"

数据格式<Prompt, Final_Answer>(丢弃 Thinking_Process)

在强化学习(Group Relative Policy Optimization)阶段,我们依然使用同一批题目,但有意隐去老师的解题过程,只保留最终答案作为评判标准。

训练流程

  1. 仅向模型展示题目 Prompt
  2. 让模型自主生成多条不同的解题路径(Group Sampling)
  3. 仅校验最终答案:与 Final_Answer 一致则奖励,否则惩罚

核心目标

  • 泛化能力:模型可能发现比 SFT 示例更简洁、更巧妙的解题路径------殊途同归,条条大路通罗马
  • 鲁棒性:SFT 只能教会一条路,GRPO 则强迫模型无论选择哪条路径,都必须抵达正确终点

为什么"同数据复用"效果出奇地好?

这种"一鱼两吃"的策略,在 7B 级别的小模型上尤其有效,它精准解决了两个核心痛点:

痛点一:分布漂移(Distribution Shift)

脑子学会了,手却不会动

如果 SFT 阶段使用"高等数学"题目,而 GRPO 阶段切换到"小学算术",模型会陷入困惑:它在 SFT 中学到的微积分符号、极限推导等"招式",在简单算术场景中完全派不上用场。

同数据复用的优势 :确保模型在 SFT 阶段习得的思维链格式、推理语气等"招式",能在 GRPO 阶段立即投入实战。只不过这一次,它需要独立走完全程,以验证自己是否真正"内化"了这些能力。

痛点二:标注成本高昂(Ground Truth is All You Need)

数据标注的经济学:

  • SFT 数据昂贵:需要 DeepSeek R1 等顶级模型生成高质量的思维链(Chain-of-Thought),每条数据的生成成本不菲
  • GRPO 数据廉价:仅需题目与标准答案,无需中间过程

同数据复用的优势:既然为 SFT 已经采集了"题目 + 答案",直接将其复用为 GRPO 的奖励信号来源,是极其划算的选择。无需额外寻找新的带标准答案的题库。


两阶段的本质差异:一张表说清楚

维度 SFT 阶段 GRPO 阶段
数据视角 Prompt + Teacher's CoT Prompt + Ground Truth
学习目标 模仿老师的解题动作 无论什么动作,算对即可
核心能力 格式规范、推理框架 泛化能力、自主探索
类比 跟着老师抄笔记 独立完成课后作业

实操流程:三步走策略

复制代码
Step 1: 准备题库
        收集 1000 道数学题/代码题(含标准答案)
              │
              ▼
Step 2: SFT 阶段
        用 Teacher 模型生成详细解题步骤
        训练 Student 模型学习"怎么思考"
              │
              ▼
Step 3: GRPO 阶段
        仅使用题目 + 最终答案
        训练 Student 模型"自己思考并做对"

结语

DeepSeek R1 的训练范式揭示了一个深刻的洞察:数据的价值不在于数量,而在于如何从不同维度榨取信息。SFT 教会模型"形",GRPO 锤炼模型"神"。同一批数据,前者取其过程,后者验其结果------这正是"一鱼两吃"的精髓所在。

对于资源有限的小模型训练场景,这种策略在数据效率和训练效果之间取得了精妙的平衡,值得从业者借鉴。

相关推荐
Deepoch2 小时前
Deepoc数学大模型:通信行业智能化的算法引擎
人工智能·算法·数学建模·开发板·通信·具身模型·deepoc
无风听海2 小时前
CBOW输入层向量形式深入解析
人工智能·算法·机器学习
ValhallaCoder2 小时前
Day50-图论
数据结构·python·算法·图论
Shirley~~2 小时前
leetcode二分法
数据结构·算法·leetcode
LDG_AGI2 小时前
【机器学习】深度学习推荐系统(二十九):X 推荐算法多样性打散机制详解
人工智能·深度学习·算法·机器学习·推荐算法
康谋自动驾驶2 小时前
汽车多总线数据采集:挑战、架构与同步策略全解析
算法·自动驾驶·开发·数据处理·总线数据
Coovally AI模型快速验证2 小时前
计算机视觉的 2026:从“堆算力”竞赛,到“省算力”智慧
人工智能·深度学习·算法·yolo·计算机视觉·无人机
Swift社区2 小时前
LeetCode 378 有序矩阵中第 K 小的元素
算法·leetcode·矩阵
ValhallaCoder2 小时前
Day49-图论
数据结构·python·算法·图论