Moe 混合多专家模型 原理 + 大模型的有性繁殖

news2025/1/21 12:22:36

Moe 混合多专家模型 原理 + 大模型的有性繁殖

    • MoE 介绍
      • 标准 Transformer 编码器
      • MoE Transformer 编码器
      • 专家网络层
    • 大模型的有性繁殖
      • mergekit 合并 多个专家模型 的方式
        • 1. SLERP(球面线性插值)
        • 2. TIES
        • 3. DARE
        • 4. Passthrough
        • 5. Linear
      • mergekit 合并 多个专家模型 实操

 


MoE 介绍

大模型最开始设计思路是 — 通用。

一个通才能够处理多个不同的任务,但一群专家能够更高效、更专业地解决多个问题。

  • Moe 混合多专家模型:术业有专攻,将任务分类,分给多个专家解决

与一个“通才网络”相比,一组术业有专攻的“专家网络”能够:

  • 让用户获得更快的响应速度

  • 提供更好的模型性能 — 每个专家模型都能针对不同的数据分布和构建模式进行搭建

  • 更好地完成复杂的多种任务

  • 在不显著增加计算成本的情况下大幅增加模型容量

  • 开发时间更短

    让一个大模型既代码牛逼,又医疗牛逼,还数学、角色扮演牛逼,你得烧多少算力、买多少数据,即使做到,项目开发周期非常长,搞不好新技术出来又颠覆了。

  • 模型越大,性能越好。

    今天的大模型,正迫切地需要变得更大。

    随着模型越来越大,稳定性也越来越差,种种综合原因让大模型参数量长久以来限制在百亿与千亿级别,难以进一步扩大。

这张图对比了标准 Transformer 编码器(左侧)和 MoE(专家混合)Transformer 编码器(右侧)的架构。

  • MoE Transformer 编码器引入了MoE(专家混合)层,而标准 Transformer 编码器没有。

  • 与传统大模型架构相比,MoE架构在数据流转过程中集成了一个专家网络层(红框部分)。

标准 Transformer 编码器

  1. 输入嵌入 + 位置嵌入:输入的嵌入向量和位置嵌入。
  2. 多头注意力机制:使用多头注意力机制来捕捉输入序列中不同位置之间的关系。
  3. 加法 & 归一化:将多头注意力机制的输出与输入进行残差连接,并进行归一化处理。
  4. 前馈神经网络(FFN):通过一个全连接的前馈神经网络对归一化后的输出进行进一步的处理。
  5. 加法 & 归一化:将前馈神经网络的输出与其输入进行残差连接,并进行归一化处理。
  6. 重复 Nx 次:上述步骤重复 N 次,得到编码器的最终输出。

MoE Transformer 编码器

  1. 输入嵌入 + 位置嵌入:输入的嵌入向量和位置嵌入。
  2. 多头注意力机制:使用多头注意力机制来捕捉输入序列中不同位置之间的关系。
  3. 加法 & 归一化:将多头注意力机制的输出与输入进行残差连接,并进行归一化处理。
  4. MoE 层:包含多个前馈神经网络(FFN₁, …, FFNₑ)。通过一个门控机制(Gating)来选择和激活其中的一部分前馈神经网络。这种机制使得模型可以选择性地激活特定的专家,从而增强模型的表示能力。
  5. 加法 & 归一化:将MoE层的输出与其输入进行残差连接,并进行归一化处理。
  6. 重复 (N/2)x 次:上述步骤重复 (N/2) 次,得到编码器的最终输出。

这种架构设计通过引入专家混合机制,使得模型在处理复杂任务时更具灵活性和适应性,同时也能够更有效地利用计算资源。

专家网络层


核心思想:

  • 门控网络:负责智能分配任务,将不同特征的数据分配给最适合的专家。
  • 专家模型:每个专家专注处理特定类型的数据特征,“让专业的人做专业的事”。
  • 加权融合:将各个专家的处理结果融合,得到更精准的输出。

MoE 有两个参数:

  • 专家数量 (num_local_experts):这决定架构中的专家总数,如 Mixtral-8x7B 有 8 个 7B 专家模型
  • 专家数量/tonke (num_experts_per_tok):在每个层中,每个token会被分配到多少个专家模型进行处理。例如,如果num_experts_per_tok为2,那么每个token会被分配给2个专家模型。

Moe 实现俩种方式:

  • MoE(原装训练):从头设计和训练,所有部分都精心协调,更像是制造一辆全新的跑车。

  • frankenMoE(后天组合):基于现有模型进行改装和升级,重点在于如何有效组合和协调,更像是对现有汽车进行高性能改装。

大模型的有性繁殖

mergekit 合并 多个专家模型 的方式

https%3A//github.com/arcee-ai/mergekit%23merge-methods

mergekit 有 7 种合并方式。

1. SLERP(球面线性插值)

问题:
为什么在某些情况下需要使用球面插值(SLERP)而不是线性插值?

