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

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

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • DeepSeek大模型技术系列三
    • DeepSeek大模型技术系列三》DeepSeek-R1:通过强化学习激发大语言模型的推理能力
      • 更多技术内容
  • 总结

DeepSeek大模型技术系列三

DeepSeek大模型技术系列三》DeepSeek-R1:通过强化学习激发大语言模型的推理能力

摘要

DeepSeek-R1推理模型包括 DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规模强化学习(RL)训练的模型,无需将监督微调(SFT)作为初始步骤,展现出卓越的推理能力。通过强化学习,DeepSeek-R1-Zero 自然涌现出众多强大且有趣的推理行为。然而,它也面临一些挑战,如可读性差和语言混杂等问题。为解决这些问题并进一步提升推理性能,我们推出了 DeepSeek-R1,它在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1 在推理任务上的性能与 OpenAI-o1-1217 相当。为支持研究社区,我们开源了 DeepSeek-R1-Zero、DeepSeek-R1,以及基于 Qwen 和 Llama 从 DeepSeek-R1 中提炼出的六个密集模型(15 亿、70 亿、80 亿、140 亿、320 亿、700 亿参数)。
在这里插入图片描述
图 1 DeepSeek-R1 的基准测试性能
目录
1.引言 3
2.方法 5
2.1 概述 5
2.2 DeepSeek-R1-Zero:基于基础模型的强化学习 5
2.2.1 强化学习算法 5
2.2.2 奖励建模 6
2.2.3 训练模板 6
2.2.4 DeepSeek-R1-Zero 的性能、自我进化过程和顿悟时刻 6
2.3 DeepSeek-R1:冷启动强化学习 9
2.3.1 冷启动 9
2.3.2 面向推理的强化学习 10
2.3.3 拒绝采样和监督微调 10
2.3.4 全场景强化学习 11
2.4 蒸馏:赋予小模型推理能力 11
3.实验 11
3.1 DeepSeek-R1 评估 13
3.2 蒸馏模型评估 14
4.讨论 14
4.1 蒸馏与强化学习 14
4.2 失败尝试 15
5.结论、局限性和未来工作 16
附录 A 贡献和致谢 20
1. 引言

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

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

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

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

我们进一步探索了从 DeepSeek-R1 到较小密集模型的知识蒸馏。以 Qwen2.532B(Qwen, 2024b)为基础模型,直接从 DeepSeek-R1 进行蒸馏的效果优于在其基础上应用强化学习。这表明较大基础模型发现的推理模式对于提升推理能力至关重要。我们开源了经过蒸馏的 Qwen 和 Llama(Dubey 等人,2024)系列模型。值得注意的是,我们蒸馏得到的 140 亿参数模型在性能上大幅超越了之前最先进的开源模型 QwQ-32B-Preview(Qwen, 2024a),而蒸馏得到的 320 亿和 700 亿参数模型在密集模型的推理基准测试中创下了新纪录。
1.1 贡献
后训练:基于基础模型的大规模强化学习
我们直接在基础模型上应用强化学习,而不依赖监督微调(SFT)作为初始步骤。这种方法使模型能够探索思维链(CoT)来解决复杂问题,从而开发出 DeepSeek-R1-Zero。DeepSeek-R1-Zero 展现出自我验证、反思和生成长思维链等能力,为研究界树立了重要的里程碑。值得注意的是,这是首次通过公开研究验证大语言模型的推理能力可以纯粹通过强化学习激发,而无需监督微调。这一突破为该领域未来的发展铺平了道路。
我们介绍了开发 DeepSeek-R1 的流程。该流程包含两个强化学习阶段,旨在发现更好的推理模式并符合人类偏好,还包含两个监督微调阶段,为模型的推理和非推理能力奠定基础。我们相信这一流程将有助于创建更优秀的模型,使整个行业受益。
蒸馏:小模型也能强大
我们证明了可以将大模型的推理模式蒸馏到小模型中,与小模型通过强化学习发现的推理模式相比,能带来更好的性能提升。开源的 DeepSeek-R1 及其 API 将有助于研究社区在未来蒸馏出更出色的小模型。
我们使用 DeepSeek-R1 生成的推理数据对研究社区中广泛使用的几个密集模型进行微调。评估结果表明,蒸馏得到的较小密集模型在基准测试中表现优异。DeepSeek-R1-Distill-Qwen-7B 在 2024 年 AIME 上的得分为 55.5%,超过了 QwQ-32B-Preview。此外,DeepSeek-R1-Distill-Qwen-32B 在 2024 年 AIME 上的得分达到 72.6%,在 MATH-500 上达到 94.3%,在 LiveCodeBench 上达到 57.2%。这些结果显著优于之前的开源模型,与 o1-mini 相当。我们向社区开源了基于 Qwen2.5 和 Llama3 系列的 15 亿、70 亿、80 亿、140 亿、320 亿和 700 亿参数的蒸馏检查点。
1.2 评估结果总结
推理任务:(1)DeepSeek-R1 在 2024 年 AIME 上的单次通过率(Pass@1)达到 79.8%,略高于 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 等基准测试中,DeepSeek-R1 取得了出色的成绩,在 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 也超过了 GPT-4o,呈现出类似的趋势。
其他:DeepSeek-R1 在广泛的任务中也表现出色,包括创意写作、通用问答、编辑、总结等。它在 AlpacaEval 2.0 上的长度控制胜率达到 87.6%,在 ArenaHard 上的胜率为 92.3%,展示了其智能处理非考试类查询的强大能力。此外,DeepSeek-R1 在需要长上下文理解的任务中表现突出,在长上下文基准测试中大幅超越 DeepSeek-V3。
2. 方法
2.1 概述

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

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

