DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求
DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求

DeepSeek 的 LLM 推理新方法
DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力,而无需过度依赖监督式微调,这是一个重大进步。
DeepSeek-R1 技术概述
模型架构:
DeepSeek-R1 不是一个单一的模型,而是一个模型系列,包括:DeepSeek-R1-Zero和DeepSeek-R1
*让我们澄清一下 DeepSeek-R1 和 DeepSeek-R1-Zero 之间的主要区别:*
主要区别
DeepSeek-R1-Zero代表了该团队使用纯强化学习进行的初步实验,没有任何监督式微调。他们从基础模型开始,直接应用强化学习,让模型通过反复试验来开发推理能力。虽然这种方法取得了令人印象深刻的结果(AIME 2024 上的准确率为 71%),但它有一些明显的局限性,特别是在可读性和语言一致性方面。它具有 6710 亿个参数,采用混合专家 (MoE) 架构,其中每个标记激活相当于 370 亿个参数。该模型展示了新兴的推理行为,例如自我验证、反思和长链思维 (CoT) 推理。该模型展示了新兴的推理行为,例如自我验证、反思和长链思维 (CoT) 推理。
相比之下, DeepSeek-R1采用了更复杂的多阶段训练方法。它不是采用纯粹的强化学习,而是先对一小组精心挑选的示例(称为“冷启动数据”)进行监督微调,然后再应用强化学习。这种方法解决了 DeepSeek-R1-Zero 的局限性,同时实现了更好的性能。该模型还保留了 6710 亿个参数,但在响应中实现了更好的可读性和连贯性。
训练过程对比
培训方法:
- 强化学习:与主要依赖监督学习的传统模型不同,DeepSeek-R1 广泛使用强化学习。训练利用组相对策略优化 (GRPO),专注于准确性和格式奖励,以增强推理能力,而无需大量标记数据。
- 提炼技术:为了使高性能模型的普及,DeepSeek 还发布了 R1 的提炼版本,参数范围从 15 亿到 700 亿。这些模型基于 Qwen 和 Llama 等架构,表明复杂的推理可以封装在更小、更高效的模型中。提炼过程涉及使用完整 DeepSeek-R1 生成的合成推理数据对这些较小的模型进行微调,从而以较低的计算成本保持高性能。
DeepSeek-R1-Zero 的训练过程非常简单:
- 从基础模型开始
- 直接应用强化学习
- 根据准确性和格式使用简单的奖励
DeepSeek-R1 的训练过程分为四个不同的阶段:
- 使用数千个高质量示例进行初始监督微调
- 强化学习专注于推理任务
- 通过拒绝抽样收集新的训练数据
- 针对所有类型任务的最终强化学习
绩效指标:
- 推理基准:DeepSeek-R1 在各种基准测试中都表现出了令人印象深刻的结果:
- AIME 2024:通过率为 79.8%,而 OpenAI 的 o1-1217 的通过率为 79.2%。
- MATH-500:得分高达 97.3%,略高于 o1–1217 的 96.4%。
- SWE-bench Verified:在编程任务中表现出色,展示了其编码能力。
- 成本效益:DeepSeek-R1 的 API 定价为每百万输入令牌 0.14 美元(缓存命中),比 OpenAI 的 o1 等同类模型便宜得多。
局限性和未来工作
论文承认了几个需要改进的领域:
- 该模型有时会在需要特定输出格式的任务上遇到困难
- 软件工程任务的性能可以提高
- 多语言环境中的语言混合存在挑战
- 少量提示会持续降低表现
未来的工作将集中于解决这些限制并扩展模型在函数调用、多轮交互和复杂角色扮演场景等领域的功能。
部署和可访问性
- 开源和许可:DeepSeek-R1 及其变体在 MIT 许可下发布,促进开源协作和商业使用,包括模型提炼。此举对于促进创新和降低 AI 模型开发的准入门槛至关重要。
- 模型格式:
- 这两种模型及其提炼版本均采用 GGML、GGUF、GPTQ 和 HF 等格式,从而可以灵活地在本地部署。
1. 通过 DeepSeek 聊天平台进行网页访问:
DeepSeek 聊天平台提供了用户友好的界面,无需任何设置要求即可与 DeepSeek-R1 进行交互。
- 访问步骤:
- 导航至DeepSeek 聊天平台
- 注册一个帐户,如果已有帐户,请登录。
- 登录后,选择“深度思考”模式,即可体验DeepSeek-R1的一步步推理能力。
2.通过DeepSeek API访问:
对于编程访问,DeepSeek 提供了与 OpenAI 格式兼容的 API,允许集成到各种应用程序中。
使用API的步骤:
a. 获取 API 密钥:
- 访问DeepSeek API 平台创建帐户并生成你的唯一 API 密钥。
b.配置你的环境:
- 将 设置
base_url为https://api.deepseek.com/v1。 - 使用你的 API 密钥进行身份验证,通常通过 HTTP 标头中的 Bearer Token 进行。
c. 进行 API 调用:
- 利用 API 发送提示并接收来自 DeepSeek-R1 的响应。
- DeepSeek API 文档中提供了详细的文档和示例。
// pyton 调用示例:# Please install OpenAI SDK first: `pip3 install openai`from openai import OpenAIclient = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "You are a helpful assistant"},{"role": "user", "content": "Hello"},],stream=False
)print(response.choices[0].message.content)// curl 调用示例:
curl https://api.deepseek.com/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer <DeepSeek API Key>" \-d '{"model": "deepseek-chat","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}],"stream": false}'
3. 在本地运行 DeepSeek-R1:
两种型号(R1 和 R1-Zero):
- **硬件要求:**完整模型由于其大小而需要大量硬件。建议使用具有大量 VRAM 的 GPU(如 Nvidia RTX 3090 或更高版本)。对于 CPU 使用,你至少需要 48GB 的 RAM 和 250GB 的磁盘空间,尽管如果没有 GPU 加速,性能会很慢。
- **精简模型:**对于资源密集程度较低的硬件的本地部署,DeepSeek 提供了精简版本。这些模型的参数范围从 1.5B 到 70B,适合硬件较差的系统。例如,7B 模型可以在至少具有 6GB VRAM 的 GPU 上运行,或者在具有大约 4GB RAM 的 CPU 上运行(适用于 GGML/GGUF 格式)。
本地运行的软件工具:
- Ollama:
你可以使用Ollama在本地提供模型: (Ollama 是一种在你的机器上本地运行开源 AI 模型的工具。在此处获取:https: //ollama.com/download )
接下来,你需要在本地提取并运行 DeepSeek R1 模型。
Ollama 提供不同尺寸的模型 — 基本上,更大的模型等于更智能的 AI,但需要更好的 GPU。以下是阵容:
1.5B 版本(最小):
ollama run deepseek-r1:1.5b 8B 版本:
ollama run deepseek-r1:8b 14B 版本:
ollama run deepseek-r1:14b 32B 版本:
ollama run deepseek-r1:32b 70B 版本(最大/最智能):
ollama run deepseek-r1:70b
要开始尝试 DeepSeek-R1,建议从较小的模型开始,以熟悉设置并确保与硬件的兼容性。你可以通过打开终端并执行以下命令来启动此过程:
ollama run deepseek-r1:8b

通过 Ollama 向本地下载的 DeepSeek-R1 发送请求:
Ollama 提供了一个 API 端点,用于以编程方式与 DeepSeek-R1 进行交互。在发出 API 请求之前,请确保 Ollama 服务器在本地运行。你可以通过运行以下命令来启动服务器:
ollama run deepseek-r1:8b
一旦服务器处于活动状态,你就可以使用curl以下命令发送请求:
curl -X POST http://localhost:11434/api/generate -d '{ "model": "deepseek-r1", "prompt": "Your question or prompt here"
}'
将其替换"Your question or prompt here"为你希望向模型提供的实际输入。此命令向本地 Ollama 服务器发送 POST 请求,该服务器使用指定的 DeepSeek-R1 模型处理提示并返回生成的响应。
在本地运行/访问模型的其他方法包括:
**vLLM/SGLang:**用于在本地提供模型。vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B — tensor-parallel-size 2 — max-model-len 32768 — force-eager 等命令可用于精简版本。

