Deepseek-R1实现原理概述

news/2025/2/12 9:29:16/

Deepseek-R1实现原理概述=

基本概念

强化学习(Reinforcement Learning)

强化学习 (RL) 是一种机器学习,其中AI通过采取行动并根据这些行动获得奖励或惩罚来进行学习。目标是随着时间的推移最大化奖励。

示例:想象一下教机器人玩游戏。机器人尝试不同的动作,每做一次好动作(例如得一分),它都会得到奖励(例如 +1)。做错动作(例如丢一分),它会受到惩罚(例如 -1)。随着时间的推移,机器人会了解哪些动作可以得分最高,从而变得更擅长玩游戏。

SFT微调(SFT Fine-Tuning)

微调模型是采用预先训练的AI模型并对其进行细微调整,使其在特定任务上表现更好的过程。一般模型不是从头开始训练,而是使用额外数据进行“调整”,以提高其在特定用例中的表现。

SFT(监督式微调)是一种特殊类型的微调,其中模型在标记的数据集上进行训练。这意味着为模型提供包含输入数据(如图像或文本)和正确答案(标签)的示例。该模型学习根据这些标记的示例进行预测,以提高其特定任务的准确性。

例如,使用客户支持问题和答案的标记数据集对 LLM 进行微调,使其在处理常见查询时更加准确。如果您拥有大量标记数据,则非常适合使用。

知识蒸馏(Knowledge Distillation)

模型蒸馏是一种将大型复杂模型(教师模型)中的知识转移到较小、较简单的模型(学生模型)的方法。

目的是开发一种更紧凑的模型,该模型既能保持较大模型的大部分性能,又能提高计算能力、内存使用率和推理速度方面的效率。

冷启动数据

用于帮助模型对任务有总体了解的最低限度标记数据集。例如,使用从网站上抓取的 FAQ 对简单数据集对聊天机器人进行微调,以建立基础理解。当您没有大量标记数据时很有用。

多阶段训练

对模型进行分阶段训练,每个阶段侧重于特定的改进,如准确性或对齐度。例如, 在一般文本数据上训练一个模型,然后通过对用户反馈的强化学习对其进行改进,以提高其对话能力。

拒绝抽样

一种模型生成多个潜在输出的方法,但只有符合特定标准(例如质量或相关性)的输出才会被选中以供进一步使用。 例如,在 RL 过程之后,模型会生成多个响应,但只保留对重新训练模型有用的响应。

DeepSeek R1背后的关键技术

DeepSeek R1 背后有三个关键理念:
  • 思维链(Chain of Thought):让模型自己解释自己。
  • 强化学习(Reinforcement Learning):让模型自我训练。
  • 蒸馏(Distillation):在不损失能力的情况下缩小模型。
思维链

如果你向大多数人工智能模型提出一个棘手的问题,它们会给出一个答案,但不会给出背后的推理。这是一个问题。如果答案是错的,你就不知道它在哪里出了差错。

思维链可以解决这个问题。模型不会直接给出答案,而是一步步解释其推理过程。如果它犯了错误,你可以清楚地看到错误所在。更重要的是,模型本身也能看到错误所在。

这不仅仅是一个调试工具。它改变了模型的思维方式。解释的行为迫使他们放慢脚步,检查自己的工作。即使没有额外的训练,也能得到更好的答案。

DeepSeek 的论文展示了一个数学问题的例子。模型在解题过程中发现自己犯了一个错误,然后自我纠正。这很新颖。大多数人工智能模型都不会这样做。它们要么做对,要么做错,然后继续前进。

在这里插入图片描述

强化学习

大多数人工智能训练都像上学一样:向模型展示一个问题,给出正确答案,然后重复。DeepSeek 采用了不同的方法。它的学习方式更像婴儿。

婴儿不会接受指令。它们会尝试、失败、调整、再尝试。随着时间的推移,它们会变得更好。这就是强化学习的原理。模型会探索不同的方法来回答问题,然后选出最有效的一种。

机器人就是这样学会走路的。自动驾驶汽车也是这样学习导航的。现在,DeepSeek 也是这样改进推理的。
关键的思路是组相对策略优化(GRPO)。GRPO 不会简单地将答案分为对错,而是将其与过去的尝试进行比较。如果新答案比旧答案更好,模型就会更新其行为。