为节省强化学习的训练成本,我们采用组相对策略优化(GRPO)(Shao 等人,2024)。该方法摒弃了通常与策略模型大小相同的价值评估模型,而是从组得分中估计基线。具体来说,对于每个问题 q,GRPO 从旧策略中采样一组输出,然后通过最大化以下目标来优化策略模型:
在这里插入图片描述
其中和是超参数,是优势值,通过计算每组输出对应的一组奖励得到:
在这里插入图片描述
———————————————————————————————
用户与助手进行对话。用户提出问题,助手进行解答。助手先在脑海中思考推理过程,然后为用户提供答案。推理过程和答案分别包含在 和 标签内,即 此处为推理过程 此处为答案 。用户:提示。助手:
———————————————————————————————
**表 1 DeepSeek-R1-Zero 的模板。**训练期间,提示将被具体的推理问题替换。
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 在 2024 年 AIME 基准测试中,整个强化学习训练过程的性能变化轨迹。可以看出,随着强化学习训练的推进,DeepSeek-R1-Zero 的性能稳步提升。值得注意的是,2024 年 AIME 上的平均单次通过率(pass@1)显著提高,从最初的 15.6% 跃升至令人瞩目的 71.0%,达到了与 OpenAI-o1-0912 相当的性能水平。这一显著改进凸显了我们的强化学习算法在优化模型性能方面的有效性。
在这里插入图片描述
**表 2 对 DeepSeek-R1-Zero 和 OpenAI 的 o1-0912 模型在各种推理相关基准测试中的表现进行了对比分析。**结果显示,强化学习使 DeepSeek-R1-Zero 在无需任何监督微调数据的情况下,获得了强大的推理能力。这是一项值得关注的成就,它强调了该模型仅通过强化学习就能有效学习和泛化的能力。此外,通过多数投票,DeepSeek-R1-Zero 的性能还能进一步提升。例如,在 AIME 基准测试中采用多数投票时,其性能从 71.0% 提升到 86.7%,超过了 OpenAI-o1-0912 的性能。无论是否采用多数投票,DeepSeek-R1-Zero 都能取得具有竞争力的性能,这突出了其强大的基础能力以及在推理任务中进一步提升的潜力。
在这里插入图片描述
图 2 DeepSeek-R1-Zero 在训练期间 AIME 准确率。对于每个问题,我们采样 16 个回答并计算总体平均准确率,以确保评估稳定。

DeepSeek-R1-Zero 的自我进化过程:DeepSeek-R1-Zero 的自我进化过程充分展示了强化学习如何驱动模型自主提升推理能力。通过直接从基础模型启动强化学习,我们可以在不受监督微调阶段影响的情况下,密切监测模型的发展。这种方法清晰地呈现了模型随时间的演变,尤其是在处理复杂推理任务的能力方面。如图 3 所示,DeepSeek-R1-Zero 的思考时间在整个训练过程中持续改善。这种改善并非外部调整的结果,而是模型内部自然发展的体现。DeepSeek-R1-Zero 通过利用更长的测试时计算,自然而然地获得了解决日益复杂推理任务的能力。其计算过程能够生成数百到数千个推理标记,使模型能够更深入地探索和完善其思维过程。这种自我进化中最显著的特点之一,是随着测试时计算量的增加,复杂行为的出现。例如,模型会进行反思 —— 回顾并重新评估之前的步骤,还会自发地探索解决问题的替代方法。这些行为并非预先编程设定,而是模型与强化学习环境交互的结果。这种自发发展显著提升了 DeepSeek-R1-Zero 的推理能力,使其能够更高效、准确地处理更具挑战性的任务。
在这里插入图片描述

图 3 DeepSeek-R1-Zero 在强化学习过程中训练集上每个回复的平均长度。DeepSeek-R1-Zero 自然学会用更多思考时间来解决推理任务
DeepSeek-R1-Zero 的顿悟时刻:在训练 DeepSeek-R1-Zero 期间,一个特别有趣的现象是 “顿悟时刻” 的出现。如表 3 所示,这个时刻出现在模型的一个中间版本中。在这个阶段,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)我们如何训练一个对用户友好的模型,使其不仅能生成清晰连贯的思维链(CoT),还能展示出强大的通用能力?为了解决这些问题,我们设计了一个训练 DeepSeek-R1 的流程。该流程包含四个阶段,具体如下。
2.3.1 冷启动

与 DeepSeek-R1-Zero 不同,为了避免强化学习训练从基础模型开始时早期不稳定的冷启动阶段,对于 DeepSeek-R1,我们构建并收集了少量长思维链数据,用于微调模型,作为初始强化学习的起始点。为了收集此类数据,我们探索了几种方法:使用带有长思维链示例的少样本提示、直接提示模型生成带有反思和验证的详细答案、收集格式易读的 DeepSeek-R1-Zero 输出,以及通过人工标注进行后处理来优化结果。在这项工作中,我们收集了数千条冷启动数据,对 DeepSeek-V3-Base 进行微调,作为强化学习的起点。与 DeepSeek-R1-Zero 相比,冷启动数据的优势包括:

可读性:DeepSeek-R1-Zero 的一个关键限制是其内容通常不适合阅读。回复可能会混合多种语言,或者缺少用于突出答案的 Markdown 格式,不方便用户查看。相比之下,在为 DeepSeek-R1 创建冷启动数据时,我们设计了一种易读模式,在每个回复的结尾包含一个总结,并过滤掉不便于阅读的回复。这里,我们将输出格式定义为 | 特殊标记 |<推理过程>| 特殊标记 |< 总结 >,其中推理过程是针对查询的思维链,总结用于概括推理结果。
潜力:通过结合人类先验知识精心设计冷启动数据的模式,我们观察到其性能优于 DeepSeek-R1-Zero。我们认为迭代训练对于推理模型来说是一种更好的方式。
2.3.2 面向推理的强化学习

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

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

推理数据:我们整理推理提示,并通过对上述强化学习训练的检查点进行拒绝采样来生成推理轨迹。在之前的阶段,我们只纳入了可以使用基于规则的奖励进行评估的数据。然而,在这个阶段,我们通过纳入更多数据来扩展数据集,其中一些数据使用生成式奖励模型,将真实答案和模型预测输入 DeepSeek-V3 进行判断。此外,由于模型输出有时混乱且难以阅读,我们过滤掉了语言混杂的思维链、冗长的段落和代码块。对于每个提示,我们采样多个回复,只保留正确的回复。总共,我们收集了约 60 万个与推理相关的训练样本。
非推理数据:对于非推理数据,如写作、事实性问答、自我认知和翻译,我们采用 DeepSeek-V3 的流程,并复用 DeepSeek-V3 的部分监督微调数据集。对于某些非推理任务,在回答问题前,我们通过提示调用 DeepSeek-V3 生成潜在的思维链。然而,对于像 “你好” 这样简单的查询,我们不提供思维链作为回复。最后,我们总共收集了约 20 万个与推理无关的训练样本。

我们使用上述整理的约 80 万个样本的数据集,对 DeepSeek-V3-Base 进行两个轮次的微调。
2.3.4 全场景强化学习

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

为了让更高效的小模型具备类似 DeepSeek-R1 的推理能力,我们使用在 2.3.3 节中整理的 80 万个样本,直接对 Qwen(Qwen, 2024b)和 Llama(AI@Meta, 2024)等开源模型进行微调。我们的研究结果表明,这种简单的蒸馏方法显著提升了小模型的推理能力。这里我们使用的基础模型有 Qwen2.5-Math-15 亿、Qwen2.5-Math-70 亿、Qwen2.5-140 亿、Qwen2.5-320 亿、Llama-3.1-80 亿和 Llama-3.3-700 亿 - Instruct。我们选择 Llama-3.3 是因为其推理能力略优于 Llama-3.1。

对于蒸馏后的模型,我们仅应用监督微调,不包括强化学习阶段,尽管加入强化学习可以大幅提升模型性能。我们这里的主要目标是展示蒸馏技术的有效性,将强化学习阶段的探索留给更广泛的研究社区。
3. 实验
3.1 DeepSeek-R1 评估

在这里插入图片描述

表 4 | DeepSeek-R1 与其他代表性模型的对比
我们在多个基准测试中对模型进行评估,包括 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)。除了标准基准测试,我们还使用大语言模型作为评判者,在开放式生成任务中评估我们的模型。具体来说,我们遵循 AlpacaEval 2.0(Dubois 等人,2024)和 Arena-Hard(Li 等人,2024)的原始配置,它们使用 GPT-4-Turbo-1106 作为评判者进行两两比较。这里,我们仅将最终总结输入评估,以避免长度偏差。对于蒸馏模型,我们报告在 AIME 2024、MATH-500、GPQA Diamond、Codeforces 和 LiveCodeBench 上的代表性结果。
3.2 蒸馏模型评估
在这里插入图片描述

