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

DeepSeek-R1论文阅读及蒸馏模型部署

DeepSeek-R1论文阅读及蒸馏模型部署

文章目录

  • DeepSeek-R1论文阅读及蒸馏模型部署
    • 摘要
    • Abstract
    • 一、DeepSeek-R1论文
      • 1. 论文摘要
      • 2. 引言
      • 3. DeepSeek-R1-Zero的方法
        • 3.1 强化学习算法
        • 3.2 奖励建模
        • 3.3 训练模版
        • 3.4 DeepSeek-R1-Zero的性能、自进化过程和顿悟时刻
      • 4. DeepSeek-R1:冷启动强化学习
        • 4.1 冷启动
        • 4.2 面向推理的强化学习
        • 4.3 拒绝采样和监督微调
        • 4.4 适用于所有场景的强化学习
      • 5. 蒸馏:赋予小型模型推理能力
    • 二、DeepSeek-R1蒸馏模型的部署
      • 1. ollama部署
      • 2. 推理引擎SGLang部署
    • 总结

摘要

本文介绍了基于强化学习的推理模型DeepSeek-R1-Zero及其改进版本DeepSeek-R1的研究与部署。DeepSeek-R1-Zero通过纯强化学习训练,无需监督微调,展现出自主推理能力,但面临可读性与语言混合问题。DeepSeek-R1结合多阶段训练与冷启动数据优化模型性能,其推理能力与OpenAI-o1-1217相当。研究团队开源了包括DeepSeek-R1-Zero、DeepSeek-R1及基于Qwen与Llama的六种蒸馏模型(1.5B至70B参数量),验证了蒸馏技术在轻量化模型推理能力提升中的有效性。模型部署支持Ollama框架快速体验及SGLang推理引擎的高效服务,为研究社区提供便捷的应用方案。

Abstract

This paper presents the research and deployment of DeepSeek-R1-Zero and its enhanced version DeepSeek-R1, which are reinforcement learning (RL)-based reasoning models. DeepSeek-R1-Zero, trained purely through RL without supervised fine-tuning (SFT), demonstrates autonomous reasoning capabilities but struggles with readability and language mixing. DeepSeek-R1 addresses these limitations by integrating multi-stage training and cold-start data, achieving performance comparable to OpenAI-o1-1217. The research team open-sourced DeepSeek-R1-Zero, DeepSeek-R1, and six distilled models (1.5B to 70B parameters) based on Qwen and Llama, validating the effectiveness of distillation in enhancing reasoning for lightweight models. Deployment solutions include user-friendly Ollama for rapid testing and SGLang for efficient inference, offering practical tools for the research community.

一、DeepSeek-R1论文

1. 论文摘要

论文介绍了DeepSeek的第一代推理模型,DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个通过大规模强化学习 (RL, Reinforcement Learning) 训练的模型,没有以监督微调 (SFT) 作为预备步骤,它展现了非凡的推理能力。通过 RL,DeepSeek-R1-Zero 自然地展现出许多强大而有趣的推理行为。然而,它遇到了诸如可读性差和语言混合等挑战。为了解决这些问题并进一步提高推理性能,我们引入了 DeepSeek-R1,它在 RL 之前结合了多阶段训练和冷启动数据。DeepSeekR1 在推理任务上的性能与 OpenAI-o1-1217 相当。为了支持研究界,DeepSeek团队开源了 DeepSeek-R1-Zero、DeepSeek-R1 和六个基于 Qwen 和 Llama 从 DeepSeek-R1 蒸馏出来的密集模型 (1.5B、7B、8B、14B、32B、70B)。

image-20250216153922016

2. 引言

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

近年来,微调已成为完整训练流程中的重要组成部分。研究表明,微调可以提高推理任务的准确性,使其与社会价值观保持一致,并适应用户偏好,同时与预训练相比,所需的计算资源相对较少。在推理能力的背景下,OpenAI 的 o1(OpenAI,2024b)系列模型首次引入了通过增加思维链推理(CoT, Chain-of-Thought)过程的长度来实现推理时间扩展。这种方法在各种推理任务中取得了显著的改进,例如数学、编码和科学推理。然而,有效测试时间扩展的挑战仍然是研究界的一个开放问题。之前的一些工作探索了各种方法,包括基于过程的奖励模型(Lightman 等人,2023;Uesato 等人,2022;Wang 等人,2023),强化学习(Kumar 等人,2024),以及蒙特卡洛树搜索和束搜索等搜索算法(Feng 等人,2024;Trinh 等人,2024;Xin 等人,2024)。然而,这些方法都没有达到与 OpenAI 的 o1 系列模型相当的通用推理性能。

