关注公众号回复1

获取一线、总监、高管《管理秘籍》

结合近期对DeepSeek的探索,对之前文章的内容做一些更新,主要是两个方面:训练过程的优化策略GRPO,以及架构侧的一个创新MLA

MLA

MLA,被认为是实现DeepSeek高效推理和低成本训练的核心技术。

MHA(多头注意力)通过多个注意力头并行工作捕捉序列特征,但面临高计算成本和显存占用;

MLA(多头潜在注意力)则通过低秩压缩优化键值矩阵,降低显存占用并提高推理效率。

我知道各位读不懂,这种偏底层机制,对应用层来说也没必要懂,但其策略原理是需要学习的,所以这里用产品语言进行介绍。

苹果作为一种普通的水果,我们对它的认知通常包括几个最重要的特征:

  1. 颜色:红色、绿色或黄色
  2. 口感:甜的或酸的
  3. 形状:圆形
  4. 用途:可以食用或做成果汁

这些是我们最常提到的苹果的基本特征,它们构成了我们对苹果的核心认知。

MHA:传统的全面分析

MHA就是我们在分析苹果时,全面地考虑所有可能的特征,不仅仅是颜色、口感和形状,还可能包括苹果的品种、产地、种子类型等详细信息。

在这个过程中,每个特征都会被单独处理。比如,有一个“颜色头”专注于苹果的颜色,另一个“口感头”专注于苹果的味道,等等。这些“头”并行工作,从不同角度抓取信息。

但这里问题也就出现了:虽然这个方法非常全面,可以捕捉到所有细节,但它也非常耗费资源。

就像我们在吃苹果时,不仅仅关心它的味道和形状,可能还会考虑苹果的种子、品种等,结果就会浪费很多时间和精力。

对于大规模的计算任务来说,这样的处理方式会导致计算成本和内存占用过高。

MLA:精简且高效的分析

MLA则不一样,他会更接近于人类的思维:对苹果的分析更加高效、精简。我们还是关注最核心的特征(比如颜色、口感和形状),但不再去详细分析那些不常用的特征(比如种子类型、品种等)。

MLA通过“低秩压缩”来优化这个过程,相当于精简和压缩信息,使得我们只存储和计算最重要的部分,而忽略那些次要信息。

这样,当我们吃苹果时,只关心最关键的体验,比如味道和颜色,而不需要过多关注种子或产地等。

这种方式让推理变得更快、更高效,而且显存占用更少,就像我们吃苹果时,如果只关心味道和形状,而不是去研究每个细节,体验感更好,且效率大大提高。

信息分级

可以认为MLA是更加贴近人类思考和基本认知方式的机制。

我们大脑在处理信息时,通常会把信息按照重要性进行分级,这样做是为了在处理大量信息时,能够高效地抓住最核心的部分。

例如,当我们认知“苹果”时,我们首先关注的是它的颜色、口感、形状这些关键信息,而不会去细究种子类型、产地等不那么关键的细节。

MLA机制的核心思想与此类似:它通过信息分级的方式,优先保留最关键的特征,忽略不那么重要的细节,从而提高推理效率。

信息分级是通过对输入数据进行分析和训练来自动完成的。

MLA机制通过算法和模型设计,识别出哪些特征是在当前任务中最重要的,哪些是次要的,并将它们分为不同的层级:

  1. 第一层级是最重要的特征,比如苹果的颜色、口感、形状;这些是最常被提及、最常用于分类和判断的信息。
  2. 第二层级是次要信息,比如苹果的产地、种子类型等,这些信息可能在某些特殊情况下有用,但并不会常常被用到。
  3. 第三层级则是最不重要的信息,例如苹果的历史背景,这些信息在大多数情况下并不会影响我们的决策。

通过这种信息分级,MLA能够让模型只关注最关键的部分,避免对不必要的细节进行计算,从而减少计算资源和内存占用。