这使得学习成本更低。模型不需要大量标注数据,而是通过迭代自己的错误来训练自己。这就是为什么 DeepSeek R1 会随着时间的推移而不断改进,而 OpenAI 的 01 模型却一成不变的原因。如果有足够的训练,它甚至可以在推理任务中达到人类水平的准确性。
在这里插入图片描述

蒸馏

DeepSeek 这样的模型有一个问题:它们太大了。

完整版有 6710 亿个参数。运行它需要数千个 GPU 和只有科技巨头才能负担得起的基础设施。这对大多数人来说都是不切实际的。

解决方案就是蒸馏–在不损失太多性能的情况下,将一个巨大的模型压缩成一个较小的模型。就像教徒弟一样。大模型生成示例,小模型从中学习。

DeepSeek 研究人员将他们的模型蒸馏成了 Llama 3 和 Qwen。令人惊讶的是什么?小模型有时比原始模型表现得更好。这使得AI变得更容易获得。你不再需要超级计算机,只需单个GPU就能运行强大的模型。
在这里插入图片描述

GRPO RL 框架

传统上,用于训练 LLM 的 RL 在与标注数据相结合时最为成功(例如 PPO RL 框架)。这种 RL 方法采用了一个批评者模型,它就像一个 “LLM 教练”,对每次移动提供反馈,帮助模型改进。它根据标注数据评估 LLM 的行动,评估模型成功的可能性(价值函数),并指导模型的整体策略。
但是,这种方法受到用于评估决策的标注数据的限制。如果标注的数据不完整、有偏差,或者没有涵盖全部任务,那么批评者只能在这些限制条件下提供反馈,而且不能很好地推广。

GRPO RL 框架:作者使用了组相对策略优化(GRPO)RL 框架,它消除了批评者模型。
有了 GRPO,你就跳过了 “教练”–通过使用预定义的规则(如连贯性和/或流畅性),在多轮比赛中对 LLM 移动进行评分。这些模型通过将这些分数与小组平均分进行比较来学习。

训练过程

以下是对每个训练阶段及其工作内容的简要说明:
第一步:他们使用数千个冷启动数据点对基础模型(DeepSeek-V3-Base)进行微调,以奠定坚实的基础。仅供参考,与大规模监督学习通常需要的数百万甚至数十亿个标注数据点相比,数千个冷启动数据点只是很小的一部分。

第二步:应用纯 RL(类似于 R1-Zero)来提高推理能力。

第三步:在 RL 接近收敛时,他们使用拒绝采样,即模型通过从上次成功的 RL 运行中选择最佳示例来创建自己的标记数据(合成数据)。你听说过 OpenAI 使用更小的模型为 O1 模型生成合成数据的传言吗?基本上就是这样。

第四步:将新的合成数据与 DeepSeek-V3-Base 在写作、事实质量保证和自我认知等领域的监督数据合并。这一步确保了模型可以从高质量的输出和多样化的特定领域知识中学习。

第五步:使用新数据进行微调后,模型在不同的提示和场景中进行最后的 RL 流程。

那么为什么DeepSeek-R1要使用多阶段流程呢?因为每一步都建立在上一步的基础上。

为何重要

DeepSeek 将思维链推理、强化学习和模型蒸馏结合在一起,使其成为一款强大的工具。这不仅仅是原始能力的问题。而是要创建准确、透明、易用的模型。

思维链使模型的推理清晰明了。强化学习使其随着时间的推移不断改进。而蒸馏则确保了这些能力能够为更多人所使用,而不仅仅是那些能够使用超级计算机的人。

如果你对人工智能感兴趣,DeepSeek值得关注。它不仅仅是另一项渐进式改进。它是朝着能够以以前无法企及的方式思考、学习和适应的模型迈出的一步。

你不需要成为一名人工智能研究员,就能看到它的潜力。DeepSeek 背后的技术已经应用于现实世界,从编码助手到科学研究工具。随着这些模型越来越容易获得,它们的影响只会越来越大。

DeepSeek R1 的重要性不仅在于它能做什么,还在于它如何做。
思维链使人工智能更加透明。
强化学习让人工智能更加自我完善。