解法:
在某些情况下,线性插值可能无法准确表示数据或模拟对象之间的连续变化,特别是涉及到在球面上的插值时。

为了保持曲线的平滑性和连续性,需要使用球面插值(SLERP)。

概念

  • SLERP是一种在两个向量之间进行平滑插值的方法,保持恒定的变化率,并保留向量所在的球形空间的几何属性。
  • 主要用于两个模型的合并,通过插值获得平滑过渡。

步骤

  1. 将输入向量归一化为单位长度。
  2. 使用它们的点积计算这些向量之间的角度。
  3. 根据角度进行插值,生成新向量。
2. TIES

概念

  • TIES旨在将多个特定任务的模型合并为一个多任务模型。
  • 通过修剪冗余参数和解决符号冲突来优化合并过程。

步骤

  1. 修剪:只保留最重要的参数,将其余参数重置为零。
  2. 选择符号:创建统一的符号向量,表示所有模型中最主要的变化方向。
  3. 不相交合并:平均对齐的参数值,不包括零值。
3. DARE

概念

  • 类似于TIES,但在修剪和重新缩放权重上有所不同。
  • 将微调的权重随机重置为原始值,并重新缩放权重以保持模型输出预期不变。

步骤

  1. 修剪:随机重置微调的权重为原始值。
  2. 重新缩放:重新缩放权重,使其与基本模型权重相结合。
4. Passthrough

概念

  • 与其他方法不同,Passthrough通过连接来自不同LLM(大规模语言模型)的层生成模型。
  • 适用于创建大参数模型。

步骤

  1. 直接连接来自不同模型的层。
  2. 生成一个新的模型,结合了多个模型的参数。

总结:

  • SLERP:适用于在两个模型之间进行平滑插值,保持向量几何属性。
  • TIES:通过修剪冗余参数和解决符号冲突来有效合并多个模型。
  • DARE:类似TIES,但在权重修剪和重新缩放上有所不同,保持输出预期不变。
  • Passthrough:通过连接不同模型的层创建大参数模型,适用于生成更强大的模型。
5. Linear

Linear就是一个简单的加权平均。

 


mergekit 合并 多个专家模型 实操

mergekit:https://github.com/arcee-ai/mergekit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1681868.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3中实现简繁体转换

由于项目在大陆和台湾同胞同步使用,因此需要实现中文的简繁体转换,实现输入简体,能搜索出简体和繁体的相关内容,输入繁体,也能搜索出简繁体相关内容。忽略简繁体,扩大搜索范围。 引入插件: np…

一休:一款专业的休息提醒软件

对于长期使用电子产品的人来说,保护眼睛至关重要,不论是工作还是学习,适当的休息都是必要的,保护视力要牢记20-20-20法则,眼科医生陶勇也科普过: 使用电脑工作和学习时,容易会忘记时间&#x…

在面对各种问题时,我们应该如何进行数据分析

python数据分析汇总 前言一、对比分析概念特征类型案例Matplotlib的颜色字母对照表解决遇到未知函数 二、相关性分析概念类型案例一案例二 三、时间序列分析概念类型案例 四、回归分析概念类型案例一案例二案例三 五、决策树概念计算过程案例 六、主成分分析概念计算过程案例 七…

【手势识别-UILongPressGestureRecognizer长按 Objective-C语言】

一、我们来说这个长按啊, 1.长按这个手势,也是,步骤都是一样的,首先,也是这三大步啊, 1)创建手势对象 2)对某一个view添加手势 3)实现手势的方法 首先,也是三大步, 1)创建手势对象:首先,你要告诉我,你要使用哪一个手势,我要使用一个叫做UILongPressGesture…

[牛客网]——C语言刷题day4

答案:B 解析: a是数组首元素的地址,a1的步长是int,所以是2 &a是数组的首地址,&a1步长是int[5] ptr是int类型的指针,指向a数组的尾后位置,ptr-1的步长是int,所以是a数组的最后一个元素5 答案&am…

【无标题】海图微电子产品

一、HT2300 1、产品介绍 HT2300在全分辨率 (1920 H 1080 V) 下,它们的帧率可达2500fps。加上全局快门像素和低噪声等特性,可满足对高分辨率,高速CMOS图像传感器的需求,适用于科学研究,工业检测和数字影视中高速视频捕捉…

WebRTC实时音视频通话之语音通话设计与实践

一、背景 在移动互联网流量时代,很多业务场景都有音视频通信的需求,比如IM场景,除了文字交流还需要音视频通话进行实时交互。为了帮助58、赶集、安居客等业务线更好的为用户提供服务,节约沟通成本,提升效率&#xff0…

HNU-算法设计与分析-作业5