所以,实现MLA的难度非常高。这不仅仅是一个算法层面的挑战,它还涉及到如何有效地在训练过程中动态地进行信息分级,

MLA的局限性

虽然MLA在推理和训练中的效率提升是显而易见的,但它也有一定的局限性。

因为MLA的核心是通过信息分级进行优化,所以它只关注最关键的特征,忽略了很多细节。

这就像是你在学习一篇文章时,只背诵了关键章节,而没有记住整篇文章的所有细节。

相比之下,传统的MHA(多头注意力)就像是全文背诵。MHA会处理所有细节,不遗漏任何信息,虽然这样计算开销大,但它能确保更全面的推理,避免遗漏任何可能重要的信息。

因此,MLA的上限可能会比MHA低,因为它的目标是高效处理最关键的部分,但它可能会错过一些细节,导致在某些复杂任务或细节要求较高的场景中,性能不如MHA。

GRPO

DeepSeek-R1-Zero使用GRPO来进行基础推理能力的训练,而DeepSeek-R1则通过冷启动、面向推理的强化学习等手段,进一步强化了推理能力,并对模型的生成结果进行筛选和微调,确保模型输出更符合人类偏好。

所以,模型训练有很多路径,但每条路径的最终验证都需要白花花的银子,所以理论上的最优路径很可能胎死腹中。

一般的公司也确实玩不起这一套,他们依赖的最优技术路径一直是基于成本最优作为考量。

DeepSeek-R1的成功就是其中一条路径的验证,现在甚至成了新的模型训练范式,过程中有两点需要注意:

  1. 跳过微调环节,直接启用强化学习(GRPO框架);
  2. 通过模型蒸馏技术直接将推理模式也转移到小模型中,这会让小模型的推理能力直线上升;

GRPO

这里重点介绍下GRPO:一种强化学习算法,它专注于通过组内相对策略优化来降低训练成本,尤其是在模型推理任务中,GRPO能够显著提升模型的学习效率和稳定性。

在DeepSeek-R1中,通过在“组”内部估算基线来优化策略。具体来说,GRPO通过对多个策略进行比较,来决定如何在没有明确标签数据的情况下优化推理策略:

  1. 准确性奖励:评估模型在数学题目、代码编译等任务中的准确性。通过正向奖励鼓励模型生成正确的答案。
  2. 格式奖励:引导模型在生成推理过程时,将思考过程放置在标签内(如<think>标签),促使模型更清晰地展示推理步骤。
  3. 自进化奖励:GRPO使得DeepSeek-R1能够自主学习和调整推理策略,不仅提高了准确率,还提升了模型在复杂推理任务中的适应性。

数学题

为了帮助各位更好的理解GRPO,依旧使用产品语言进行介绍:

预训练就像是学习整本数学教材,掌握所有的数学知识和基本解题方法。

在这个阶段,我们并不专注于解决具体的问题,而是广泛地吸收各种数学概念、公式和定理,确保我们对所有可能用到的知识都有一个全面的理解。这一过程为后续的实际应用奠定了基础。

微调就像是做试卷,通过不断做题来应用已学的知识,熟悉不同题型并提高解题速度和准确性。

在微调阶段,我们不再只是学习基本概念,而是开始针对特定的题型进行训练,进一步熟悉如何运用已有的知识来解决具体的问题。

GRPO与前面的两者不同,它不仅关注解题的最终结果(即正确与否),更重要的是它强调解题的过程。

GRPO的核心目标是在做题的过程中不断反思,调整解题步骤,通过反馈优化整个解题策略,从而在下一道题上能表现得更加高效和准确:

反馈和自我优化:就像做数学题时,我们不仅关注答案是否正确,更重要的是要反思自己的解题过程。

例如,如果我们发现某个步骤过于繁琐或者耗时过长,我们会在下一次做类似的题目时尝试改进方法。

通过不断的反馈和优化,我们逐渐找到了更简洁、高效的解题方式。

