当前位置: 首页 > news >正文

DeepSeek-R1:通过强化学习激励大型语言模型(LLMs)的推理能力

摘要

我们推出了第一代推理模型:DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero是一个未经监督微调(SFT)作为初步步骤,而是通过大规模强化学习(RL)训练的模型,展现出卓越的推理能力。通过强化学习,DeepSeek-R1-Zero自然而然地涌现出众多强大且引人入胜的推理行为。然而,它面临着可读性差和语言混淆等挑战。为了解决这些问题并进一步提升推理性能,我们推出了DeepSeek-R1,该模型在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1在推理任务上的表现可与OpenAI-o1-1217相媲美。为了支持研究界,我们开源了DeepSeek-R1-Zero、DeepSeek-R1以及基于Qwen和Llama从DeepSeek-R1中提炼出的六个密集模型(1.5B、7B、8B、14B、32B、70B)。
在这里插入图片描述

1、引言

近年来,大型语言模型(LLMs)经历了快速的迭代和演进(Anthropic, 2024;Google, 2024;OpenAI, 2024a),逐步缩小了与通用人工智能(AGI)的差距。

最近,后训练已成为完整训练流程的重要组成部分。研究表明,与预训练相比,后训练在推理任务上的准确性更高,更符合社会价值观,更能适应用户偏好,同时所需的计算资源相对较少。在推理能力方面,OpenAI的o1系列模型(OpenAI, 2024b)首次通过增加思维链推理过程的长度来引入推理时间的缩放。这种方法在数学、编码和科学推理等各种推理任务中取得了显著改进。然而,有效测试时间缩放的问题仍然是研究界的一个悬而未决的问题。一些先前的工作探索了各种方法,包括基于过程的奖励模型(Lightman et al., 2023;Uesato et al., 2022;Wang et al., 2023)、强化学习(Kumar et al., 2024)以及搜索算法,如蒙特卡洛树搜索和束搜索(Feng et al., 2024;Trinh et al., 2024;Xin et al., 2024)。然而,这些方法中的任何一种都没有实现可与OpenAI的o1系列模型相媲美的通用推理性能。

在本文中,我们迈出了使用纯强化学习(RL)提高语言模型推理能力的第一步。我们的目标是探索LLMs在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们通过纯强化学习过程实现自我进化的能力。具体来说,我们使用DeepSeek-V3-Base作为基础模型,并采用GRPO(Shao et al., 2024)作为强化学习框架来提高模型在推理方面的性能。在训练过程中,DeepSeek-R1-Zero自然而然地涌现出众多强大且有趣的推理行为。经过数千步强化学习后,DeepSeek-R1-Zero在推理基准测试上表现出色。例如,在AIME 2024上的pass@1分数从15.6%提高到71.0%,通过多数投票,分数进一步提高到86.7%,与OpenAI-o1-0912的表现相当。

然而,DeepSeek-R1-Zero面临着可读性差和语言混淆等挑战。为了解决这些问题并进一步提升推理性能,我们推出了DeepSeek-R1,该模型融入了少量冷启动数据和多阶段训练流程。具体来说,我们首先收集数千条冷启动数据来对DeepSeek-V3-Base模型进行微调。之后,我们像DeepSeek-R1-Zero一样进行面向推理的强化学习。在强化学习过程即将收敛时,我们对强化学习检查点进行拒绝采样以创建新的监督微调(SFT)数据,并结合DeepSeek-V3在写作、事实问答和自我认知等领域的监督数据,然后重新训练DeepSeek-V3-Base模型。使用新数据进行微调后,检查点会再经历一次强化学习过程,同时考虑所有场景的提示。经过这些步骤后,我们获得了一个名为DeepSeek-R1的检查点,其性能与OpenAI-o1-1217相当。

我们进一步探索了从DeepSeek-R1中提炼出较小密集模型的方法。使用Qwen2.532B(Qwen, 2024b)作为基础模型,直接从DeepSeek-R1进行蒸馏的表现优于在其上应用强化学习。这表明较大基础模型发现的推理模式对于提高推理能力至关重要。我们开源了提炼出的Qwen和Llama(Dubey et al., 2024)系列。值得注意的是,我们提炼出的14B模型在推理基准测试上的表现远超最先进的开源模型QwQ-32B-Preview(Qwen, 2024a),而提炼出的32B和70B模型在密集模型中树立了新的推理基准测试记录。

1.1、贡献

训练后:在基础模型上进行大规模强化学习

  • 我们直接将强化学习(RL)应用于基础模型,而不依赖监督微调(SFT)作为初步步骤。这种方法使模型能够探索用于解决复杂问题的思维链(CoT),从而开发出DeepSeek-R1-Zero。DeepSeek-R1-Zero展示了自我验证、反思和生成长思维链等能力,为研究界树立了一个重要里程碑。值得注意的是,这是首个公开研究,验证了大型语言模型(LLM)的推理能力可以仅通过强化学习来激励,而无需监督微调。这一突破为该领域的未来发展铺平了道路。
  • 我们介绍了开发DeepSeek-R1的流程。该流程包含两个强化学习阶段,旨在发现改进的推理模式并与人类偏好保持一致,以及两个作为模型推理和非推理能力基础的监督微调阶段。我们相信,该流程将通过创建更好的模型为行业带来益处。

蒸馏:小型模型同样可以强大

  • 我们证明了大型模型的推理模式可以被蒸馏到小型模型中,与小型模型通过强化学习发现的推理模式相比,性能更好。开源的DeepSeek-R1及其API将有助于研究界在未来蒸馏出更好的小型模型。
  • 使用DeepSeek-R1生成的推理数据,我们对研究界广泛使用的几个密集模型进行了微调。评估结果表明,蒸馏出的小型密集模型在基准测试上表现异常出色。DeepSeek-R1-Distill-Qwen-7B在AIME 2024上取得了55.5%的成绩,超过了QwQ-32B-Preview。此外,DeepSeek-R1-Distill-Qwen-32B在AIME 2024上得分72.6%,在MATH-500上得分94.3%,在LiveCodeBench上得分57.2%。这些结果显著优于之前的开源模型,可与o1-mini相媲美。我们向社区开源了基于Qwen 2.5和Llama3系列的1.5B、7B、8B、14B、32B和70B检查点。

