Mixtral-8x7B 背后的 MoE 技术

目录

  • 什么是专家混合(MoE)?
  • MoE 的历史
  • 什么是稀疏性?
  • MoE 和 Transformers
  • Switch Transformers
  • 微调 MoE
  • 加速 MoE 的运行
  • 服务技巧
  • 开源 MoE 项目

正文

什么是专家混合(MoE)?

模型的规模对于提升其质量至关重要。在有限的计算资源下,相较于用更多步骤训练一个小型模型,训练一个大型模型即便步骤更少效果通常更好。MoE 让模型以「远低于传统密集模型的计算成本」进行预训练,这意味着你可以在相同的计算预算下显著扩大模型或数据集的规模。特别是在预训练阶段,MoE 模型能比其同等规模的密集型模型更快地达到相同的性能水平。

那么,MoE 究竟是什么呢?在 Transformer 模型的背景下,MoE 主要由两个部分组成:

  • 稀疏 MoE 层代替了传统的密集前馈网络 (FFN) 层。MoE 层包含若干“专家”,例如 8 个,每个专家都是一个独立的神经网络。实际上,这些专家通常是 FFN,但它们也可以是更复杂的网络,甚至可以是 MoE 本身,形成一个层级结构的 MoE。
  • 门控网络或路由器,用于决定哪些 Token 分配给哪个专家。值得注意的是,一个 Token 可以被分配给多个专家。

如何高效地将 Token 分配给合适的专家,是使用 MoE 技术时需要考虑的关键问题之一。路由器由一系列可学习的参数构成,它与模型的其他部分一起进行预训练。

MoE 的历史

MoE 的概念最早出现在 1991 年的论文《Adaptive Mixture of Local Experts》中。这一理念与集成方法相似,目的是通过监督程序管理一个由不同网络构成的系统,每个网络处理训练样本的一部分。每个单独网络或“专家”,都在输入空间的不同区域有其特长。由单独的门控网络决定每个专家的权重,在训练过程中,同时对专家和门控网络进行训练。

在 2010 至 2015 年间,两个不同的研究领域推动了 MoE 的进一步发展:

  • 将专家作为组件:在传统的 MoE 结构中,系统由一个门控网络和多个专家组成。MoE 作为整体模型已在 SVM、高斯过程等方法中得到应用。Eigen 等人的研究将 MoE 作为更深层网络的一部分进行探索。这意味着 MoE 可以作为多层网络中的一层,使模型在大规模和高效率之间达到平衡。
  • 条件计算:传统网络会将所有输入数据通过每一层。在此期间,Yoshua Bengio 探索了一种基于输入 Token 动态激活或停用网络组件的方法。这些研究促进了在自然语言处理领域对混合专家模型的探索。具体来说,Shazeer 等人 (2017 年的研究,团队成员包括 Geoffrey Hinton 和 Jeff Dean) 将这一理念应用到了一个 137B 的 LSTM (当时的 NLP 主要架构) 上,通过引入稀疏性概念,即使在大规模应用中也能保持快速的推理速度。这项工作主要关注翻译领域,但也面临着高通信成本和训练不稳定等挑战。

什么是稀疏性?

稀疏性基于条件计算的概念。不同于密集模型中所有参数对所有输入都有效,稀疏性让我们能够只激活系统的部分区域。条件计算 (即网络的某些部分仅针对特定样本激活) 使得在不增加计算量的情况下扩大模型规模成为可能,从而在每层 MoE 中使用了数千名专家。

这种方法也带来了挑战。比如,虽然大批量处理通常能提高性能,但在 MoE 中,当数据通过活跃的专家时,实际的批量大小会减小。例如,如果我们的批量输入包含 10 个 Token,可能有 5 个 Token 由一个专家处理,另外 5 个 Token 分别由 5 个不同的专家处理,这导致批量大小不均匀,资源利用率低下。

那我们该如何解决这些问题呢?让我们深入探讨 Shazeer 在翻译领域对 MoE 的研究。通过一个学习型的门控网络 (G),决定将输入的哪些部分分配给哪些专家 (E):