在模型训练中:GRPO在强化学习中扮演着类似的角色。

它通过策略优化来提升模型的推理能力,但不仅仅是通过对最终答案的正确与否进行奖励,GRPO还关注模型如何得出答案的过程。

在这个过程中,模型通过不断“尝试-反馈”来改进推理步骤,并通过群体内的比较和优化,找到最优的推理路径。这就像是你在做数学题时,通过不断调整解题步骤,确保不仅最终的答案正确,而且解题过程也高效且清晰。

假设你在做一道数学题,传统的强化学习可能会直接给你一个奖励,告诉你答案是否正确,而GRPO则会根据你在解题过程中所使用的步骤、思考方式等提供反馈。

比如,如果你的某一步骤不够高效,GRPO会提醒你如何改进这个步骤,从而在下次做类似的题目时,能够更迅速地找到解决方案。

结语

MLA和GRPO是DeepSeek两项核心技术创新,他们是实现高效推理与低成本训练的重要组成,为AI领域的技术进步提供了新的思路。

MLA通过低秩压缩和信息分级机制,显著降低了计算和内存消耗,同时保持了高效的推理能力,克服了传统MHA在大规模任务中的资源瓶颈。

而GRPO则通过强化学习中的策略优化,专注于推理过程的自我迭代与优化,不仅提升了模型的学习效率,还增强了其在复杂任务中的适应性和稳定性。

尽管MLA和GRPO在提升效率和降低成本方面表现出色,我们也需要认识到它们的局限性。

例如,MLA在信息分级过程中可能会忽略一些细节,导致在需要全面上下文信息的任务中表现不如MHA;

而GRPO跳过微调环节直接启用强化学习,虽然提升了训练效率,但在某些特定任务上可能需要额外的调整以确保稳定性。

未来,如何在高效推理与全面性能之间进一步权衡,将是DeepSeek及其他AI模型持续优化的关键方向。

聊聊DeepSeek的MLA和GRPO的更多相关文章

  1. 聊聊Unity项目管理的那些事:Git-flow和Unity

    0x00 前言 目前所在的团队实行敏捷开发已经有了一段时间了.敏捷开发中重要的一个话题便是如何对项目进行恰当的版本管理.项目从最初使用svn到之后的Git One Track策略再到现在的GitFlo ...

  2. Mono为何能跨平台?聊聊CIL(MSIL)

    前言: 其实小匹夫在U3D的开发中一直对U3D的跨平台能力很好奇.到底是什么原理使得U3D可以跨平台呢?后来发现了Mono的作用,并进一步了解到了CIL的存在.所以,作为一个对Unity3D跨平台能力 ...

  3. fir.im Weekly - 聊聊 Google 开发者大会

    中国互联网的三大错觉:索尼倒闭,诺基亚崛起,谷歌重返中国.12月8日,2016 Google 开发者大会正式发布了Google Developers 中国网站 ,包含了Android Develope ...

  4. 聊聊asp.net中Web Api的使用

    扯淡 随着app应用的崛起,后端服务开发的也越来越多,除了很多优秀的nodejs框架之外,微软当然也会在这个方面提供更便捷的开发方式.这是微软一贯的作风,如果从开发的便捷性来说的话微软是当之无愧的老大 ...

  5. 没有神话,聊聊decimal的“障眼法”

    0x00 前言 在上一篇文章<妥协与取舍,解构C#中的小数运算>的留言区域有很多朋友都不约而同的说道了C#中的decimal类型.事实上之前的那篇文章的立意主要在于聊聊使用二进制的计算机是 ...

  6. 聊聊 C 语言中的 sizeof 运算

    聊聊 sizeof 运算 在这两次的课上,同学们已经学到了数组了.下面几节课,应该就会学习到指针.这个速度的确是很快的. 对于同学们来说,暂时应该也有些概念理解起来可能会比较的吃力. 先说一个概念叫内 ...

  7. 聊聊 Apache 开源协议

    摘要 用一句话概括 Apache License 就是,你可以用这代码,但是如果开源你必须保留我写的声明:你可以改我的代码,但是如果开源你必须写清楚你改了哪些:你可以加新的协议要求,但不能与我所 公布 ...

  8. 【原】聊聊js代码异常监控

    在平时的工作,js报错是比较常见的一个情景,尤其是有一些错误可能我们在本地测试的时候测试不出来,当发布到线上之后才可以发现,如果抢救及时,那还好,假如很晚才发 现,那就可能造成很大的损失了.如果我们前 ...

  9. Replication的犄角旮旯(三)--聊聊@bitmap

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...

  10. 【DNS】简单聊聊DNS如何工作

    随便聊聊 我们知道,网络上传输的数据包是一层一层的包起来的,典型的是mac地址层,ip层,tcp/udp层,应用层数据 这么几个层,那用户在浏览器中打开www.baidu.com数据包如何传到baid ...