**llama.cpp:**你还可以使用 llama.cpp 在本地运行模型。
结论:
从 DeepSeek-R1-Zero 到 DeepSeek-R1 的这一进展代表了研究中重要的学习历程。DeepSeek-R1-Zero 证明了纯强化学习是可行的,而 DeepSeek-R1 则展示了如何将监督学习与强化学习相结合来创建一个更强大、更实用的模型。
相关文章:
DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求
DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求 DeepSeek 的 LLM 推理新方法 DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们…...
1.攻防世界 unserialize3(wakeup()魔术方法、反序列化工作原理)
进入题目页面如下 直接开审 <?php // 定义一个名为 xctf 的类 class xctf {// 声明一个公共属性 $flag,初始值为字符串 111public $flag 111;// 定义一个魔术方法 __wakeup()// 当对象被反序列化时,__wakeup() 方法会自动调用public function __wa…...
麒麟系统编译安装git
有些版本的麒麟系统上没有git,官网又找不到现成的安装包,只好下载编译进行编译安装 1、下载源码 下载源码,地址:https://git-scm.com/downloads/linux。 2、解压 直接鼠标右键解压,或者用命令行: tar …...
Web - CSS3过渡与动画
过渡 基本使用 transition过渡属性是css3浓墨重彩的特性,过渡可以为一个元素在不同样式之间变化自动添加补间动画。 过渡从kIE10开始兼容,移动端兼容良好,网页上的动画特效基本都是由JavaScript定时器实现的,现在逐步改为css3过…...
Git 常见错误与解决方案全指南
🚀 Git 常见错误与解决方案全指南 这份指南涵盖了你在 Git 操作过程中遇到的所有常见错误、问题及其对应的解决方案,确保你在日常开发中能够快速定位问题并高效解决。 🔗 1. 如何将本地项目上传到 GitHub 仓库? 步骤:…...
OpenStack四种创建虚拟机的方式
实例(Instances)是在云内部运行的虚拟机。您可以从以下来源启动实例: 一、上传到镜像服务的镜像(Image) 使用已上传到镜像服务的镜像来启动实例。 二、复制到持久化卷的镜像(Volume) 使用已…...
线上hbase rs 读写请求个数指标重置问题分析
问题描述: 客户想通过调用hbase的jmx接口获取hbase的读写请求个数,以此来分析HBase读写请求每日增量。 但是发现生产,测试多个集群,Hbase服务指标regionserver读写请求个数存在突然下降到0或者大幅度下降情况。 需要排查原因: 某个Region的读写请求数:会发现经常会重置为…...
【R语言】卡方检验
一、定义 卡方检验是用来检验样本观测次数与理论或总体次数之间差异性的推断性统计方法,其原理是比较观测值与理论值之间的差异。两者之间的差异越小,检验的结果越不容易达到显著水平;反之,检验结果越可能达到显著水平。 二、用…...
2025.2.9机器学习笔记:PINN文献阅读
2025.2.9周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 文献阅读 题目信息 题目: GPT-PINN:Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs期刊: Fini…...
c语言:取绝对值
假设我们有一个 long 类型的变量 l,我们希望恢复其绝对值。以下是两种方法的对比: 方法1:使用条件语句 这个很好理解,负数时取负运算 ,用于数值的符号反转。 long abs_value(long l) {if (l < 0) {return -l;} e…...
JVM(Java 虚拟机)
Java语言的解释性和编译性(通过JVM 的执行引擎) Java 代码(.java 文件)要先使用 javac 编译器编译为 .class 文件(字节码),紧接着再通过JVM 的执行引擎(Execution Engine)…...
利用二分法进行 SQL 盲注
什么是sql注入? SQL 注入(SQL Injection)是一种常见的 Web 安全漏洞,攻击者可以通过构造恶意 SQL 语句来访问数据库中的敏感信息。在某些情况下,服务器不会直接返回查询结果,而是通过布尔值(Tr…...
大模型数据集全面整理:444个数据集下载地址
本文针对Datasets for Large Language Models: A Comprehensive Survey 中的 444 个数据集(涵盖8种语言类别和32个领域)进行完整下载地址整理收集。 2024-02-28,由杨刘、曹家欢、刘崇宇、丁凯、金连文等作者编写,深入探讨了大型语…...
Ubuntu 下 nginx-1.24.0 源码分析 ngx_tm_t 类型
src\os\unix\ngx_time.h 中 typedef struct tm ngx_tm_t; tm 是 C 标准库中定义的一个结构体,通常用于表示日期和时间的信息。它通常定义在 <time.h> 头文件中 struct tm {int tm_sec; /* 秒,范围 0-59 */int tm_min; /* …...
Linux 创建进程 fork()、vfork() 与进程管理
Linux 创建进程 fork、vfork、进程管理 一、Linux的0号、1号、2号进程二、Linux的进程标识三、fork() 函数1、基本概念2、函数特点3、用法以及应用场景(1)父子进程执行不同的代码(2)进程执行另一个程序 4、工作原理 四、vfork() 函…...
2025web寒假作业二
一、整体功能概述 该代码构建了一个简单的后台管理系统界面,主要包含左侧导航栏和右侧内容区域。左侧导航栏有 logo、管理员头像、导航菜单和安全退出按钮;右侧内容区域包括页头、用户信息管理内容(含搜索框和用户数据表格)以及页…...
鸿蒙NEXT API使用指导之文件压缩和邮件创建
鸿蒙NEXT API 使用指导 一、前言二、邮件创建1、拉起垂类应用2、 UIAbilityContext.startAbilityByType 原型2.1、wantParam2.2、abilityStartCallback 与 callback 3、拉起邮箱类应用3.1、单纯拉起邮箱应用3.2、传入带附件的邮件 三、压缩文件1、认识 zlib2、压缩处理2.1、单文…...
javaEE-10.CSS入门
目录 一.什么是CSS 编辑二.语法规则: 三.使用方式 1.行内样式: 2.内部样式: 3.外部样式: 空格规范 : 四.CSS选择器类型 1.标签选择器 2.类选择器 3.ID选择器 4.通配符选择器 5.复合选择器 五.常用的CSS样式 1.color:设置字体颜色 2.font-size:设置字体大小 3…...
Spring Boot牵手Redisson:分布式锁实战秘籍
一、引言 在当今的分布式系统架构中,随着业务规模的不断扩大和系统复杂度的日益增加,如何确保多个服务节点之间的数据一致性和操作的原子性成为了一个至关重要的问题。在单机环境下,我们可以轻松地使用线程锁或进程锁来控制对共享资源的访问,但在分布式系统中,由于各个服务…...
制药行业 BI 可视化数据分析方案
一、行业背景 随着医药行业数字化转型的深入,企业积累了海量的数据,包括销售数据、生产数据、研发数据、市场数据等。如何利用这些数据,挖掘其价值,为企业决策提供支持,成为医药企业面临的重大挑战。在当今竞争激烈的…...
[学习笔记] Kotlin Compose-Multiplatform
Compose-Multiplatform 原文:https://github.com/zimoyin/StudyNotes-master/blob/master/compose-multiplatform/compose.md Compose Multiplatform 是 JetBrains 为桌面平台(macOS,Linux,Windows)和Web编写Kotlin UI…...
ubutun系统常用配置
目录 1. 更新系统 2. 安装 vim 文本编辑器 3. 扩展文件系统 4. 设置静态IP地址(可选) 5. 安装图形驱动 6. 安装常用软件 7. 调整启动项 8. 清理系统 9. 配置SSH 10. 安装VNC服务器(可选) 11. 安装桌面环境(…...
PHP函数介绍—get_headers(): 获取URL的响应头信息
概述:在PHP开发中,我们经常需要获取网页或远程资源的响应头信息。PHP函数get_headers()能够方便地获取目标URL的响应头信息,并以数组形式返回。本文将介绍get_headers()函数的用法,以及提供一些相关的代码示例。 get_headers()函…...
web前端录制canvas视频和video的声音,并合并成一个文件进行下载
一、captureStream captureStream是一个Web API方法,用于捕获指定元素的媒体流。该方法通常用于从<video>、<audio>或<canvas>元素中捕获实时视频流或音频流,以便进行进一步的处理,如直播、录制或分析。 captureStr…...
Golang 并发机制-7:sync.Once实战应用指南
Go的并发模型是其突出的特性之一,但强大的功能也带来了巨大的责任。sync.Once是由Go的sync包提供的同步原语。它的目的是确保一段代码只执行一次,而不管有多少协程试图执行它。这听起来可能很简单,但它改变了并发环境中管理一次性操作的规则。…...
【AI实践】Cursor上手-跑通Hello World和时间管理功能
背景 学习目的:熟悉Cursor使用环境,跑通基本开发链路。 本人背景:安卓开发不熟悉,了解科技软硬件常识 实践 基础操作 1,下载安装安卓Android Studio 创建一个empty project 工程,名称为helloworld 2&am…...
深度学习 视频推荐
以下为你呈现一个基于深度学习实现视频推荐的简化代码示例。这里我们使用的是协同过滤思想结合神经网络的方式,借助 TensorFlow 和 Keras 库来构建模型。在这个示例中,假设已有用户对视频的评分数据,目标是预测用户对未评分视频的评分,进而为用户推荐可能感兴趣的视频。 1…...
缓存组件<keep-alive>
缓存组件<keep-alive> 1.组件作用 组件, 默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。 2.使用场景 场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件 使用:KeepAlive | Vu…...
SpringBoot单机模式的极限是什么?为什么会引入分布式?
Spring Boot 单机模式的极限 Spring Boot 单机模式的极限主要体现在以下几个方面: 硬件资源限制: CPU:单机性能受限于 CPU 核心数和主频,无法无限扩展。内存:内存容量有限,无法应对大规模数据处理或高并发…...
【多模态大模型】系列4:目标检测(ViLD、GLIP)
目录 1 ViLD2 GLIP 1 ViLD OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION 从标题就能看出来,作者是把CLIP模型当成一个Teacher,去蒸馏他自己的网络,从而能Zero Shot去做目标检测。 现在的目标检测数据…...