表 5 | DeepSeek-R1 蒸馏模型与其他可对比模型在推理相关基准测试中的比较
评估提示:遵循 DeepSeek-V3 的设置,MMLU、DROP、GPQA Diamond 和 SimpleQA 等标准基准测试使用 simpleevals 框架中的提示进行评估。对于 MMLU-Redux,我们在零样本设置下采用 Zero-Eval 提示格式(Lin, 2024)。对于 MMLU-Pro、C-Eval 和 CLUE-WSC,由于原始提示是少样本的,我们将提示略微修改为零样本设置。少样本中的思维链可能会损害 DeepSeek-R1 的性能。其他数据集遵循其原始评估协议,使用创建者提供的默认提示。对于代码和数学基准测试,HumanEval-Mul 数据集涵盖八种主流编程语言(Python、Java、C++、C#、JavaScript、TypeScript、PHP 和 Bash)。在 LiveCodeBench 上,模型性能使用思维链格式进行评估,数据收集于 2024 年 8 月至 2025 年 1 月之间。Codeforces 数据集使用 10 场 Div.2 竞赛的问题以及专家精心设计的测试用例进行评估,之后计算预期评级和参赛者百分比。SWE-Bench verified 的结果通过无代理框架(Xia 等人,2024)获得。AIDER 相关基准测试使用 “diff” 格式进行测量。每个基准测试中,DeepSeek-R1 的输出最多限制为 32768 个标记。
基线:我们与几个强大的基线模型进行全面评估对比,包括 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)进行比较。
评估设置:我们将模型的最大生成长度设置为 32768 个标记。我们发现,使用贪心解码评估长输出推理模型会导致较高的重复率,并且不同检查点之间差异显著。因此,我们默认采用 pass@k 评估(Chen 等人,2021),并使用非零温度报告 pass@1。具体来说,我们使用 0.6 的采样温度和 0.95 的 top-P 值为每个问题生成 k 个回复(通常在 4 到 64 之间,具体取决于测试集大小)。然后,pass@1 的计算方式为,其中表示第 i 个回复的正确性。这种方法能提供更可靠的性能估计。对于 2024 年 AIME,我们还报告使用 64 个样本的共识(多数投票)结果(Wang 等人,2022),表示为 cons@64。
4. 讨论
4.1 蒸馏与强化学习
在这里插入图片描述

表 6 | 蒸馏模型和强化学习模型在推理相关基准测试中的比较
在 3.2 节中,我们可以看到通过蒸馏 DeepSeek-R1,小模型能取得令人瞩目的结果。然而,仍有一个问题:模型能否通过本文中讨论的大规模强化学习训练,在不进行蒸馏的情况下达到可比的性能?为了回答这个问题,我们使用数学、代码和 STEM 数据对 Qwen-32B-Base 进行大规模强化学习训练,训练步数超过 10000 步,得到 DeepSeek-R1-Zero-Qwen-32B。实验结果如表 6 所示,经过大规模强化学习训练的 320 亿参数基础模型,性能与 QwQ-32B-Preview 相当。然而,从 DeepSeek-R1 蒸馏得到的 DeepSeek-R1-Distill-Qwen-32B 在所有基准测试中的表现都明显优于 DeepSeek-R1-Zero-Qwen-32B。
因此,我们可以得出两个结论:第一,将更强的模型蒸馏到小模型中能产生出色的效果,而依赖本文中提到的大规模强化学习的小模型,需要巨大的计算资源,甚至可能无法达到蒸馏的性能。第二,虽然蒸馏策略既经济又有效,但要突破智能的边界,可能仍然需要更强大的基础模型和大规模强化学习。
4.2 失败尝试
在开发 DeepSeek-R1 的早期阶段,我们也经历了失败和挫折。我们在此分享这些失败经验,以提供见解,但这并不意味着这些方法无法开发出有效的推理模型。
过程奖励模型(PRM):过程奖励模型是引导模型采用更好的方法解决推理任务的合理手段(Lightman 等人,2023; Uesato 等人,2022; Wang 等人,2023)。然而在实践中,PRM 存在三个主要限制,可能会阻碍其最终成功。第一,在一般推理中,明确界定细粒度的步骤具有挑战性。第二,判断当前中间步骤是否正确是一项艰巨的任务。使用模型进行自动标注可能无法获得令人满意的结果,而手动标注不利于大规模应用。第三,一旦引入基于模型的 PRM,不可避免地会导致奖励作弊(Gao 等人,2022),重新训练奖励模型需要额外的训练资源,并且会使整个训练流程变得复杂。总之,虽然 PRM 在对模型生成的前 N 个回复进行重新排序或辅助引导搜索方面(Snell 等人,2024)表现出良好的能力,但在我们的实验中,与大规模强化学习过程中引入的额外计算开销相比,其优势有限。
蒙特卡洛树搜索(MCTS):受 AlphaGo(Silver 等人,2017b)和 AlphaZero(Silver 等人,2017a)的启发,我们探索使用蒙特卡洛树搜索(MCTS)来提高测试时计算的可扩展性。这种方法将答案分解为较小的部分,使模型能够系统地探索解空间。为了实现这一点,我们提示模型生成多个与搜索所需的特定推理
步骤相对应的标签。在训练时,我们首先使用收集到的提示,通过由预训练价值模型引导的蒙特卡洛树搜索来寻找答案。随后,我们使用得到的问答对来训练策略模型和价值模型,不断迭代优化这个过程。

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

总之,虽然蒙特卡洛树搜索在与预训练价值模型结合时可以在推理过程中提高性能,但通过自我搜索迭代提升模型性能仍然是一个巨大的挑战。
5. 结论、局限性和未来工作

在这项工作中,我们分享了通过强化学习提升模型推理能力的研究历程。DeepSeek - R1 - Zero 代表了一种纯粹的强化学习方法,不依赖冷启动数据,在各种任务中都取得了很强的性能。DeepSeek - R1 则更强大,它利用冷启动数据以及迭代的强化学习微调。最终,DeepSeek - R1 在一系列任务上的性能与 OpenAI - o1 - 1217 相当。

