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

【大模型理论篇】最近大火的DeepSeek-R1初探系列1

1. 背景介绍

        这一整个春节,被DeepSeek-R1刷屏。各种铺天盖地的新闻以及老板发的相关信息,着实感受到DeepSeek-R1在国外出圈的震撼。

        DeepSeek推出了新的推理模型:DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个在没有经过监督微调(SFT)作为预处理步骤的情况下,通过大规模强化学习(RL)训练的模型,在推理任务上展现出了卓越的性能。借助强化学习,DeepSeek-R1-Zero 涌现出许多强大的推理行为。不过,DeepSeek-R1-Zero 也存在一些挑战,比如无尽的重复、可读性差以及语言混杂等问题。为了解决这些问题并进一步提升推理能力,引入了 DeepSeek-R1,在强化学习之前融入了冷启动数据。DeepSeek-R1 在数学、编程和推理任务上的表现可与 OpenAI-o1 相媲美。

        这一次DeepSeek的最大轰动,其实是把一种接近O1的实现方案给开源了,并且采用纯RL训练实现接近O1的能力,成本大幅降低。如果没有开源,其实可能不太会有这么大的冲击。据我所知,12月份智谱也上线了GLM-ZERO-Preview的强化推理版本,但没有开源,效果也很不错。强化学习我们之前也给出了相关文章进行讨论,可以参考《大模型中的强化学习RLHF(PPO)、DPO(Direct Preference Optimization)等概念的理解与解析》。

        DeepSeek一口气开源了 DeepSeek-R1-Zero、DeepSeek-R1 以及基于 Llama 和 Qwen 从 DeepSeek-R1 蒸馏出的六个密集模型。其中,DeepSeek-R1-Distill-Qwen-32B 在多个基准测试中超越了 OpenAI-o1-mini,刷新了密集模型的最新技术水平。

2. DeepSeek-R1的训练方案

2.1 后训练

        DeepSeek为了降低训练成本,并没有选择在预训练阶段进行相应的动作,而是在基模型上进行大规模强化学习,这是否也意味着目前的基模型其实已经具备足够的能力,只需要进行多步推导就可以达到相当有效的推理结果?值得我们思考。关于这个问题其实DeepSeek也给出了一定程度的回答,通过强化学习可以激发出大模型的能力。

        DeepSeek直接在基模型上应用强化学习(RL),而不依赖于监督微调(SFT)作为前置步骤。这种方法使模型能够探索思维链(CoT),从而解决复杂问题,并最终发展出 DeepSeek-R1-Zero。DeepSeek-R1-Zero 展现出了自我验证、反思以及生成长思维链等能力,验证了大语言模型(LLM)的推理能力可以完全通过强化学习激发,而无需依赖监督微调。关于思维链可以参考《思维链(Chain Of Thought)、思维树(Tree Of Thought)等概念解析》。

        此外开发 DeepSeek-R1 的流程,我们将会在系列文章2中进行介绍,该流程包括两个强化学习阶段,用于发现更优的推理模式并对齐人类偏好,同时包含两个监督微调阶段,为模型的推理和非推理能力提供基础。

2.2 蒸馏:小模型也可以很强大

        DeepSeek证明大模型的推理模式可以被蒸馏到小模型中,从而使其性能优于通过强化学习(RL)在小模型上发现的推理模式。利用 DeepSeek-R1 生成的推理数据,对广泛使用的多个稠密模型进行了微调。评估结果表明,经过蒸馏的小型稠密模型在基准测试中表现非常出色。开源的基于 Qwen2.5 和 Llama3 系列的蒸馏模型检查点,包括 1.5B、7B、8B、14B、32B 和 70B 版本。我们曾在《模型蒸馏、大模型变小、移动端小规模大模型SLM、小模型趋势讨论》中讨论了大模型蒸馏的发展趋势,DeepSeek证明了这一个猜想的合理性和正确性。并且在《深度学习模型知识蒸馏Torch实践》中给出了相应的模型蒸馏实践。

2.3  基模型DeepSeek-V3

        DeepSeek-R1-Zero 和 DeepSeek-R1 是基于 DeepSeek-V3-Base 训练的。 有关DeepSeek-V3模型架构如下,本质上还是和主流的大模型架构一致,都利用了transformer的基础单元,可以参考《通用大模型架构分类及技术统一化》。另外DeepSeek给出了其MoE的结构,新增了Shared Expert,这个其实也容易理解,除了专门的专家,还需要有一些通用的专家,来捕捉一些跨任务的共享知识,学习到一些通用特征,增强模型的通用能力,同时还可以起到一定的负载均衡、专家数量控制以及兜底策略等功能。关于MoE的探讨可以参考《Mixture of Experts(混合专家模型, MOE)》。其实这种结构的引入,也是一种实验性的结果,实验证明有效。另外DeepSeek-V3还引入了Multi-Head Latent Attention, MLA是用于高效推理的注意力机制。MLA 通过低秩联合压缩技术,减少了推理时的键值(KV)缓存,从而在保持性能的同时显著降低内存占用。