这篇论文首次尝试使用纯强化学习(RL)来提升语言模型的推理能力。目标是探索LLM在没有任何监督数据的情况下发展推理能力的潜力,重点关注其通过纯RL过程的自我演化。具体来说,我们使用DeepSeek-V3-Base作为基础模型,并采用GRPO(Shao等人,2024)作为RL框架来提升模型在推理方面的性能。在训练过程中,DeepSeek-R1-Zero自然而然地展现出许多强大且有趣的推理行为。经过数千步的RL训练后,DeepSeek-R1-Zero在推理基准测试中表现出超群的性能。然而,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.5- 32B (Qwen, 2024b) 作为基础模型,直接从 DeepSeek-R1 蒸馏优于对其应用强化学习。这表明,大型基础模型发现的推理模式对于提高推理能力至关重要。我们开源了蒸馏后的 Qwen 和 Llama (Dubey 等人,2024) 系列。值得注意的是,我们蒸馏的 14B 模型在推理基准测试中,大幅度超过了最先进的开源 QwQ-32B-Preview (Qwen, 2024a),而蒸馏的 32B 和 70B 模型在稠密模型中创下了新的记录。

3. DeepSeek-R1-Zero的方法

3.1 强化学习算法

image-20250216171410218

这个算法还不是很能理解

分组相对策略优化(GRPO, Group Relative Policy Optimization)

3.2 奖励建模

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

  • 准确性奖励:准确性奖励模型评估响应是否正确。例如,在具有确定性结果的数学问题中,模型需要以指定格式(例如,在框内)提供最终答案,从而实现基于规则的可靠正确性验证。类似地,对于 LeetCode 问题,可以使用编译器根据预定义的测试用例生成反馈。

  • 格式奖励:除了准确性奖励模型之外,我们还采用了一个格式奖励模型,强制模型将其思考过程置于“<think>”和“<think>”标签之间。

我们在开发 DeepSeek-R1-Zero 时没有使用结果或过程神经奖励模型,因为我们发现神经奖励模型在大型强化学习过程中可能会遭受奖励黑客攻击,并且重新训练奖励模型需要额外的训练资源,这会使整个训练流程变得复杂。

3.3 训练模版

image-20250216170018743

为了训练 DeepSeek-R1-Zero,我们首先设计了一个简单的模板,引导基础模型遵循我们指定的指令。如表 1 所示,该模板要求 DeepSeek-R1-Zero 首先生成推理过程,然后给出最终答案。我们有意将约束限制在该结构格式,避免任何内容特定的偏差——例如强制反射性推理或推广特定问题解决策略——以确保我们能够准确地观察模型在强化学习 (RL) 过程中的自然进展。

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

image-20250216170930065

DeepSeek-R1-Zero 图 2 展示了 DeepSeekR1-Zero 在 AIME 2024 基准测试中,在整个强化学习 (RL) 训练过程中的性能轨迹。

image-20250216171008189

表 2 对 DeepSeek-R1-Zero 和 OpenAI 的 o1-0912 模型在各种推理相关基准测试中进行了比较分析。研究结果表明,强化学习赋予DeepSeek-R1-Zero 强大的推理能力,无需任何监督微调数据。

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

图3表示,DeepSeek-R1-Zero 的思考时间在整个训练过程中持续改善这种改进并非源于外部调整,而是模型内部的固有发展。DeepSeek-R1-Zero 通过利用扩展的测试时间计算,自然地获得了解决越来越复杂的推理任务的能力。这种计算范围从生成数百到数千个推理标记,使模型能够更深入地探索和完善其思维过程。

这种自我进化的一个最显著的方面是,随着测试时计算量的增加,出现了复杂的行为。诸如反思——模型重新审视和重新评估其先前的步骤——以及探索解决问题的替代方法等行为自发出现。这些行为并非显式编程,而是模型与强化学习环境交互的结果。这种自发发展显著增强了DeepSeek-R1-Zero的推理能力,使其能够更有效率和准确地处理更具挑战性的任务。