在这里插入图片描述

关于 DeepSeek R1 的常见问题

  • DeepSeek R1 是什么?
    DeepSeek R1 是由中国研究团队开发的新型大型语言模型。它之所以意义重大,是因为它在数学、编码和科学推理等复杂任务上的表现可与 OpenAI’s o1 等领先模型相媲美。该模型的创新,尤其是在使用强化学习和模型蒸馏方面的创新,有可能使AI更高效、更易用。
  • DeepSeek R1 如何使用 “思维链 ”提示?
    DeepSeek R1通过鼓励模型 “大声思考 ”或在其响应中提供逐步推理来使用 “思维链 ”提示。例如,在解决数学问题时,它将展示自己的每一步操作。这种方法不仅能更容易地识别错误,还能让模型进行自我评估,并通过重新提示或重新评估其步骤来提高准确性。
  • DeepSeek R1 是如何采用强化学习的?
    DeepSeek R1 采用强化学习,通过自我引导的探索来学习,类似于婴儿学习走路的方式。它不是通过明确的问答对来进行训练,而是探索自己的 “环境”,并通过最大化奖励来优化自己的行为,例如,在解方程时倾向于使用更短、更高效的方法。

参考资料

  • https://medium.com/@tahirbalarabe2/deepseek-r1-explained-chain-of-thought-reinforcement-learning-and-model-distillation-0eb165d928c9
  • https://medium.com/data-science-in-your-pocket/understanding-deepseek-r1-paper-beginners-guide-e86f83fda796
  • https://www.vellum.ai/blog/the-training-of-deepseek-r1-and-ways-to-use-it

http://www.ppmy.cn/news/1571383.html

相关文章

Java网络编程学习(一)

网络相关概念 网络体系结构 OSI体系结构(七层) OSI(Open Systems Interconnection,开放系统互联)体系结构将整个计算机网络分为七层,从上到下依次为:应用层、表示层、会话层、传输层、网络层…

ssm校园二手交易平台小程序

博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

axios如何取消请求、配置

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。在实际开发中,有时候需要取消已经发起的请求,同时也需要对请求进行各种配置。以下分别介绍 Axios 取消请求和配置请求的方法。 取消请求 使用 CancelToken(旧方…

【目标检测xml2json】label从VOC格式xml文件转COCO格式json文件

目录 🌷🌷1.VOC格式xml文件 🍀🍀2.COCO格式json文件 💖💖3.xml2json代码(python) 🍌🍌4.输入输出展示 🍭🍭4.1输入xml 🍋🍋4.2输出json 整理不易,欢迎一键三连!!! 送你们一条美丽的--分割线-- 🌷🌷1.VOC格式xml文件 VOC数据…

python实现比对两个json串的方法

记录瞬间 前段时间为了解决一些实际问题,引出了要对json字符串进行比对的需求。 觉得有意义,作以简单记录。 # 比对数据 def compare_data(set_key, src_data, dst_data, noise_data, num):if isinstance(src_data, dict) and isinstance(dst_data, d…

DeepSeek Janas-Pro 图像模型

DeepSeek Janus-Pro 是由 DeepSeek 团队开发的一款开源多模态大模型,旨在统一图像理解和生成任务,并在多个领域展现出卓越的性能。以下是对其主要特点和功能的详细介绍: 1. 模型架构与技术特点 解耦视觉编码路径:Janus-Pro 采用解耦的视觉编码路径,将图像理解与生成任务分…

分层解耦-IOC DI 入门

步骤 ①.Service层及 Dao层的实现类,交给I0C容器管理。 ②.为Controller及Service注入运行时,依赖的对象。 ③.运行测试。 添加注解进行分层耦合 Component 会将当前类交给IOC容器管理,成为IOC容器中的bean - 控制反转 Autowired 运行时,IOC容器…

python:递归函数与lambda函数

递归函数:1.函数内调用自己 2.有一个出口 1.递归 一.有出口时 def sum(num):if num1:return 1return numsum(num-1) asum(3) print(a) #num3 3sum(2) #num2 2sum(1) #num1是返回1 #即3sum(2)即32sum(1)即321运行结果 6 二.无出口时 def sum(num)…