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

DeepSeek后训练:监督微调和强化学习

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • DeepSeek大模型技术系列十二
    • DeepSeek大模型技术系列十二》DeepSeek后训练:监督微调和强化学习
      • 更多技术内容
  • 总结

DeepSeek大模型技术系列十二

DeepSeek大模型技术系列十二》DeepSeek后训练:监督微调和强化学习

在这里插入图片描述
3.4 DeepSeek后训练
在深度学习模型的研发与优化进程中,后训练阶段是赋予模型更强实用性和适应性的关键环节。对于DeepSeek-V3模型而言,后训练阶段的监督微调与强化学习等操作,如同为模型进行精细打磨和能力拓展,使其能够更好地应对复杂多样的实际任务。监督微调通过精心整理和处理不同领域的数据,让模型学习到更贴合实际应用的知识和技能;强化学习则借助独特的奖励模型和优化策略,引导模型不断提升性能和表现。接下来将深入探讨DeepSeek-V3在后训练阶段所采取的具体策略和方法,以及这些措施如何助力模型实现性能的飞跃。
3.4.1 监督微调
在监督微调阶段,为了让DeepSeek-V3模型能更好地适应多样化的实际应用场景,对指令调整数据集进行了精心整理。这个数据集规模庞大,包含了150万个实例,且覆盖了多个不同领域。由于各个领域的特性和需求各异,因此针对不同领域采用了特定的数据创建方法。
1.推理数据
推理相关的数据集涵盖了数学、代码竞赛问题以及逻辑谜题等内容。在生成这些数据时,借助了内部的DeepSeek-R1模型。DeepSeek-R1模型生成的数据具有较高的准确性,但也存在一些明显的不足,比如生成的答案常常过度思考,导致表述过于复杂;格式不够规范,影响可读性;长度过长,增加了信息提取的难度。因此,面临的挑战是如何在DeepSeek-R1数据的高准确性与常规格式推理数据所具备的清晰简洁之间找到平衡。
为解决这一问题,首先针对代码、数学或通用推理等特定领域,开发了一个专家模型。该专家模型的训练采用了监督微调(SFT)和强化学习(RL)相结合的流程。这个专家模型在后续的工作中扮演着为最终模型生成数据的重要角色。
在训练过程中,针对每个实例会生成两种不同类型的SFT样本。第一种样本是将问题与其原始答案按照<问题,原始答案>的格式进行配对。第二种样本则更为复杂,它在问题和DeepSeek-R1生成的答案基础上,加入了精心设计的系统提示,格式为<系统提示,问题,R1答案>。系统提示中包含了引导模型生成带有反思和验证机制答案的指令,其目的是让模型生成的答案更加完善和可靠。
在强化学习阶段,模型通过高温采样生成答案。在这个过程中,即使没有明确的系统提示,模型也能够融合DeepSeek-R1生成的数据模式以及原始数据中的模式。经过数百次的RL步骤训练后,中间的RL模型逐渐学会了融入DeepSeek-R1的模式,这种学习成果能够战略性地提升模型的整体性能。
在完成RL训练阶段后,采用拒绝采样的方式,以专家模型作为数据生成源,为最终模型筛选高质量的SFT数据。通过这种方式筛选出的数据,既保留了DeepSeek-R1的优势,又能生成简洁有效的答案,为最终模型的训练提供了优质的数据基础。
2.非推理数据
对于非推理数据,像创意写作、角色扮演和简单问答等类型,采用了不同的处理方式。利用DeepSeek-V2.5模型来生成答案,然后邀请专业的人工标注员对生成的数据进行验证,确保数据的准确性和正确性。人工标注员凭借专业知识和经验,仔细检查数据是否符合相应的要求,将存在错误或不合理的部分进行修正或剔除,从而保证非推理数据的质量。
3.SFT设置
利用整理好的SFT数据集对DeepSeek-V3基础模型进行了两轮微调。在微调过程中,采用余弦退火学习率调度策略。学习率从一个较高的初始值开始,随着训练的推进逐渐降低。在训练过程中,每个单独的序列由多个样本打包组成。为了避免样本之间相互干扰,采用了样本掩码策略,确保这些示例在训练过程中相互隔离,彼此不可见。这样可以让模型专注于每个样本自身的特征和规律,提高微调的效果,使DeepSeek-V3模型能够更好地学习到数据中的有效信息,从而提升在各种任务中的表现。