image-20250216171210167

DeepSeek-R1-Zero 的顿悟时刻在 DeepSeek-R1-Zero 的训练过程中,一个特别引人注目的现象是顿悟时刻的出现。如表 3 所示,这一时刻发生在模型的中间版本中。在此阶段,DeepSeek-R1-Zero 通过重新评估其初始方法,学会了将更多思考时间分配给问题。这种行为不仅证明了模型不断增长的推理能力,也是强化学习如何导致意想不到的复杂结果的迷人例子。

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

DeepSeek-R1-Zero 的缺点:尽管 DeepSeek-R1-Zero 表现出强大的推理能力,并自主发展出意想不到的强大推理行为,但它也面临着一些问题。例如,DeepSeek-R1-Zero 在可读性差和语言混合等挑战方面举步维艰。为了使推理过程更易读并与开放社区共享,我们探索了 DeepSeek-R1,这是一种利用RL人性化冷启动数据的方法。

4. DeepSeek-R1:冷启动强化学习

受 DeepSeek-R1-Zero 的出色结果启发,我们自然会提出两个问题:1)是否可以通过少量高质量数据作为冷启动来进一步提高推理性能或加速收敛?2)如何训练一个用户友好的模型,使其不仅能够生成清晰连贯的思维链 (CoT),而且还展现出强大的通用能力?为了解决这些问题,我们设计了一个训练 DeepSeek-R1 的流程。该流程包含四个阶段,概述如下。

4.1 冷启动

与DeepSeek-R1-Zero不同的是,为了防止从基础模型开始RL训练的早期不稳定冷启动阶段,对于DeepSeek-R1,作者构建并收集了少量的长CoT数据来微调模型作为初始RL行为。为了收集这些数据,作者探索了几种方法:以长CoT为例,使用少量提示,直接提示模型生成具有反射和验证的详细答案,以可读格式收集DeepSeek-R1 Zero输出,并通过人工注释器进行后处理来细化结果。

在这项工作中,作者收集了数千个冷启动数据,以微调DeepSeek-V3-Base作为RL的起点。与DeepSeek-R1-Zero相比,冷启动数据的优势包括:

  • 可读性:DeepSeek-R1-Zero的一个关键限制是其内容通常不适合阅读。响应可能会混合多种语言或缺乏标记格式,以突出显示用户的答案。相比之下,在为DeepSeek-R1创建冷启动数据时,作者设计了一个可读的模式,在每个响应的末尾都包含一个摘要,并过滤掉对读者不友好的响应。在这里,我们将输出格式定义为|特殊令牌|<reasoning_process>|特殊令牌|<summary>,,其中推理过程是查询的CoT,摘要用于总结推理结果。
  • 潜力:通过仔细设计具有人类先验知识的冷启动数据的模式,作者观察到DeepSeek-R1-Zero的性能更好。可以认为迭代训练是推理模型的一种更好的方法。
4.2 面向推理的强化学习

在根据冷启动数据对DeepSeek-V3-Base进行微调后,作者应用了与DeepSeek-R1-Zero相同的大规模强化学习训练过程。此阶段的重点是增强模型的推理能力,特别是在推理密集型任务中,如编码,数学,科学和逻辑推理,这些任务涉及定义明确的问题和明确的解决方案。

在训练过程中,作者观察到CoT经常表现出语言混合,特别是当RL提示涉及多种语言时。为了减轻语言混合的问题,我们在RL训练期间引入了语言一致性奖励,其计算为CoT中目标语言单词的比例。

尽管消融实验表明,这种对齐会导致模型性能略有下降,但这种奖励与人类偏好一致,使其更具可读性。最后,作者将推理任务的准确性和语言一致性的奖励结合起来,直接将它们相加,形成最终的奖励。然后,作者对微调后的模型应用强化学习(RL)训练,直到它在推理任务上实现收敛。

4.3 拒绝采样和监督微调

