一、DeepSeek-R1发布100天后的几点总结
DeepseekR1总结,最近有个工作可以看看,题目是在DeepSeek-R1发布100天后,我们学到了什么?,《100 Days After DeepSeek-R1: A Survey on Replication Studies and More Directions for Reasoning Language Models》,(https://arxiv.org/pdf/2505.00551),综述了自DeepSeek-R1发布以来,推理语言模型(RLMs)的研究进展,特别是通过监督微调(SFT)和基于可验证奖励的强化学习(RLVR) 来复制和增强这些模型的能力。
1、监督微调(SFT)方式进行推理模型增强
监督微调这块,最关键的是微调数据,所以,先看看目前都有哪些数据集,如下表所示:
我们来看每个数据集的大致情况:
DeepSeek-R1。包含80万份训练样本的蒸馏数据集,其中包括60万份推理示例和20万份非推理示例,如写作、角色扮演和其他通用任务。根据现有报告,部分非推理数据似乎是从DeepSeek-V3的SFT数据集中重用的。为了创建蒸馏数据集,DeepSeek-R1自身被用来生成蒸馏轨迹。然而,这一解释是基于提供的有限细节,因为确切的方法论尚未完全披露。值得注意的是,该数据集并未公开可用。
OpenThoughts。OpenThoughts1策划了一个合成推理数据集,其中包含来自多个来源的11.4万份示例。它涵盖多个领域,包括数学、科学、编程和谜题。CoT由DeepSeek-R1生成并通过验证。特别是,使用大型语言模型作为裁判来验证数学和谜题问题的真实答案,并依赖代码执行和单位测试来验证编程问题。地址在:https://huggingface.co/datasets/open-thoughts/OpenThoughts-114k
Open-R1。OpenR1-Math-220k2(是一个用于数学推理任务的大规模数据集。从NuminaMath 1.5(收集了22万份数学问题,并使用DeepSeek-R1为每道问题生成了2到4个CoT。为确保每个问题至少包含一个正确答案,大多数CoT由Math Verify(进行验证,使用Llama-3.3-70B-Instruct作为评委,对12%的样本进行评判。在22万个问题中,有9.4万个被认为是高质量的问题。根据Face(2025年)的研究,这9.4万个子集在SFT(标准化测试)中表现更好,因为扩展的13.1万个问题可能包含了较简单的问题。地址在:https://huggingface.co/datasets/open-r1/OpenR1-Math-220k
LightR1。构建了一个高质量的标准推理测试数据集3,该数据集包含从DeepSeek-R1提炼出的7.9万个样本。首先从不同来源收集了100万个数学问题,并使用DeepScaleR-1.5B预览版(罗等人,2025b年)生成初始响应。只有通过率低(低于某个阈值a)的问题被选中,用DeepSeek-R1进行进一步处理,从而产生大约7.6万个例子。从这个集合中,只保留正确的长格式CoT(认知测试)响应,每个问题选择一个,以创建一个超过7万个例子的SFT数据集,过滤了难度和多样性。虽然仅在这个数据集上进行训练在复现蒸馏模型方面是有效的,但引入了第二阶段,通过利用DeepSeek-R1-Distill-Qwen-32B进一步提升质量。这一阶段只保留了那些DeepSeek-R1-Distill-Qwen-32B的通过率低于阈值a且DeepSeek-R1的响应不一致正确或错误的问题。结果是精炼的第二阶段SFT数据集,其中包含约3000个例子。地址在:https://huggingface.co/datasets/qihoo360/Light-R1-SFTData
Bespoke Stratos,包含从DeepSeek-R1提炼出的1.7万个例子,涵盖编程、数学、科学和谜题等领域。应用拒绝采样来消除解决方案错误的推理轨迹。特别是,使用GPT-4o-mini作为评判器来过滤掉数学问题答案错误的痕迹,与基于规则的方法相比,将保留样本的比例从25%提高到了73%。地址在:https://huggingface.co/datasets/bespokelabs/Bespoke-Stratos-17k
AM,包含来自各个领域的140万个样本。策划主要包括三个阶段:(i)原始数据收集,从多个数据源收集原始数据。(ii)全面的数据过滤,即通过基于嵌入的相似性进行去重,使用大型语言模型对难题进行过采样。(iii)CoT蒸馏。对于缺乏推理痕迹或其实验事实验证失败的样本,使用DeepSeek-R1生成新的CoT。为确保答案的正确性,应用了一系列验证器,包括Math Verify和Qwen2.5-7B-Instruct。此外,通过执行还验证了与测试用例相关的编程问题。地址在:https://huggingface.co/datasets/a-m-team/AM-DeepSeek-R1-Distilled-1.4M
Synthetic-1,从DeepSeek-R1提炼出的89.4k样本推理数据集,涵盖了数学、编程和STEM等领域。验证是特定于领域的:使用Math Verify来处理数学问题,对编程问题进行基于执行的验证,由大型语言模型评判剩余类型的问题。地址在:https://huggingface.co/datasets/PrimeIntellect/SYNTHETIC-1-SFT-Data
S1k-1.1,通过从16个多样化来源收集5.9万个问题,策划了一个大规模推理数据集。每个问题与一个推理轨迹和由DeepSeek-R1生成的解决方案配对,形成问题-轨迹-解决方案三元组。在净化和去重之后,一个三级过滤过程生成了一个高质量、多样且具有挑战性的1000个样本子集,专为资源最少的训练设计。地址在:https://huggingface.co/datasets/simplescaling/s1K-1.1
LIMO,首先从各种已建立的数据集中构建数千万个问题,例如NuminaMath。然后使用Qwen2.5-Math-7B-Instruct的基线难度过滤器,移除那些可以在几次尝试内解决的问题。接下来,收集人类专家和包括DeepSeek-R1、DeepSeek-R1-Distill-Qwen-32B和Qwen2.5-32B-Instruct在内的最先进模型的推理轨迹,并进行彻底分析,以识别高质量推理链的关键特征,。最后,使用一种结合基于规则过滤与LLM辅助策划的混合方法,为每个问题选择高质量解决方案。由此产生的包含817个问题的数据集在用于微调基础模型时表现出强大的性能。地址在:https://huggingface.co/datasets/GAIR/LIMO
但,总结起来,数据大致要经历的几个关键步骤如下:
一个是数据收集,从多个领域(如数学、科学、编程和谜题)收集问题,可能来自现有的基准或网络爬虫;
一个是过滤,进行多轮过滤以提高数据质量,包括去重、拒绝采样和真实性验证。例如,Light-R1使用模型正确性阈值来形成具有挑战性的子集;
一个是验证,依赖已验证的链式思维(CoT)或解决方案来确保数据的真实性。不同领域的验证方法有所不同,例如数学问题通常由Math Verify验证,编程问题通过执行或单元测试验证;
一个是复杂性控制,在数据选择过程中强调难度和多样性,常使用启发式或模型通过率来优先处理较难的问题
此外,对于这类微调数据的统计分析也很有趣,如下图:
如上图所示,在长度分布上,尽管所有这些数据集的长CoT都源自同一教师模型,即DeepSeek-R1,但它们的分布表现出可观察的差异。例如,数据集如AM和Synthetic-1偏向较短的序列,而Light-R1和Open-R1显示出更广泛的分布,尾部更长,这表明复杂问题的比例更高,通常会产生更长的CoT。
此外,这些数据集并非孤立创建,即经常从现有的数据集中收集或派生数据,通常包含重叠或重复使用的例子。所以,可以看看这个数据引用的关系图。
基于这类数据进行微调,除了数据之外,核心就是基座的选择,如下图所示:
2、强化学习方式增强推理大模型性能
DeepSeek-R1-Zero通过独立的RLVR过程在推理和知识任务上取得了优异表现。在其RLVR过程中使用的精选高质量数据集对其成功至关重要。
所以,依旧可以看看对应的数据集,包括DeepScaleR-Preview、Skywork-OR1、Open-Reasoner-Zero、Big-Math、DeepMath-103K以及一些通用的数据集General Domain Datasets。
除了数据集之外,就是RL的设计,关键点如下:
在RL算法上,大致可以分为:
PPO(Proximal Policy Optimization),由于其稳定性和鲁棒性,PPO是广泛使用的RL算法之一。它通过引入价值估计器(Value Function)来减少梯度估计的方差;
GRPO(Group Relative Policy Optimization),通过归一化组内奖励并引入KL散度惩罚来提高效率,适用于大规模模型;
REINFORCE++ ,通过在奖励函数中加入token-wise KL散度惩罚来稳定策略梯度更新。
DPO(Direct Preference Optimization) ,不需要在线RL训练的方法,通过构建选择和拒绝对来直接训练模型,减少了计算资源的消耗。
VC-PPO(Value-Calibrated PPO) ,通过价值预训练和解耦的GAE(广义优势估计)来解决PPO在长链推理中的值初始化偏差和奖励信号衰减问题。
VAPO (Value-based Augmented Proximal Policy Optimization) ,结合了基于价值的RL框架,通过价值预训练和解耦的GAE来增强长链推理能力。
CPPO (Completions Pruning Policy Optimization) ,通过过滤掉低影响的完成样本来加速训练过程,减少了对低优势完成的前向传递和梯度反向传播的需求。
Dr.GRPO (Decoupled Clip and Dynamic Sampling Policy Optimization) ,通过消除响应长度和问题难度偏差来改进GRPO,提高了token效率和推理性能。
在奖励函数的设计上,大致可以分为:
准确性奖励Accuracy Rewards,最简单的奖励类型,评估响应的正确性,通常得分1表示正确,0或1表示错误;
格式奖励Format Rewards,鼓励响应遵循预定义的结构或格式;
长度奖励Length Rewards,影响模型的输出长度,一些方法奖励期望长度的响应,而另一些方法则鼓励简洁的响应;
3、无论是微调,还是强化学习,哪些因素影响着效果?
一个是数量和多样性,训练数据需要大量的样本以覆盖多种任务和领域。研究表明,使用来自不同领域的广泛数据进行训练可以显著提高模型的泛化能力。例如,Skywork-OR1、Seed-Thinking-v1.5、MiMo和Qwen3系列都利用了大量来自不同领域的数据进行训练。
一个是数据集难度,数据集应包含具有挑战性的样本,以促进模型在复杂任务上的表现。通过筛选出中等难度的样本,可以避免模型在过于简单或过于困难的任务上训练。例如Light-R1和Skywork-OR1通过离线数据选择,保留了中等通过率的样本,过滤掉了过于简单或困难的样本。
一个是数据清洗,清洗数据以去除不可解的问题和不验证的答案是关键步骤。这有助于减少噪声,提高训练的有效性。例如, BigMath和Open-Reasoner-Zero通过严格的数据清洗过程,移除了不适合验证的问题,如多选题和证明题。
一个是去重和去污染,在从多个来源收集数据时,去重和去污染是确保公平评估的重要步骤。例如, Light-R1、DeepScaleR和Skywork-OR1进行了详细的数据去重处理,以确保训练数据的独特性和质量。
一个是课程学习,基于数据难度的课程学习方法可以提高训练效率。通过逐步增加任务难度,模型可以在最具挑战性的问题上获得更好的表现。例如,Open-Reasoner-Zero采用了一种两阶段的课程学习方法,先在完整数据集上训练,然后选择最具挑战性的子集进行微调。
一个是数据合成和自蒸馏,一些研究通过数据合成和自蒸馏来扩展训练数据集,从而提高模型的推理能力。例如,Open-Reasoner-Zero利用数据合成和自蒸馏技术来生成额外的训练样本。
此外,不同的初始检查点和模型架构会影响模型的学习效率和最终性能。学习率、批量大小和最大上下文长度等超参数的选择对模型的训练稳定性和收敛速度有显著影响。
二、再看大模型微调、强化数据合成工具实现方式;
关于大模型微调的数据合成工具越来越对,我们已经讲过多个。
例如,在文章《大模型微调数据生成工具Easy Dataset及KBLaM知识注入框架评析》(https://mp.weixin.qq.com/s/0PUMbuiyXPUIXunMuH-otw)中介绍的Easy Dataset项目,飞书wiki: https://github.com/ConardLi/easy-dataset,https://rncg5jvpme.feishu.cn/docx/IRuad1eUIo8qLoxxwAGcZvqJnDb?302from=wiki,具体问题看:https://github.com/ConardLi/easy-dataset/issues/,还很初步,纯Js写的,不好二次开发,视频教程在:https://www.bilibili.com/video/BV1y8QpYGE57/,一个知识库只能导入一个文件。不然,需要删除该文件,再导入,弄QA对。整体大面的功能不错,后面支持多文件,并发,就比较适合使用。
又如,在文章《Llama4模型四点核心总结及大模型推理数据合成工具Project Loong》(https://mp.weixin.qq.com/s/JX9ztoOMOw-GVIn12d0cOg)中介绍的Project Loong项目,通过验证器(verifiers) 扩大规模化合成数据生成,以提升大模型(LLMs)在多个领域的推理能力。https://github.com/camel-ai/loong,一个多智能体系统,从种子数据集生成合成问题及其答案,并使用领域特定的验证器检查智能体的回答是否与合成答案语义等价。
主要分成三个部分。一个是种子数据集(SeedDataset),手动收集特定领域的数据集,包含问题和真实答案。种子数据集用于启动合成数据生成过程。一个是合成数据生成器(SyntheticDataGenerator),基于种子数据集生成任意数量的合成问题和答案。目前包含3,551个问题,涵盖8个领域,包括高级数学、高级物理、计算生物学、金融等。生成器可以使用多种算法,目前支持少样本提示和多智能体系统。一个是验证器(Verifier),通过两种独立方法验证合成答案的正确性:直接通过代码执行生成解决方案或者通过自然语言的推理链(Chain-of-Thought,CoT)生成解决方案。如果两种方法的结果一致,则认为答案正确。验证器还会语义比较LLM的回答与合成答案,确保它们等价。
现在来看第三个具有代表性的数据合成工具,Synthetic Data Kit(https://github.com/meta-llama/synthetic-data-kit),用于生成微调合成数据,支持多种文件格式,包括PDF、HTML、YouTube视频。项目构成如下:
首先,在文档处理阶段,docx,html,pdf,pptx,txt,youtube的解析在:https://github.com/meta-llama/synthetic-data-kit/tree/main/synthetic_data_kit/parsers,不同的数据类型有不同的处理函数,主要是用于提取文本内容。
特别的,对于youtube的数据,处理逻辑是先进行文本转写,流程如下:
其次,数据合成阶段包括qa对、cot数据、summary数据,在https://github.com/meta-llama/synthetic-data-kit/tree/main/synthetic_data_kit/generators;
1、qa对及summary生成
其中先看生成qa对的,主流程如下:对文档生成summary,然后在送入generate_qa_pairs进行数据生成,但是这个summary并没有用于qa对申城,而是可以单独作为一个技能数据进行生成。
生成summary模块如下:
其中用到的summary prompt如下:
生成qa对的模块如下,执行逻辑是先chunk切分,然后直接提示llm进行生成。
其中用到的qa对生成的prompt如下:
但是,由于这种方式生成的qa对可能有噪声,因此,可以进一步地进行评分,从而过滤掉得分偏低的样本,这块依旧使用llm直接进行评分。
qa对的评分prompt如下:
2、cot数据合成
cot数据除了生成qa对之外,还补充其中的推理过程,合成包括普通cot数据和增强型cot数据两种,实现主流程如下,逻辑是,先生成summary摘要(Summarize this document in 2-3 sentences.
),然后Generate CoT examples(Let me think through this step by step:\n\n{example['reasoning']}\n\nSo the answer is: {example['answer']}"
)。
对应的生成模块如下:
这一步,对应的cot的prompt如下:
当然,除了这种一步到位的cot数据合成之外,还可以在上面生成qa对的基础之上进行生成,但是,需要先将qa对数据转换为conversation数据,如下:
然后进行增强,其实,就是补充推理过程:
其中,用到的增强的prompt如下:
所以,我们可以看出,这个工作,核心就是在于使用llm进行处理,所以需要对合成的数据进行解析,这块的逻辑在在https://github.com/meta-llama/synthetic-data-kit/tree/main/synthetic_data_kit/utils;中可以找到。
进一步的,整个工具的使用,都是可以执行一些特定参数的,对应的配置,包括prompt等在https://github.com/meta-llama/synthetic-data-kit/blob/main/configs/config.yaml;
最后,为了验证这个工具的有效性,可以看看使用cot进行增强后的模型效果变化,在https://github.com/meta-llama/synthetic-data-kit/tree/main/use-cases/adding_reasoning_to_llama_3中可以找到,
上面就是对其实现的一些原理拆解,具体如何使用,可以看https://github.com/meta-llama/synthetic-data-kit/tree/main/use-cases/getting-started;
一顿拆解之后,我们发现,整个流程并不复杂,核心还是在于设计。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。