1.2、评估结果总结

  • 推理任务:(1) DeepSeek-R1在AIME 2024上取得了79.8%的Pass@1成绩,略高于OpenAI-o1-1217。在MATH-500上,它获得了令人印象深刻的97.3%成绩,与OpenAI-o1-1217持平,并显著优于其他模型。(2) 在与编码相关的任务上,DeepSeek-R1在代码竞赛任务中表现出专家水平,在Codeforces上获得2029 Elo评级,超过了比赛中96.3%的人类参与者。对于与工程相关的任务,DeepSeek-R1的表现略优于DeepSeek-V3,这有助于开发者在现实世界的任务中。

  • 知识:在MMLU、MMLU-Pro和GPQA Diamond等基准测试中,DeepSeekR1取得了优异成绩,在MMLU上得分90.8%,在MMLU-Pro上得分84.0%,在GPQA Diamond上得分71.5%,显著优于DeepSeek-V3。虽然在这些基准测试上的表现略低于OpenAI-o1-1217,但DeepSeek-R1超越了其他闭源模型,展示了其在教育任务中的竞争优势。在事实基准SimpleQA上,DeepSeek-R1优于DeepSeek-V3,证明了其处理基于事实查询的能力。观察到类似趋势,OpenAI-o1在此基准上得分超过40。

  • 其他:DeepSeek-R1在创意写作、一般问答、编辑、摘要等多种任务中也表现出色。它在AlpacaEval 2.0上实现了令人印象深刻的长度控制胜率87.6%,在ArenaHard上实现了胜率92.3%,展示了其智能处理非考试导向查询的强大能力。此外,DeepSeek-R1在长文本理解任务上表现出色,在长文本基准测试上显著优于DeepSeek-V3。

2、方法

2.1、概述

先前的工作严重依赖于大量监督数据来提高模型性能。在本研究中,我们证明了即使不使用监督微调作为冷启动,通过大规模强化学习(RL)也可以显著提高推理能力。此外,加入少量冷启动数据可以进一步提高性能。在以下部分中,我们介绍了:(1) DeepSeek-R1-Zero,它直接在没有任何监督微调数据的基础模型上应用强化学习,以及(2) DeepSeek-R1,它从使用数千个长思维链(CoT)示例进行微调的检查点开始应用强化学习。(3) 将DeepSeek-R1的推理能力蒸馏到小型密集模型中。
2.2. DeepSeek-R1-Zero:基础模型上的强化学习

强化学习在推理任务中已显示出显著的有效性,这在我们之前的工作(Shao等人,2024;Wang等人,2023)中得到了证实。然而,这些工作严重依赖于监督数据,而收集这些数据非常耗时。在本节中,我们将探讨大型语言模型(LLMs)在没有任何监督数据的情况下发展推理能力的潜力,重点关注它们通过纯强化学习过程实现自我进化的能力。我们首先简要概述我们的强化学习(RL)算法,然后展示一些令人兴奋的结果,并希望这为社区提供有价值的见解。

2.2.1、强化学习算法

群体相对策略优化(Group Relative Policy Optimization, GRPO)为了节省强化学习的训练成本,我们采用了群体相对策略优化(Shao等人,2024),该算法省略了通常与策略模型大小相同的评论家模型,而是从群体分数中估计基线。具体来说,对于每个问题 q q q,GRPO从旧策略 π θ o l d \pi_{\theta_{old}} πθold中采样一组输出 { o 1 , o 2 , ⋯ , o G } \left\{o_{1}, o_{2}, \cdots, o_{G}\right\} {o1,o2,,oG},然后通过最大化以下目标来优化策略模型 π θ \pi_{\theta} πθ

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 , clip ( π θ ( o i ∣ q ) π θ o l d ( o i ∣ q ) , 1 − ε , 1 + ε ) A i ) − β D K L ( π θ ∥ π r e f ) ) , 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 , \begin{array}{c} \mathcal{J}_{G R P O}(\theta)=\mathbb{E}\left[q \sim P(Q),\left\{o_{i}\right\}_{i=1}^{G} \sim \pi_{\theta_{old}}(O \mid q)\right] \\ \frac{1}{G} \sum_{i=1}^{G}\left(\min \left(\frac{\pi_{\theta}\left(o_{i} \mid q\right)}{\pi_{\theta_{old}}\left(o_{i} \mid q\right)} A_{i}, \text{clip}\left(\frac{\pi_{\theta}\left(o_{i} \mid q\right)}{\pi_{\theta_{old}}\left(o_{i} \mid q\right)}, 1-\varepsilon, 1+\varepsilon\right) A_{i}\right)-\beta \mathbb{D}_{K L}\left(\pi_{\theta} \| \pi_{ref}\right)\right), \\ \mathbb{D}_{K L}\left(\pi_{\theta} \| \pi_{ref}\right)=\frac{\pi_{ref}\left(o_{i} \mid q\right)}{\pi_{\theta}\left(o_{i} \mid q\right)}-\log \frac{\pi_{ref}\left(o_{i} \mid q\right)}{\pi_{\theta}\left(o_{i} \mid q\right)}-1, \end{array} JGRPO(θ)=E[qP(Q),{oi}i=1Gπθold(Oq)]G1i=1G(min(πθold(oiq)πθ(oiq)Ai,clip(πθold(oiq)πθ(oiq),1ε,1+ε)Ai)βDKL(πθπref)),DKL(πθπref)=πθ(oiq)πref(oiq)logπθ(oiq)πref(oiq)1,

其中, ε \varepsilon ε β \beta β是超参数, A i A_{i} Ai是使用与每组输出对应的奖励组 { r 1 , r 2 , … , r G } \left\{r_{1}, r_{2}, \ldots, r_{G}\right\} {r1,r2,,rG}计算的优势:

A i = r i − mean ( { r 1 , r 2 , ⋯ , r G } ) std ( { r 1 , r 2 , ⋯ , r G } ) A_{i}=\frac{r_{i}-\text{mean}\left(\left\{r_{1}, r_{2}, \cdots, r_{G}\right\}\right)}{\text{std}\left(\left\{r_{1}, r_{2}, \cdots, r_{G}\right\}\right)} Ai=std({r1,r2,,rG})rimean({r1,r2,,rG})

2.2.2、奖励建模

奖励是训练信号的来源,决定了强化学习的优化方向。为了训练DeepSeek-R1-Zero,我们采用了一个基于规则的奖励系统,该系统主要包括两种奖励:

  • 准确性奖励:准确性奖励模型评估回答是否正确。例如,在确定结果的数学问题中,模型需要以指定格式(例如,在框内)提供最终答案,从而可以基于规则可靠地验证正确性。同样,对于LeetCode问题,可以使用编译器根据预定义的测试用例生成反馈。
  • 格式奖励:除了准确性奖励模型外,我们还采用了格式奖励模型,强制模型在’‘和’'标签之间放置其思考过程。
    在开发DeepSeek-R1-Zero时,我们没有应用结果或过程的神经奖励模型,因为我们发现神经奖励模型在大型强化学习过程中可能会遭受奖励黑客攻击,而且重新训练奖励模型需要额外的训练资源,并使整个训练流程复杂化。

2.2.3、训练模板

为了训练DeepSeek-R1-Zero,我们首先设计了一个直观的模板,该模板指导基础模型遵循我们指定的指令。如表1所示,该模板要求DeepSeek-R1-Zero首先产生推理过程,然后是最终答案。我们故意将约束限制在这个结构格式上,避免任何内容特定的偏见——例如,强制反思推理或推广特定的问题解决策略——以确保我们能够准确观察模型在强化学习过程中的自然进展。
在这里插入图片描述

2.2.4、DeepSeek-R1-Zero的性能、自我进化过程和顿悟时刻