3.4.2 强化学习
在深度学习领域,强化学习作为提升模型性能和适应性的关键技术手段,对于DeepSeek-V3模型的优化起着至关重要的作用。为了使模型能够在复杂多变的任务中展现出卓越的表现,在强化学习过程中精心设计并采用了一系列有效的策略和方法。其中,奖励模型的构建以及组相对策略优化技术的应用,是提升模型学习效果和性能的重要组成部分。下面将详细介绍DeepSeek-V3在强化学习中所采用的奖励模型和组相对策略优化的具体内容。
1.奖励模型
在强化学习的过程中,采用了两种不同类型的奖励模型(RM),即基于规则的奖励模型和基于模型的奖励模型,以此来引导模型的学习方向,提升模型的性能。
1)基于规则的RM
对于那些能够运用特定规则进行验证的问题,采用基于规则的奖励系统来给予模型反馈。例如在数学问题中,许多问题都有确切的结果。为了便于规则验证,要求模型以特定格式(如框内)给出最终答案。这样一来,就可以依据既定规则判断答案的正确性。又比如在处理LeetCode问题时,能够借助编译器依据测试用例生成反馈。只要条件允许,就优先使用基于规则的验证方式,因为这种方式可靠性更高,不容易被人为操纵或利用,能够为模型提供更加稳定和准确的反馈,有助于模型学习到正确的知识和模式。
2)基于模型的RM
对于那些具有自由格式标准答案的问题,依靠奖励模型来判断模型给出的回答是否符合预期的标准答案。而对于像创意写作这类没有明确标准答案的问题,奖励模型则根据问题以及相应的答案作为输入,从而给出反馈。这个奖励模型是基于DeepSeek-V3的监督微调(SFT)检查点进行训练的。为了进一步增强奖励模型的可靠性,专门构建了偏好数据。这些偏好数据不仅提供最终的奖励信息,还包含得出奖励所依据的思维链。通过这种方式,能够有效降低在特定任务中奖励作弊的风险,使奖励模型给出的反馈更加真实、合理,从而更好地引导模型学习。
2.组相对策略优化
与DeepSeek-V2的做法类似,DeepSeek-V3在强化学习中采用了组相对策略优化(Group Relative Policy Optimization,GRPO)技术。GRPO摒弃了传统与策略模型大小相同的评论家模型,而是从组分数中估计基线。具体运作方式如下:对于每个问题,GRPO从旧策略模型中采样一组输出。然后,通过最大化特定目标来优化策略模型。在强化学习过程中,将来自编码、数学、写作、角色扮演和问答等不同领域的提示纳入其中。这种做法有诸多好处,一方面能使模型生成的结果更贴合人类偏好,让模型在与人类交互时表现得更加自然和符合预期;另一方面,在基准测试中,尤其是在可用监督微调数据有限的场景下,能够显著提升模型的性能。通过多领域提示的训练,模型能够学习到更广泛的知识和模式,增强对不同类型任务的适应性和处理能力,从而在各种实际应用场景中展现出更好的表现。

更多技术内容

更多技术内容可参见
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】书籍。
更多的技术交流和探讨也欢迎加我个人微信chenjinglei66。

总结

此文章有对应的配套新书教材和视频:

【配套新书教材】
《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。
全书共分为19章,详细讲解中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注、文本相似度算法、语义相似度计算、词频-逆文档频率(TF-IDF)、条件随机场、新词发现与短语提取、搜索引擎Solr Cloud和Elasticsearch、Word2vec词向量模型、文本分类、文本聚类、关键词提取和文本摘要、自然语言模型(Language Model)、分布式深度学习实战等内容,同时配套完整实战项目,例如对话机器人实战、搜索引擎项目实战、推荐算法系统实战。
本书理论联系实践,深入浅出,知识点全面,通过阅读本书,读者不仅可以理解自然语言处理的知识,还能通过实战项目案例更好地将理论融入实际工作中。
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目。

【配套视频】