当面向推理的强化学习收敛时,作者利用得到的权重为下一轮收集监督微调(SFT)数据。与主要关注推理的初始冷启动数据不同,这个阶段合并了来自其他领域的数据,以增强模型在编写,角色扮演和其他通用任务方面的能力。具体来说,作者生成数据并对模型进行微调,如下所述。

推理数据 作者通过从上述RL训练的权重执行拒绝采样来管理推理提示并生成推理轨迹。在上一阶段,作者只纳入了可以使用基于规则的奖励进行评估的数据。然而,在这一阶段,作者通过合并额外的数据来扩展数据集,其中一些数据使用了生成性奖励模型,将真实数据和模型预测输入DeepSeek-V3进行判断。

在论文《DeepSeek-R1》中,拒绝采样被用于生成高质量的监督微调(Supervised Fine-Tuning, SFT)数据。具体步骤如下:

  1. 从强化学习模型中采样:从经过强化学习训练的模型(如 DeepSeek-R1)中生成大量样本(例如,对某个问题生成多个回答)。

  2. 定义拒绝规则:根据某些标准(如答案的正确性、语言质量、是否符合人类偏好等)设计拒绝规则。例如,只保留正确答案或符合特定格式的样本。

  3. 生成高质量数据:通过拒绝采样,从大量生成的样本中筛选出高质量的样本,用于后续的监督微调。

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

作者使用上述约80万个样本的精选数据集对DeepSeek-V3-Base进行了两个epoch的微调。

4.4 适用于所有场景的强化学习

为了进一步使模型与人类偏好保持一致,作者实施了一个二级强化学习阶段,旨在提高模型的有用性和无害性,同时改进其推理能力。

具体来说,使用奖励信号和各种提示分布的组合来训练模型。

  • 对于推理数据,作者坚持DeepSeek-R1-Zero中概述的方法,该方法利用基于规则的奖励来指导数学,代码和逻辑推理领域的学习过程。
  • 对于一般数据,作者采用奖励模型来捕捉复杂和细微差别场景中的人类偏好。作者建立在DeepSeek-V3管道的基础上,并采用了类似的偏好对和训练提示的分布。

为了提供帮助,作者专门关注最终摘要,确保评估强调响应对用户的实用性和相关性,同时最大限度地减少对潜在推理过程的干扰。对于无害性,作者评估模型的整个响应,包括推理过程和摘要,以识别和减轻生成过程中可能出现的任何潜在风险,偏见或有害内容。最终,奖励信号和不同数据分布的整合使我们能够训练出一个在推理方面表现出色的模型,同时优先考虑有益和无害

5. 蒸馏:赋予小型模型推理能力

为了使更小、更高效的模型具备像 DeekSeek-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-Instr uct。我们选择 Llama-3.3 作为基础模型,因为它的推理能力略优于 Llama-3.1。
对于蒸馏模型,我们只应用 SFT,不包括 RL 阶段,即使加入 RL 可以大幅提升模型性能。我们这里的主要目标是展示蒸馏技术的有效性,将 RL 阶段的探索留给更广泛的研究社区

二、DeepSeek-R1蒸馏模型的部署

1. ollama部署

Ollama是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计‌。其主要目标是简化在 Docker 容器中部署大型语言模型的过程,使得非专业用户也能方便地管理和运行这些复杂的模型。‌目前 Ollama 支持 macOS、Linux、Windows,选择相应的系统下载即可。

进入ollama官网:https://ollama.com/

image-20250216160541698

选择对应的操作系统版本进行下载:

image-20250216160609854

打开cmd,输入下列命令

ollama run deepseek-r1:8b #可选:1.5b 7b 8b 14b 32b 70b

注意不同模型的配置要求不同:

