【大模型系列篇】DeepSeek-R1如何通过强化学习有效提升大型语言模型的推理能力?
如何通过强化学习(RL)有效提升大型语言模型(LLM)的推理能力?《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》由DeepSeek-AI团队撰写,主要介绍了他们开发的第一代推理模型DeepSeek-R1-Zero和DeepSeek-R1,以及如何通过强化学习(Reinforcement Learning, RL)提升大型语言模型(LLMs)的推理能力。论文展示了一种前沿的开源推理模型(Reasoning model),以及使用大规模强化学习技术训练此类模型的详细方法。
本文介绍了DS团队的第一代推理模型 DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是通过大规模强化学习(RL)训练的模型,没有经过监督微调(SFT)作为初步步骤,展示了显著的推理能力。通过强化学习,DeepSeek-R1-Zero自然展现出许多强大且有趣的推理行为。然而,它面临着可读性差和语言混合等挑战。为了解决这些问题并进一步提升推理性能,DS团队推出了 DeepSeek-R1,该模型在强化学习之前融入了多阶段训练和冷启动数据。DeepSeek-R1 在推理任务上的表现与 OpenAI-o1-1217 相当。为了支持研究社区,DS团队开源了 DeepSeek-R1-Zero、DeepSeek-R1 以及从 6个从 DeepSeek-R1 蒸馏出的稠密模型(1.5B、7B、8B、14B、32B、70B),这些模型基于 Qwen 和 Llama 构建。

-
DeepSeek-R1-Zero:无需SFT(监督式微调),纯RL,展现了自我进化能力,但存在可读性问题。
-
DeepSeek-R1:冷启动 + 多阶段训练,解决Zero遇到的问题,多个推理benchmark上取得了和OpenAI-o1-1217相近的水平。

-
小模型蒸馏:知识蒸馏后的小模型在推理benchmark上也表现出强大的竞争力,远超原始开源模型,包括Qwen2.5和Llama3。

一、背景
近年来,大型语言模型(LLMs)经历了快速的迭代和演变,逐渐缩小了与人工通用智能(AGI)之间的差距。最近,后训练已成为完整训练流程中的一个重要组成部分。研究表明,它能够提高推理任务的准确性,与社会价值观保持一致,并适应用户偏好,同时在计算资源需求上相较于预训练相对较少。在推理能力的背景下,OpenAI的o1系列模型首次通过增加链式思维推理过程的长度引入了推理时的扩展。这种方法在数学、编程和科学推理等各种推理任务中取得了显著的改善。然而,有效的测试时间扩展的挑战仍然是研究界的一个未解之谜。之前的几项研究探索了各种方法,包括基于过程的奖励模型(PRM)、强化学习(RL)以及搜索算法,如蒙特卡洛树搜索(MCTS)和束搜索(BS)。然而,这些方法都未能实现与OpenAI的o1系列模型相当的通用推理性能。
1. 现有模型在复杂推理任务(如数学证明、代码生成、科学问题解答)上的表现仍存在显著瓶颈。传统的监督微调(SFT)虽能部分提升性能,但依赖大量标注数据,且难以覆盖长链、多步推理场景。
2. 后训练(Post-Training)的重要性。后训练(如强化学习、对齐优化)已成为LLMs能力提升的关键环节。它能够以较低算力成本优化模型的推理能力、价值观对齐和用户适应性。例如,OpenAI的o1系列通过动态扩展推理链长度(Chain-of-Thought, CoT)显著提升了数学和编码任务的性能。然而,如何高效实现“测试时计算扩展”(即在推理过程中灵活调整计算资源)仍是一个开放挑战。
3. 此外,现有方法也存在一定的局限性:
- 基于过程的奖励模型(PRM):依赖对中间步骤的细粒度奖励,但标注成本高且易受奖励劫持(Reward Hacking)影响。
- 搜索算法(如蒙特卡洛树搜索):在复杂任务中面临搜索空间爆炸问题,难以规模化。
- 混合监督与强化学习:需大量标注数据,限制了模型的自主演化潜力。
二、方法
2.1 概述
- DeepSeek-R1-Zero:纯强化学习
- 直接在基础模型上应用强化学习,不使用任何 SFT 数据。
- 探索 LLM 在纯 RL 环境下的自演化过程,使其自主发展推理能力。
- DeepSeek-R1:冷启动 + 多阶段训练
- 使用少量高质量长链思维(CoT)数据进行冷启动,预热模型。
- 进行面向推理的强化学习,提升模型在推理任务上的性能。
- 使用拒绝采样和监督微调,进一步提升模型的综合能力。
- 再次进行强化学习,使模型在所有场景下都表现良好。
- 知识蒸馏:
- 将 DeepSeek-R1 的推理能力蒸馏到更小的模型中,使小模型也具有强大的推理能力。
2.2 DeepSeek-R1-Zero:基础模型上的强化学习
强化学习在推理任务中表现出显著的有效性,正如之前的研究所证明的那样。然而,这些研究都在很大程度上依赖监督数据,而这些数据的收集过程非常耗时。DeepSeek-R1-Zero探讨了在没有任何监督数据的情况下,LLMs 如何通过纯强化学习过程自我演化并发展推理能力。首先简要概述了我们的 RL 算法,然后呈现一些令人兴奋的结果,希望能为社区提供有价值的见解。