第五次作业【回溯算法】 文章目录 第五次作业【回溯算法】<1> 算法分析题5-3 回溯法重写0-1背包<2> 算法分析题5-5 旅行商问题&#xff08;剪枝&#xff09;<3> 算法实现题5-2 最小长度电路板排列问题<4> 算法实现题5-7 n色方柱问题<5> 算法实现…

最近很火的粘土滤镜被玩坏了,教你用AI绘画SD免费无限制使用,附教程!

大家好&#xff0c;我是阿威。 最近在小红书上&#xff0c;“粘土特效”、“粘土滤镜”异常爆火&#xff0c;被网友玩出了花。 原来&#xff0c;一款海外修图工具——Remini&#xff08;类似妙鸭相机&#xff09;上线AI滤镜功能&#xff0c;其中就包括粘土滤镜&#xff0c;非常…

WPS如何把多个表格合并到一个表格里面?

注意&#xff1a;此功能需要wps会员。 例如&#xff1a;这里有3个表格。 现在希望合并3个表格到一起&#xff0c;如下图所示。 新建一个表格&#xff0c;打开表格。 选择 开始->工作表->合并表格->整合成为一个工作薄。 弹出对话框&#xff0c;选择添加文件&#xff…

Pencils Protocol Season 2 收官在即,Season 3 携系列重磅权益来袭

此前Scroll生态LaunchPad &聚合收益平台Pencils Protocol&#xff08;原Penpad&#xff09;&#xff0c;推出了首个资产即其生态代币PDD的Launch&#xff0c;Season 2活动主要是用户通过质押ETH代币、组件战队等方式&#xff0c;来获得Point奖励&#xff0c;并以该Point为依…

剪辑师创作必备声音素材,BGM背景音效素材合集1万款

一、素材描述 本套音效包含了全面丰富的声音效果&#xff0c;如动物、运输、人群、天气、航空、军事、Foley声音等&#xff0c;以及世界各地的场景声效等&#xff0c;可能是同类音效中最为全面的&#xff0c;共由三套声音素材组合而成&#xff0c;1、熊猫背景音乐3800首&#…

Java数据类型:引用类型

Java的数据类型可以分为基本数据类型(8种)和引用类型。 本文将深入探讨引用类型的概念、使用方法、工作原理&#xff0c;并通过代码示例加以说明&#xff0c;帮助读者全面理解这一Java编程的核心要素。 1. 引用类型的定义 引用类型&#xff0c;顾名思义&#xff0c;是用于存…

2024年抖店保证金交多少?保证金常见问题解答,一文解决你所有疑惑

大家好&#xff0c;我是电商花花 新手如果想要开抖音小店&#xff0c;有一个大坑是必须要避开的。 就是我们店铺开通之后&#xff0c;我们一定要交保证金&#xff0c;如果不交&#xff0c;那就是0元开店。 很多新手听别人说做抖音小店可以0元开店&#xff0c;不用缴纳保证金就…

亚马逊测评真人号与自养号:如何选择?区别与作用全面解析

亚马逊卖家都希望能打造出热销产品的产品列表&#xff0c;因为评论对于列表的曝光和流量有着巨大的影响。然而&#xff0c;获取有效的产品评论并不容易&#xff0c;许多卖家为了提高自己产品在同类别中的竞争力&#xff0c;选择进行测评。测评可以快速提高产品的排名、权重和销…

2万字实操入门案例之在Springboot框架下用Mybatis简化JDBC开发实现基础的操作MySQL之预编译SQL主键返回增删改查

环境准备 准备数据库表 use mybatis;-- 部门管理 create table dept(id int unsigned primary key auto_increment comment 主键ID,name varchar(10) not null unique comment 部门名称,create_time datetime not null comment 创建时间,update_time datetime not null comme…

微信小程序之九宫格抽奖

1.实现效果 2. 实现步骤 话不多说&#xff0c;直接上代码 /**index.wxml*/ <view class"table-list flex fcc fwrap"><block wx:for"{{tableList}}" wx:key"id"><view class"table-item btn fcc {{isTurnOver?:grayscale…

使用API有效率地管理Dynadot域名,默认将域名隐形转发至其他界面

关于Dynadot Dynadot是通过ICANN认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…

[通俗易懂]《动手学强化学习》学习笔记3-第5-13章

文章目录 前言小总结&#xff08;前文回顾&#xff09;问题1&#xff1a;问题2&#xff1a;问题3&#xff1a;补充一点 0.26.2版本gym环境问题 前言 参考&#xff1a; 《动手学强化学习》作者&#xff1a;张伟楠&#xff0c;沈键&#xff0c;俞勇 动手学强化学习 网页版 动手学…

思科期末大作业

计算机网络&#xff0c;可代写网络作业&#xff0c; 思科cisco模拟器&#xff0c;eve&#xff0c;制作校园局域网、企业局域网&#xff0c;实现路由交换、单臂路由、冗余、ACL、Nat、PAT、DHCP,RIP,OSPF,pppoe等技术&#xff0c;价格合理&#xff0c;详细私聊