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

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.xdnf.cn/news/1425160.html

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

相关文章

go语言数组与切片

1.数组 数组 类型名是[n]elemetType,其中n是数组长度,elementType是数组元素类型。比如一个包 含2个int类型元素的数组类型可表示为[2]int。 数组一般在创建时通过字面量初始化,单独声明一个数组类型变量而不进行初始化是没有意义的。 packa…

全国老年大学或将进入“5G智慧校园“时代

近日,我国晚年大学协会在北京举行官网改版上线典礼,一起这也标志着我国晚年大学协会及全国晚年大学进入了“5G智慧校园”年代。据了解,5G智慧校园以“云”技能为根底,全面落实数字云、办理云、安全云。 “三朵云”助推5G智慧校园&…

Find My资讯|苹果 iOS 17.5 率先执行跨平台反跟踪器标准

苹果和谷歌公司于 2023 年 5 月宣布推出“检测预期外位置追踪器”(Detecting Unwanted Location Trackers)行业标准,经过 1 年多的打磨之后,该标准目前已通过 iOS 17.5 部署到 iPhone 上。谷歌也将为运行 Android 6.0 或更高版本的…

web安全学习笔记(16)

记一下第27-28课的内容。Token 验证 URL跳转漏洞的类型与三种跳转形式;URL跳转漏洞修复 短信轰炸漏洞绕过挖掘 一、token有关知识 什么是token?token是用来干嘛的?_token是什么意思-CSDN博客 二、URL跳转漏洞 我们在靶场中,…

Originx的创新解法之:应用程序故障篇

Originx并不期望做一个完整覆盖全栈的监控体系,而是利用北极星指标体系标准化找出故障方向,然后联动各种成熟的监控数据形成证据链条,并将各种数据融合在一个故障报告之中。更多信息请参考 Log | Metrics | Trace的联动方式探讨http://mp.wei…

KING大咖直播 | KES RAC如何成为核心系统首选?

核心系统负载高 停机代价大 KES RAC来了 KingbaseES共享存储集群 不仅满足您对数据库 扩展性与可用性的严苛要求 更能在保障性能的同时 实现低成本、高效益 是企业核心系统的理想选择 5月16日19:30-20:30 锁定金仓数据库视频号 人大金仓高级研发工程师 深度揭秘如何实现 Kingba…

Linux ps命令详细参数

一、简介 在Linux系统中,ps(Process Status的缩写)命令常常用来用来列出系统中当前运行的进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。要对进程…

失而复得:揭秘删除照片恢复的技巧!

我们的生活与照片紧密相连。每一张照片都承载着一段独特的记忆,记录着我们的喜怒哀乐。然而,有时候我们会因为误操作、存储设备损坏或是文件管理不当而失去这些宝贵的照片。别担心!现在,我们将揭示删除照片恢复的神秘面纱&#xf…

ATA-2021B高压放大器在光纤超声传感器中的应用

实验名称:超声传感性能研究 测试目的: 光纤马赫-曾德尔干涉仪是一种灵敏度高、结构灵活的传感结构。当在MZI上施加超声波信号时,会影响所涉及的干涉光之间的光程差,并导致干涉光谱的漂移。由于模式耦合是基于MZI的光纤传感器的关键…

前端学习第一课

AJAX 事先说明,这只是记录,并不是从零到一的教学内容,如果想要学习的话,可以跳过本文章了 ok,转回正题,正如上面所说,这只是记录。其实我是有一定的前端基础的,也做过涉及相关的开发…

centos7.9安装es7.12.0

下载es 国内镜像:https://mirrors.huaweicloud.com/elasticsearch/7.12.0/ 下载并上传内容到/usr/local目录下 解压: tar -zxvf /uar/local/elasticsearch-7.12.0-linux-x86_64.tar.gz安装 es一般不能用root启动,因此需要创建es:es用户和…

又一个行业被Ai背刺了:Comfyui生成你的专属模特!

工作流获取方式放在文末了 Ai技术的进步,带来了许多之前无法实现的新技术和新成品,这也使得曾经需要漫长的时间和复杂的创作过程才能够完成的工作呗Ai技术轻松代替。 于此同时,不同行业也在这个过程中受到了不同程度的冲击。 今天给大家分…

反激式开关电源-8利用AP法进行变压器设计

变压器AP的计算 在变压器设计中,主要有两种方法,一种称为Kc法,这种方法也称为磁芯几何参数法,如果用这个方法来进行设计,那么我们首先要计算出磁芯的几何参数Kc值,在这个参数上留有一定的裕度后选取和Kc值…

在win10折腾Flowise:部署和尝试

Flowise 是一种低代码/无代码拖放工具,旨在让人们轻松可视化和构建 LLM 应用程序。 本地部署 操作系统: win10 由于网络、操作系统等各种未知问题,使用npm install -g flowise的方式,尝试了很多次,都没有部署成功&am…

信息安全相关内容

信息安全 安全防护体系 安全保护等级 安全防护策略 安全技术基础 安全防护体系 安全防护体系有7个等级 安全保护等级 安全保护等级有5个等级,从上到下是越来越安全的用户自主其实就是用户自己本身具有的相应的能力 安全防护策略 安全策略是对抗攻击的主要策略安全日志: …

24长三角B题1-5问完整代码+15页保姆级思路已更新

比赛题目的完整版思路可执行代码数据参考论文都会在第一时间更新上传的,大家可以参考我往期的资料,所有的资料数据以及到最后更新的参考论文都是一次付费后续免费的。注意:(建议先下单占坑,因为随着后续我们更新资料数…

单片机烧录程序时“DTR的低电平复位,RTS高电平进入bootloader”有关的串口Modem联络信号

烧录程序时常见DTR和RTS引脚 参考,参考视频 因为常常使用的都是串口下载程序,常用的芯片CH340系列,下图中标红的引脚是MODEM联络信号,其中常见的DTR和RTS就是常见的串口Modem网络输出信号,也就是通过烧录软件控制的接…

一键操作!如何轻松将安卓手机视频传输到电脑

在这篇文章中,我们将探讨如何使用Coolmuster Android Assistant软件,从安卓设备传输视频文件到电脑。Coolmuster Android Assistant是一款强大的管理工具,它能够帮助用户轻松地管理安卓设备上的数据,包括联系人、短信、应用程序、…