2.2.1 强化学习算法

群体相对策略优化:为了节省强化学习的训练成本,DS团队采用了 Group Relative Policy Optimization (GRPO),它不依赖于通常与策略模型大小相同的评价模型,而是通过从组得分中估计基线。具体而言,对于每个问题 ,GRPO 从旧的策略中采样一组输出 {1, 2, ···, },然后通过最大化以下目标来优化策略模型:

2.2.2 奖励模型
奖励是训练信号的来源,决定了强化学习(RL)的优化方向。为了训练 DeepSeek-R1-Zero,采用了一种基于规则的奖励系统,主要由两种类型的奖励组成:
准确度奖励(Accuracy rewards):准确度奖励模型用于评估响应是否正确。例如,在具有确定性结果的数学问题中,要求模型以指定的格式(例如,在一个框内)提供最终答案,从而可以通过可靠的规则进行正确性验证。同样,对于 LeetCode 问题,可以使用编译器基于预定义的测试用例生成反馈。
格式奖励(Format rewards):除了准确度奖励模型外,还使用了格式奖励模型,强制模型将其思维过程放置在 <think> 和 </think>标签之间。
在开发 DeepSeek-R1-Zero 时没有应用基于结果或过程的神经奖励模型,因为在大规模强化学习过程中,神经奖励模型可能会遭遇奖励操控问题,并且重新训练奖励模型需要额外的训练资源,这会使整个训练流程变得更加复杂。
2.2.3 训练模板
为了训练 DeepSeek-R1-Zero,首先设计了一个简单的模板,指导基础模型遵循指定的指令。
如表 1 所示,该模板要求 DeepSeek-R1-Zero 首先生成推理过程,然后给出最终答案。模板示例如下:

表1:用户(User)和助手(Assistant)之间的对话。用户提出了一个问题,助手解决了这个问题。助手首先在脑海中思考推理过程,然后向用户提供答案。推理过程和答案分别包含在标签 <think> </think>和 <answer> </answer> 中,即
<think> reasoning process here </think>, <answer> answer here </answer>。
User: prompt.
Assistant:
DS团队有意将约束限制在这种结构格式上,同时避免任何内容特定的偏见,例如强制要求反思性推理或推广特定的解题策略——以确保能够准确观察模型在强化学习过程中的自然进展。
2.2.4 性能、自我进化过程和顿悟时刻
性能

自我进化过程
自我进化过程是一个引人注目的示范,展示了强化学习如何驱动模型自主提升其推理能力。通过直接从基础模型开始强化学习,可以在没有监督微调阶段影响的情况下,密切监控模型的进展。这种方法清晰地展示了模型如何随着时间的推移不断进化,特别是在处理复杂推理任务的能力方面。
如图3 所示,DeepSeek-R1-Zero的思维时间在整个训练过程中持续改进。这种改进不是外部调整的结果,而是模型内部的自我发展。DeepSeek-R1-Zero通过利用扩展的测试时间计算,自然获得了解决越来越复杂推理任务的能力。这些计算从生成数百个到数千个推理标记不等,使得模型能够更深入地探索和完善其思维过程。
这种自我进化的一个最显著的方面是随着测试时间计算的增加,复杂行为的出现。比如反思行为——模型回顾并重新评估之前的步骤——以及探索问题解决替代方法的行为,都是自发产生的。这些行为并非显式编程所致,而是模型与强化学习环境互动的结果。这种自发的发展显著增强了DeepSeek-R1-Zero的推理能力,使其能够以更高的效率和准确性应对更具挑战性的任务。
“Aha Moment” - 顿悟时刻