我们进一步探索了将推理能力蒸馏到小密集模型中。我们使用 DeepSeek - R1 作为教师模型生成 80 万个训练样本,并对几个小密集模型进行微调。结果很有前景:DeepSeek - R1 - Distill - Qwen - 15 亿在数学基准测试中表现优于 GPT - 4o 和 Claude - 3.5 - Sonnet,在 AIME 上得分为 28.9%,在 MATH 上得分为 83.9% 。其他密集模型也取得了令人瞩目的成绩,显著超越了基于相同基础检查点的其他指令微调模型。

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

更多技术内容

更多技术内容可参见
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】书籍。
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。

【配套视频】

推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】
视频特色:把目前互联网热门、前沿的项目实战汇聚一堂,通过真实的项目实战课程,让你快速成为算法总监、架构师、技术负责人!包含了推荐系统、智能问答、人脸识别等前沿的精品课程,下面分别介绍各个实战项目:
1、推荐算法系统实战
听完此课,可以实现一个完整的推荐系统!下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目!
2、智能问答/对话机器人实战
由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程!
3、人脸识别实战
从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向,从理论到源码实战、再到服务器操作给大家深度讲解!

自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

人工智能《分布式机器学习实战》 视频教程【陈敬雷】
视频特色:视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)。

上一篇:DeepSeek大模型技术系列一》DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型
下一篇:DeepSeek大模型技术系列三》DeepSeek大模型基础设施全解析:支撑万亿参数模型的幕后英雄

相关文章:

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

注&#xff1a;此文章内容均节选自充电了么创始人&#xff0c;CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》&#xff08;人工智能科学与技术丛书&#xff09;【陈敬雷编著】【清华大学出版社】 文章目录 DeepSeek大模型技术系列三DeepSeek大模型技术系列三》DeepSeek-…...

002 docker安装rocketmq

docker search rocketmq#拉取镜像 docker pull foxiswho/rocketmq:server-4.3.2 docker pull foxiswho/rocketmq:broker-4.3.2 #创建nameserver容器 docker create -p 9876:9876 --name rmqserver \ -e "JAVA_OPT_EXT-server -Xms128m -Xmx128m -Xmn128m" \ -e "…...

算法训练(leetcode)二刷第三十七天 | *300. 最长递增子序列、674. 最长连续递增序列、*718. 最长重复子数组

刷题记录 *300. 最长递增子序列674. 最长连续递增序列基础解法&#xff08;非动规&#xff09;动态规划 718. 最长重复子数组滚动数组 *300. 最长递增子序列 leetcode题目地址 dp数组含义&#xff1a; dp[i]表示以nums[i]结尾的最长递增子序列长度&#xff0c;即以nums[i]结尾…...

LSTM长短期记忆网络-原理分析

1 简介 概念 LSTM&#xff08;Long Short-Term Memory&#xff09;也称为长短期记忆网络&#xff0c;是一种改进的循环神经网络&#xff08;RNN&#xff09;&#xff0c;专门设计用于解决传统RNN的梯度消失问题和长程依赖问题。LSTM通过引入门机制和细胞状态&#xff0c;能够更…...

Java 面试题 20250227

Java 中序列化与反序列化是什么&#xff1f; 序列化&#xff1a;将 Java 对象转化成可传输的字节序列格式&#xff08;字节流、JSON、XML&#xff09;&#xff0c;以便于传输和存储。 反序列化&#xff1a;将字节序列格式数据转化成 Java 对象的过程。 1、为什么需要序列化和…...

Spring事务失效六大场景

引言 Spring事务一般我们采用注解实现&#xff0c;但是我们构造事务实现的时候常常没察觉失效的情况&#xff0c;本篇文章总结事务失效的六大情况&#xff0c;帮助我们深刻理解事务失效的边界概念 1. 方法自调用 这个主要是针对声明式事务的&#xff0c;经过前面的介绍&…...

C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化

欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 1、本节实现的内容 上一节课,我们在Blend软件中导出经纬球模型时,遇到了经纬球法线导致我们在游戏中模型光照显示问题,我们在Blender软件中可以通过…...

Python游戏编程之赛车游戏6-2

3.2 move()方法的定义 Player类的move()方法用于玩家控制汽车左右移动&#xff0c;当玩家点击键盘上的左右按键时&#xff0c;汽车会相应地进行左右移动。 move()方法的代码如图7所示。 图7 move()方法的代码 其中&#xff0c;第20行代码通过pygame.key.get_pressed()函数获…...

Vxe UI 根据vxe-tabs 绑定不同的值,渲染生成不同的 tabls(页签)内容

VxeUI tabs控件&#xff0c;根据绑定不同的内容&#xff0c;动态渲染不同的表格数据放置在不同的 tab 页 效果图如下&#xff1a; 代码实现 <template><vxe-tabs :options"detailTabList"><vxe-tab-pane v-for"(item, index) in detailTabList&…...

Element Plus中el-select选择器的下拉选项列表的样式设置

el-select选择器&#xff0c;默认样式效果&#xff1a; 通过 * { margin: 0; padding: 0; } 去掉内外边距后的样式效果&#xff08;样式变丑了&#xff09;&#xff1a; 通过 popper-class 自定义类名修改下拉选项列表样式 el-select 标签设置 popper-class"custom-se…...

YOLOv11-ultralytics-8.3.67部分代码阅读笔记-train.py