推荐系统/智能问答/人脸识别实战 视频教程【陈敬雷】
视频特色:把目前互联网热门、前沿的项目实战汇聚一堂,通过真实的项目实战课程,让你快速成为算法总监、架构师、技术负责人!包含了推荐系统、智能问答、人脸识别等前沿的精品课程,下面分别介绍各个实战项目:
1、推荐算法系统实战
听完此课,可以实现一个完整的推荐系统!下面我们就从推荐系统的整体架构以及各个子系统的实现给大家深度解密来自一线大型互联网公司重量级的实战产品项目!
2、智能问答/对话机器人实战
由浅入深的给大家详细讲解对话机器人项目的原理以及代码实现、并在公司服务器上演示如何实际操作和部署的全过程!
3、人脸识别实战
从人脸识别原理、人脸识别应用场景、人脸检测与对齐、人脸识别比对、人脸年龄识别、人脸性别识别几个方向,从理论到源码实战、再到服务器操作给大家深度讲解!

自然语言处理NLP原理与实战 视频教程【陈敬雷】
视频特色:《自然语言处理NLP原理与实战》包含了互联网公司前沿的热门算法的核心原理,以及源码级别的应用操作实战,直接讲解自然语言处理的核心精髓部分,自然语言处理从业者或者转行自然语言处理者必听视频!

人工智能《分布式机器学习实战》 视频教程【陈敬雷】
视频特色:视频核心内容有互联网公司大数据和人工智能、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)。

上一篇:DeepSeek大模型技术系列七》DeepSeek 突破!NSA——DeepSeek 原生稀疏注意力开启硬件适配与可训练新时代
下一篇:DeepSeek大模型技术系列五》DeepSeek大模型基础设施全解析:支撑万亿参数模型的幕后英雄

相关文章:

DeepSeek后训练:监督微调和强化学习

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

基于 MetaGPT 自部署一个类似 MGX 的多智能体协作框架

MGX&#xff08;由 MetaGPT 团队开发的 mgx.dev&#xff09;是一个收费的多智能体编程平台&#xff0c;提供从需求分析到代码生成、测试和修复的全流程自动化功能。虽然 MGX 本身需要付费&#xff0c;但您可以通过免费服务和开源项目搭建一个类似的功能。以下是一个分步骤的实现…...

三个小时学完vue3 —— 简单案例(二)

三个小时学完vue3&#xff08;二&#xff09; 图片轮播案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…...

数字人技术再超越,TANGO 可生成与音频匹配的全身手势视频

TANGO 是由东京大学与 CyberAgent AI Lab 于 2024 年共同研发的开源框架&#xff0c;专注于声音驱动的全身数字人生成。该技术能够根据目标语音音频生成与之同步的全身手势视频&#xff0c;突破了传统数字人技术仅支持面部或上半身动作的局限性。TANGO 的工作原理利用隐式分层音…...

释放微软bing的力量:深度剖析其主要功能

在浩瀚无垠的互联网海洋中,搜索引擎就如同指南针,引领我们找到所需要的信息。微软必应凭借其一系列强大功能,在搜索引擎领域脱颖而出,成为极具竞争力的一员。在这篇博客文章中,我们将深入探讨微软必应的主要功能,这些功能使其独具特色,成为全球用户的得力工具。 1. 智能…...

DeepSeek 开源周(2025/0224-0228)进度全分析:技术亮点、调用与编程及潜在影响