在DeepSeek-R1-Zero的训练过程中,观察到一个特别有趣的现象,即发生了“顿悟”时刻。如表3所示,这一时刻出现在模型的一个中间版本中。在此阶段,DeepSeek-R1-Zero通过重新评估其初始方法,学会了为一个问题分配更多的思考时间。这种行为不仅证明了模型推理能力的提升,而且是强化学习如何导致意外且复杂结果的迷人示例。

这个时刻不仅是模型的“顿悟”,也是观察其行为的研究人员的“顿悟”。
它强调了强化学习的力量与美妙:并没有显式地教模型如何解决问题,而是为其提供了正确的激励,模型自主发展出先进的问题解决策略。这个“顿悟”时刻有力地提醒我们,强化学习能够解锁人工系统中智能的新层次,为未来更具自主性和适应性的模型铺平道路。
DeepSeek-R1-Zero的缺点
尽管 DeepSeek-R1-Zero 展现了强大的推理能力,并能自主发展出意想不到且强大的推理行为,但它仍然面临一些问题。例如,DeepSeek-R1-Zero 在可读性差和语言混杂等问题上存在困难。为了使推理过程更加易读并与开放社区分享,DS团队继续探索了DeepSeek-R1,一种结合了强化学习与人性化冷启动数据的方法。
2.3 DeepSeek-R1:结合冷启动的强化学习
受到DeepSeek-R1-Zero取得的良好结果的启发,产生了两个自然而然的问题:
(1)通过引入少量高质量数据作为冷启动,是否能够进一步提高推理性能或加速收敛?
(2)如何训练一个既能生成清晰连贯的推理链(CoT),又能展现出强大通用能力的用户友好型模型?
为了解决这些问题,DS团队设计了一个训练深度寻求-R1的流程。该流程包括四个阶段,概述如下:

2.3.1 冷启动
与 DeepSeek-R1-Zero 不同,为了防止强化学习训练的早期冷启动阶段在基础模型上出现不稳定现象,在 DeepSeek-R1 中,DS团队构建并收集了少量的高质量长推理链(CoT)数据,用以微调模型,作为初始的 RL 行为目标。
为了收集这些数据,DS团队探索了几种方法:使用少量示例提示与长推理链的结合,直接提示模型生成带有反思和验证的详细回答,收集DeepSeek-R1-Zero输出的可读格式,并通过人工注释者后处理以优化结果。
在这项工作中,DS团队收集了数千条冷启动数据,用于微调 DeepSeek-V3-Base作为强化学习的起点。与DeepSeek-R1-Zero相比,冷启动数据的优势包括:
可读性:DeepSeek-R1-Zero的一个主要限制是其内容通常不适合阅读。响应可能会混合多种语言,或者缺乏Markdown格式来突出显示给用户的答案。相比之下,在为DeepSeek-R1创建冷启动数据时,DS团队设计了一个可读的模式,包括每个响应末尾都有一个摘要,并且过滤掉不适合阅读的响应。这里定义输出格式为 |special_token| <reasoning_process>|special_token| <summary>,其中推理过程是针对查询的CoT,而摘要则用于总结推理结果。
潜力:通过精心设计结合人工先验的冷启动数据模式,观察到DeepSeek-R1在性能上优于DeepSeek-R1-Zero。DS团队认为,迭代训练是推理模型的一种更好的方法。
2.3.2 面向推理的强化学习
在对DeepSeek-V3-Base进行冷启动数据微调后,DS团队采用与DeepSeek-R1-Zero相同的大规模强化学习训练过程。
这个阶段重点提升模型的推理能力,特别是在推理密集型任务中,如编码、数学、科学和逻辑推理等,这些任务涉及明确定义的问题和清晰的解决方案。在训练过程中,观察到CoT经常出现语言混合,尤其是在强化学习提示涉及多种语言时。为了缓解语言混合的问题,DS团队在强化学习训练中引入了语言一致性奖励,这一奖励是根据推理链中目标语言词汇的比例计算的。尽管消融实验表明这种对齐会导致模型性能略微下降,但这一奖励与人类偏好一致,使得模型输出更具可读性。最后,通过直接将推理任务的准确性和语言一致性奖励相加,形成最终的奖励。然后,对微调后的模型进行强化学习训练,直到其在推理任务上收敛。
2.3.3 拒绝采用与监督微调
当面向推理的强化学习收敛后,DS团队利用得到的检查点收集监督微调(SFT)数据用于下一轮训练。与最初的冷启动数据主要关注推理不同,这一阶段将涉及其他领域的数据,以增强模型在写作、角色扮演和其他通用任务中的能力。具体而言,生成数据并按如下所述对模型进行微调。
推理数据
整理推理提示,并通过从上述强化学习训练的检查点执行拒绝采样来生成推理轨迹。在前一个阶段,仅包含了可以通过基于规则的奖励进行评估的数据。然而,在这一阶段,DS团队通过加入额外的数据来扩展数据集,其中一些数据使用生成奖励模型,通过将真实标签和模型预测输入DeepSeek-V3进行判断。此外,由于模型输出有时混乱且难以阅读,过滤掉了含有混合语言、长段落和代码块的推理链。对于每个提示,采样多个响应,并只保留正确的响应。最终,收集了约60万个与推理相关的训练样本。
非推理数据
对于非推理数据,如写作、事实问答、自我认知和翻译,采用DeepSeek-V3流程并重复使用部分DeepSeek-V3的SFT数据集。对于某些非推理任务,通过提示调用DeepSeek-V3生成潜在的推理链,以便在回答问题前使用。然而,对于更简单的查询,例如“你好”,不会提供推理链作为回应。最终,收集了大约20万个与推理无关的训练样本。
DS团队使用上述整理好的大约80万个样本数据集对DeepSeek-V3-Base进行两轮微调。
2.3.4 面向所有场景的强化学习
为了进一步使模型与人类偏好对齐,实施了一个二次强化学习阶段,旨在提高模型的有用性和无害性,同时精炼其推理能力。具体而言,使用奖励信号和多样化的提示分布来训练模型。对于推理数据,遵循DeepSeek-R1-Zero中概述的方法,利用基于规则的奖励来引导数学、代码和逻辑推理领域的学习过程。对于一般数据,依赖奖励模型来捕捉人类偏好,以应对复杂和微妙的场景。在DeepSeek-V3流程的基础上,采用类似的偏好对分布和训练提示。在有用性方面,专注于最终的总结,确保评估重点强调响应对用户的实用性和相关性,同时尽量减少对基础推理过程的干扰。在无害性方面,评估模型的整个响应,包括推理过程和总结,以识别并减少生成过程中可能出现的任何潜在风险、偏见或有害内容。最终,奖励信号和多样化数据分布的整合使DS团队能够训练一个既在推理上表现优异,又优先考虑有用性和无害性的模型。
2.4 蒸馏:将推理能力赋予小型模型
为了使更高效的小型模型具备类似于DeepSeek-R1的推理能力,DS团队直接对开源模型如Qwen和Llama进行了微调,使用了与DeepSeek-R1策划的80万样本,研究结果表明,这种简单的蒸馏方法显著增强了小型模型的推理能力。这里使用的基础模型包括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阶段的探索留给更广泛的研究社区。

三、实验
数据收集:收集数千条冷启动数据,用于初始微调。这些数据通过少样本提示、直接提示生成详细答案、人工后处理等方式生成。
实验设置:在多个基准测试上进行评估,包括 MMLU、MMLU-Redux、MMLU-Pro、C-Eval、CMMLU、IFEval、FRAMES、GPQA Diamond、SimpleQA、C-SimpleQA、SWE-Bench Verified、Aider 1、LiveCodeBench、Codeforces、Chinese National High School Mathematics Olympiad (CNMO)、American Invitational Mathematics Examination 2024 (AIME)等。
参数配置:所有模型的最大生成长度设置为32,768个token。对于需要采样的基准测试,使用温度0.6,top-p值0.95,每个查询生成64个响应。
3.1 DeepSeek-R1模型评估

3.2 DeepSeek-R1蒸馏模型评估

四、讨论
4.1 蒸馏与强化学习