DeepSeek-R1-Zero的性能 图2展示了DeepSeek-R1-Zero在强化学习训练过程中在AIME 2024基准测试上的性能轨迹。如图所示,随着强化学习训练的推进,DeepSeek-R1-Zero的性能显示出稳定且一致的提升。值得注意的是,AIME 2024的平均pass@1分数显著提高,从最初的 15.6 % 15.6 \% 15.6%跃升至令人印象深刻的 71.0 % 71.0 \% 71.0%,达到了与OpenAI-o1-0912相当的性能水平。这一显著提升凸显了我们的强化学习算法在长时间内优化模型性能的有效性。
在这里插入图片描述

表2对DeepSeek-R1-Zero与OpenAI的o1-0912模型在各种与推理相关的基准测试上进行了比较分析。结果表明,强化学习(RL)使DeepSeek-R1-Zero能够在无需任何监督微调数据的情况下获得强大的推理能力。这是一项值得注意的成就,因为它凸显了模型仅通过强化学习就能有效学习和泛化的能力。此外,通过应用多数投票,可以进一步提升DeepSeek-R1-Zero的性能。例如,当在AIME基准测试上采用多数投票时,DeepSeek-R1-Zero的性能从 71.0 % 71.0 \% 71.0%提升至 86.7 % 86.7 \% 86.7%,从而超过了OpenAI-o1-0912的性能。DeepSeek-R1-Zero无论是否采用多数投票都能取得如此具有竞争力的表现,这凸显了其强大的基础能力和在推理任务中取得进一步进展的潜力。

DeepSeek-R1-Zero的自我进化过程

DeepSeek-R1-Zero的自我进化过程是一个引人入胜的演示,展示了强化学习如何驱动模型自主提高其推理能力。通过直接从基础模型启动强化学习,我们可以不受监督微调阶段影响地密切监控模型的进展。这种方法提供了模型随时间演变的清晰视图,特别是在处理复杂推理任务的能力方面。
在这里插入图片描述

如图3所示,DeepSeek-R1-Zero的思考时间在整个训练过程中持续改进。这种改进不是外部调整的结果,而是模型内部的发展。DeepSeek-R1-Zero通过利用更长的测试时间计算,自然地获得了解决日益复杂的推理任务的能力。这种计算范围从生成数百到数千个推理标记,使模型能够更深入地探索和精炼其思维过程。

这一自我进化过程中最引人注目的方面之一是,随着测试时间计算的增加,复杂行为的出现。如反思(模型重新访问和重新评估其先前步骤)和探索解决问题的替代方法等行为自发产生。这些行为不是明确编程的,而是模型与强化学习环境相互作用的结果。这种自发发展显著增强了DeepSeek-R1-Zero的推理能力,使其能够更高效、更准确地解决更具挑战性的任务。

DeepSeek-R1-Zero的“顿悟时刻”

在DeepSeek-R1-Zero的训练过程中观察到的一个特别有趣的现象是“顿悟时刻”的发生。如表3所示,这一时刻发生在模型的中间版本中。在这一阶段,DeepSeek-R1-Zero学会了通过重新评估其初步方法来为问题分配更多的思考时间。这种行为不仅证明了模型推理能力的增强,也是强化学习能够产生意外且复杂结果的迷人例证。
在这里插入图片描述

这一时刻不仅对模型来说是“顿悟时刻”,对观察其行为的研究人员来说也是如此。它强调了强化学习的力量和美丽:我们不是明确教授模型如何解决问题,而是为其提供正确的激励,然后它自主开发出先进的问题解决策略。“顿悟时刻”有力地提醒了我们强化学习在解锁人工智能系统新智能水平方面的潜力,为未来更自主和自适应的模型铺平了道路。

DeepSeek-R1-Zero的缺点

尽管DeepSeek-R1-Zero表现出强大的推理能力,并自主发展出意外且强大的推理行为,但它也面临一些问题。例如,DeepSeek-R1-Zero在处理可读性差和语言混合等挑战时遇到困难。为了使推理过程更具可读性并与开放社区共享,我们探索了DeepSeek-R1,这是一种利用强化学习和用户友好的冷启动数据的方法。

2.3、DeepSeek-R1:具有冷启动的强化学习

受DeepSeek-R1-Zero鼓舞人心的结果的启发,产生了两个自然的问题:1)通过引入少量高质量数据作为冷启动,是否可以进一步提高推理性能或加速收敛?2)我们如何训练一个不仅产生清晰连贯的思维链(Chains of Thought,CoT),而且表现出强大通用能力的用户友好型模型?为了解决这些问题,我们设计了训练DeepSeek-R1的管道。该管道包括以下四个阶段:
2.3.1. 冷启动

与DeepSeek-R1-Zero不同,为了防止强化学习(RL)训练在基础模型上早期出现不稳定的冷启动阶段,对于DeepSeek-R1,我们构建并收集了一小部分长的思维链(CoT)数据来对模型进行微调,作为初始的RL行为者。为了收集这些数据,我们探索了几种方法:使用包含长思维链的少量提示作为示例,直接提示模型生成带有反思和验证的详细答案,以可读格式收集DeepSeek-R1Zero的输出,并通过人类标注者的后处理来精炼结果。

在本研究中,我们收集了数千条冷启动数据来微调DeepSeek-V3-Base,作为RL的起点。与DeepSeek-R1-Zero相比,冷启动数据的优势包括:

  • 可读性:DeepSeek-R1-Zero的一个关键限制是其内容往往不适合阅读。回答可能会混合多种语言或缺少标记格式来突出显示给用户的答案。相比之下,在为DeepSeek-R1创建冷启动数据时,我们设计了一种可读的模式,包括在每个回答的末尾添加一个摘要,并过滤掉对读者不友好的回答。在这里,我们将输出格式定义为| s p e c i a l _ t o k e n special\_token special_token | <推理过程> | s p e c i a l _ t o k e n special\_token special_token | <摘要>,其中推理过程是查询的思维链,摘要用于总结推理结果。
  • 潜力:通过结合人类先验知识精心设计冷启动数据的模式,我们观察到其性能优于DeepSeek-R1-Zero。我们认为迭代训练是推理模型的一种更好方式。

2.3.2、以推理为导向的强化学习

在冷启动数据上对DeepSeek-V3-Base进行微调后,我们应用了与DeepSeek-R1-Zero相同的大规模强化学习训练过程。这一阶段侧重于增强模型的推理能力,特别是在推理密集型任务中,如编程、数学、科学和逻辑推理,这些任务涉及定义明确且解决方案清晰的问题。在训练过程中,我们观察到思维链经常会出现语言混合现象,尤其是在RL提示涉及多种语言时。为了缓解语言混合问题,我们在RL训练期间引入了一个语言一致性奖励,该奖励计算为思维链中目标语言单词的比例。尽管消融实验表明,这种对齐会导致模型性能略有下降,但这种奖励与人类偏好一致,使其更具可读性。最后,我们将推理任务的准确性和语言一致性奖励直接相加,形成最终奖励。然后,我们对微调后的模型应用RL训练,直到其在推理任务上收敛。