y = ∑ i = 1 n G ( x ) i E i ( x ) y = \sum_{i=1}^{\text{n}} G(x)_i E_i(x) y=i=1nG(x)iEi(

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

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

相关文章

爬楼梯(记忆化递归算法)

爬楼梯(记忆化递归算法) 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 要求:使用记忆化递归算法设计程序 示例1: 输入:0 输出&am…

HBuilder X将Vue打包APP返回上一页退出问题、清除缓存页面历史防止返回登录页(上一页)、以及状态栏颜色切换

目录 一、返回上一页退出问题 二、清除缓存页面历史防止返回上一页 三、状态栏颜色切换 一、返回上一页退出问题 1.首先重新认识一下vue的页面跳转,这里我只说常用到的两个 goSkip(){//直接跳转this.$router.push(/test);this.$router.replace(/test);//带参数跳…

手机天线市场分析:预计2029年将达到576亿美元

手机天线,即手机上用于接收信号的设备,旧式手机有外凸式天线,新式手机多数已隐藏在机身内。这类天线主要都在手机内部,手机外观上看不到里面的东西。 手机天线主要就内置及外置天线两种,内置天线客观上必然比外置天线弱…

基于TCP协议的简易FTP云盘

基于TCP协议的简易FTP云盘 创建基于TCP协议的简易FTP云盘涉及多个方面的知识,包括网络编程、文件传输、用户认证等。以下是一种简单的实现思路,你可以根据需要进行调整和扩展: 选择编程语言: 选择你熟悉的编程语言,例…

看到CSDN的文章上的url后面加了spm呢吗?干嘛用的

https://csdnnews.blog.csdn.net/article/details/135027851?spm1000.2115.3001.5927 像这样的spm有什么作用呢?看到了就想分析下: 在给定的链接中,spm(Site Promotion Method)是CSDN博客中的一个参数,主…

『 Linux 』重新理解挂起状态

文章目录 🦄 前言新建状态 🐋挂起状态 🐋唤入唤出 🐋进程与操作系统间的联系 🐋 🦄 前言 『 Linux 』使用fork函数创建进程与进程状态的查看中提到了对挂起状态的一个理解; ​ 挂起状态相比于其…

LearnDash LMS ProPanel在线学习系统课程创作者的分析工具

点击阅读LearnDash LMS ProPanel在线学习系统课程创作者的分析工具原文 LearnDash LMS ProPanel在线学习系统课程创作者的分析工具通过整合报告和作业管理来增强您的 LearnDash 管理体验,使您能够发送特定于课程的通信,并显示课程的实时活动&#xff01…

Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入

场景 Windows中通过bat定时执行命令和mysqldump实现数据库备份: Windows中通过bat定时执行命令和mysqldump实现数据库备份_mysqldump bat-CSDN博客 Windows上通过bat实现不同数据库之间同步部分表的部分字段数据: Windows上通过bat实现不同数据库之间…

YOLOv5改进 | SPPF | 将RT-DETR模型AIFI模块和Conv模块结合替换SPPF(全网独家改进)

一、本文介绍 本文给大家带来是用最新的RT-DETR模型中的AIFI模块来替换YOLOv5中的SPPF。RT-DETR号称是打败YOLO的检测模型,其作为一种基于Transformer的检测方法,相较于传统的基于卷积的检测方法,提供了更为全面和深入的特征理解&#xff0c…

Termux搭建nodejs环境

安装nodejs ~ $ pkg install nodejs使用http-server搭建文件下载服务 先安 http-server 并启动 # 安装 http-server 包 ~ $ npm install -g http-server# 启动 http-server 服务 ~ $ http-server Starting up http-server, serving ./http-server version: 14.1.1http-serve…

高可用初探

高可用的本质是主备切换,主备切换对使用者是透明的。 一、路由器高可用 虚拟路由协议VRRP VRRP是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器,…

【Hadoop面试】HDFS读写流程

HDFS(Hadoop Distributed File System)是GFS的开源实现。 HDFS架构 HDFS是一个典型的主/备(Master/Slave)架构的分布式系统,由一个名字节点Namenode(Master) 多个数据节点Datanode(Slave)组成。其中Namenode提供元数…

RISC-V 基础知识汇总

1、指令集 基本指令集 指令集名称描述版本状态RV32I基本整数指令集, 32位元2.1已批准RV32E基本整数指令集(嵌入式系统), 32位元, 16 个暂存器2.0已批准RV64I基本整数指令集, 64位元2.1已批准RV64E基本整数指令集(嵌入式系统), 64位元, 16 个暂存器2.0已批准RV128I基本整数指令…

neuq-acm预备队训练week 10 P1525 [NOIP2010 提高组] 关押罪犯

解题思路 本题用并查集的方法 AC代码 #include <bits/stdc.h> using namespace std; int f[55555]; struct S {int a,b,c;friend inline bool operator<(S a, S b){return a.c>b.c;} } d[100000];int find(int x) {return f[x]x? x:(f[x]find(f[x])); }int mai…

易点易动固定资产管理系统——提升固定资产管理透明度和可靠性

通过全面的资产跟踪、准确的数据记录和实时的报告分析&#xff0c;易点易动系统为企业提供了全新的固定资产管理解决方案&#xff0c;帮助企业实现高效、精确的资产管理&#xff0c;提高运营效率&#xff0c;降低风险&#xff0c;实现可持续发展。 固定资产是企业重要的资源和投…

windows系统通过docker安装redis

文章目录 首先本地要安装了docker,且对docker有一定的了解,不了解可以看我博客哈以前写过安装redis,走的国内镜像.后面有了梯子就不用搞那么麻烦了配置文件映射 注意,指定本地文件需要/开头没有冒号举个栗子/D/server/redis/64bit/docker7_2_0redis.conf命令 首先本地要安装了d…

2019系统修复

修改启动顺序 尝试从最后一次正确配置启动 然后删除最后安全的程序。 准备usb系统盘 用系统引导盘进入命令提示符 chkdsk c: 在只读模式看下是否磁盘有问题。 sfc /scannow命令 在管理员命令提示符窗口输入&#xff1a;sfc /scannow命令。 复制&#xff1a;sfc /scanno…

LeetCode 746. 使用最小花费爬楼梯

一、题目 1、题目描述 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花…

倚力未来:人工智能智能辅助医疗的前景与挑战

导言 人工智能在医疗领域的应用正迅速发展&#xff0c;为医疗行业带来了新的可能性。本文将深入探讨人工智能在医疗中的智能辅助应用&#xff0c;以及这一趋势面临的前景和挑战。智慧医疗是指通过先进的信息技术&#xff0c;如人工智能、物联网、大数据等&#xff0c;实现医疗数…

使用Pytorch从零开始构建StyleGAN2

这篇博文是关于 StyleGAN2 的&#xff0c;来自论文Analyzing and Improving the Image Quality of StyleGAN&#xff0c;我们将使用 PyTorch 对其进行干净、简单且可读的实现&#xff0c;并尝试尽可能地还原原始论文。 如果您没有阅读 StyleGAN2 论文。或者不知道它是如何工作…