DeepSeek大模型MoE架构与DeepSeek-V2高效优化技术详解!
本文介绍了DeepSeek团队在MoE模型的两大创新:DeepSeek MoE通过细分专家领域和增加通用专家解决了专家专业化问题;DeepSeek-V2结合MoE和多头注意力优化MLA,提升训练效率42.5%。实验显示,DeepSeek MoE各版本性能优越,DeepSeek-V2性能超越所有开源语言大模型。
简介
本文介绍了DeepSeek团队在MoE模型的两大创新:DeepSeek MoE通过细分专家领域和增加通用专家解决了专家专业化问题;DeepSeek-V2结合MoE和多头注意力优化MLA,提升训练效率42.5%。实验显示,DeepSeek MoE各版本性能优越,DeepSeek-V2性能超越所有开源语言大模型。
《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》
《DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model》
这两篇文章主要研究了MoE(Mixture-of-Experts,混合专家)结构在构建大模型中的应用,以及DeepSeek是如何重新使用MoE的,其中DeepSeek MoE是DeepSeek团队针对以往MoE存在的问题,提出的一种新MoE结构,DeepSeek-V2是DeepSeekMoE结合多头注意力计算优化方法MLA(Multi-head Latent Attention,多头隐注意力)的一种新Transformer架构
一、DeepSeek MoE
MoE能够在不显著增加计算资源的条件下,增加模型的体积,是大模型扩充体积常用的方法,以往的MoE结构面临专家专业化的问题(每个专家无法专注于不重合的知识领域,专家之间的知识有重叠),针对这个问题我们提出了DeepSeek MoE结构,DeepSeekMoE采取:
① 进一步细分专家领域
② 增加通用专家来学习通用的知识
我们不断调整不同参数量的DeepSeek MoE进行了大量实验,其中2B版本的性能优于GShard(2.9B)(一个开源的MoE大模型),16B性能优于LLaMA2(7B),145B优于DeepSeek LLM(67B),而且训练145B时只用了训练DeepSeek LLM(67B) 28.5%的训练资源。
MoE结构一般是以指定的间隔用MoE层替换Transformer中的FFN层,MoE层包含多个FFN,每个FFN是一个专家(简单理解就是将原Transformer中的FFN,替换为多个FFN)
原Transformer中间层的计算公式为:
将FFN层替换为MoE之后的计算公式为:
(简单理解就是不同FFN的输出进行加权求和,所有加权求和都代表着注意力机制)
我们提出的DeepSeek MoE结构如下:
(简单理解就是将原先包含N个FFN层的MoE中的每个FFN再进行分割,上图所示中是每个FFN一分为2,然后分配专家数K也乘以对应的分割数,上图中是乘以2,于是K=4,然后指定一些分割之后的FFN作为通用专家,每次都分配给它,上图中的1,K减1变为3。注意,上图中的Router组件同样是一个可学习模型组件)
计算公式变为:
Router在训练中面临专家路由失衡的问题(总是分配给固定的几个专家,其它专家得不到充分的训练),为了解决这个问题,我们提出了专家级路由平衡损失函数,针对并发训练过程中的路由失衡问题,提出了设备级路由平衡损失。
专家级路由平衡损失函数:
设备级路由平衡损失函数:
将不同专家进行分组,模型采用并发训练,每组专家放到同一个训练节点中,所以专家级路由不平衡对模型性能影响较小,因此在训练过程中我们调小了专家级路由平衡损失函数的权重,增大了设备级路由平衡损失函数的权重。
二、DeepSeek-V2
MLA+DeepSeek MoE
DeepSeek-V2相比DeepSeek LLM 67B,训练资源的使用缩小了42.5%,在包含约8.1万亿语料(DeepSeek公司自己构建的)的数据集上进行了预训练,然后进行监督微调和强化学习对齐,性能碾压一切开源语言大模型。
2.1 MLA(Multi-head Latent Attention,多头隐注意力)
Transformer多头注意力计算中K、V的存储是阻碍模型训练、推理效率的关键,为了解决这个问题人们提出了很多方法,比如GQA(分组注意力,DeepSeek LLM中使用了这个方法)、MQA,但是这些方法在减少KV存储时会缩减模型的性能,针对以上问题我们提出了MLA。
传统的多头注意力(MHA)计算如下:
(h是输入到多头注意力层的向量,W是映射矩阵,矩阵乘以一个列向量,结果是一个列向量)
然后q,k,v按照注意力头数进行向量分割,分割的每部分进行注意力计算就是多头注意力
u是最终当前多头注意力层的输出
我们提出的MLA计算过程如下:
加上RoPE位置编码,最终计算过程如下:
(简单理解就是多头注意力是当前网络层的输入h直接乘映射矩阵w,而MLA是先将h映射为一个低维的向量,然后再乘映射矩阵w,这里所说的映射、映射矩阵都是模型的可学习参数,是模型的一部分,训练完之后就是固定的。RoPE是位置编码,所有Transformer架构都需要对输入进行位置编码,因为Transformer对输入序列中词语的位置不敏感,导致在Transformer看来“我吃饭”和“饭吃我”是一样的,RoPE也是一个可学习参数矩阵,训练完固定在模型中)
不同多头注意力计算之间的对比图如下:
三、AI大模型学习路线
如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)