论文得出两个结果:首先,将更强大的模型蒸馏到较小的模型中可以获得优秀的结果,而依赖于大规模强化学习的小模型则需要巨大的计算能力,甚至可能无法达到蒸馏的性能。其次,尽管知识蒸馏策略既经济又有效,但推进超越智能的边界可能仍需要更强大的基础模型和更大规模的强化学习。
4.2 不成功的尝试
在开发DeepSeek-R1的早期阶段,DS团队也遇到了失败和挫折。以下是他们分享的失败经验,用以提供见解,但这并不意味着这些方法无法开发出有效的推理模型。
过程奖励模型(PRM),PRM是一种合理的方法,可以引导模型朝着更好的解决推理任务的方法前进。然而,在实践中,PRM有三个主要限制,可能会阻碍其最终成功。首先,很难明确地定义一般推理中的细粒度步骤。其次,确定当前中间步骤是否正确是一项具有挑战性的任务。使用用模型进行自动标注可能无法产生令人满意的结果,而手动标注则不利于规模化。第三,一旦引入基于模型的PRM,必然会导致奖励黑客行为,并且重新训练奖励模型需需要额外的训练资源,这使整个训练流程变得复杂。总之,尽管PRM在重新排序模型生成的前N个响应或辅助引导搜索方面表现出良好的能力,但与其在实验中引入的大规模强化学习过程所带来的额外计算开销相比,其优势是有限的。
蒙特卡罗树搜索(MCTS),受到AlphaGo和AlphaZero的启发,DS团队探索了使用蒙特卡罗树搜索(MCTS)来增强测试时的计算可扩展性。这种方
法涉及将答案分解为更小的部分,以便模型能够系统地探索触决方案空间。为此,提示模型生成多个标签,这些标签对应于搜索所需的特定推理步骤。在训练过程中,首先使用收集到的提示通过MCTS找到答案,MCTS由预训练的价值模型指导。随后,使用生成的问题-答案对来训练演员模型和价值模型,迭代地完善这一过过程。
然而,这种方法在扩大训练规模时遇到了几个挑战。首先,与国际象棋相比,后者的搜索空间相对明确,而令牌生成则呈现出指数级更大的搜索空间。为了解决这个问题,我们为每个节点设置了最大扩展限制,但这可能导致模型陷入局部最优解。其次,价值模型直接影响生成的质量,因为它指导搜索过程的每一步。训练一个细粒度的价值模型本质上是困难的,这使得模型难以进行选代改进。虽然AlphaGo的核心成功依赖于训练一个价值模型以逐步提升其性能,但由于令牌生成的复杂性,这一原则在设置中难以复制。
总之,尽管MCTS在与预训练价值模型配对时可以提高推理性能,但通过自我搜索迭代提升模型性能仍然是一个重大挑战。
五、结论、局限性与未来工作

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

