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

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

DeepSeek 的 LLM 推理新方法

DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力,而无需过度依赖监督式微调,这是一个重大进步。

DeepSeek-R1 技术概述

模型架构:

DeepSeek-R1 不是一个单一的模型,而是一个模型系列,包括:DeepSeek-R1-ZeroDeepSeek-R1

让我澄清一下 DeepSeek-R1 和 DeepSeek-R1-Zero 之间的主要区别:

主要区别

DeepSeek-R1-Zero代表了该团队使用纯强化学习进行的初步实验,没有任何监督式微调。他们从基础模型开始,直接应用强化学习,让模型通过反复试验来开发推理能力。虽然这种方法取得了令人印象深刻的结果(AIME 2024 上的准确率为 71%),但它有一些明显的局限性,特别是在可读性和语言一致性方面。它具有 6710 亿个参数,采用混合专家 (MoE) 架构,其中每个标记激活相当于 370 亿个参数。该模型展示了新兴的推理行为,例如自我验证、反思和长链思维 (CoT) 推理。

相比之下, DeepSeek-R1采用了更复杂的多阶段训练方法。它不是采用纯粹的强化学习,而是先对一小组精心挑选的示例(称为“冷启动数据”)进行监督微调,然后再应用强化学习。这种方法解决了 DeepSeek-R1-Zero 的局限性,同时实现了更好的性能。该模型还保留了 6710 亿个参数,但在响应中实现了更好的可读性和连贯性。

训练过程对比

培训方法:

  • 强化学习:与主要依赖监督学习的传统模型不同,DeepSeek-R1 广泛使用强化学习。训练利用组相对策略优化 (GRPO),专注于准确性和格式奖励,以增强推理能力,而无需大量标记数据。
  • 提炼技术:为了使高性能模型的普及,DeepSeek 还发布了 R1 的提炼版本,参数范围从 15 亿到 700 亿。这些模型基于 Qwen 和 Llama 等架构,表明复杂的推理可以封装在更小、更高效的模型中。提炼过程涉及使用完整 DeepSeek-R1 生成的合成推理数据对这些较小的模型进行微调,从而以较低的计算成本保持高性能。

DeepSeek-R1-Zero 的训练过程非常简单:

  • 从基础模型开始
  • 直接应用强化学习
  • 根据准确性和格式使用简单的奖励

DeepSeek-R1 的训练过程分为四个不同的阶段:

  1. 使用数千个高质量示例进行初始监督微调
  2. 强化学习专注于推理任务
  3. 通过拒绝抽样收集新的训练数据
  4. 针对所有类型任务的最终强化学习

绩效指标:

  • 推理基准: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的一步步推理能力。

DeepSeek 聊天平台

2.通过DeepSeek API访问:

对于编程访问,DeepSeek 提供了与 OpenAI 格式兼容的 API,允许集成到各种应用程序中。

使用API​​的步骤

a. 获取 API 密钥

  • 访问DeepSeek API 平台创建帐户并生成你的唯一 API 密钥。

b.配置的环境

  • 将 设置base_urlhttps://api.deepseek.com/v1
  • 使用你的 API 密钥进行身份验证,通常通过 HTTP 标头中的 Bearer Token 进行。

c. 进行 API 调用

  • 利用 API 发送提示并接收来自 DeepSeek-R1 的响应。
  • DeepSeek API 文档中提供了详细的文档和示例。

DeepSeek API 调用示例

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 格式)。

本地运行的软件工具:

  1. 将成为:

可以使用Ollama在本地提供模型: (Ollama 是一种在的机器上本地运行开源 AI 模型的工具。在此处获取:https: //ollama.com/download )

接下来,需要在本地提取并运行 DeepSeek R1 模型。

Ollama 提供不同尺寸的模型 — 基本上,更大的模型等于更智能的 AI,但需要更好的 GPU。以下是阵容:

1.5B version (smallest):
ollama run deepseek-r1:1.5b

8B version:
ollama run deepseek-r1:8b

14B version:
ollama run deepseek-r1:14b

32B version:
ollama run deepseek-r1:32b

70B version (biggest/smartest):
ollama run deepseek-r1:70b

要开始尝试 DeepSeek-R1,建议从较小的模型开始,以熟悉设置并确保与硬件的兼容性。你可以通过打开终端并执行以下命令来启动此过程:

ollama run deepseek-r1:8b 

 

通过 Ollama 向本地下载的 DeepSeek-R1 发送请求:

Ollama 提供了一个 API 端点,用于以编程方式与 DeepSeek-R1 进行交互。在发出 API 请求之前,请确保 Ollama 服务器在本地运行。可以通过运行以下命令来启动服务器:

ollama serve

一旦服务器处于活动状态,你就可以使用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 的 LLM 推理新方法 DeepSeek 推出了一种创新方法,通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力,其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力,而无…...

图论常见算法

图论常见算法 算法prim算法Dijkstra算法 用途最小生成树(MST):最短路径:拓扑排序:关键路径: 算法用途适用条件时间复杂度Kruskal最小生成树无向图(稀疏图)O(E log E)Prim最小生成树无…...

MySQL三大日志详解

在MySQL数据库的运行过程中,三大关键日志——binlog、redo log和undo log,起着至关重要的作用。理解这三大日志,对于深入掌握MySQL的工作原理、数据恢复以及主从复制等操作有着极大的帮助。本文将详细剖析这三大日志的作用和工作机制。 Binl…...

【SQL 中的分组查询与联合查询详解】

文章目录 SQL 中的分组查询与联合查询详解 1. GROUP BY分组查询 1.1 语句格式1.2 示例说明 1.2.1 分别查询哥哥组和弟弟组的英语成绩总和1.2.2 查询哥哥组的所有成绩总和 2. 联合查询 2.1 内连接 2.1.1 语法格式2.1.2 执行过程 2.2 外连接 2.2.1 左外连接2.2.2 右外连接 2.3 …...

【实战篇】用 Cursor 独立开发并上线电商类 Android APP 全攻略

一、为啥要用 Cursor 开发电商类 Android APP 家人们,如今电商类 APP 随处可见,不管是买衣服、食品,还是电子产品,都能通过这些 APP 轻松搞定。要是能自己开发一款电商类 Android APP,那可太酷啦!但开发 APP 可不是一件容易的事,涉及到很多技术,像写代码、设计界面、处…...

quartus24.1版本子模块因时钟问题无法综合通过,FPGA过OOC问题复盘

因为只负责一个子模块,所以需要单独对该子模块进行综合和过OOC,这时候已经有一些加虚拟pin文件,敲命令让子模块能过OOC的方法。但这个方法的前提是先过综合,然后再敲命令让虚拟管脚命令成功,最终可以过OOC。 今天负责…...

零基础Vue入门6——Vue router

本节重点: 路由定义路由跳转 前面几节学习的都是单页面的功能(都在专栏里面https://blog.csdn.net/zhanggongzichu/category_12883540.html),涉及到项目研发都是有很多页面的,这里就需要用到路由(vue route…...

使用 Let‘s Encrypt 和 OpenResty 实现域名转发与 SSL 配置

在搭建网站或服务时,确保域名的安全性和正确的流量转发是非常重要的。本文将介绍如何使用 Let’s Encrypt 获取免费的 SSL 证书,并将其配置到 OpenResty 中,同时实现特定的域名转发规则。这不仅可以提升网站的安全性,还能优化流量…...

Lambda 表达式

一、Lambda 表达式简介 Lambda 表达式是一种简洁的函数式编程方式,用于实现只有一个方法的接口(例如函数式接口)。 基本语法 (parameters) -> expression (parameters) -> { statements; } 参数:可以有零个或多个参数。…...

TCN时间卷积神经网络多变量多步光伏功率预测(Matlab)

代码下载:TCN时间卷积神经网络多变量多步光伏功率预测(Matlab) TCN时间卷积神经网络多变量多步光伏功率预测 一、引言 1.1、研究背景和意义 随着全球能源危机的加剧和环保意识的提升,可再生能源,尤其是太阳能&…...

【Elasticsearch】 Composite Aggregation 详解

1.什么是 Composite Aggregation? Composite Aggregation 是 Elasticsearch 中的一种特殊聚合方式,适用于需要分页展示的聚合结果。它与传统的聚合方式不同,采用了基于游标的分页模型。这种聚合方式可以高效地处理多级聚合中的所有桶&#x…...

如何通过 Logstash 将数据采集到 Elasticsearch

作者:来自 Elastic Andre Luiz 将 Logstash 与 Elasticsearch 集成以实现高效的数据提取、索引和搜索的分步指南。 什么是 Logstash? Logstash 是一种广泛使用的 Elastic Stack 工具,用于实时处理大量日志数据。它充当高效的数据管道&#x…...

mysql的cpu使用率100%问题排查

背景 线上mysql服务器经常性出现cpu使用率100%的告警, 因此整理一下排查该问题的常规流程。 1. 确认CPU占用来源 检查系统进程 使用 top 或 htop 命令,确认是否是 mysqld 进程导致CPU满载:top -c -p $(pgrep mysqld)2. 实时分析MySQL活动 …...

centos虚拟机迁移没有ip的问题

故事背景,我们的centos虚拟机本来是好好的,但是拷贝到其他电脑上就不能分配ip,我个人觉得这个vmware他们软件应该搞定这个啊,因为这个问题是每次都会出现的。 网络选桥接 网络启动失败 service network restart Restarting netw…...

接入 deepseek 实现AI智能问诊

1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目(选择 Vue3 或 Vue2 模板)。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求,推荐使用 uni.requ…...

用AVFrame + AVPacket 完成accede编码和直接用ffmpeg命令行实现acc编码的对比

在使用 FFmpeg 进行 AAC 音频编码时,可以选择两种方式:通过编程接口(如 AVFrame 和 AVPacket)实现 AAC 编码,或者直接使用 FFmpeg 命令行工具。这两种方式各有特点,适用于不同的场景。以下是对两种方法的详细分析,包括它们的区别、优缺点以及适用场景。 一、通过 AVFram…...

计算机网络笔记再战——理解几个经典的协议6——TCP与UDP

目录 先说端口号 TCP 使用序号保证顺序性和应答来保证有效性 超时重传机制 TCP窗口机制 UDP 路由协议 协议分类:IGP和EGP 几个经典的路由算法 RIP OSPF 链路状态数据库(LSDB) LSA(Link State Advertisement&#xff0…...

【AI】在Ubuntu中使用docker对DeepSeek的部署与使用

这篇文章前言是我基于部署好的deepseek-r1:8b模型跑出来的 关于部署DeepSeek的前言与介绍 在当今快速发展的技术环境中,有效地利用机器学习工具来解决问题变得越来越重要。今天,我将引入一个名为DeepSeek 的工具,它作为一种强大的搜索引擎&a…...

openssl使用

openssl使用 提取密钥对 数字证书pfx包含公钥和私钥,而cer证书只包含公钥。提取需输入证书保护密码 openssl pkcs12 -in xxx.pfx -nocerts -nodes -out pare.key提取私钥 openssl rsa -in pare.key -out pri.key提取公钥 openssl rsa -in pare.key -pubout -ou…...

《语义捕捉全解析:从“我爱自然语言处理”到嵌入向量的全过程》

首先讲在前面,介绍一些背景 RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索与语言生成模型的技术,通过从外部知识库中检索相关信息,并将其作为提示输入给大型语言模型&#xff…...

HIVE如何注册UDF函数

如果注册UDF函数的时候报了上面的错误,说明hdfs上传的路径不正确, 一定要用下面的命令 hadoop fs -put /tmp/hive/111.jar /user/hive/warehouse 一定要上传到上面路径,这样在创建函数时,引用下面的地址就可以创建成功...

VsCode创建VUE项目

1. 首先安装Node.js和npm 通过网盘分享的文件:vsCode和Node(本人电脑Win11安装) 链接: https://pan.baidu.com/s/151gBWTFZh9qIDS9XWMJVUA 提取码: 1234 它们是运行和构建Vue.js应用程序所必需的。 1.1 Node安装,点击下一步即可 …...

x64、aarch64、arm与RISC-V64:详解四种处理器架构

x64、aarch64、arm与RISC-V64:详解四种处理器架构 x64架构aarch64架构ARM架构RISC-V64架构总结与展望在计算机科学领域,处理器架构是构建计算机系统的基石,它决定了计算机如何执行指令、管理内存和处理数据。x64、aarch64、arm与RISC-V64是当前主流的四种处理器架构,它们在…...

如何使用iframe来渲染ThingsBoard仪表盘

1、概述 当我们在使用ThingsBoard的时候,有时候需要再自己的前端项目中展示大屏,thingsboard的仪表盘是可以来做大屏的,虽然界面达不到非常的美观,但是对比之前的版本,现在的版本仪表盘做了很多的优化了。可以实现将thingsboard的仪表板嵌入到自己的vue界面中作为大屏显示…...

退格法记单词(类似甘特图)

退格法记单词,根据记忆次数或熟练程度退格,以示区分,该方法用于短时高频大量记单词: explosion爆炸,激增 mosquito蚊子granary粮仓,谷仓 offhand漫不经心的 transient短暂的slob懒惰而邋遢的…...

计算 MySQL 表行的成本是多少?

当计算表中的所有行时,将使用什么索引?好吧,MySQL文档文档对此提供了一个直接的答案,引用: InnoDB 通过遍历最小的可用二级索引来处理 SELECT COUNT(*) 语句除非索引或优化器提示指示优化器使用…...

Pygame介绍与游戏开发

提供pygame功能介绍的文档:Pygame Front Page — pygame v2.6.0 documentation 基础语法和实现逻辑 与CLI不同,pygame提供了图形化使用界面GUI(graphical user interface)基于图像的界面可以创建一个有图像和颜色的窗口 要让py…...

webpack配置方式

1. 基本配置文件 (webpack.config.js)(导出一个对象) 最常见的方式是通过 webpack.config.js 文件来配置 Webpack,导出一个对象。你可以在这个文件中导出一个配置对象,指定入口、输出、加载器、插件等。 // webpack.config.js m…...

10. k8s二进制集群之Kube Scheduler部署

在开始之前需要准备什么?创建kube-scheduler证书请求文件【即证书的生成⓵】根据上面证书配置文件生成kube-scheduler证书【即证书的生成⓶】创建与关联kube-scheduler配置文件(为后面生成系统服务做准备)创建kube-scheduler服务配置文件【准备系统服务⓵】创建kube-schedul…...

java实现8583报文解析技术详解

文章目录 概要整体架构流程技术名词解释技术细节小结概要 ISO 8583协议是金融交易系统中广泛使用的通信协议,用于规范报文的格式和数据交换。解析8583报文是实现金融交易系统的关键技术之一。本文将详细介绍8583报文解析的核心实现,重点关注解析算法和关键代码逻辑。 8583报…...