3. 评估结果

        DeepSeek-R1 评估,对于所有模型,最大生成长度设置为 32,768 个 token。对于需要采样的基准测试,使用温度为 0.6,top-p 值为 0.95,并为每个查询生成 64 个响应以估计 pass@1。可以看到R1相对于o1-mini是有优势,但与o1-1217还是存在差距。现在DeepSeek-R1被吹到天上,也需要看到差距,继续进步。而且openai在一月底二月初推出了o3,各方面表现都优于R1。 

4. DeepSeek-R1使用

4.1 聊天网站与 API 平台

        可以在 DeepSeek 官方网站 chat.deepseek.com 上与 DeepSeek-R1 进行聊天,并开启“DeepThink”按钮。        

        另外也提供了与 OpenAI 兼容的 API 平台:platform.deepseek.com,不过发现目前API平台在维护中,暂时无法使用,应该是最近太火可能资源啥的跟不上,或者有别的因素考虑暂时做了关闭(2月3日)。

4.2 如何本地运行

DeepSeek-R1 模型
        有关在本地运行 DeepSeek-R1 ,可以直接参考DeepSeek-V3 仓库。

DeepSeek-V3 可以通过以下硬件和开源社区软件进行本地部署:

  • DeepSeek-Infer Demo:我们提供了一个简单轻量级的 FP8 和 BF16 推理演示。

  • SGLang:全面支持 DeepSeek-V3 模型的 BF16 和 FP8 推理模式,多 token 预测功能即将推出。

  • LMDeploy:支持高效的 FP8 和 BF16 推理,适用于本地和云端部署。

  • TensorRT-LLM:目前支持 BF16 推理和 INT4/8 量化,FP8 支持即将推出。

  • vLLM:支持 DeepSeek-V3 模型的 FP8 和 BF16 模式,支持张量并行和流水线并行。

  • AMD GPU:通过 SGLang 在 AMD GPU 上以 BF16 和 FP8 模式运行 DeepSeek-V3 模型。

  • 华为昇腾 NPU:支持在华为昇腾设备上运行 DeepSeek-V3。

DeepSeek-R1-Distill 模型
        DeepSeek-R1-Distill 模型可以像 Qwen 或 Llama 模型一样使用。
        例如,可以使用 vLLM 启动服务:       

vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B --tensor-parallel-size 2 --max-model-len 32768 --enforce-eager

使用建议
        建议在使用 DeepSeek-R1 系列模型(包括基准测试)时遵循以下配置,以达到预期性能:

  1. 将温度设置在 0.5-0.7 之间(推荐 0.6),以避免无限重复或不连贯的输出。

  2. 避免添加系统提示(system prompt);所有指令应包含在用户提示中。

  3. 对于数学问题,建议在提示中加入如下指令:“请逐步推理,并将最终答案放在 \boxed{} 中。”

  4. 在评估模型性能时,建议进行多次测试并取平均值。

        此外,观察到 DeepSeek-R1 系列模型在响应某些查询时可能会跳过思考模式(即输出 <think>\n\n</think>),这可能会影响模型的性能。为了确保模型进行充分推理,建议强制模型在每次输出时以 <think>\n 开头。因为输出的think同样会作为后续的输入,这样才能更好地推理结果。

5. 参考材料

【1】DeepSeek-R1

【2】DeepSeek_V3

相关文章:

【大模型理论篇】最近大火的DeepSeek-R1初探系列1

1. 背景介绍 这一整个春节&#xff0c;被DeepSeek-R1刷屏。各种铺天盖地的新闻以及老板发的相关信息&#xff0c;着实感受到DeepSeek-R1在国外出圈的震撼。 DeepSeek推出了新的推理模型&#xff1a;DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一个在没有经过监督微调…...

【数据结构】(4) 线性表 List

一、什么是线性表 线性表就是 n 个相同类型元素的有限序列&#xff0c;每一个元素只有一个前驱和后继&#xff08;除了第一个和最后一个元素&#xff09;。 数据结构中&#xff0c;常见的线性表有&#xff1a;顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…...

【C++ STL】vector容器详解:从入门到精通

【C STL】vector容器详解&#xff1a;从入门到精通 摘要&#xff1a;本文深入讲解C STL中vector容器的使用方法&#xff0c;涵盖常用函数、代码示例及注意事项&#xff0c;助你快速掌握动态数组的核心操作&#xff01; 一、vector概述 vector是C标准模板库&#xff08;STL&am…...

OpenAI推出Deep Research带给我们怎样的启示

OpenAI 又发新产品了&#xff0c;这次是面向深度研究领域的智能体产品 ——「Deep Research」&#xff0c;貌似被逼无奈的节奏… 在技术方面&#xff0c;Deep Research搭载了优化后o3模型并通过端到端强化学习在多个领域的复杂浏览和推理任务上进行了训练。因没有更多的技术暴露…...

洛谷[USACO08DEC] Patting Heads S

题目传送门 题目难度&#xff1a;普及/提高一 题面翻译 今天是贝茜的生日&#xff0c;为了庆祝自己的生日&#xff0c;贝茜邀你来玩一个游戏。 贝茜让 N N N ( 1 ≤ N ≤ 1 0 5 1\leq N\leq 10^5 1≤N≤105) 头奶牛坐成一个圈。除了 1 1 1 号与 N N N 号奶牛外&#xff0…...