train.py ultralytics\models\yolo\detect\train.py 目录 train.py 1.所需的库和模块 2.class DetectionTrainer(BaseTrainer): 1.所需的库和模块 # Ultralytics &#x1f680; AGPL-3.0 License - https://ultralytics.com/licenseimport math import random from copy…...

PR 安装包 2018-2024(Win,Mac)文中为使用技巧和教程

下载链接&#xff1a;https://pan.baidu.com/s/1LLv1tSXJxUcv6iOlcAHJEg?pwd1234 导语&#xff1a;Adobe Premiere Pro以98%的行业覆盖率和跨平台协作能力&#xff0c;稳居2025年视频剪辑工具榜首。本文涵盖基础配置、核心剪辑、高级调色、效率革命、企业级实战五大模块&…...

请求Geoserver的WTMS服务返回200不返回图片问题-跨域导致

今天碰到个奇怪问题&#xff0c;改了个页面标题再打包布署GeoServer发现调用WTMS服务失败&#xff0c;请求返回状态码200&#xff0c;返回包大小0&#xff0c;使用postman模拟请求是可以正常返回图片的。 跟之前版本对比如下&#xff1a; 正常Response请求: HTTP/1.1 200X-Fr…...

TCP基本入门-简单认识一下什么是TCP

部分内容来源&#xff1a;小林Coding TCP的特点 1.面向连接 一定是“一对一”才能连接&#xff0c;不能像 UDP 协议可以一个主机同时向多个主机发送消息&#xff0c;也就是一对多是无法做到的 2.可靠的 无论的网络链路中出现了怎样的链路变化&#xff0c;TCP 都可以保证一个…...

计算机科学技术领域的内卷现状与应对措施分析

计算机科学技术领域的内卷现状与应对措施分析 李升伟 整理 ### 计算机科学技术领域的内卷现状与应对措施分析 #### 一、内卷现状分析 1. **教育与升学内卷** 计算机科学与技术相关专业&#xff08;如计算机科学与技术、人工智能、大数据等&#xff09;已成为考研竞争最…...

The First项目报告:VANA如何重塑数据所有权与AI训练

在当今的数字化时代&#xff0c;数据已成为比黄金更为珍贵的资源。科技巨头们通过收集和分析用户的个人数据&#xff0c;获得巨大的商业利益&#xff0c;而用户却往往没有从中得到应有的回报。这种数据的不对等交易和隐私侵犯现象&#xff0c;成为了现代社会的一个严重问题。 …...

pnpm的基本用法

以下是 pnpm 的核心命令和使用指南&#xff0c;涵盖从安装依赖到项目管理的常见操作&#xff1a; 1. 基础命令 (1) 安装依赖 pnpm install # 安装 package.json 中的所有依赖 pnpm install <包名> # 安装指定包&#xff08;自动添加到 dependencies&#xf…...

机试刷题_从上往下打印二叉树【python】

从上往下打印二叉树 # class TreeNode: # def __init__(self, x): # self.val x # self.left None # self.right None # # 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可 # # # param root …...

转化率(漏斗分析)——mysql计算过程

转化率(漏斗分析)——mysql计算过程 问题&#xff1a;有一张表&#xff0c;记录了不同用户的用户id&#xff0c;浏览页面时间&#xff0c;加入购物车时间&#xff0c;下单时间&#xff0c;支付时间&#xff0c;算出每天的各个环节的转化率 创建表info(含用户id&#xff0c;浏…...

《AI和人工智能和编程日报》

OpenAI&#xff1a;将深度研究扩展到 ChatGPT Plus、Team、Edu 和 Enterprise 用户&#xff0c;每月 10 次查询&#xff1b;Pro 用户每月有 120 次查询&#xff0c;ChatGPT 语音模式向免费用户开放。DeepSeek&#xff1a;R1 大模型宣布降价&#xff0c;调用价格将至四分之一&am…...

自然语言处理:稀疏向量表示

介绍 大家好&#xff0c;我是博主。今天又来和大家分享自然语言处理领域的知识了。原本我计划这次分享NLP中文本表示的相关内容&#xff0c;不过在整理分享计划的过程中&#xff0c;发现这部分知识里包含一些涉及复杂数学原理和抽象概念的内容。对于刚接触NLP的小伙伴们来说&a…...

矩阵 trick 系列 题解

1.AT_dp_r Walk&#xff08;矩阵图论&#xff09; 题意 一个有向图有 n n n 个节点&#xff0c;编号 1 1 1 至 n n n。 给出一个二维数组 A 1... n , 1... n A_{1...n,1...n} A1...n,1...n​&#xff0c;若 A i , j 1 A_{i,j}1 Ai,j​1 说明节点 i i i 到节点 j j j …...

视频字幕识别和翻译

下载的视频很多不是汉语的&#xff0c;我们需要用剪映将语音识别出来作为字幕压制到视频中去。 剪映6.0以后语音识别需要收费&#xff0c;但是低版本还是没有问题。 如果想要非汉语字幕转成中文&#xff0c;剪映低版本不提供这样功能。但是&#xff0c;用剪映导出识别字幕&am…...

C++ 快速学习教程

文章目录 一、基础语法篇1. 开发环境搭建2. 程序结构3. 基础数据类型4. 流程控制 二、面向对象编程1. 类与对象2. 构造函数与析构函数3. 继承与多态4. 运算符重载 三、高级特性1. 模板编程2. 异常处理3. 命名空间4. 类型推导&#xff08;auto/decltype&#xff09; 四、标准库与…...