2.3.3、拒绝采样和监督微调

当以推理为导向的RL收敛时,我们利用得到的检查点来收集下一轮监督微调(SFT)数据。与主要关注推理的初始冷启动数据不同,这一阶段纳入了来自其他领域的数据,以增强模型在写作、角色扮演和其他通用任务方面的能力。具体来说,我们按如下方式生成数据并对模型进行微调。

推理数据:我们整理推理提示,并从上述RL训练的检查点通过拒绝采样生成推理轨迹。在上一阶段,我们只包含了可以使用基于规则的奖励进行评估的数据。然而,在这一阶段,我们通过纳入额外数据来扩展数据集,其中一些数据使用生成式奖励模型,将真实答案和模型预测输入DeepSeek-V3进行判断。此外,由于模型输出有时混乱且难以阅读,我们已过滤掉混合语言、长段落和代码块的思维链。对于每个提示,我们采样多个回答,并仅保留正确的回答。总共,我们收集了约60万个与推理相关的训练样本。

非推理数据:对于非推理数据,如写作、事实问答、自我认知和翻译,我们采用DeepSeek-V3管道,并重用DeepSeek-V3的SFT数据集的部分内容。对于某些非推理任务,我们在回答问题之前,通过提示调用DeepSeek-V3生成潜在的思维链。然而,对于更简单的查询,如“hello”,我们不提供思维链作为回答。最终,我们总共收集了约20万个与推理无关的训练样本。

我们使用上述精心挑选的约80万个样本的数据集对DeepSeek-V3-Base进行两个周期的监督微调。

2.3.4、针对所有场景的强化学习

为了进一步使模型与人类偏好保持一致,我们实施了第二阶段强化学习,旨在提高模型的帮助性和无害性,同时改进其推理能力。具体来说,我们使用奖励信号组合和多样化的提示分布来训练模型。对于推理数据,我们遵循DeepSeek-R1-Zero中概述的方法,该方法利用基于规则的奖励来指导数学、代码和逻辑推理领域的学习过程。对于通用数据,我们求助于奖励模型来捕捉复杂和细微场景中的人类偏好。我们基于DeepSeek-V3管道,并采用类似的偏好对和训练提示分布。对于帮助性,我们专注于最终的摘要,确保评估强调回答对用户的实用性和相关性,同时尽量减少对底层推理过程的干扰。对于无害性,我们评估模型的整个回答,包括推理过程和摘要,以识别和缓解生成过程中可能出现的任何潜在风险、偏见或有害内容。最终,奖励信号和多样化数据分布的整合使我们能够训练出一个在推理方面表现出色,同时优先考虑帮助性和无害性的模型。

2.4、蒸馏:赋予小型模型推理能力

为了为更高效的小型模型配备如DeepSeek-R1般的推理能力,我们直接使用DeepSeek-R1筛选的800k样本对开源模型(如Qwen(Qwen, 2024b)和Llama(AI@Meta, 2024))进行了微调,具体细节见第2.3.3节。我们的研究结果表明,这种直接的蒸馏方法显著增强了小型模型的推理能力。我们在此使用的基准模型包括Qwen2.5-Math-1.5B、Qwen2.5-Math-7B、Qwen2.5-14B、Qwen2.5-32B、Llama-3.1-8B和Llama-3.3-70B-Instruct。我们选择Llama-3.3是因为其推理能力略优于Llama-3.1。

对于蒸馏后的模型,我们仅应用了SFT,并未包含RL阶段,尽管结合RL可以大幅提升模型性能。我们在此的主要目标是证明蒸馏技术的有效性,而将RL阶段的探索留给更广泛的研究界。

3、实验

基准测试 我们在MMLU(Hendrycks等,2020)、MMLU-Redux(Gema等,2024)、MMLU-Pro(Wang等,2024)、C-Eval(Huang等,2023)、CMMLU(Li等,2023)、IFEval(Zhou等,2023)、FRAMES(Krishna等,2024)、GPQA Diamond(Rein等,2023)、SimpleQA(OpenAI,2024c)、C-SimpleQA(He等,2024)、SWE-Bench Verified(OpenAI,2024d)、Aider{ }^{1}、LiveCodeBench(Jain等,2024)(2024年8月至2025年1月)、Codeforces{ }^{2}、中国高中数学奥林匹克竞赛(CNMO 2024){ }^{3}和美国数学邀请赛2024(AIME 2024)(MAA,2024)等基准测试上评估了模型。除了标准基准测试外,我们还使用大型语言模型(LLMs)作为评判员,在开放式生成任务上评估了我们的模型。具体而言,我们遵循AlpacaEval 2.0(Dubois等,2024)和Arena-Hard(Li等,2024)的原始配置,它们利用GPT-4-Turbo-1106作为成对比较的评判员。在这里,我们只将最终摘要提交给评估,以避免长度偏差。对于蒸馏后的模型,我们报告了AIME 2024、MATH-500、GPQA Diamond、Codeforces和LiveCodeBench上的代表性结果。