CSS 溢出内容处理:从基础到实战

CSS 溢出内容处理&#xff1a;从基础到实战 1. 什么是溢出&#xff1f;示例代码&#xff1a;默认溢出行为 2. 使用 overflow 属性控制溢出2.1 使用 overflow: hidden 裁剪内容示例代码&#xff1a;裁剪溢出内容 2.2 使用 overflow: scroll 显示滚动条示例代码&#xff1a;显示滚…...

Spring Boot项目如何使用MyBatis实现分页查询

写在前面&#xff1a;大家好&#xff01;我是晴空๓。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正&#xff0c;感谢大家的不吝赐教。我的唯一博客更新地址是&#xff1a;https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油&#xff0c;冲鸭&#x…...

飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用

重点:无刷外转子电机与无框力矩电机&#xff1a;技术解析与应用对比 在现代工业自动化和精密机械领域&#xff0c;无刷电机因其高效、低噪音和高可靠性而备受青睐。其中&#xff0c;无刷外转子电机和无框力矩电机更是以其独特的结构和性能特点&#xff0c;成为众多应用场景中的…...

FreeRTOS学习 --- 队列集

队列集简介 一个队列只允许任务间传递的消息为同一种数据类型&#xff0c;如果需要在任务间传递不同数据类型的消息时&#xff0c;那么就可以使用队列集 &#xff01; 作用&#xff1a;用于对多个队列或信号量进行“监听”&#xff0c;其中不管哪一个消息到来&#xff0c;都可让…...

【R语言】R语言安装包的相关操作

一、管理R语言安装包 1、安装R包 install.packages() 2、查看已安装的R包 installed.packages() 3、更新R包 update.packages() 4、卸载R包 remove.packages() 二、加载R语言安装包 打开R语言时&#xff0c;基础包&#xff08;base包&#xff09;会自动被加载到内存中…...

15.[前端开发]Day15-HTML+CSS阶段练习(网易云音乐四)

完整代码 01_网易云-header <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之用户登录

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f3af;1.登录-持久层 &…...

测试方案和测试计划相同点和不同点

在软件测试领域&#xff0c;测试方案与测试计划皆为举足轻重的关键文档&#xff0c;尽管它们有着紧密的关联&#xff0c;但在目的与内容层面存在着显著的差异。相同点&#xff1a; 1.共同目标&#xff1a;测试方案和测试计划的核心目标高度一致&#xff0c;均致力于保障软件的…...

c++提取矩形区域图像的梯度并拟合直线

c提取旋转矩形区域的边缘最强梯度点&#xff0c;并拟合直线 #include <opencv2/opencv.hpp> #include <iostream> #include <vector>using namespace cv; using namespace std;int main() {// 加载图像Mat img imread("image.jpg", IMREAD_GRAYS…...

Unity Shader Graph 2D - 角色身体电流覆盖效果

在游戏中,通常会有游戏角色受到“电击”的效果,此时游戏角色身体上会覆盖有电流,该效果能表明游戏角色的当前状态,让玩家能够获得更直观更好的体验。 那么如何实现呢 首先创建一个ShaderGraph文件,命名为Current,再创建对应的材质球M_Current。 基础的资源显示 老规矩,…...

【LLM-agent】(task4)搜索引擎Agent

note 新增工具&#xff1a;搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件&#xf…...

携程Java开发面试题及参考答案 (200道-下)

insert 一行数据的时候加的是什么锁?为什么? 在 MySQL 中,当执行 INSERT 操作插入一行数据时,加锁的情况会因存储引擎和具体的事务隔离级别而有所不同。一般来说,在 InnoDB 存储引擎下,INSERT 操作加的是行级排他锁(Row Exclusive Lock),以下详细说明原因。 行级排他…...

GWO优化SVM回归预测matlab

灰狼优化算法&#xff08;Grey Wolf Optimizer&#xff0c;简称 GWO&#xff09;&#xff0c;是由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出的群智能优化算法。该算法的设计灵感源自灰狼群体的捕食行为&#xff0c;核心思想是对灰狼社会的结构与行为模式进行模仿。 …...

QMK启用摇杆和鼠标按键功能

虽然选择了触摸屏&#xff0c;我仍选择为机械键盘嵌入摇杆模块&#xff0c;这本质上是对"操作连续性"的执着。   值得深思的是&#xff0c;本次开发过程中借助DeepSeek的代码生成与逻辑推理&#xff0c;其展现的能力已然颠覆传统编程范式&#xff0c;需求描述可自动…...

Unity实现按键设置功能代码

一、前言 最近在学习unity2D&#xff0c;想做一个横版过关游戏&#xff0c;需要按键设置功能&#xff0c;让用户可以自定义方向键与攻击键等。 自己写了一个&#xff0c;总结如下。 二、界面效果图 这个是一个csv文件&#xff0c;准备第一列是中文按键说明&#xff0c;第二列…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...