提到DeepSeek,大家总会谈到Mixture-of-Experts(MoE)这个架构,今天我们就来聊聊MOE 架构有何过人之处,是怎么让DeepSeek在AI上一路“狂飙” 的。
一、聊聊DeepSeek的核心架构
春节期间,DeepSeek凭借其强大的自然语言理解和生成能力,迅速成为业界的焦点,推动了自然语言处理技术的发展,并在多个领域得到了广泛应用。
DeepSeek的核心技术包括Transformer架构和MoE架构。Transformer架构使得模型能够并行处理输入序列中的每个元素,提高了计算效率。MoE架构则将模型划分为多个专家子模型,每个子模型负责处理不同的输入任务,提高了模型的泛化能力和鲁棒性。
可以说,正是利用MOE架构和Transformer架构两位“大神”,才让DeepSeek在AI领域一鸣惊人。
要想了解DeepSeek Moe的创新,我们就先要看看什么是Transformer架构?
二、Transformer架构在AI江湖中地位如何?
Transformer是一种基于自注意力机制(self-attention mechanism)的神经网络架构。它通过并行处理整个输入序列,解决了RNN在长序列处理中的缺陷,是当前自然语言处理领域的主流架构。
在2017年,谷歌AI团队发表了一篇惊为天人的论文《Attention Is All You Need》 ,Transformer架构横空出世,自此,它便在AI江湖中掀起了惊涛骇浪。
其实在Transformer 诞生之前,在序列处理领域已经有了RNN(循环神经网络)和CNN(卷积神经网络)。但两者都有各自的缺陷。
RNN处理长序列时容易出现梯度消失或梯度爆炸的问题,健达来说就是就像一个记性不好的老人,处理长内容时,前面的内容记不住,后面又容易混淆。
CNN虽然在提取局部特征上表现出色,但对长距离依赖关系的捕捉能力欠佳,就好比只盯着眼前的局部风景,而忽略了远方的整体美景。
Transformer则巧妙地摒弃了RNN的顺序处理方式和CNN的局部处理局限,引入了自注意力机制,这就像是给大模型装上了一个“全局扫描雷达”,能够同时关注输入序列中的各个位置,极大地提升了对长序列的处理能力,完美解决了上述两个难题。
Transformer有多神奇呢?
举个例子,当我们看到“苹果从树上掉下来,牛顿受到启发发现了万有引力” 这句话时,会轻松理解“它”指的就是苹果。Transformer的自注意力机制也是如此,它让模型在处理每个单词时,都能计算该单词与其他所有单词的关联程度,给不同单词分配不同的 “注意力权重”,从而捕捉到文本中词汇之间丰富的语义关系,理解上下文。
通过这种方式,大模型就能精准把握文本中各个词汇的依赖关系,像个语言大师一样,理解复杂的语言表达。
如今,Transformer 的应用领域已经十分广泛。例如在NLP领域,机器翻译中,它能将一种语言流畅地翻译成另一种语言;文本生成里,无论是创作故事、小说,还是撰写新闻资讯,Transformer 都能够信手拈来;智能客服中,它能理解用户提出的问题,从而给出准确的回答。
Transformer的发展在巨量参数模型、大规模可学习的数据、强大算力设备的支持下,几乎横扫了一切大模型领域。
但这不意味着Transformer是完美无缺的。Transformer几乎就是为大模型而生,但成也萧何败也萧何。在一些实际应用开发中,Transformer模型的大参数在带来更好的表现的同时,也带来了一些不得不面对的问题,那就是在训练和使用大模型的时候,随着参数的增加,需要付出更多的成本来维持。
正因为Transformer存在的各种问题,研究者们正在寻找各种方法来减少Transformer模型的参数量,以降低计算资源的消耗,提高训练效率,并提高模型的泛化能力和解释性。
这个时候,MOE架构出现了。
三、后起之秀MOE架构崭露头角
Transformer的普及让人们误认为提升AI能力就是需要不断的堆设备,堆模型数。这对算力、数据、稳定性都提出了更高的要求,而且推理成本也会居高不下,跑万亿个参数的计算才能算出一个token的速度和成本比较不可观。所以,将若干个模型堆成一个MoE大模型似乎是个必然趋势。
MOE,全称Mixture of Experts,也就是混合专家模型,它的设计理念十分巧妙,就像是组建了一个超级 “专家团队” 。在MOE架构中,有多个不同的专家网络,每个专家都有自己的 “专长领域”,专门负责处理特定类型的任务或数据。比如在处理自然语言时,有的专家擅长理解语法结构,有的则对语义理解更在行。
除了专家网络,MOE还有一个关键组成部分 —— 门控机制。门控机制就像是一个智能 “调度员”,当输入数据进来时,它会对数据进行分析,然后根据数据的特点,把数据分配给最合适的专家网络进行处理。例如,当输入一段科技类文本时,门控机制会把它分配给擅长处理专业术语和技术概念的专家。
MOE架构的优势十分显著。从计算效率来看,由于每次只激活部分专家网络,而不是让整个模型的所有参数都参与计算,大大减少了计算量,降低了能耗。这就好比一个工厂,不需要所有工人同时开工,只需根据订单类型,安排相关专业的工人工作,既节省了人力成本,又提高了生产效率。
在模型规模扩展方面,MOE 架构具有很强的灵活性。通过增加专家网络的数量,就能轻松扩展模型的规模,提升模型的能力,而不需要对模型结构进行大规模改动。在处理复杂任务时,不同专家各司其职,能够更好地捕捉数据中的复杂模式,提高模型的准确性和鲁棒性。比如在图像识别中,不同专家可以分别关注图像的颜色、形状、纹理等特征,最后综合判断,提升识别准确率。
四、MOE架构与Transformer互相配合
MOE架构和Transformer架构并不是孤立存在的,它们就像一对默契十足的搭档,相互融合,共同发挥出更强大的威力。
一种常见的融合方式是, MOE架构中的稀疏MoE层替换Transformer模型中的前馈网络(FFN)层。在这种融合架构中,MoE层里的各个专家网络就像Transformer 的“智囊团”,专门负责处理不同类型的输入数据。
当输入数据进入模型时,门控机制会根据数据的特点,将其分配给最合适的专家网络进行处理。处理完成后,专家网络的输出再经过后续的Transformer 层进行进一步的特征提取和处理 。
这种融合方式的优势十分明显。一方面,MoE 架构的引入,使得模型在处理复杂任务时,能够根据不同的数据特点,调用不同的专家网络,就像一个经验丰富的医生,根据不同的病症,选择最合适的治疗方案,从而提高了模型的准确性和鲁棒性。
另一方面,Transformer架构的自注意力机制,能够让模型更好地捕捉数据中的长距离依赖关系,理解上下文信息,为MoE层的专家网络提供更全面、准确的输入,两者相互补充,实现了1 + 1 > 2的效果。
五、DeepSeek的MOE架构创新在哪里?
可能有人有会问,MoE这么好为什么国外大模型没有用吗?
在自然语言处理领域,不少大型语言模型都采用了 MOE 架构,像 GPT-4、DeepSeek-V3 等,它们在语言生成、问答系统、文本翻译等任务中表现出色。
其实主要原因就是MoE大模型有个问题叫负载均衡(load balance),会导致训练不稳定。这会导致一个问题,就是训练过程中会采用所谓的专家并行(expert parallelism)机制,通过将不同的expert放到不同的显卡上来加速训练,而load balance问题会导致某些重要的expert计算量更大,最终结果就是不重要的expert所在的显卡跑不满,效率不够高。
DeepSeek-V2则在一些现有的解决load balance问题的方法基础上,引入了额外的损失函数(即设备级平衡损失和通信平衡损失,下图)来让模型在训练中自主控制不同设备间的平衡,这两个优化方法都是他们的创新点。这种设计使得模型在处理复杂任务时,仍能保持出色的性能和高效的运行。
此外,DeepSeek-V3在训练和推理过程中,保持了无令牌丢失。这是一个重大的进步,因为在传统的模型中,令牌丢失是一个常见的问题,它会导致模型在处理连续任务时,出现断层和错误。而DeepSeek-V3的这一设计,确保了模型在处理连续任务时,能够保持连续的处理,从而提高了模型的性能和稳定性。
DeepSeek-V2的另一大创新是MLA(Multi-Head Latent Attention,多头潜注意力)。
下面我们大概简单说下。
在大模型运行过程中,每次生成一个token(可以大概理解为一个字),而每个token只与之前的token有关。在不进行优化的情况下,每个token生成的时候都需要把之前所有的token都处理一遍,这样的话效率非常差。
由于每个token只与之前的token有关,我们就可以把上一次生成过程中计算过的矩阵保存下来,这样生成下一个token我们可以复用这个矩阵,只需要计算新token的注意力即可。这个技术叫做kv-cache,是目前大模型非常常用的优化算法。
但是kv-cache需要额外的显存保存这些kv-cache,这样的话在上下文(context)很长的情况下显存占用会非常高。尤其是在实际部署时服务器一般会批量处理并发请求,这样的并发请求会带来恐怖的kv-cache量,会导致显存不够用。
MLA通过低秩联合压缩键值(Key-Value),将它们压缩为一个潜在向量(latent vector),从而大幅减少所需的缓存容量。这种方法不仅减少了缓存的数据量,还降低了计算复杂度。MLA在我看来是个天才的想法,比较有趣的是去年梁文峰的访谈提到这个MLA是某位研究员突发奇想想到的。当然从想法到落地还是很难的,据他所说用了几个月。
同样用上面的饭店来举个例子,传统的大模型就好比一家拥有众多服务员的餐厅,每个服务员从头到尾独立负责自己客人的记菜单、传菜、结账、清洁等工作。当有大量复杂菜品出现时,这就可能会出现多个服务员重复记录相同订单、传菜时堵在厨房门口的问题。
MLA技术让所有服务员共享一个智能平板,能实时同步订单、桌号、菜品状态(省去重复记录);上菜时,只有负责上菜的服务员工作,其他人在需要时才会介入(按需分工)。这样既能更快地完成任务,又能保证每部分任务的完成质量。
六、Deepseek-V3的前景分析
DeepSeek 系列模型如今在创新方面表现非常亮眼。以 DeepSeek-V3 为例,其采用的 DeepSeekMoE 架构,通过细粒度专家、共享专家和 Top-K 路由策略,实现了模型容量的高效扩展。
在实际应用中,DeepSeek-V3 在多项自然语言处理和计算机视觉任务中取得了优异成绩。在文本生成任务中,它能够生成逻辑清晰、内容丰富的文本;在图像识别任务中,也能准确识别各种物体和场景 。
另外,DeepSeek-V3的快速性体现在其优秀的计算效率和高速的响应时间上。无论是处理复杂的任务,还是执行大规模的操作,DeepSeek-V3都能在短时间内给出准确的结果。这种快速的特性对于用户来说非常重要,因为在今天的快节奏社会中,时间就是效率,效率就是金钱。
而DeepSeek-V3的免费性则打破了AI技术的门槛,让更多的人能够接触并使用到这项先进的技术。在许多情况下,高昂的使用费用往往会阻碍普通用户使用AI产品。而DeepSeek-V3的免费策略,让更多的人能够享受到AI带来的便利和乐趣。
未来的研究工作将集中在进一步优化DeepSeek-V3的架构上,以增强其在训练和推理过程中的性能。这可能涉及对当前模型的根本性改变,例如放弃现有的Transformer架构。
Transformer架构虽然有其优点,但在某些情况下可能存在效率低下或资源消耗大的问题。通过寻找新的架构,有可能发现更高效、更节省资源的解决方案。另一个重要的研究方向是确定无限的理想上下文大小。在现有模型中,上下文大小往往受到限制,这可能会对模型的性能产生影响。
对于广大公众,DeepSeek-V3提供了一种先进且适应性强的AI工具。随着技术的不断进步,我们有理由期待,在更多复杂的任务和场景中,这两种架构的结合能够创造出更强大、更智能的 AI 系统,推动自然语言处理、计算机视觉、医疗、金融等各个领域的发展,为我们的生活带来更多的便利和惊喜 。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。