相关文章:
【大模型系列篇】DeepSeek-R1如何通过强化学习有效提升大型语言模型的推理能力?
如何通过强化学习(RL)有效提升大型语言模型(LLM)的推理能力? 《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》由DeepSeek-AI团队撰写,主要介绍了他们开发的第一代…...
企业存储系统
一、概述 数字经济 人类通过大数据(数字化的知识与信息)的识别—选择—过滤—存储—使用,引导、实现资源的快速优化配置与再生,实现经济高质量发展的经济形态。 产业互联网推动发展 企业开始进行数字化转型,将传统…...
数据结构系列一:初识集合框架+复杂度
前言 数据结构——是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是计算机专业的基础课程,但也是一门不太容易学好的课,它当中有很多费脑子的东西,之后在学习时,你若碰到了困惑或不解的地方 都是很正常的反应&…...
【AI】GitHub Copilot
GitHub Copilot 是一款由 GitHub 和 OpenAI 合作开发的 AI 编程助手,它可以在多种开发工具中使用。以下是 GitHub Copilot 支持的主要开发工具和平台: 1. Visual Studio Code (VS Code) 官方支持:GitHub Copilot 在 VS Code 中拥有最完整的集…...
Linux系统编程学习 NO.14——缓冲区的概念、模拟实现Cstdio库
用户缓冲区 先介绍一下关于用户缓冲区的周边知识。 fread和fwrite的返回值 谈一谈fread和fwrite的返回值,如果写入/读取文件成功,fread或fwrite的返回值指的是实际写入/读取的内存块数量(实际的nmemb的大小)。假如fwrite写入的size是5字节,…...
Linux性能监控工具汇总
文章目录 前言一、性能监控工具介绍1.概念介绍2.常用组合方式3.对比 二、sar工具1.sar安装2.sar工具参数3.sar工具使用示例3.1.每两秒采集一次cpu使用情况,总计采集2次,然后输出CPU使用情况的统计信息3.2.磁盘IO使用情况统计3.3.内存使用情况统计3.4.网卡流量使用情…...
某手sig3-ios算法 Chomper黑盒调用
Chomper-iOS界的Unidbg 最近在学习中发现一个Chomper框架,Chomper 是一个模拟执行iOS可执行文件的框架,类似于安卓端大名鼎鼎的Unidbg。 这篇文章使用Chomper模拟执行某手的sig3算法,初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的…...
MySQL版本选择与安装
MySQL版本选择与安装 MySQL 5.5 优点: 稳定性:5.5版本是长期支持(LTS)版本,因此它非常稳定,被广泛部署在生产环境中。 兼容性:与旧版本的MySQL和各种应用程序有很好的兼容性。 缺点: 过时:…...
【飞行器原理学习】——1. 机翼及机翼参数
飞行器原理学习——1.机翼 一、 概述 飞机的各种机翼是飞机的控制面 通过铰链、钢索、液压等方式连接在机身上 操纵面运动时,会改变机翼的弧度和形状,使流经的空气发生偏转,从而影响空气动力的大小。使飞机围绕着3轴运动 二、机翼的操纵面…...
TS语言自定义脚手架
初始化 新建文件夹初始化命令 npm init -ytsc --initnpm i types/nodenpm i typescript# 处理别名npm i -D tsc-alias -y 表示选项都为yes 安装ts相关依赖 新建相关文件 bin 文件夹 src文件夹 commands 文件夹 (命令 utils 文件夹 (封装方法) index.t…...
lab4 CSAPP:Cachelab
写在前面 最简单的一集 实验室分为两个部分。在A部分中,实现一个缓存模拟器。在B部分中,编写一个矩阵针对高速缓存性能优化的转置功能。 感觉是比较经典的问题,之前在体系结构的课程中接触过,终于能通过lab实操一下了。 实验目…...
VScode C语言学习开发环境;运行提示“#Include错误,无法打开源文件stdio.h”
C/C环境配置 参考: VS Code 配置 C/C 编程运行环境(保姆级教程)_vscode配置c环境-CSDN博客 基本步骤 - 安装MinGW-W64,其包含 GCC 编译器:bin目录添加到环境变量;CMD 中输入gcc --version或where gcc验证…...
雷龙CS SD NAND(贴片式TF卡)测评体验
声明:非广告,为用户体验文章 前段时间偶然获得了雷龙出品的贴片式 TF 卡芯片及转接板,到手的是两片贴片式 nand 芯片搭配一个转接板,其中有一片官方已经焊接好了,从外观来看,正面和背面设计布局合理&#x…...
伯克利 CS61A 课堂笔记 11 —— Mutability
本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Objects 02 Example: Strings Ⅰ Representing Strings: the ASCII Standard Ⅱ Representing Strings: the Unicode Standard 03 Mutatio…...
从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之一数据准备
最近特别火的DeepSeek,是一个大语言模型,那一个模型是如何构建起来的呢?DeepSeek基于Transformer架构,接下来我们也从零开始构建一个基于Transformer架构的小型语言模型,并说明构建的详细步骤及内部组件说明。我们以构建一个字符级语言模型(Char-Level LM)为例,目标是通…...
云原生DevOps:Zadig架构设计与企业实践分析
在云原生时代,随着微服务架构和容器技术的广泛应用,软件交付模式正经历着深刻的变革。DevOps作为一种文化、运动和实践,正逐渐成为企业快速交付高质量软件的关键。本文将探讨在云原生背景下,DevOps工程架构的设计与实践࿰…...
UMLS数据下载及访问
UMLS数据申请 这个直接在官网上申请即可,记得把地址填全,基本都会拿到lisence。 UMLS数据访问 UMLS的数据访问分为网页访问,API访问以及数据下载后的本地访问,网页访问,API访问按照官网的指示即可,这里主…...
DEX-EE三指灵巧手:扩展AI与机器人研究的边界
DEX-EE三指灵巧手,由Shadow Robot与Google DeepMind合作开发,以其先进技术和设计,正在引领AI与机器人研究的新趋势。其高精度传感器和灵活的机械手指,能够捕捉复杂的环境数据,为强化学习实验提供了可靠支持。 Shadow R…...
在ubuntu上用Python的openpyxl模块操作Excel的案例
文章目录 安装模块读取Excel数据库取数匹配数据和更新Excel数据 在Ubuntu系统的环境下基本职能借助Python的openpyxl模块实现对Excel数据的操作。 安装模块 本次需要用到的模块需要提前安装(如果没有的话) pip3 install openpyxl pip3 install pymysql在操作前,需…...
【STM32】外部时钟|红外反射光电开关
1.外部时钟 单片机如何对外部触发进行计数?先看一下内部时钟,内部时钟是接在APB1和APB2时钟线上的,APB1,APB2来自stm32单片机内部的脉冲信号,也叫内部时钟。我们用来定时。同样我们可以把外部的信号接入单片机,来对其…...
深入了解 DevOps 基础架构:可追溯性的关键作用
在当今竞争激烈的软件环境中,快速交付强大的应用程序至关重要。尽管如此,在不影响质量的情况下保持速度可能是一项艰巨的任务,这就是 DevOps 中的可追溯性发挥作用的地方。通过提供软件开发生命周期 (SDLC) 的透明视图…...
Django+Vue3全栈开发实战:从零搭建博客系统
文章目录 1. 开发环境准备2. 创建Django项目与配置3. 设计数据模型与API4. 使用DRF创建RESTful API5. 创建Vue3项目与配置6. 前端页面开发与组件设计7. 前后端交互与Axios集成8. 项目优化与调试9. 部署上线10. 总结与扩展10.1 项目总结10.1.1 技术栈回顾10.1.2 项目亮点 10.2 扩…...
深度学习之图像回归(一)
前言 图像回归任务主要是理解一个最简单的深度学习相关项目的结构,整体的思路,数据集的处理,模型的训练过程和优化处理。 因为深度学习的项目思路是差不多的,主要的区别是对于数据集的处理阶段,之后模型训练有一些小…...
使用vue-office报错TypeError: ft.createElementVNode is not a function
支持多种文件(.docx、.xlsx、.xls、.pdf、.pptx)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。 不支持.doc、.ppt(2003年及以前的版本) 官网:https://www.npmjs.com/package/vue-office/excel?activeTabreadme 官方有实…...
《深度揭秘:DeepSeek如何解锁自然语言处理密码》
在人工智能蓬勃发展的当下,自然语言处理(NLP)成为了连接人类与机器的关键桥梁。作为该领域的佼佼者,DeepSeek以其卓越的语义理解和生成能力,备受瞩目。今天,就让我们深入探寻DeepSeek在自然语言处理中实现语…...
解决 Mac 只显示文件大小,不显示目录大小
前言 在使用 mac 的时候总是只显示文件的大小,不显示文件夹的大小,为了解决问题可以开启“计算文件夹”。 步骤 1.进入访达 2.工具栏点击“显示”选项,点击 “查看显示选项” 3.勾选 显示“资源库"文件夹 和 计算所有大小 或者点击…...
从零开始学习PX4源码9(部署px4源码到gitee)
目录 文章目录 目录摘要1.gitee上创建仓库1.1 gitee上创建仓库PX4代码仓库1.2 gitee上创建子仓库2.固件在gitee部署过程2.1下载固件到本地2.2切换本地分支2.3修改.gitmodules内容2.4同步子模块仓库地址2.5同步子模块仓库地址更新(下载)子模块3.一级子模块和二级子模块的映射关…...
遗传算法与深度学习实战系列,自动调优深度神经网络和机器学习的超参数
遗传算法与深度学习实战系列文章 目录 进化深度学习生命模拟及其应用生命模拟与进化论遗传算法中常用遗传算子遗传算法框架DEAPDEAP框架初体验使用遗传算法解决N皇后问题使用遗传算法解决旅行商问题使用遗传算法重建图像遗传编程详解与实现粒子群优化详解与实现协同进化详解与…...
【Python爬虫(28)】爬虫时代,数据安全的坚盾与隐私保护的密锁
【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取ÿ…...
分布式光纤声波振动技术在钻井泄漏检测中的应用
在石油天然气的钻井作业中,及时发现并定位泄漏点对于保障开采安全、降低环境污染以及避免经济损失至关重要。传统的泄漏检测方法往往存在局限性,而分布式光纤声波振动技术凭借其独特的优势,正逐渐成为钻井过程中寻找泄漏的有力工具。 技术原理…...