随机推荐

  1. C# 获取两经纬度之间的距离

    C# 获取两经纬度之间的距离 迷恋自留地 //地球半径,单位米 private const double EARTH_RADIUS = 6378137; /// <summary> /// ...

  2. 解读GaussDB的BTree索引和UBTree索引,如何带来更强并发能力

    本文分享自华为云社区<[GaussTech技术专栏]GaussDB的BTree索引和UBTree索引>,作者:GaussDB 数据库. 1. 简介 数据库通常使用索引来提高业务查询的速度. ...

  3. NetCore2.2升级到3.1总结

    最近公司要求netcore版本从2.2升级到3.1,升级需要修改的配置项和遇到的问题我这边做一个简单的总结. 可参考资料: https://docs.microsoft.com/zh-cn/aspne ...

  4. 【Java】【SpringBoot】CP02:单元测试

    This article is written by Xrilang(Chinese Name:萌狼蓝天) If you want find me ,You can contact me in Bil ...

  5. 测试覆盖率 Java 覆盖率 Jacoco 插桩的不同形式总结和踩坑记录

    https://testerhome.com/topics/20632 关于Jacoco的小结和踩坑记录 一.概述 测试覆盖率,老生常谈的话题.因为我测试理论基础不是很好,就不提什么需求覆盖率啦这样那 ...

  6. Qt/C++实现帧同步播放器/硬解码GPU绘制/超低资源占用/支持8K16K/支持win/linux/mac/嵌入式/国产OS等

    一.前言 首先泼一盆冷水,在不同的电脑上实现完完全全的帧同步理论上是不可能的,市面上所有号称帧同步的播放器,同一台电脑不同拼接视频可以通过合并成一张图片来绘制实现完完全全的帧同步,不同电脑,受限于网络 ...

  7. Qt音视频开发34-Onvif时间设置

    一.前言 对设备设置时间很有必要,这个是必备的功能,毕竟大部分的前端设备比如摄像机本身不带BIOS电池的,所以没法存储时间,要么设置了NTP地址来同步时间,要么其他设备主动对他进行设置时间,如果时间不 ...

  8. Windows7-64环境中部署OpenLayers6.4.3详细步骤

    注意:OL5以后,OpenLayers采用ES6,以前OL4那种简单的加库的方法已经不适用了. Windows7-64环境中部署OpenLayers6.4.3详细步骤: 1.官方教程(英文版) 2.中 ...

  9. Solution -「COCI 2009-2010」「洛谷 P8076」RESTORAN

    \(\mathscr{Description}\)   Link.   给定一个含 \(n\) 个点 \(m\) 条边的简单图, 求一种边二染色方案, 使得所有 \(\deg\ge2\) 的结点都邻接 ...

  10. ClickHouse-3引擎

    引擎 数据库引擎 index 表引擎 数据库引擎 数据库引擎允许您处理数据表. 默认情况下,ClickHouse使用Atomic数据库引擎.它提供了可配置的table engines和SQL dial ...