LlamaFactory-webui:训练大语言模型的入门级教程

LlamaFactory是一个开源框架&#xff0c;支持多种流行的语言模型&#xff0c;及多种微调技术&#xff0c;同时&#xff0c;以友好的交互式界面&#xff0c;简化了大语言模型的学习。 本章内容&#xff0c;从如何拉取&#xff0c;我已经搭建好的Llamafactory镜像开始&#xff0…...

ros安装rqt_joint_trajectory_controller

有时候&#xff0c;我们可以看到别人的代码里面有这个&#xff0c;但是这个是需要安装的。 <node name"gui_controller" pkg"rqt_joint_trajectory_controller" type"rqt_joint_trajectory_controller" />sudo apt-get install ros-noeti…...

PXE批量网络装机与Kickstart自动化安装工具

目录 一、系统装机的原理 1.1、系统装机方式 1.2、系统安装过程 二、PXE批量网络装机 2.1、PXE实现原理 2.2、搭建PXE实际案例 2.2.1、安装必要软件 2.2.2、搭建DHCP服务器 2.2.3、搭建TFTP服务器 2.2.4、挂载镜像并拷贝引导文件到tftp服务启动引导文件夹下 2.2.5、编…...

使用vscode导出Markdown的PDF无法显示数学公式的问题

我的硬件环境是M2的MacBook air&#xff0c;在vscode中使用了Markdown PDF来导出md文件对应的PDF。但不管导出html还是PDF文件&#xff0c;数学公式都是显示的源代码。 我看了许多教程&#xff0c;给的是这个方法&#xff1a;在md文件对应的html文件中加上以下代码&#xff1a…...

SpringBoot 热部署

1、添加 DevTools 依赖 <!-- 热部署依赖 --> <dependency> <groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId> </dependency>2、在IDEA的菜单栏中依次选择“File”→“Settings”&#x…...

sqlmap:自动SQL注入和数据库接管工具

SQL 注入攻击是 Web 安全领域最常见的漏洞之一&#xff0c;今天给大家介绍一个自动化 SQL 注入和数据库接管工具&#xff1a;sqlmap。sqlmap 作为一款开源渗透测试工具&#xff0c;能帮助安全测试人员快速发现并利用 SQL 注入漏洞接管数据库服务器。 功能特性 sqlmap 使用 Pyt…...

labview中VISA串口出现异常的解决方案

前两天在做项目时发现&#xff0c;当用VISA串口读取指令时出现了回复异常的情况&#xff0c;不管发什么东西就一直乱回&#xff0c;针对这个情况&#xff0c;后面在VISA串口中加了一个VISA寄存器清零的函数。加了之后果然好多了&#xff0c;不会出现乱回的情况&#xff0c;但是…...

x64汇编下过程参数解析

简介 好久没上博客, 突然发现我的粉丝数变2700了, 真是这几个月涨的粉比我之前好几年的都多, 于是心血来潮来写一篇, 记录一下x64下的调用约定(这里的调用约定只针对windows平台) Windows下的x64程序的调用约定有别于x86下的"stdcall调用约定"以及"cdecl调用约…...

JavaScript 系列之:垃圾回收机制

前言 垃圾回收是一种自动内存管理机制&#xff0c;用于检测和清除不再使用的对象&#xff0c;以释放内存空间。当一个对象不再被引用时&#xff0c;垃圾回收器会将其标记为垃圾&#xff0c;然后在适当的时候清除这些垃圾对象&#xff0c;并将内存回收给系统以供其他对象使用。…...

18.6 大语言模型可解释性解密:打开AI黑箱的关键技术

大语言模型可解释性解密:打开AI黑箱的关键技术 关键词:模型可解释性, 注意力机制分析, 特征可视化, 探针技术, AI透明度 1. 可解释性核心价值与挑战 大模型可解释性研究致力于破解"输入-输出"间的认知黑箱,其技术价值可概括为: #mermaid-svg-oF7xAEMTxnQZ6mF7 …...

Jmeter接口自动化测试读取用例

一&#xff1a;环境准备 1.下载jxl.jar这个jar包 2.下载好之后&#xff0c;放到Jmeter的安装路径下的lib目录下 3.jxl.jar的作用&#xff1a;完成对Excel的读写以及修改操作 如何利用jmter操作excel的思路分析&#xff1a; 1&#xff0c;Excell一般有三个最重要的元素&…...

es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?

Elasticsearch 写入数据的工作原理 1. 写入流程概述 当客户端向 Elasticsearch 发送写入请求时&#xff0c;会经历以下步骤&#xff1a; 客户端选择一个节点 作为 coordinating node&#xff08;协调节点&#xff09;&#xff0c;发送请求。协调节点对文档进行路由&#xff…...

npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。

这个错误是因为 Windows 系统的 PowerShell 执行策略 限制了脚本的运行。默认情况下&#xff0c;PowerShell 的执行策略是 Restricted&#xff0c;即禁止运行任何脚本。以下是解决该问题的步骤&#xff1a; 1. 检查当前执行策略 打开 PowerShell&#xff08;管理员权限&#x…...

