【DeepSeek三部曲】DeepSeek-R1论文详细解读
这里写目录标题
- 摘要
- 1. 引言
- 1.1 贡献
- 1.2 评估结果总结
- 2. 方法
- 2.1 概述
- 2.2 DeepSeek-R1-Zero:在base模型上进行强化学习
- 2.2.1 强化学习算法
- 2.2.2 奖励模型
- 2.2.3 训练模版
- 2.2.4 DeepSeek-R1-Zero的表现、自我进化过程以及顿悟时刻
- 2.3 DeepSeek-R1:带有冷启动的强化学习
- 2.3.1. 冷启动
- 2.3.2 以推理为导向的强化学习
- 2.3.3 拒绝采样和监督微调
- 2.3.4 所有场景下的强化学习
- 2.4 蒸馏:加强小模型推理能力
- 3. 实验
- 3.1 DeepSeek-R1评估
- 3.2 蒸馏模型评估
- 4. 讨论
- 蒸馏 v.s. 强化学习
- 未成功的尝试
- 5. 结论、局限性与未来工作
论文地址:DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning
论文精细解读,按照原文格式1:1进行解读,并扩展其中没说懂的知识点,让你读完此篇文章不必再去看原论文
摘要
DeepSeek推出了第一代推理模型,称为R1,其中有DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero没有使用SFT,只通过RL就展现了卓越的推理能力。它在各个数据集中分数很高,但是存在可读性差和语言混杂等问题。
所以这里推出DeepSeek-R1解决了这些问题,它在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1的推理能力
可以和 OpenAI 的 o1-1217 相媲美。
DeepSeek这里开源了DeepSeek-R1-Zero 和 DeepSeek-R1,并且使用DeepSeek-R1来得到蒸馏的SFT数据,用于Qwen和Llama系列的小模型指令微调,得到了众多蒸馏模型,在推理能力上有巨大提升,参数版本为1.5B、7B、8B、14B、32B、70B。
1. 引言
(这里简述一下,主要讲别人怎么做的,我们怎么做的)
最近,后训练(post-training)变成完整训练流程的一个重要组成部分,已被证明能够提高推理任务的准确性,与社会价值观保持一致,并适应用户偏好,同时相比预训练所需的计算资源相对较少。
推理能力上,openai-o1是首个通过增加推理COT长度
来引进推理时间缩放
(inference-time scaling)的系列模型。在数学、编程和科学推理这种推理任务上有显著改进。但是openai并没有开源其具体方法,这几年业界探索了基于过程的奖励模型、强化学习、蒙特卡洛树搜索和束搜索等方法,但没有一个能达到openai-o1的性能。
DeepSeek-R1-Zero:本文是首次尝试使用纯强化学习(RL)来提升语言模型的推理能力,目标是探索没有SFT的情况下直接拓展推理能力的潜力。具体来说,使用DeepSeek-V3-Base + GRPO来提升推理能力,得到DeepSeek-R1-Zero,在AIME 2024的pass@1分数从15.6%
提升至71.0%``,通过多数投票,分数进一步提升至
86.7%``,与OpenAI-o1-0912的表现相当。
DeepSeek-R1:然而,DeepSeek-R1-Zero面临诸如可读性不佳
和语言混合
等挑战,所以推出DeepSeek-R1。它使用少量冷启动SFT数据
和多阶段训练流程
,具体来说,首先收集数千条冷启动数据以微调DeepSeek-V3-Base模型,然后进行类似DeepSeek-R1-Zero的RL,在RL过程快收敛
时,对数据进行拒绝采样,结合来自DeepSeek-V3在写作、事实问答和自我认知等领域的监督数据,生成新的SFT数据,然后重新训练DeepSeek-V3-Base模型(SFT+RL)。用新数据微调后,检查点会经历额外的RL过程,考虑所有场景的提示。经过这些步骤,得到DeepSeek-R1,其性能与OpenAI-o1-1217相当。
蒸馏:使用DeepSeek-R1直接蒸馏的数据对qwen和llama进行SFT,效果非常好,蒸馏的14B模型效果超过原始的32B。
1.1 贡献
- 后训练:在base模型上进行大规模强化学习
- 直接将强化学习应用于基础模型,不依赖SFT,训练出来的模型展现了自我验证、反思以及生成长思维链等能力,证明了这条路是有效的。
- 介绍了DeepSeek-R1的训练流程,该流程包含
两个
旨在发现改进推理模式并与人类偏好对齐的强化学习阶段
,以及两个
作为模型推理和非推理能力种子阶段的监督微调阶段
。
- 蒸馏
- 大模型蒸馏到小模型的推理性能 > 小模型上直接进行强化学习
- 在多种数据集上表现优异
1.2 评估结果总结
- 推理任务
- DeepSeek-R1在AIME 2024上略微超越OpenAI-o1-1217。
- 在MATH-500上与OpenAI-o1-1217的表现不相上下,并显著优于其他模型。
- 编程相关任务上,在Codeforces上获得了2029的Elo评分,超过了竞赛中96.3%的人类参与者。
- 工程相关任务,略优于DeepSeek-V3。
- 知识
- 在MMLU、MMLU-Pro和GPQA Diamond等基准测试中,显著优于DeepSeek-V3,超越了其他闭源模型,但略低于OpenAI o1-1217。
- 其他方面
- 在包括创意写作、一般问题回答、编辑、总结等在内的广泛任务中表现出色。
- 在需要长上下文理解的任务也表现出色,大幅超越了DeepSeek-V3。
2. 方法
2.1 概述
以前的工作都需要大量的SFT数据来提升性能,本研究展示从预训练模型直接进行RL也能显著提升推理能力,而且加入少量冷启动SFT数据能进一步提升性能,下面将介绍:
(1) DeepSeek-R1-Zero,它直接将强化学习应用于基础模型,而不使用任何SFT数据;
(2) DeepSeek-R1,先使用数千个COT数据进行SFT,然后进行RL;
(3) 将DeepSeek-R1的推理能力蒸馏到小型密集模型中。
2.2 DeepSeek-R1-Zero:在base模型上进行强化学习
2.2.1 强化学习算法
GRPO(Group Relative Policy Optimization):deepseek系列一贯的强化学习算法,该方法不需要类似PPO里面的评论家模型(与策略模型大小相当),极大节省训练成本。具体来说,对于每个问题q,GRPO从旧的策略模型(类似PPO)中采样一组输出 o 1 , o 2 , … , o G {o_1,o_2,…,o_G} o1,o2,…,oG,然后通过最大化以下目标优化策略模型
J G R P O ( θ ) = E [ q ∼ P ( Q ) , { o i } i = 1 G ∼ π θ o l d ( O ∣ q ) ] 1 G ∑ i = 1 G ( min ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) A i , c l i p ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ε , 1 + ε ) A i ) − β D K L ( π θ ∣ ∣ π r e f ) ) , ( 1 ) \mathcal{J}_{GRPO}(\theta) =\mathrm{E}[q\sim P(Q),\{o_{i}\}_{i=1}^{G}\sim\pi_{\theta_{old}}(O|q)] \\ \frac{1}{G}\sum_{i=1}^{G}\left(\min\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)}A_{i},\mathrm{clip}\left(\frac{\pi_{\theta}(o_{i}|q)}{\pi_{\theta_{old}}(o_{i}|q)},1-\varepsilon,1+\varepsilon\right)A_{i}\right)-\beta\mathrm{D}_{KL}\left(\pi_{\theta}||\pi_{ref}\right)\right),\quad(1) JGRPO(θ)=E[q∼P(Q),{oi}i=1G∼πθold(O∣q)]G1i=1∑G(min(πθold(oi∣q)πθ(oi∣q)Ai,clip(πθold(oi∣q)πθ(oi∣q),1−ε,1+ε)Ai)−βDKL(πθ∣∣πref)),(1)
D K L ( π θ ∣ ∣ π r e f ) = π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − log π r e f ( o i ∣ q ) π θ ( o i ∣ q ) − 1 , ( 2 ) \mathrm{D}_{KL}\left(\pi_{\theta}||\pi_{ref}\right)=\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-\log\frac{\pi_{ref}(o_{i}|q)}{\pi_{\theta}(o_{i}|q)}-1,\quad(2) DKL(πθ∣∣πref)=πθ(oi∣q)πref(oi∣q)−logπθ(oi∣q)πref(oi∣q)−1,(2)
A i = r i − m e a n ( { r 1 , r 2 , ⋯ , r G } ) s t d ( { r 1 , r 2 , ⋯ , r G } ) . ( 3 ) A_i=\frac{r_i-\mathrm{m}ean(\{r_1,r_2,\cdots,r_G\})}{\mathrm{s}td(\{r_1,r_2,\cdots,r_G\})}.\quad(3) Ai=std({r1,r2,⋯,rG})ri−mean({r1,r2,⋯,rG}).(3)
这里仅简要说明,详细GRPO讲解可查阅其他资料或等待后续制作。
2.2.2 奖励模型
采用基于规则的奖励系统,主要包括两种类型
- 准确性奖励:评估响应结果是否正确。例如数学问题中,以指定格式提供最终答案(例如在方框内)。或者对于LeetCode问题,使用编译器根据预定义的测试用例生成反馈。
- 格式奖励:强制模型将其思考过程放在‘'和‘'标签之间。
注意,在开发DeepSeek-R1-Zero时,没有使用基于结果(ORM)或基于过程(PRM)的神经网络奖励模型。因为本文发现神经网络奖励模型在大规模强化学习过程中,可能会遭受奖励黑客攻击(奖励模型走捷径,将模型带向错误的方向)。且重新训练奖励模型需要额外的训练资源,使整个训练流程变得复杂。(是否说明后面R1使用的神经网络奖励模型是开源的)
2.2.3 训练模版
为了训练DeepSeek-R1-Zero,首先设计了一个模板来指导模型按要求输出。模版要求首先产生一个推理过程,然后是最终答案。防止任何内容特定的偏见,例如prompt要求模型使用反思的方式推理(有时反思性推理要求确实好,但是用在训练好的r1上反而会约束模型的推理能力),或者优先使用某种策略解决问题(这也会限制模型灵活性,无法用更开拓的思维去解决问题)
2.2.4 DeepSeek-R1-Zero的表现、自我进化过程以及顿悟时刻
DeepSeek-R1-Zero的表现:图2中为DeepSeek-R1-Zero在训练过程中整个AIME 2024基准测试的表现轨迹,其展现出稳定且持续的性能提升。pass@1分数从最初的15.6%跃升至71.0%,达到与OpenAI-o1-0912相当的水平,表现出强化学习的有效性。而且使用投票法分数进一步提升到86.7%,从而超越了OpenAI-o1-0912的表现。
DeepSeek-R1-Zero的自我进化过程:其展示了强化学习是如何自发的驱动模型自主提升推理能力的,直接从基模型进行强化学习,不受SFT的影响。这种方法清晰地展示了模型随时间进化的情况,特别是在处理复杂推理任务的能力方面。
如图3所示,在训练过程中DeepSeek-R1-Zero的思考时间(输出长度)表现出持续的提升,这种提升自然而然的获得了解决复杂任务的能力。
此外随着推理长度的增加,模型还出现了复杂的行为。例如反思—模型重新审视和重新评估其之前的步骤—以及探索解决问题的替代方法,这种行为是强化学习通过与环境交互而自然产生的。
DeepSeek-R1-Zero的顿悟时刻:在训练DeepSeek-R1-Zero期间(中间版本)观察到的一个特别有趣的现象—顿悟时刻。如表3所示,模型会重新评估其初始方法学会为问题分配更多思考时间。
它强调了强化学习的强大和美妙之处:我们不是明确地教模型如何解决问题,而只是提供正确的激励,然后它自主发展出高级的问题解决策略。
DeepSeek-R1-Zero的缺点:虽然DeepSeek-R1-Zero推理能力很好,但是并不符合人类偏好,表现出可读性差和输出语言混杂的问题。为此,本文探索了DeepSeek-R1,一种先使用人类友好的冷启动数据进行SFT,再进行强化学习的方法。
2.3 DeepSeek-R1:带有冷启动的强化学习
看到DeepSeek-R1-Zero效果这么好,自然而然想到了两个问题
-
使用少量高质量SFT数据进行冷启动,能否进一步提高性能或者加速强化学习收敛
-
如何解决DeepSeek-R1-Zero遗留的问题,输出结果让用户看起来更舒服
为了回答这两个问题,下面介绍DeepSeek-R1的训练流程,该流程包括四个阶段
2.3.1. 冷启动
先收集少量长CoT数据以微调模型,再进行强化学习。为了收集此类数据,探索了几种方法:
- 使用带有长COT的prompt+few shot,直接提示模型生成带有反思和验证的详细答案(使用哪个模型没说,猜测会用deepseek-v3)
- 以可读的格式收集DeepSeek-R1-Zero的输出,并人工进行后处理来完善结果。
最终收集了数千条数据,这部分冷启动数据的优势在于
- 可读性:DeepSeek-R1-Zero主要缺陷就是生成结果不适合阅读,可能混合多种语言,或者缺少markdown格式来强调用户的答案(最终答案包裹在一堆文字中,用户不容易找到)。所以这里在创建冷启动数据时,设计了一种可读模型,其在每个回答末尾添加了一段总结(没具体说,可能是使用另一个模型进行总结,或者人工总结),并过滤掉不便于阅读的部分(可能还是使用DeepSeek-R1-Zero来造数据,然后人工或自动化过滤)。最后将输出格式定义成|special_token|<reasoning_process>|special_token|, reasoning_process是推理的COT部分,summary是对回答结果的总结。(这里没有使用zero中的,可能SFT阶段先不用)
- 潜力:通过仔细设计冷启动数据,发现效果比DeepSeek-R1-Zero好,说明迭代式训练是一种更好的方式。
2.3.2 以推理为导向的强化学习
在冷启动数据上进行SFT之后,使用与DeepSeek-R1-Zero中采用的大规模强化学习训练过程相同的训练过程(有些模糊)。本阶段着重提升模型推理能力,尤其是在编程、数学、科学和逻辑推理等推理密集型任务中,这些任务涉及定义明确且解决方案清晰的问题。
在训练过程中发现还是会出现语言混合的问题(之前说DeepSeek-R1-Zero还有可读性差,说明除语言混合外还有其他导致可读性差的问题,一种就是上文提到的没有明确的格式强调最终答案)。
所以此时在RL期间引入了语言一致性奖励,该奖励是根据CoT中目标语言词汇的比例计算得出的(为了照顾英文用户,还有全英文的prompt)。尽管消融实验显示这种对齐会导致模型性能略有下降,但这种奖励与人类偏好一致,使其更具可读性。
最后,将推理任务的准确性与语言一致性奖励结合起来(格式奖励没了,难道SFT之后格式每次就都会统一了吗?而且SFT的格式与zero中的格式还不一样),通过直接求和形成最终奖励。然后我们对微调后的模型进行强化学习训练,直到其在推理任务上达到收敛。
2.3.3 拒绝采样和监督微调
在2.3.2步收敛时,用这个检查点来收集SFT数据,用于下一轮的训练。与最开始的冷启动SFT数据不同,这一阶段还加入了其他领域的数据,以增强模型在写作、角色扮演和其他通用任务中的能力。
推理数据:通过执行拒绝采样来得到推理数据。之前的RL部分所使用的数据都是能够直接用规则来评估
的,然而在这个阶段需要加入额外数据。这部分数据需要使用生成式奖励模型,即将真实标签和模型预测结果通过输入给DeepSeek-V3中进行判断(大概率用提示词评估)。此外,因为模型的输出有时很混乱难以阅读,所以过滤掉了混合语言、长段落和代码块的思维链(只过滤COT?还是连着推理和结果一起过滤)。通过拒绝采样,对于每个提示采样多个回答并只保留正确的回答(猜测每个prompt保留多个回答,deepseek没有开源这部分数据集,暂时无法验证)。最终收集大约60万个与推理相关的训练样本。
非推理数据:对于写作、事实问答、自我认知和翻译类的非推理数据,采用了DeepSeek-V3中的做法,并复用了DeepSeek-V3的部分SFT数据集。对于某些非推理任务,在回答之前通过提示调用DeepSeek-V3生成一个潜在的思维链。然而,对于更简单的查询,如“你好”,不会在响应中提供CoT。最终收集了大约20万个与推理无关的训练样本。
最后使用上面的大约80万个样本,对DeepSeek-V3-Base进行两个epoch的SFT微调。
2.3.4 所有场景下的强化学习
进行SFT之后,再进行第二阶段的强化学习,旨在提高模型的有用性和无害性,同时精炼其推理能力。具体来说,使用奖励信号和多样的prompt来训练模型。
对于推理数据,使用DeepSeek-R1-Zero的策略,利用基于规则的奖励来指导数学、代码和逻辑推理领域的学习过程(语言一致性应该是没了。准确性肯定有,格式是否有?在3.1格式遵循数据集IF-Eval上说了,这归因于在SFT和RL的最后阶段包含了遵循指令的数据,SFT代表SFT数据中有提示要求的格式,除此之外既然也提了RL阶段,说明很可能使用了格式奖励来控制。强化学习提示词要求需要遵循某种格式,但也得需要格式奖励的反馈来约束)。
对于通用数据,使用奖励模型
来捕捉复杂微妙场景下的人类偏好。这里使用DeepSeek-V3的流程,采用类似的偏好对分布和训练prompt。
- 对于有用性,仅关注
最终摘要
,确保评估强调响应对用户的实用性和相关性,同时最小化对底层推理过程的干扰。 - 对于无害性,评估模型的
整个响应
,包括推理过程和摘要,以识别和减轻在生成过程中可能出现的任何潜在风险、偏见或有害内容。
最终,奖励信号和多样数据分布(推理+通用数据)的组合训练出了各方面都很好的模型。
2.4 蒸馏:加强小模型推理能力
直接使用上面的80万个样本对小模型进行SFT,这里使用了Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B和Llama-3.3-70B-Instruct模型。
注意这里仅进行SFT没有进行RL,论文说尽管结合RL可以显著提升模型性能,但这里仅展示蒸馏的有效性,将RL阶段留给开源社区。
注:猜测内部肯定进行过RL的实验,至少是某一个模型的实验。
- 如果变差了,将结果公开很可能打击业界信心,不如直接交给开源社区试探。
- 如果变好了,那不是说明deepseek-v3基模型不如友商(容易露怯)
- 如果实验了多个模型,并且飘忽不定,很可能实验设置的问题,需要做大量的实验,这完全没必要,不如将精力用在提升自家模型上,将这些实验交给别人来做吧。
3. 实验
Benchmarks:在一堆数据集上进行了基准测试,还使用LLM作为评委去评估开放生成任务(使用GPT-4-Turbo-110),这里仅将最终总结用于评估,以避免长度偏见。对于蒸馏模型,使用少数几个数据集进行测试。
评估prompt:使用DeepSeek-V3的设置,用simple-evals框架的提示来评估。部分数据集将原始配置中的few shot改成zero shot,因为发现few shot中的COT可能会影响DeepSeek-R1的性能。DeepSeek-R1在每个基准测试中被限制最多生成32,768个token。
Baselines:对比的模型,包括DeepSeek-V3,Claude-Sonnet-3.5-1022,GPT-4o-0513, OpenAI-o1-mini和OpenAI-o1-1217。由于OpenAI-o1-1217的api在大陆访问限制,所以使用其官方报告上的数据。对于蒸馏模型,还对比了QwQ-32B-Preview。
评估设置:又说一遍最大生成长度限制在32768。本文发现使用贪婪解码来会导致更高的重复率,并且在不同的检查点之间会发生很大的变化。所以采用temperature=0.6、top_p=0.95,最终得到pass@𝑘和pass@1,pass@𝑘就是随机采样k次(通常4-64之间,取决于测试集大小),pass@1是k个结果的平均。
p a s s @ 1 = 1 k ∑ i = 1 k p i , \mathrm{pass@}1=\frac{1}{k}\sum_{i=1}^kp_i, pass@1=k1i=1∑kpi,
其中, p i p_i pi代表第i个相应是否正确。对于AIME 2024数据集,还使用投票法得到cons@64指标。
3.1 DeepSeek-R1评估
在面向教育领域的基准测试中,例如MMLU、MMLU-Pro和GPQA Diamond中,DeepSeek-R1比DeepSeek-V3更好,这主要因为数据集中的STEM【科学(Science)、技术(Technology)、工程(Engineering)和数学(Mathematics)】样本的准确率提升,这是通过RL得到的。此外,在长上下文依赖的问答任务(FRAMES)表现很好,文档/数据分析方面有潜力。事实型基准测试SimpleQA上DeepSeek-R1超越了DeepSeek-V3,o1这方面也超过了gpt-4o。但在中文SimpleQA上,表现不如v3,主要由于总是拒绝回答某些问题,如果没有增强安全性的强化学习,r1的准确率可以超过70%(表中v3是68%)。
IF-Eval数据集是验证遵循格式指令的能力,在这个上面表现出色归因于在SFT和RL的最后阶段包含了遵循指令的数据(但是这个指标不是还不如v3呢嘛??)。AlpacaEval2.0和ArenaHard上的提升(相对v3提升很大)说明写作和开放问答有很大的进步,说明RL不仅提升推理能力,在其他领域也能有很大提升。此外,r1生成的总结长度简洁(ArenaHard平均689,AlpacaEval 2.0平均2218),说明在GPT评估过程中并没有因为长度偏见而得到高分(大模型评估会给长文本更高的分数是业界共识)。
在数学任务上,r1和o1-1217表现相当,大幅领先其他模型。在编码算法任务上也是,但在编码工程任务上,r1表现不如o1-1217,但胜过Claude-3.5-Sonnet-1022(有文章说r1写代码不如Claude-3.5-Sonnet,可能是其较新版本,且r1写出的代码容易出bug)。
3.2 蒸馏模型评估
效果很好,蒸馏后较小规模的模型能超过原始更大规模的模型,且蒸馏的32B和70B在大多数测试都能超过o1-mini。
4. 讨论
蒸馏 v.s. 强化学习
小模型走类似zero的方法,能否提升效果?实验证明经过zero的强化学习之后,与原始模型相当,说明小模型的潜力有限,很难通过直接强化学习激发潜能。
因此可以得到两个结论:
- 大模型蒸馏成小模型会带来提升,但小模型直接进行RL可能需要巨大的算力(说的很委婉,就是不行)
- 尽管蒸馏很好用,但仍有上限。
注:这个实验进一步说明了2.4节deepseek内部肯定进行过蒸馏+RL的实验,从原始直接RL实验都做了,没理由不做SFT+RL,而且效果很可能不好,可能RL后效果反而变得更差(全凭猜测)。
未成功的尝试
-
过程奖励模型(PRM)方法很好,但在实验中有三个局限性
- 推理任务明确定义中间步骤的细粒度很难;
- 推理任务判断每个中间步骤是否正确很难,自动化标注效果不好,人工很难扩大规模
- 如果使用基于神经网络的奖励模型,就可能导致奖励黑客攻击,发现之后进行重新训练又要消耗大量资源。
因此,尽管PRM在重排top-n个回答上表现很好,或者在引导搜索上有帮助,但规模小能带来的帮助有限,相比之下还不如大规模规则性ORM。
-
蒙特卡洛树搜索(MCTS):也是目前常用的做法,它涉及将答案拆分成较小的部分,以允许模型探索解决方案空间。为了促进这一点,提示模型生成多个标签(用列表形式,或分步形式),这些标签对应搜索所需的特定推理步骤。训练时首先收集提示词,用预训练的价值函数(预测每个步骤的价值得分)指导模型生成这种结构的数据,然后训练演员模型和价值模型,并迭代地进行这个过程。
但是,在扩大训练规模时发现几个问题导致最终效果并不好:- 大模型搜索空间太大了,呈现指数级的增大。为了解决这个问题,为每个节点设置最大搜索限制,但这可能让模型陷入局部最优解。
- 价值模型直接影响生成质量,训练一个具体理想细粒度的价值模型太难了,这使得很难通过模型迭代来提升(可能需要一个更好的办法来得到价值函数才能提升,与神经网络奖励模型类似)
5. 结论、局限性与未来工作
DeepSeek-R1-Zero和DeepSeek-R1通过强化学习获得了巨大的提升,并验证了蒸馏方法能够使小模型的性能再次提升一个档次。
未来计划要提升DeepSeek-R1的下面几个能力
-
通用能力:目前,DeepSeek-R1在函数调用、多轮对话、复杂角色扮演和JSON输出等任务上的能力不如DeepSeek-V3。未来将探索CoT能够在这些任务上提升多少。
-
语言混合:DeepSeek-R1目前针对中文和英文进行了优化,这可能导致处理其他语言查询时出现语言混合问题。例如,即使查询是非英语或非中文,DeepSeek-R1也可能使用英文进行推理和回应。我们计划在未来的更新中解决这一限制。
-
提示工程:在评估DeepSeek-R1时,我们观察到它对提示词敏感。few shot会降低了其性能。因此,我们建议用户直接描述问题,并使用zero shot指定输出格式以获得最佳结果。
-
软件工程任务(类似cursor的代码编辑方面):由于评估时间较长,影响了强化学习过程的效率,大规模强化学习尚未广泛应用于软件工程任务。因此,DeepSeek-R1在软件工程基准测试上并未显示出相较于DeepSeek-V3的巨大改进。未来版本将通过在软件工程数据上实施拒绝采样或在强化学习过程中结合异步评估来提高效率,从而解决此问题。
相关文章:

【DeepSeek三部曲】DeepSeek-R1论文详细解读
这里写目录标题 摘要1. 引言1.1 贡献1.2 评估结果总结 2. 方法2.1 概述2.2 DeepSeek-R1-Zero:在base模型上进行强化学习2.2.1 强化学习算法2.2.2 奖励模型2.2.3 训练模版2.2.4 DeepSeek-R1-Zero的表现、自我进化过程以及顿悟时刻 2.3 DeepSeek-R1:带有冷…...
【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测
1.什么是 DETR? DETR(DEtection TRansformer) 是 Facebook AI(FAIR)于 2020 年提出的 端到端目标检测算法,它基于 Transformer 架构,消除了 Faster R-CNN、YOLO 等方法中的 候选框(…...

Windows Docker运行Implicit-SVSDF-Planner
Windows Docker运行GitHub - ZJU-FAST-Lab/Implicit-SVSDF-Planner: [SIGGRAPH 2024 & TOG] 1. 设置环境 我将项目git clone在D:/Github目录中。 下载ubuntu20.04 noetic镜像 docker pull osrf/ros:noetic-desktop-full-focal 启动容器,挂载主机的D:/Github文…...
ELK安装部署同步mysql数据
ELK 安装部署指南 ELK 是 Elasticsearch、Logstash 和 Kibana 的简称,用于日志收集、存储、分析和可视化。 1. 安装 Elasticsearch Elasticsearch 是一个分布式搜索和分析引擎。 1.1 下载并安装 访问 Elasticsearch 官网 下载最新版本。 解压并安装: tar…...
Vision Transformer图像分块嵌入核心技术解析:从数学推导到工业级应用
一、技术原理与数学建模 1.1 图像分块过程数学表达 给定输入图像 x ∈ R H W C x \in \mathbb{R}^{H \times W \times C} x∈RHWC,将其分割为 N N N 个尺寸为 P P P \times P PP 的图块: x p ∈ R N ( P 2 ⋅ C ) 其中 N H W P 2 x_p \in \m…...

【产品资料】陀螺匠·企业助手v1.8 产品介绍
陀螺匠企业助手是一套采用Laravel 9框架结合Swoole高性能协程服务与Vue.js前端技术栈构建的新型智慧企业管理与运营系统。该系统深度融合了客户管理、项目管理、审批流程自动化以及低代码开发平台,旨在为企业提供一站式、数字化转型的全方位解决方案,助力…...
深度求索-DeepSeek-R1本地部署指南
1、参考:部署指南 2、参考:deepseek本地部署只需三步 DeepSeek本地部署只需三步: 1、安装运行环境:安装 Ollama:Ollama官网:官网 2、下载模型:参数越大,需要物里硬件越多 3、安装部…...
代码随想录day12
144.二叉树的前序遍历 //明确递归的函数,结束边界,单层逻辑 void traversal(TreeNode* node, vector<int>& list){if(node nullptr){return;}list.push_back(node->val);traversal(node->left, list);traversal(node->right, list)…...

告别第三方云存储!用File Browser在Windows上自建云盘随时随地访问
文章目录 前言1.下载安装File Browser2.启动访问File Browser3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 无论是个人用户还是企业团队,都希望能够有一个高效、安全的解决方案来…...
Ubuntu 下 nginx-1.24.0 源码分析 - NGX_MAX_ALLOC_FROM_POOL
NGX_MAX_ALLOC_FROM_POOL 定义在 src\core\ngx_palloc.h #define NGX_MAX_ALLOC_FROM_POOL (ngx_pagesize - 1) 在 src/os/unix/ngx_alloc.h extern ngx_uint_t ngx_pagesize; 这个全局变量定义在 src\os\unix\ngx_alloc.c 中 ngx_uint_t ngx_pagesize; 在 src/os/unix/ngx_…...
PyQt6/PySide6 的 SQL 数据库操作(QtSql)
一、核心组件架构 1.1 QtSql模块构成 QSqlDatabase:数据库连接管理(支持连接池)QSqlQuery:SQL语句执行与结果遍历QSqlTableModel:可编辑的表格数据模型QSqlQueryModel:只读查询结果模型QSqlRelationalTab…...

利用IDEA将Java.class文件反编译为Java文件:原理、实践与深度解析
文章目录 引言:当.class文件遇到源代码缺失第一章:反编译技术基础认知1.1 Java编译执行原理1.2 反编译的本质1.3 法律与道德边界 第二章:IDEA内置反编译工具详解2.1 环境准备2.2 三步完成基础反编译2.3 高级反编译技巧2.3.1 调试模式反编译2.…...

Kafka偏移量管理全攻略:从基础概念到高级操作实战
#作者:猎人 文章目录 前言:概念剖析kafka的两种位移消费位移消息的位移位移的提交自动提交手动提交 1、使用--to-earliest重置消费组消费指定topic进度2、使用--to-offset重置消费offset3、使用--to-datetime策略指定时间重置offset4、使用--to-current…...

【R语言】GitHub Copilot安装-待解决
参考: 文章目录...

软件定义汽车时代的功能安全和信息安全
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活…...
qt的QSizePolicy的使用
使用 QSizePolicy 设置控件的伸缩因子 在 Qt 中,QSizePolicy 控制 控件如何在布局中伸缩。如果想要影响控件的大小调整行为,可以通过 QSizePolicy::setHorizontalStretch() 和 QSizePolicy::setVerticalStretch() 设置伸缩因子。 基本用法 假设我们有一个…...

简单几个步骤完成 Oracle 到金仓数据库(KingbaseES)的迁移目标
作为国产数据库的领军选手,金仓数据库(KingbaseES)凭借其成熟的技术架构和广泛的市场覆盖,在国内众多领域中扮演着至关重要的角色。无论是国家电网、金融行业,还是铁路、医疗等关键领域,金仓数据库都以其卓…...

DeepSeek自动化写作软件
DeepSeek写作软件的三大核心功能 对于内容创作者来说,写作不仅是表达思想的过程,更是一项需要投入大量时间和精力的任务。面对日益增长的内容需求,写作效率低下、内容质量不高等问题,常常让创作者感到焦虑。而 DeepSeek 写作软件…...
【kafka系列】Kafka如何实现高吞吐量?
目录 1. 生产者端优化 核心机制: 关键参数: 2. Broker端优化 核心机制: 关键源码逻辑: 3. 消费者端优化 核心机制: 关键参数: 全链路优化流程 吞吐量瓶颈与调优 总结 Kafka的高吞吐能力源于其生…...
learn_pytorch03
第三章 深度学习分为如下几个步骤 1:数据预处理,划分训练集和测试集 2:选择模型,设定损失函数和优化函数 3:用模型取拟合训练数据,并在验证计算模型上表现。 接着学习了一些数据读入 模型构建 损失函数的构…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...