评估提示 遵循DeepSeek-V3的设置,使用simpleevals框架中的提示评估MMLU、DROP、GPQA Diamond和SimpleQA等标准基准测试。对于MMLU-Redux,我们采用零样本设置下的Zero-Eval提示格式( \overline{\operatorname{Lin}, ~ 2024)} )。至于MMLU-Pro、C-Eval和CLUE-WSC,由于原始提示是少样本的,我们将其略微修改为零样本设置。少样本中的CoT可能会损害DeepSeek-R1的性能。其他数据集遵循其原始评估协议,并使用其创建者提供的默认提示。对于代码和数学基准测试,HumanEval-Mul数据集涵盖了八种主流编程语言(Python、Java、C++、C#、JavaScript、TypeScript、PHP和Bash)。LiveCodeBench上的模型性能使用CoT格式评估,数据收集于2024年8月至2025年1月之间。Codeforces数据集使用来自10场Div. 2竞赛的问题以及专家设计的测试用例进行评估,之后计算预期评分和参赛者百分比。SWE-Bench的验证结果是通过无代理框架(Xia等,2024)获得的。与AIDER相关的基准测试使用“diff”格式测量。DeepSeek-R1的输出针对每个基准测试被限制在最多32,768个标记。

基线 我们与几个强大的基线进行了全面评估,包括DeepSeek-V3、Claude-Sonnet-3.5-1022、GPT-4o-0513、OpenAI-o1-mini和OpenAI-o1-1217。由于在中国大陆访问OpenAI-o1-1217 API具有挑战性,我们基于官方报告报告了其性能。对于蒸馏后的模型,我们还与开源模型QwQ-32B-Preview(Qwen,2024a)进行了比较。

评估设置 我们将模型的最大生成长度设置为32,768个标记。我们发现,使用贪婪解码评估长输出推理模型会导致更高的重复率,并且不同检查点之间的差异性显著。因此,我们默认使用pass@k评估(Chen等,2021),并使用非零温度报告pass@1。具体而言,我们使用0.6的采样温度和0.95的top-p值,为每个问题生成k个响应(通常根据测试集大小在4到64之间)。然后,pass@1计算为:

pass@1  = 1 k ∑ i = 1 k p i , \text { pass@1 }=\frac{1}{k} \sum_{i=1}^{k} p_{i},  pass@1 =k1i=1kpi

其中, p i p_{i} pi表示第i个响应的正确性。这种方法提供了更可靠的性能估计。对于AIME 2024,我们还报告了使用64个样本的一致性(多数投票)结果(Wang等,2022),表示为cons@64。

对于MMLU、MMLU-Pro和GPQA Diamond等教育导向的知识基准测试,DeepSeek-R1相比DeepSeek-V3展现出了卓越的性能。这一提升主要归因于在STEM相关问题上准确度的增强,这些问题通过大规模强化学习取得了显著进步。此外,DeepSeek-R1在FRAMES这一长上下文依赖的问答任务上表现突出,展示了其强大的文档分析能力。这凸显了推理模型在AI驱动的搜索和数据分析任务中的潜力。在事实基准测试SimpleQA上,DeepSeek-R1的表现优于DeepSeek-V3,证明了其处理基于事实查询的能力。类似地,OpenAI-o1在这一基准测试上也超越了GPT-4o。然而,在中文SimpleQA基准测试上,DeepSeek-R1的表现不如DeepSeek-V3,这主要是因为它在安全强化学习后倾向于拒绝回答某些查询。如果不进行安全强化学习,DeepSeek-R1的准确度可以超过70%。
在这里插入图片描述

DeepSeek-R1在IF-Eval这一旨在评估模型遵循格式指令能力的基准测试上也取得了令人瞩目的成绩。这些改进与监督微调(SFT)和强化学习训练最终阶段纳入遵循指令的数据有关。此外,在AlpacaEval2.0和ArenaHard上观察到的卓越表现,表明了DeepSeek-R1在写作任务和开放领域问答方面的优势。DeepSeek-R1相较于DeepSeek-V3的显著超越,凸显了大规模强化学习的泛化优势,这不仅提升了推理能力,还提高了在不同领域的性能。此外,DeepSeek-R1生成的摘要长度简洁,在ArenaHard上平均689个标记,在AlpacaEval 2.0上平均2218个字符。这表明DeepSeek-R1在基于GPT的评估中避免了引入长度偏差,进一步巩固了其在多项任务中的稳健性。

在数学任务上,DeepSeek-R1的表现与OpenAI-o1-1217相当,远超其他模型。在编程算法任务(如LiveCodeBench和Codeforces)上也观察到类似趋势,这些基准测试以推理为重点的模型占据主导地位。在工程导向的编程任务上,OpenAI-o1-1217在Aider上表现优于DeepSeek-R1,但在SWE Verified上表现相当。我们相信,随着相关强化学习训练数据的增加,DeepSeek-R1的工程性能将在下一版本中有所提升。
在这里插入图片描述

3.2、蒸馏模型评估(Distilled Model Evaluation)

如表5所示,仅通过蒸馏DeepSeek-R1的输出,就能使高效的DeepSeek-R1-7B(即DeepSeek-R1-Distill-Qwen-7B,下文简称同)在各方面超越非推理模型GPT-4o-0513。DeepSeek-R1-14B在所有评估指标上都超越了QwQ-32BPreview,而DeepSeek-R1-32B和DeepSeek-R1-70B在大多数基准测试上显著超越了o1-mini。这些结果展示了蒸馏的巨大潜力。此外,我们发现对这些蒸馏后的模型应用强化学习可以获得进一步的显著收益。我们认为这值得进一步探索,因此这里只展示了简单SFT蒸馏模型的结果。

4、讨论

4.1、蒸馏与强化学习

在3.2节中,我们可以看到,通过蒸馏DeepSeek-R1,小模型可以取得令人印象深刻的结果。然而,还有一个问题:模型是否可以通过本文讨论的大规模强化学习训练而无需蒸馏来达到相当的性能?
在这里插入图片描述

为了回答这个问题,我们使用数学、代码和STEM数据对Qwen-32B-Base进行了大规模强化学习训练,训练步数超过10K步,从而得到了DeepSeek-R1-Zero-Qwen-32B。如表6所示的实验结果表明,32B基准模型在经过大规模强化学习训练后,性能与QwQ-32B-Preview相当。然而,从DeepSeek-R1蒸馏得到的DeepSeek-R1-Distill-Qwen-32B在所有基准测试上的表现都明显优于DeepSeek-R1-Zero-Qwen-32B。

因此,我们可以得出两个结论:第一,将更强大的模型蒸馏为较小的模型可以取得优异的结果,而依赖本文提及的大规模强化学习的小模型则需要巨大的计算能力,甚至可能无法达到蒸馏的性能。第二,虽然蒸馏策略既经济又有效,但要超越智能的界限,可能仍然需要更强大的基准模型和更大规模的强化学习。

4.2、失败的尝试

在开发DeepSeek-R1的早期阶段,我们也遇到了失败和挫折。我们在此分享失败的经验,以提供见解,但这并不意味着这些方法无法开发出有效的推理模型。

过程奖励模型(PRM) PRM是一种引导模型采用更好的方法来解决推理任务的合理方法(Lightman等,2023;Uesato等,2022;Wang等,2023)。然而,在实际应用中,PRM存在三个主要局限性,可能会阻碍其最终成功。首先,在一般推理中明确定义一个细粒度的步骤是具有挑战性的。其次,判断当前中间步骤是否正确是一项艰巨的任务。使用模型进行自动标注可能无法取得令人满意的结果,而手动标注则不利于规模扩展。第三,一旦引入基于模型的PRM,就不可避免地会导致奖励黑客攻击(Gao等,2022),并且重新训练奖励模型需要额外的训练资源,并使整个训练流程复杂化。总之,虽然PRM表现出对模型生成的前N个回答进行重新排序或辅助引导搜索的良好能力(Snell等,2024),但与我们实验中的大规模强化学习过程引入的额外计算开销相比,其优势有限。

蒙特卡洛树搜索(MCTS) 受AlphaGo(Silver等,2017b)和AlphaZero(Silver等,2017a)的启发,我们探索了使用蒙特卡洛树搜索(MCTS)来增强测试时的计算可扩展性。这种方法涉及将答案分解为更小的部分,以便模型可以系统地探索解空间。为了促进这一点,我们提示模型生成与搜索所需的特定推理步骤相对应的多个标签。对于训练,我们首先使用收集的提示通过由预训练价值模型指导的MCTS来找到答案。然后,我们使用生成的问题-答案对来训练演员模型和价值模型,迭代地改进该过程。

然而,当扩大训练规模时,这种方法遇到了几个挑战。首先,与搜索空间相对明确的国际象棋不同,标记生成呈现出一个指数级更大的搜索空间。为了解决这个问题,我们为每个节点设置了最大扩展限制,但这可能导致模型陷入局部最优。其次,价值模型直接影响生成的质量,因为它指导搜索过程的每一步。训练一个细粒度的价值模型本身就是困难的,这使得模型难以迭代改进。虽然AlphaGo的核心成功依赖于训练价值模型来逐步提高其性能,但由于标记生成的复杂性,这一原则在我们的设置中难以复制。

总之,虽然MCTS可以与预训练的价值模型配对,在推理时提高性能,但通过自我搜索迭代提升模型性能仍然是一个重大挑战。

5、结论、局限性和未来工作

在这项工作中,我们分享了通过强化学习增强模型推理能力的历程。DeepSeek-R1-Zero代表了一种不依赖冷启动数据的纯强化学习方法,在各种任务中取得了强劲性能。DeepSeek-R1更加强大,它结合了冷启动数据和迭代强化学习微调。最终,DeepSeek-R1在一系列任务上的性能可与OpenAI-o1-1217相媲美。

我们还进一步探索了将推理能力蒸馏到小型密集模型的方法。我们使用DeepSeek-R1作为教师模型生成80万个训练样本,并对几个小型密集模型进行了微调。结果很有希望:在数学基准测试中,DeepSeek-R1-Distill-Qwen-1.5B在AIME上达到28.9%,在MATH上达到83.9%,超过了GPT-4o和Claude-3.5-Sonnet。其他密集模型也取得了令人印象深刻的结果,显著优于基于相同底层检查点的其他指令调整模型。

在未来,我们计划对DeepSeek-R1进行以下方向的研究。

  • 通用能力:目前,DeepSeek-R1在函数调用、多轮对话、复杂角色扮演和JSON输出等任务上的能力不如DeepSeek-V3。展望未来,我们计划探索如何利用长CoT来增强这些领域的任务。
  • 语言混合:DeepSeek-R1目前针对中文和英文进行了优化,这可能导致在处理其他语言的查询时出现语言混合问题。例如,即使查询不是英文或中文,DeepSeek-R1也可能会使用英文进行推理和回复。我们旨在在未来的更新中解决这一局限性。
  • 提示工程:在评估DeepSeek-R1时,我们观察到它对提示很敏感。少样本提示会一致地降低其性能。因此,我们建议用户直接使用零样本设置来描述问题和指定输出格式,以获得最佳结果。
  • 软件工程任务:由于评估时间长,影响了强化学习过程的效率,因此大规模强化学习在软件工程任务中尚未得到广泛应用。因此,DeepSeek-R1在软件工程基准测试上并未表现出相对于DeepSeek-V3的巨大改进。未来版本将通过在软件工程数据上实施拒绝采样或在强化学习过程中融入异步评估来提高效率,从而解决这一问题。

相关文章:

DeepSeek-R1:通过强化学习激励大型语言模型(LLMs)的推理能力

摘要 我们推出了第一代推理模型&#xff1a;DeepSeek-R1-Zero和DeepSeek-R1。DeepSeek-R1-Zero是一个未经监督微调&#xff08;SFT&#xff09;作为初步步骤&#xff0c;而是通过大规模强化学习&#xff08;RL&#xff09;训练的模型&#xff0c;展现出卓越的推理能力。通过强…...

Node.js基础

浏览器知识 浏览器 个浏览器都内置了DOM、BOM等API函数&#xff0c;供浏览器中的Javascript调用。 每个浏览器都有对应的JavaScript解析引擎。 浏览器中的JavaScript环境 V8引擎负责解析和执行JavaScript代码 内置API是由运行环境提供的特殊接口&#xff0c;只能在所属的运…...

DeepSeek R1:中国AI黑马的崛起与挑战

在人工智能&#xff08;AI&#xff09;领域&#xff0c;大型语言模型&#xff08;LLMs&#xff09;正以迅猛之势重塑世界&#xff0c;其发展速度和影响力令人瞩目。近期&#xff0c;中国DeepSeek公司发布的DeepSeek R1模型&#xff0c;宛如一颗璀璨新星&#xff0c;凭借卓越的推…...

【JavaEE】_MVC架构与三层架构

目录 1. MVC架构 2. 三层架构 3. MVC架构与三层架构的对比 3.1 MVC与三层架构的对比 3.2 MVC与三层架构的共性 1. MVC架构 在前文已介绍关于SpringMAC的设计模式&#xff0c;详见下文&#xff1a; 【JavaEE】_Spring Web MVC简介-CSDN博客文章浏览阅读967次&#xff0c;点…...

对比DeepSeek、ChatGPT和Kimi的学术写作摘要能力

摘要 摘要是文章的精华&#xff0c;通常在200-250词左右。要包括研究的目的、方法、结果和结论。让AI工具作为某领域内资深的研究专家&#xff0c;编写摘要需要言简意赅&#xff0c;直接概括论文的核心&#xff0c;为读者提供快速了解的窗口。 下面我们使用DeepSeek、ChatGPT…...

ts 进阶

吴悠讲编程 : 20分钟TypeScript进阶&#xff01;无废话快速提升水平 前端速看 https://www.bilibili.com/video/BV1q64y1j7aH...

Kubernetes(一)

Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;已经成为现代云原生应用的核心技术&#xff0c;主要应用于对容器化应用程序的自动化部署、扩展以及管理。k8s配备了一组核心组件以及一系列功能&#xff0c;这些组件能够实现容器的调度、负载均…...

Python里的小整数问题挺有意思的

简单来说&#xff0c;Python为了优化性能&#xff0c;会把一些常用的整数&#xff08;通常是-5到256&#xff09;提前创建好&#xff0c;放到一个“缓存池”里。这样&#xff0c;当你用到这些小整数时&#xff0c;Python就不用每次都重新创建对象了&#xff0c;直接从缓存池里拿…...

基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结

title: 基于 Jenkins 的测试报告获取与处理并写入 Jira Wiki 的技术总结 tags: - jenkins - python categories: - jenkins在软件开发的持续集成与持续交付&#xff08;CI/CD&#xff09;流程里&#xff0c;及时、准确地获取并分析测试报告对保障软件质量至关重要。本文将详细…...

java.util.Random类(详细案例拆解)(已完结)

前言&#xff1a; 小编打算近期更俩三期类的专栏&#xff0c;一些常用的专集类&#xff0c;给大家分好类别总结和详细的代码举例解释。 今天是除夕&#xff0c;小编先祝贺大家除夕快乐啦&#xff01;&#xff01; 今天是第六个 java.lang.Math 包中的 java.util.Random类 我…...

CMake常用命令指南(CMakeList.txt)

CMakeList从入门到精通的文章有很多不再赘述&#xff08; 此处附带一篇优秀的博文链接&#xff1a;一个简单例子&#xff0c;完全入门CMake语法与CMakeList编写 &#xff09;。 本文主要列举 CMake 中常用命令的详细说明、优缺点分析以及推荐做法&#xff0c;以更好地理解和灵…...

Mybatis是如何进行分页的?

大家好&#xff0c;我是锋哥。今天分享关于【Mybatis是如何进行分页的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Mybatis是如何进行分页的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 实现分页的方式有很多种&#xff0c;最常见…...

推动知识共享的在线知识库实施与优化指南

内容概要 在当今迅速发展的数字化时代&#xff0c;在线知识库的实施显得尤为重要。它不仅为企业提供了高效的信息存储与共享平台&#xff0c;还能够有效促进团队成员之间的协作与知识传递。通过集中管理企业内的各类知识资源&#xff0c;在线知识库帮助员工快速查找所需信息&a…...

【最后203篇系列】007 使用APS搭建本地定时任务

说明 最大的好处是方便。 其实所有任务的源头&#xff0c;应该都是通过定时的方式&#xff0c;在每个时隙发起轮询。当然在任务的后续传递中&#xff0c;可以通过CallBack或者WebHook的方式&#xff0c;以事件的形态进行。这样可以避免长任务执行的过程中进行等待和轮询。 总结…...

为AI聊天工具添加一个知识系统 之78 详细设计之19 正则表达式 之6

本文要点 要点 本项目设计的正则表达式 是一个 动态正则匹配框架。它是一个谓词系统&#xff1a;谓词 是运动&#xff0c;主语是“维度”&#xff0c;表语是 语言处理。主语的一个 双动结构。 Reg三大功能 语法验证、语义检查和 语用检验&#xff0c;三者 &#xff1a;语义约…...

三天急速通关JavaWeb基础知识:Day 1 后端基础知识

三天急速通关JavaWeb基础知识&#xff1a;Day 1 后端基础知识 0 文章说明1 Http1.1 介绍1.2 通信过程1.3 报文 Message1.3.1 请求报文 Request Message1.3.2 响应报文 Response Message 2 XML2.1 介绍2.2 利用Java解析XML 3 Tomcat3.1 介绍3.2 Tomcat的安装与配置3.3 Tomcat的项…...

代理模式 -- 学习笔记

代理模式学习笔记 什么是代理&#xff1f; 代理是一种设计模式&#xff0c;用户可以通过代理操作&#xff0c;而真正去进行处理的是我们的目标对象&#xff0c;代理可以在方法增强&#xff08;如&#xff1a;记录日志&#xff0c;添加事务&#xff0c;监控等&#xff09; 拿一…...

前端-Rollup

Rollup 是一个用于 JavaScript 的模块打包工具&#xff0c;它将小的代码片段编译成更大、更复杂的代码&#xff0c;例如库或应用程序。它使用 JavaScript 的 ES6 版本中包含的新标准化代码模块格式&#xff0c;而不是以前的 CommonJS 和 AMD 等特殊解决方案。ES 模块允许你自由…...

EtherCAT主站IGH-- 21 -- IGH之fsm_reboot.h/c文件解析

EtherCAT主站IGH-- 21 -- IGH之fsm_reboot.h/c文件解析 0 预览一 该文件功能`fsm_reboot.c` 文件功能函数预览二 函数功能介绍`fsm_reboot.c` 中主要函数的作用1. `ec_fsm_reboot_init`2. `ec_fsm_reboot_clear`3. `ec_fsm_reboot_single`4. `ec_fsm_reboot_all`5. `ec_fsm_reb…...

【NLP251】NLP RNN 系列网络

NLP251 系列主要记录从NLP基础网络结构到知识图谱的学习 &#xff11;.原理及网络结构 &#xff11;.&#xff11;&#xff32;&#xff2e;&#xff2e; 在Yoshua Bengio论文中( http://proceedings.mlr.press/v28/pascanu13.pdf )证明了梯度求导的一部分环节是一个指数模型…...

数据分析系列--④RapidMiner进行关联分析(案例)

一、核心概念 1.1项集&#xff08;Itemset&#xff09; 1.2规则&#xff08;Rule&#xff09; 1.3支持度&#xff08;Support&#xff09; 1.3.1 支持度的定义 1.3.2 支持度的意义 1.3.3 支持度的应用 1.3.4 支持度的示例 1.3.5 支持度的调整 1.3.6 支持度与其他指标的…...

深度学习:基于MindNLP的RAG应用开发

什么是RAG&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是一种结合检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generation&#xff09;的技术&#xff0c;旨在提升大语言模型&#xff08;LLM&#xff09;生…...

Hive安装教程

Hive安装教程 文章目录 Hive安装教程写在前面安装下载安装部署安装Hive启动并使用Hive MySQL安装检查当前系统是否安装过MySQL安装初始化数据库 Hive元数据配置到MySQL拷贝驱动配置Metastore到MySQL再次启动Hive 写在前面 Linux版本&#xff1a;CentOS7.5Hive版本&#xff1a;…...

安卓逆向之脱壳-认识一下动态加载 双亲委派(二)

一&#xff1a;动态加载与双亲委派模型 在 Java 和 Android 中&#xff0c;ClassLoader 是一个非常重要的组件&#xff0c;负责将 .class 文件或 .dex 文件的字节码加载到内存中&#xff0c;供程序使用。在这其中&#xff0c;有两种关键的概念需要深入理解&#xff1a;动态加载…...

全程Kali linux---CTFshow misc入门(14-24)

第十四题&#xff1a; dd命令&#xff1a;dd是一个用于复制和转换数据的命令&#xff0c;它可以对文件、设备等进行操作&#xff0c;在数据备份、转换格式等场景经常使用。 ifmisc14.jpg&#xff1a;if表示 “input file”&#xff08;输入文件&#xff09;&#xff0c;这里指…...

学习数据结构(3)顺序表

1.动态顺序表的实现 &#xff08;1&#xff09;初始化 &#xff08;2&#xff09;扩容 &#xff08;3&#xff09;头部插入 &#xff08;4&#xff09;尾部插入 &#xff08;5&#xff09;头部删除 &#xff08;这里注意要保证有效数据个数不为0&#xff09; &#xff08;6&a…...

知识体系、知识管理角度的赚钱思考

从知识管理和知识体系的角度出发&#xff0c;赚钱的问题思考清单可以帮助你系统地梳理和优化自己在财富创造方面的策略。 以下是一个详细的清单&#xff0c;涵盖从知识获取、技能提升到实际应用的各个环节&#xff0c;帮助你在赚钱的道路上更加高效和有条理。 一、赚钱的目标与…...

(done) ABI 相关知识补充:内核线程切换、用户线程切换、用户内核切换需要保存哪些寄存器?

由于操作系统和编译器约定了 ABI&#xff0c;如下&#xff1a; 编译器在对 C 语言编译时&#xff0c;会自动 caller 标注的寄存器进行保存恢复。保存的步骤通常发生在进入函数的时候&#xff0c;恢复的步骤通常发生在从函数返回的时候。 内核线程切换需要保存的寄存器&#…...

QT6 + CMAKE编译OPENCV3.9

参考文档 [1] https://blog.csdn.net/rjkf_css/article/details/135676077 前提条件 配置好相关运行环境&#xff1a;QT6、OPENCV3.9的sources文件 OPENCV下载网页&#xff1a;https://opencv.org/releases/ QT6下载教程&#xff1a;https://blog.csdn.net/caoshangpa/article…...

Linux 常用命令——系统设置篇(保姆级说明)

系统设置类 显示当前运行的进程&#xff08;ps&#xff09; ps [options] [--help]# 查找指定进程格式&#xff1a; ps -ef | grep 进程关键字# 显示进程信息 ps -A 参数&#xff1a; -A 列出所有的进程 -w 显示加宽可以显示较多的资讯 -au 显示较详细的资讯 -aux 显示所有包…...

完美世界前端面试题及参考答案

如何设置事件捕获和事件冒泡? 在 JavaScript 中,可以通过addEventListener方法来设置事件捕获和事件冒泡。该方法接收三个参数,第一个参数是事件类型,如click、mousedown等;第二个参数是事件处理函数;第三个参数是一个布尔值,用于指定是否使用事件捕获机制。当这个布尔值…...

Vue3笔记——(三)hooks、路由

015 hooks 作用&#xff1a;使得代码更加模块化和可维护 Person.vue <template><div><h2>当前求和{{ sum }}</h2><button click"addFn">点我sum1</button></div> </template> <script setup lang"ts"…...

网络安全大模型和人工智能场景及应用理解

本文通过通俗易懂的方式的进行阐述&#xff0c;大家读完觉得有帮助记得及时关注和点赞&#xff01;&#xff01;&#xff01; 一、网络安全大模型的概述 网络安全大模型是一种用于识别和应对各种网络安全威胁的模型。它通过分析网络数据包、网络行为等信息&#xff0c;识别潜在…...

python-leetcode-从中序与后序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right r…...

NLP模型大对比:Transformer > RNN > n-gram

结论 Transformer 大于 RNN 大于 传统的n-gram n-gram VS Transformer 我们可以用一个 图书馆查询 的类比来解释它们的差异&#xff1a; 一、核心差异对比 维度n-gram 模型Transformer工作方式固定窗口的"近视观察员"全局关联的"侦探"依赖距离只能看前…...

MySQL查询优化(三):深度解读 MySQL客户端和服务端协议

如果需要从 MySQL 服务端获得很高的性能&#xff0c;最佳的方式就是花时间研究 MySQL 优化和执行查询的机制。一旦理解了这些&#xff0c;大部分的查询优化是有据可循的&#xff0c;从而使得整个查询优化的过程更有逻辑性。下图展示了 MySQL 执行查询的过程&#xff1a; 客户端…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器

一、高级定时器简介 高级定时器的简介在前面一章已经介绍过&#xff0c;可以点击下面链接了解&#xff0c;在这里进行一些补充。 [STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器 1.1 功能简介 1、高级定时器可以向上/向下/两边计数&#xff0c;还独有一个重复计…...

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理&#xff0c;需要多层嵌套和处理默认事件和冒泡&#xff0c;具体实现过程直接上代码。 实现效果布局如下图 代码 <Formname"basic"form{form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish{on…...

固有频率与模态分析

目录 引言 1. 固有频率&#xff1a;物体的“天生节奏” 1.1 定义 1.2 关键特点 1.3 实际意义 2. 有限元中的模态分析&#xff1a;给结构“体检振动” 2.1 模态分析的意义 2.2 实际案例 2.2.1 桥梁模态分析 2.2.2 飞机机翼模态分析 2.2.3 具体事例 3. 模态分析的工具…...

视频多模态模型——视频版ViT

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》&#xff0c;2021由google 提出用于视频处理的视觉 Transformer 模型&#xff0c;在视频多模态领域有…...

2859.计算K置位下标对应元素的和

示例 1&#xff1a;输入&#xff1a;nums [5,10,1,5,2], k 1 输出&#xff1a;13 解释&#xff1a;下标的二进制表示是&#xff1a; 0 0002 1 0012 2 0102 3 0112 4 1002 下标 1、2 和 4 在其二进制表示中都存在 k 1 个置位。 因此&#xff0c;答案为 nums[1] nums[…...

Redis 教程

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 它通常被称为数据结构服务器&…...

2024 CVPR Highlight Learning-Feedback

图像增强 Towards Robust Event-guided Low-Light Image Enhancement: A Large-Scale Real-World Event-Image Dataset and Novel Approach 解决的主要问题是低光照条件下的图像增强 通过多尺度整体融合分支提取事件和图像的结构和纹理信息&#xff0c;并引入信噪比&#xff0…...

maven、npm、pip、yum官方镜像修改文档

文章目录 Maven阿里云网易华为腾讯云 Npm淘宝腾讯云 pip清华源阿里中科大华科 Yum 由于各博客繁杂&#xff0c;本文旨在记录各常见镜像官网&#xff0c;及其配置文档。常用镜像及配置可评论后加入 Maven 阿里云 官方文档 setting.xml <mirror><id>aliyunmaven&l…...

UE求职Demo开发日志#15 思路与任务梳理、找需要的资源

1 思路梳理 因为有点无从下手&#xff0c;就梳理下最终形态. 基地的建设我是想单独一个场景&#xff0c;同一个关卡中小怪会每次来都会刷&#xff0c;小解密一次性的&#xff0c;关键的Boss和精英怪不会重复刷&#xff0c;同时场景里放一些资源可收集&#xff0c;基地建设锁定区…...

设置jmeter外观颜色

设置jmeter外观颜色 方法&#xff1a; 步骤一、点击顶部选项 ->外观&#xff0c;这里提供了不同的主题&#xff0c;可选自己喜欢的风格。 步骤二、选择后&#xff0c;弹框提示点击Yes。...

《一文读懂!Q-learning状态-动作值函数的直观理解》

在人工智能的强化学习领域&#xff0c;Q-learning算法是一颗耀眼的明星&#xff0c;被广泛应用于机器人控制、游戏AI开发、自动驾驶等诸多前沿领域。而想要真正掌握Q-learning算法&#xff0c;理解其核心概念——状态 - 动作值函数&#xff0c;是绕不开的关键一步。这篇文章就带…...

Angular 2 表单深度解析

Angular 2 表单深度解析 引言 Angular 2作为现代前端开发的框架之一,以其灵活性和强大的功能赢得了众多开发者的青睐。在Angular 2中,表单处理是其中一个重要且复杂的部分。本文将深入解析Angular 2的表单,从基础知识到高级应用,旨在帮助开发者更好地理解和运用Angular 2…...

使用kitty terminal遇到的‘xterm-kitty‘: unknown terminal type.

解决办法 方式一 export TERMxterm-256color使永久生效 echo export TERMxterm-256color >> ~/.zshrc # 如果用 zsh&#xff0c;如果使用的是bash就修改为bashrc source ~/.zshrc #同理如果是ssh下遇到该问题&#xff0c;参考 https://sw.kovidgoyal.net/kitty/faq/…...

Dest1ny漏洞库:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好&#xff0c;今天是Dest1ny漏洞库的专题&#xff01;&#xff01; 会时不时发送新的漏洞资讯&#xff01;&#xff01; 大家多多关注&#xff0c;多多点赞&#xff01;&#xff01;&#xff01; 0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP&#xff0c;主要聚…...