Spark map与mapPartitions算子源码级深度解析

Spark map与mapPartitions算子源码级深度解析 一、核心源码结构差异 1. map算子实现逻辑 def map[U: ClassTag](f: T => U): RDD[U] = withScope {val cleanF = sc.clean(f)new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.map(cleanF)) }实现特征: …...

Docker搭建基于Rust语言的云原生可观测平台OpenObserve

文章目录 前言1. 安装Docker2. 创建并启动OpenObserve容器3. 本地访问测试4. 公网访问本地部署的OpenObserve4.1 内网穿透工具安装4.2 创建公网地址 5. 配置固定公网地址 前言 嘿&#xff0c;朋友们&#xff0c;今天我们要聊聊一个能让你在云原生世界里大展身手的秘密武器——…...

论文阅读:A comprehensive survey on model compression and acceleration

对模型压缩和加速的全面调查 阅读论文&#xff1a;A comprehensive survey on model compression and acceleration 摘要 背景&#xff1a;近年来&#xff0c;机器学习&#xff08;ML&#xff09;和深度学习&#xff08;DL&#xff09;在计算机视觉、自然语言处理、股票预测…...

IO流(师从韩顺平)

文章目录 文件什么是文件文件流 常用的文件操作创建文件对象相关构造器和方法应用案例 获取文件的相关信息应用案例 目录的操作和文件删除应用案例 IO 流原理及流的分类Java IO 流原理IO流的分类 IO 流体系图-常用的类IO 流体系图&#xff08;重要&#xff01;&#xff01;&…...

Ubuntu+deepseek+Dify本地部署

1.deepseek本地部署 在Ollama官网下载 需要魔法下载 curl -fsSL https://ollama.com/install.sh | sh 在官网找到需要下载的deepseek模型版本 复制命令到终端 ollama run deepseek-r1:7b 停止ollama服务 sudo systemctl stop ollama # sudo systemctl stop ollama.servi…...

Java类中的this操作

在Java中,`this` 是一个关键字,用于引用当前对象的实例。它通常在类的方法或构造器中使用,主要有以下几种用途: 1. 区分成员变量和局部变量 当成员变量与局部变量同名时,使用 `this` 可以明确引用当前对象的成员变量。 public class Person { private String name; …...

云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书

云创智城YunCharge 新能源充电行业系统说明书 ⚡官方文档 ⚡官网地址 1. 引言 随着全球环境保护和能源危机的加剧&#xff0c;新能源汽车行业得到了快速发展&#xff0c;充电基础设施建设也随之蓬勃发展。新能源充电行业系统旨在提供高效、便捷的充电服务&#xff0c;满足电…...

利用STM32TIM自制延迟函数实验

一、实验目的 掌握STM32定时器&#xff08;TIM&#xff09;的工作原理及配置方法学习使用HAL库实现微秒级/毫秒级延时函数理解定时器中断服务程序的编写规范 二、实验原理 ​定时器基础&#xff1a; STM32定时器包含向上计数器、向下计数器、中心对齐模式通过预分频器&#x…...

【STM32F103ZET6——库函数】6.PWM

目录 配置PWM输出引脚 使能引脚时钟 配置PWM 使能PWM 配置定时器 使能定时器时钟 使能定时器 例程 例程说明 main.h main.c PWM.h PWM.c led.h led.c DSQ.h DSQ.c 配置PWM输出引脚 PWM的输出引脚必须配置为复用功能。 注意&#xff1a;需要使用哪个引脚&…...

RabbitMQ系列(四)基本概念之Exchange

在 RabbitMQ 中&#xff0c;Exchange&#xff08;交换机&#xff09; 是消息路由的核心组件&#xff0c;负责根据规则将生产者发送的消息分发到对应的队列&#xff08;Queue&#xff09;中。以下是其核心功能与分类的详细说明&#xff1a; 一、Exchange 的核心作用 消息路由枢…...

解决“ReadTimeoutError:HTTPSConnectionPool”pip安装超时问题

安装pytorch时&#xff0c;出现如下报错信息&#xff1a; pip._vendor.urllib3.exceptions.ReadTimeoutError:HTTPSConnectionPool(host‘files.pythonhosted.org’, port443): Read timed out. 这是由于网络等各种原因导致安装超时引发的&#xff0c;可以按如下方式手动设置延…...

SAP中的屏幕PBO和PAI事件

PBO中的O,OUT,输出&#xff0c;和屏幕显示有关&#xff0c;比如屏幕元素的隐藏与显示&#xff0c;屏幕元素的输入状态的控制。 例如&#xff0c;控制屏幕所有元素为只读模式 LOOP AT SCREEN.SCREEN-INPUT 0.MODIFY SCREEN. ENDLOOP.PAI中的I,IN,输入&#xff0c;和屏幕输入有…...

Linux 环境“从零”部署 MongoDB 6.0:mongosh 安装与数据操作全攻略

前提 完成linux平台部署MongoDB【部署教程】且完成mongosh的安装 由于本人使用的是6.0版本的MongoDB&#xff0c;新版本 MongoDB&#xff08;尤其是 6.0 及以上版本&#xff09;已经不再默认捆绑传统的 mongo shell&#xff0c;而改用新的 MongoDB Shell&#xff08;mongosh&am…...