DeepSeek 技术开源周期间所有开放下载资源的目录及简要说明: 1. FlashMLA 描述:针对 Hopper GPU 优化的高效 MLA 解码内核,专为处理可变长度序列设计,显著提升大语言模型(LLM)的解码效率。性能:内存受限配置下可达 3000 GB/s 带宽,计算受限配置下可达 580 TFLOPS 算力(…...

let、const【ES6】

‌“我唯一知道的就是我一无所知。” - 苏格拉底 目录 块级作用域&#xff1a;var、let、const的对比&#xff1a;Object.freeze()&#xff1a; 块级作用域&#xff1a; 块级作用域指由 {} 包围的代码块&#xff08;如 if、for、while、单独代码块等&#xff09;形成的独立作用…...

PySpark中mapPartitionsWithIndex等map类算子生成器函数问题 - return\yield

PySpark中mapPartitionsWithIndex等map类算子生成器函数问题 - return\yield 顾名思义&#xff0c;本文讲述了map算子生成器函数的相关问题——return 和 yield的使用。 首先先讲结论&#xff0c;在使用map等迭代生成的算子时最好使用yield。 1、问题产生 在写代码的过程中&…...

网络原理 初识[Java EE]

目录 网络发展史 独立模式 网络互联 局域网 LAN 1. 基于网络直连 2. 基于集线器(Hub)组建 3. 基于交换机(Switch)组建 4. 基于交换机和路由器(Router)组建 广域网 WAN 网络通信基础 IP 地址 1. 概念 2. 格式 端口号 1. 概念 2.格式 认识协议 1. 概念 2. 作用…...

Redis Stream基本使用及应用场景

一、概念 Redis Streams是Redis5.0提供的一种消息队列机制&#xff0c;支持多播的可持久化的消息队列&#xff0c;用户实现发布订阅的功能&#xff0c;借鉴了kafka设计。 二、常用命令 命令名称描述XADD key ID field value [field value ...]添加一条消息 key&#xff1a;St…...

amcl :odometry 到global frame 的转换

amcl - ROS Wiki amcl - ROS Wiki...

Ollama下载安装+本地部署DeepSeek+UI可视化+搭建个人知识库——详解!(Windows版本)

目录 1️⃣下载和安装Ollama 1. &#x1f947;官网下载安装包 2. &#x1f948;安装Ollama 3.&#x1f949;配置Ollama环境变量 4、&#x1f389;验证Ollama 2️⃣本地部署DeepSeek 1. 选择模型并下载 2. 验证和使用DeepSeek 3️⃣使用可视化工具 1. Chrome插件-Page …...

解决Value of type ‘AVCodecContext‘ has no member ‘channels‘ 的问题

在 FFmpeg 7.1 中,AVCodecContext 的 channels 和 channel_layout 字段已经被移除,取而代之的是 AVChannelLayout 结构。因此,代码需要进行调整以适应新的 API。 以下是如何正确设置 AVCodecContext 和 AVCodecParameters 的方法。 1. 问题分析 在 FFmpeg 7.1 中: AVCode…...

STM32内存五区及堆栈空间大小设置(启动文件浅析)

前言 嘿&#xff0c;朋友们&#xff01;今天咱们来聊聊STM32的内存五区和堆栈空间大小设置。这可是嵌入式开发里的“必修课”&#xff0c;要是没整明白&#xff0c;程序说不定就“翻车”了。别担心&#xff0c;我这就带你一步步搞懂这事儿&#xff0c;让你轻松上手&#xff0c…...

定义数组存储3部汽车对象(class2:类在class1中请看上一篇博客)

package test3; import java.util.Scanner; public class carTest {public static void main(String[] args){//创建一个数组car[] arrnew car[3];//2创建汽车对象&#xff0c;来源于输入Scanner sc new Scanner(System.in);for (int i 0; i <arr.length ; i) {car cnew ca…...

Go红队开发—语法补充

文章目录 错误控制使用自定义错误类型错误包装errors.Is 和 errors.Aspanic捕获、recover 、defer错误控制练习 接口结构体实现接口基本类型实现接口切片实现接口 接口练习Embed嵌入文件 之前有师傅问这个系列好像跟红队没啥关系&#xff0c;前几期确实没啥关系&#xff0c;因为…...

IP----访问服务器流程

这只是IP的其中一块内容-访问服务器流程&#xff0c;IP还有更多内容可以查看IP专栏&#xff0c;前一段学习内容为IA内容&#xff0c;还有更多内容可以查看IA专栏&#xff0c;可通过以下路径查看IA-----配置NAT-CSDN博客CSDN,欢迎指正 1.访问服务器流程 1.分层 1.更利于标准化…...

阿里云ack的创建与实战应用案例

阿里云ack的创建与应用案例 创建前开通ack相关服务&#xff1a;开始创建简单的魔方游戏&#xff0c;熟悉sv与clb自动注册创建部署一个nginx 服务示例&#xff1a;走不同域名访问不同svc资源&#xff1a;为什么需要 Ingress &#xff1f;创建第一个域名的 Deployment和Service。…...

git 的 Detached HEAD

在 Git 版本管理中&#xff0c;Detached HEAD 是指你当前的工作状态不再指向任何分支&#xff0c;而是指向一个特定的提交&#xff08;commit&#xff09;。 通常情况下&#xff0c;HEAD 是指向你当前工作分支的指针&#xff0c;例如 main 或 feature-branch。当你切换到一个特…...

【R语言】dplyr包经典函数summarise函数

dplyr包经典函数summarise函数&#xff0c;后面改名乘reframe函数了&#xff0c;但是summarise仍然适用 这个函数的返回结果是一个新的数据框&#xff0c;下面讲一下几种常见用法 示例数据为R自带的数据集mtcars 1.不分组 mtcars %>%summarise(mean mean(disp), n n()…...

C#装箱拆箱机制详解

在C#中&#xff0c;装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09; 是值类型与引用类型之间转换的核心机制。它们的实现直接影响程序的性能和类型安全。 一、装箱&#xff08;Boxing&#xff09; 定义&#xff1a; 将值类型转换为引用类型&#…...

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…...

BUU40 [CSCCTF 2019 Qual]FlaskLight1【SSTI】

模板&#xff1a; {{.__class__.__base__.__subclasses__()[80].__init__.__globals__[__builtins__].eval("__import__(os).popen(type flag.txt).read()")}} 是个空字符串&#xff0c;.__class__代表这个空字符串的类是什么&#xff08;这里是单引号双引号都行&a…...

数据同步的中间件

以下是10个支持MySQL、HBase、ClickHouse、HDFS等不同数据库之间数据同步的GitHub项目推荐&#xff1a; 项目名称语言主要特点支持的数据库GitHub链接DataXPython阿里巴巴开源的数据同步工具&#xff0c;支持多种数据库和文件系统。MySQL、ClickHouse、HDFS等GitHub链接Apache…...

C# | GDI+图像测距辅助线的实现思路

C# | GDI图像测距辅助线的实现思路 文章目录 C# | GDI图像测距辅助线的实现思路一、辅助线需求概述二、坐标系与角度计算2.1 笛卡尔坐标系2.2 线长和角度计算方法2.3 文本角度矫正计算方法2.4 坐标变换实现步骤 三、与if判断方式对比四、总结 一、辅助线需求概述 在图像测量工…...

【备份】php项目处理跨域请求踩坑

这都是老生常谈的东西了。我还在踩坑&#xff0c;记录一下。 我在项目入口明明写了如下代码&#xff1a; // 处理预检请求 (OPTIONS) if ($_SERVER[REQUEST_METHOD] OPTIONS) {header("Access-Control-Allow-Origin: https://xxx.vip");header("Access-Cont…...

常见的Linux面试题

以下是一些常见的Linux面试题&#xff1a; 基础操作类 如何远程连接Linux服务器&#xff1a;常用的工具如Xshell、CRT、FinalShell等&#xff0c;通过SSH协议连接&#xff0c;默认端口是22。 如何查看当前目录下的所有文件&#xff08;包括隐藏文件&#xff09;&#xff1a;使…...

MySQL 数据库本地及异地备份:全面指南

文章目录 MySQL 数据库本地及异地备份&#xff1a;全面指南备份脚本概述编写备份脚本脚本内容主要参数解释设置脚本权限 定期执行备份设置crontab任务 安全性建议避免明文密码rsync密码文件安全 进阶功能和优化增量备份备份验证日志轮转 总结附录&#xff1a;脚本依赖 MySQL 数…...

免费使用 DeepSeek API 教程及资源汇总

免费使用 DeepSeek API 教程及资源汇总 一、DeepSeek API 资源汇总1.1 火山引擎1.2 百度千帆1.3 阿里百炼1.4 腾讯云 二、其他平台2.1 华为云2.2 硅基流动 三、总结 DeepSeek-R1 作为 2025 年初发布的推理大模型&#xff0c;凭借其卓越的逻辑推理能力和成本优势&#xff0c;迅速…...

java后端开发day20--面向对象进阶(一)--static继承

&#xff08;以下内容全部来自上述课程&#xff09; 1.static–静态–共享 static表示静态&#xff0c;是java中的一个修饰符&#xff0c;可以修饰成员方法&#xff0c;成员变量。 1.静态变量 被static修饰的成员变量&#xff0c;叫做静态变量。 特点&#xff1a; 被该类…...