DeepSeek模型版本参数量特点适用场景硬件配置
DeepSeek-R1-1.5B1.5B轻量级模型,参数量少,模型规模小适用于轻量级任务,如短文本生成、基础问答等4核处理器、8G内存,无需显卡
DeepSeek-R1-7B7B平衡型模型,性能较好,硬件需求适中适合中等复杂度任务,如文案撰写、表格处理、统计分析等8核处理器、16G内存,Ryzen7或更高,RTX 306012GB)或更高
DeepSeek-R1-8B8B性能略强于7B模型,适合更高精度需求适合需要更高精度的轻量级任务,比如代码生成、逻辑推理等8核处理器、16G内存,Ryzen7或更高,RTX 306012GB)或4060
DeepSeek-R1-14B14B高性能模型,擅长复杂的任务,如数学推理、代码生成可处理复杂任务,如长文本生成、数据分析等i9-13900K或更高、32G内存,RTX 409024GB)或A5000
DeepSeek-R1-32B32B专业级模型,性能强大,适合高精度任务适合超大规模任务,如语言建模、大规模训练、金融预测等Xeon 8核、128GB内存或更高,2-4张A100(80GB)或更高
DeepSeek-R1-70B70B顶级模型,性能最强,适合大规模计算和高复杂任务适合高精度专业领域任务,比如多模态任务预处理。这些任务对硬件要求非常高,需要高端的 CPU 和显卡,适合预算充足的企业或研究机构使用Xeon 8核、128GB内存或更高,8张A100/H100(80GB)或更高
DeepSeek-R1-671B671B超大规模模型,性能卓越,推理速度快,适合极高精度需求适合国家级 / 超大规模 AI 研究,如气候建模、基因组分析等,以及通用人工智能探索64核、512GB或更高,8张A100/H100

等待模型下载完成后即可对话:

image-20250216161307412

命令行的对话并不方便,可选择Chatbox增强对话的交互性。Chatbox AI 是一款 AI 客户端应用和智能助手,支持众多先进的 AI 模型和 API。在Chatbox AI官网https://chatboxai.app/zh中下载,安装后需进行配置。

image-20250216162227215

在模型提供方中选择“OLLAMA API”,在模型一栏中选择下载好的deepseek模型,点击“保存”即可正常对话。

image-20250216162545866

这个安装方式上手最快可直接体验,适合非专业用户部署。

2. 推理引擎SGLang部署

大模型推理引擎(Inference Engine),通过优化算法、硬件加速和分布式计算等技术手段,显著提升了大模型在实际应用中的推理速度和效率。这些引擎不仅能够加速模型的推理过程,还能在保证推理质量的前提下,降低计算资源的消耗,从而使得大模型在更多场景中得以广泛应用。SGLang是目前比较新的推理引擎,很多新开源大模型都支持SGLang的部署推理,例如deepseek-R1,Qwen2.5,Mistral,GLM-4,MiniCPM 3,InternLM 2, Llama 3.2等。

首先是环境的创建:

conda create -n sglang python=3.12conda activate sglangpip install vllm# 安装最新的版本pip install sglang==0.4.1.post7 pip install sgl_kernel

可能会提示libnvJitLink.so.12的链接问题,可以参照下列博客解决:

解决libcusparse.so.12: undefined symbol: __nvJitLinkAddData_12_1, version libnvJitLink.so.12

之后可能会提示flashinfer包缺失的问题:

from flashinfer import (
ModuleNotFoundError: No module named 'flashinfer'

下载flashinfer的安装 whl 包,然后用 pip 安装。

flashinfer各个版本安装包的地址:https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/

下载匹配环境的版本,我是pytorch2.5.1,安装的是flashinfer-0.2.0.post1+cu124torch2.4-cp312-cp312-linux_x86_64.whl

wget https://github.com/flashinfer-ai/flashinfer/releases/download/v0.2.0/flashinfer-0.2.0+cu124torch2.4-cp312-cp312-linux_x86_64.whl#sha256=a743e156971aa3574faf91e1090277520077a6dd5e24824545d03ce9ed5a3f59pip install flashinfer-0.2.0.post1+cu124torch2.4-cp312-cp312-linux_x86_64.whl --no-deps

然后需要下载蒸馏模型的对应模型文件,在DeepSeek-R1的huggingface官网上:deepseek-ai/DeepSeek-R1 · Hugging Face

可以参考这篇文章解决下载huggingface上面大模型的问题:如何快速下载Huggingface上的超大模型,不用梯子,以Deepseek-R1为例子-CSDN博客

最后可以启动服务,以1.5b的蒸馏模型为例:

python3 -m sglang.launch_server --model ./DeepSeek-R1-Distill-Qwen-1.5B --host 0.0.0.0 --port 8123

显示如下,启动成功:

image-20250216174112451

利用测试脚本测试:

import openaiclient = openai.Client(base_url="http://localhost:8123/v1", api_key="None")response = client.chat.completions.create(model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",messages=[{"role": "user", "content": "在计算机视觉人体骨架识别方面,请给我制定一份相关论文的学习路线"},],temperature=0,max_tokens=4096,
)
print(response.choices[0].message.content)

可得到DeepSeek-1.5B模型的输出:

image-20250216174156891

同时SGLang的推理引擎支持多GPU张量并行和数据并行的大模型启动,详情可以参考SGLang的中文手册:后端:SGLang 运行时 (SRT) — SGLang。

总结

本文探索阅读了最近很火的DeepSeek的原文并实践部署。DeepSeek-R1-Zero通过纯RL训练自主演化出复杂推理行为,验证了无监督方法的可行性;DeepSeek-R1进一步引入冷启动数据与多阶段优化,平衡性能与可读性。蒸馏实验表明,大型模型的推理模式可有效迁移至轻量化模型。部署方案兼顾易用性与效率,介绍了两种方法,Ollama支持非专业用户快速体验,SGLang则通过硬件加速与分布式计算优化推理效率。

相关文章:

DeepSeek-R1论文阅读及蒸馏模型部署

DeepSeek-R1论文阅读及蒸馏模型部署 文章目录 DeepSeek-R1论文阅读及蒸馏模型部署摘要Abstract一、DeepSeek-R1论文1. 论文摘要2. 引言3. DeepSeek-R1-Zero的方法3.1 强化学习算法3.2 奖励建模3.3 训练模版3.4 DeepSeek-R1-Zero的性能、自进化过程和顿悟时刻 4. DeepSeek-R1&am…...

一周学会Flask3 Python Web开发-post请求与参数获取

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili app.route 装饰器默认只支持get请求。假如我们要让绑定的视图函数支持其他请求方式&#xff0c;我们可以在methods属性里配置…...

Python的那些事第二十五篇:高效Web开发与扩展应用实践FastAPI

FastAPI:高效Web开发与扩展应用实践 摘要 FastAPI 是一种基于 Python 的现代 Web 框架,以其高性能、自动文档生成、数据验证和异步支持等特性受到开发者的青睐。本文首先介绍了 FastAPI 的核心特性及其开发流程,然后通过实际案例探讨了其在异步编程、微服务架构、WebSocket…...

ES6模块化和CommonJs模块化区别

ES6模块化和CommonJs模块化区别 在JavaScript中&#xff0c;模块化是将代码拆分成独立的块&#xff0c;每个块可以独立封装和管理。ES6模块化和CommonJS是两种常见的模块化规范&#xff0c;它们在语法、加载方式和运行时特性上有显著差异。 语法差异 CommonJS模块使用requir…...

情书网源码 情书大全帝国cms7.5模板

源码介绍 帝国cms7.5仿《情书网》模板源码&#xff0c;同步生成带手机站带采集。适合改改做文学类的网站。 效果预览 源码获取 情书网源码 情书大全帝国cms7.5模板...

文档检测校正的重要性

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是华为推出的一款面向未来、面向全场景的分布式操作系统。它旨在为用户提供流畅、安全、可靠的跨设备交互体验&#xff0c;支持多种终端设备&#xff0c;如智能手机、平板电脑、智能穿戴设备等。为了确保文档在不同设备上的一致性…...

深入解析iOS视频录制(二):自定义UI的实现

深入解析 iOS 视频录制&#xff08;一&#xff09;&#xff1a;录制管理核心MWRecordingController 类的设计与实现 深入解析iOS视频录制&#xff08;二&#xff09;&#xff1a;自定义UI的实现​​​​​​​ 深入解析 iOS 视频录制&#xff08;三&#xff09;&#xff1a;完…...

基于开源Odoo、SKF Phoenix API与IMAX-8数采网关的圆织机设备智慧运维实施方案 ——以某纺织集团圆织机设备管理场景为例

一、方案背景与需求分析 1.1 纺织行业设备管理痛点 以某华东地区大型纺织集团为例&#xff0c;其圆织机设备管理面临以下挑战&#xff1a; 非计划停机损失高&#xff1a;圆织机主轴轴承故障频发&#xff0c;2024年单次停机损失达12万元&#xff08;停机8小时导致订单延误&am…...

Deepseek 万能提问公式:高效获取精准答案

### **Deepseek 万能提问公式&#xff1a;高效获取精准答案** 在使用 Deepseek 或其他 AI 工具时&#xff0c;提问的质量直接决定了答案的精准度和实用性。以下是一个万能的提问公式回答&#xff1a; --- ### **1. 明确背景&#xff08;Context&#xff09;** - **作用**…...

SQL进阶技巧:如何统计用户跨端消费行为?

目录 0 问题描述 2 问题剖析 技术难点解析 3 完整解决方案 步骤1:构造全量日期平台组合 步骤2:用户行为标记 步骤3:最终关联聚合 4 核心技巧总结 5 复杂度评估 往期精彩 0 问题描述 支出表: Spending +-------------+---------+ | Column Name | Type | +-----…...

DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地

对于个人开发者或尝鲜者而言&#xff0c;本地想要部署 DeepSeek 有很多种方案&#xff0c;但是一旦涉及到企业级部署&#xff0c;则步骤将会繁琐很多。 比如我们的第一步就需要先根据实际业务场景评估出我们到底需要部署什么规格的模型&#xff0c;以及我们所要部署的模型&…...

算法——舞蹈链算法

一&#xff0c;基本概念 算法简介 舞蹈链算法&#xff08;Dancing Links&#xff0c;简称 DLX&#xff09;是一种高效解决精确覆盖问题的算法&#xff0c;实际上是一种数据结构&#xff0c;可以用来实现 X算法&#xff0c;以解决精确覆盖问题。由高德纳&#xff08;Donald E.…...

【复现DeepSeek-R1之Open R1实战】系列5:SFT源码逐行深度解析

目录 3 SFT源码分析3.1 accelerate3.1.1 关键特性3.1.2 使用场景3.1.3 简单示例 3.2 代码主入口3.3 设置随机种子3.4 设置Log3.5 加载数据集3.6 加载Tokenizer3.7 模型参数配置初始化3.8 初始化SFT Trainer3.9 开始训练3.9.1 主函数3.9.2 核心循环3.9.3 单步训练3.9.4 原始Loss…...

WPF8-常用控件

目录 写在前面&#xff1a;1. 按钮控件1.1. Button 按钮1.2. RepeatButton:长按按钮1.3. RadioButton:单选按钮 2. 数据显示控件2.1. TextBlock&#xff1a;只读文本控件2.2. Lable&#xff1a;标签 显示文本控件2.3. ListBox&#xff1a;显示可选择项的列表2.4. DataGrid&…...

单元测试整理

在国外软件开发中&#xff0c;单元测试必不可少&#xff0c;但是国内并不太重视这一块&#xff0c;一个好的单元测试可以提前发现很多问题&#xff0c;也减去和测试battle的时间 Spring单元测试 JUnit4 RunWith 指明单元测试框架 e.g. RunWith(SpringJUnit4ClassRunner.cla…...

代码随想录刷题day24|(字符串篇)151.反转字符串中的单词

一、题目思路 1.快慢指针移除字符串首尾以及单词中的多余空格 类似前面数组篇--移除元素代码随想录刷题day02|&#xff08;数组篇&#xff09;27.移除元素、26.删除有序数组中的重复项_代码随想录网站-CSDN博客 快指针fast遍历整个字符串&#xff0c;慢指针slow指向新字符串…...

六、敏捷开发工具:项目管理工具

一、敏捷开发工具 在敏捷开发过程中,项目管理工具是支持团队高效协作、任务跟踪和项目进度控制的关键因素。随着敏捷方法的普及,市场上出现了多种工具来帮助团队进行需求管理、任务分配、进度跟踪以及反馈收集等任务。本文将对常用的敏捷开发项目管理工具(如Jira、Trello、…...

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app&#xff0c;现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示&#xff1a;App需要使用xcode15IOS 17 SDK重新构建&#xff0c;这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…...

I2C、SPI、UART

I2C&#xff1a;串口通信&#xff0c;同步&#xff0c;半双工&#xff0c;双线&#xff08;数据线SDA时钟线SCL&#xff09;&#xff0c;最大距离1米到几米 SPI&#xff08;串行外设接口&#xff09;&#xff1a;串口通信&#xff0c;同步&#xff0c;全双工&#xff0c;四线&…...

3.2 Hugging Face Transformers库深度解析:大模型开发的一站式解决方案

Hugging Face Transformers库深度解析:大模型开发的一站式解决方案 一、Transformers库定位:NLP领域的"模型工厂" 1.1 核心定义与技术定位 Hugging Face Transformers 是一个开源的Python库,专为自然语言处理(NLP)、计算机视觉(CV)和语音任务设计。它提供:…...

DeepSeek V3和R1

DeepSeek V3 和 R1 是深度求索&#xff08;DeepSeek&#xff09;推出的两款大模型&#xff0c;基于混合专家架构&#xff08;MoE&#xff09;&#xff0c;但在设计目标、训练方法和应用场景上存在显著差异。以下是两者的详细对比与补充内容&#xff1a; DeepSeek V3和R1 一、模…...

【操作系统】深入理解Linux物理内存

物理内存的组织结构 我们平时所称的内存也叫随机访问存储器也叫 RAM 。RAM 分为两类&#xff1a; 一类是静态 RAM&#xff08; SRAM &#xff09;&#xff0c;这类 SRAM 用于 CPU 高速缓存 L1Cache&#xff0c;L2Cache&#xff0c;L3Cache。其特点是访问速度快&#xff0c;访…...

6.【线性代数】—— 列空间和零空间

六 列空间和零空间 1. 列空间 C(A)2. 零空间 N(A)2.1 定义2.2 为什么零空间是一个子空间&#xff1f;2.3 Axb的解空间&#xff0c;是一个子空间吗&#xff1f; 1. 列空间 C(A) [ c o l 11 c o l 21 c o l 31 c o l 12 c o l 22 c o l 32 c o l 13 c o l 23 c o l 33 ] ⏟ A [ a…...

记一次一波三折的众测SRC经历

视频教程和更多福利在我主页简介或专栏里 &#xff08;不懂都可以来问我 专栏找我哦&#xff09; 目录&#xff1a; 前言 波折一&#xff1a;RCE漏洞利用失败 波折二&#xff1a;SQL时间盲注 波折三&#xff1a;寻找管理后台 总结 前言 先谈个人SRC心得体会吧&#xff0c;我虽…...

Java中的Thread.sleep(0)你了解多少

在Java中&#xff0c;Thread.sleep(long millis)方法用于使当前线程暂停执行指定的时间&#xff08;以毫秒为单位&#xff09;。它通常用于控制线程的执行节奏、避免过度占用CPU资源或实现任务的延迟。然而&#xff0c;Thread.sleep(0)作为Thread.sleep方法的一种特殊用法&…...

POI优化Excel录入

57000单词原始录入时间258S 核心代码: List<Word> wordBookList ExcelUtil.getReader(file.getInputStream()).readAll(Word.class);if (!CollectionUtil.isEmpty(wordBookList)) {for (Word word : wordBookList) {//逐条向数据库中插入单词wordMapper.insert(word);}…...

HarmonyOS进程通信及原理

大家好&#xff0c;我是学徒小z&#xff0c;最近在研究鸿蒙中一些偏底层原理的内容&#xff0c;今天分析进程通信给大家&#xff0c;请用餐&#x1f60a; 文章目录 进程间通信1. 通过公共事件&#xff08;ohos.commonEventManager&#xff09;公共事件的底层原理 2. IPC Kit能…...

DeepSeek核心算法解析:如何打造比肩ChatGPT的国产大模型

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

【算法】双指针(上)

目录 双指针 左右指针(对撞指针) 快慢指针 移动零 双指针解题 复写零 暴力解题 双指针解题(快慢指针) 快乐数 双指针解题(快慢指针) 盛最多水的容器 暴力解题(会超时) 双指针解题(左右指针) 有效三角形的个数 暴力解题 双指针解题(左右指针) 双指针 常见的双指…...

深度学习模型常用激活函数集合

激活函数是深度学习模型中的关键组成部分&#xff0c;用于引入非线性特性&#xff0c;使神经网络能够学习复杂的模式和映射关系&#xff1b;神经网络本质上是一个复合函数。如果没有激活函数&#xff0c;无论网络有多少层&#xff0c;其输出都只是输入的线性组合。激活函数通过…...