聊聊最近很火的混合专家模型(MoE)

前段时间,在2024年NVIDIA GTC大会上,英伟达不小心透露了GPT-4采用了MoE架构,模型有1.8万亿参数,由8个220B模型组成,与此前的GPT-4泄露的信息一致。

近半年多以来,各类MoE大模型更是层出不穷。在海外,除了GPT-4,谷歌推出Gemini、Mistral AI推出Mistral、连马斯克xAI的最新大模型Grok-1用的也是MoE架构。

在国内,MiniMax在今年年初就全量发布大语言模型abab6,该模型为国内首个MoE模型,直接对标GPT-4。昆仑万维也于今年4月17日正式推出了新版MoE大语言模型「天工3.0」,拥有4000亿参数,超越了3140亿参数的Grok-1,成为全球最大的开源MoE大模型。

在各大模型厂商还在不断卷模型参数规模的今天,无论是互联网巨头,还是独角兽公司,都不约而同地选择了MOE作为大模型后续迭代的方向。

结合近期国内掀起的大模型降价浪潮,让我们不禁猜测模型成本下降的背后是否和采用新的MOE架构有关,毕竟原来一个千亿级别的通用大模型现在可能只需要几个百亿级别的MOE模型就能达到相同的效果,而训练一个千亿大模型和百亿大模型需要的成本却差了一个数量级。

下面,让我们一起来揭开MoE的神秘面纱吧。

1、什么是MoE?

MoE,全称Mixture of Experts,混合专家模型。MoE是大模型架构的一种,其核心工作设计思路是“术业有专攻”,即将任务分门别类,然后分给多个“专家”进行解决。与MoE相对应的概念是稠密(Dense)模型,可以理解为它是一个“通才”模型。一个通才能够处理多个不同的任务,但一群专家能够更高效、更专业地解决多个问题。

上图中,左侧图为传统大模型架构,右图为MoE大模型架构。两图对比可以看到,与传统大模型架构相比,MoE架构在数据流转过程中集成了一个专家网络层(红框部分)。下图为红框内容的放大展示:

专家网络层的核心由门控网络(Gating Network)和一组专家模型(Experts)构成,其工作流程大致如下:

  1. 数据首先会被分割多个区块(Token),每组数据进入专家网络层时,首先会进入门控网络
  2. 门控网络将每组数据分配给一个或多个专家,每个专家模型可以专注于处理该部分数据,“让专业的人做专业的事”
  3. 最终,所有专家的输出结果汇总,系统进行加权融合,得到最终输出。

2、MOE的设计

MoE架构的核心思想是将一个复杂的问题分解成多个更小、更易于管理的子问题,并由不同的专家网络分别处理。这些专家网络专注于解决特定类型的问题,通过组合各自的输出来提供最终的解决方案,提高模型的整体性能和效率。

MOE的设计一般包括以下步骤:

(1)专家模型的选择与训练

  • 每个专家模型通常是针对特定任务或特定数据进行训练的。这些专家模型可以是不同的神经网络,分别在不同的数据集上进行优化,以便在特定领域内具有更好的性能。
  • 在训练过程中,专家模型的选择可以基于特定的任务需求或数据特征。例如,可以有专门处理代码数据的专家模型,或者有处理科学论文的专家模型。

(2)门控机制(Gating Mechanism)

  • 混合专家模型的核心在于门控机制,它负责在推理过程中动态选择和组合不同的专家模型。门控机制根据输入数据的特征,决定哪些专家模型对当前任务最有效。
  • 常见的门控机制包括软门控(Soft Gating)和硬门控(Hard Gating)。软门控会为每个专家分配一个概率权重,所有专家的输出按照这些权重进行加权平均;硬门控则直接选择一个或几个专家进行输出。

(3)专家模型的组合与输出

  • 在推理阶段,混合专家模型会根据门控机制的选择,将多个专家模型的输出进行组合,以生成最终的结果。
  • 这种组合可以是简单的加权求和,也可以是更复杂的融合策略,具体取决于任务的要求和门控机制的设计。

(4)优化与训练策略

  • 为了有效训练混合专家模型,通常需要设计特定的优化策略。例如,可以使用分阶段训练的方法,先分别训练每个专家模型,然后在整体框架中进行联合优化。
  • 训练过程中还需要考虑专家模型之间的协同和竞争关系,确保每个专家模型能够在其擅长的领域内充分发挥作用,同时避免不必要的冗余和冲突。

总的来说,混合专家模型通过引入多个专门优化的专家模型,并使用门控机制动态选择和组合这些专家模型的输出,能够在处理复杂任务时表现出更高的灵活性和性能。

3、MOE vs. Dense

MoE(专家混合模型)和Dense(稠密)模型在多个方面存在差异,以下是一些关键点:

指标

MOE

Dense

模型结构

模型由多个专家组成,每次计算时只有一部分专家被激活,从而减少了计算量。

所有参数和激活单元都参与每一次前向和后向传播计算。

计算效率

由于只激活部分专家,计算量和内存需求较少,因此在处理并发查询时具有更高的吞吐量。

计算量和内存需求随参数规模线性增长。

性能

可以在保持高效计算的同时,达到与大型Dense模型相似的性能。例如,50B的MoE模型在性能上接近34B的Dense模型。

性能稳定,但需要大量计算资源。

时延

由于只需加载部分激活的专家,时延较低,尤其是在并发性较低的情况下。

由于需要加载所有参数,时延较高。

应用场景

适用于需要高效处理并发查询的任务,如大规模在线服务。

适用于需要稳定性能且计算资源充足的任务。

综上,MoE相对于Dense模型有以下几个优势:

  1. 吞吐量更高:MoE模型的激活单元少于密集层,因此在处理许多并发查询时,MoE模型具有更高的吞吐量。
  2. 时延更低:当并发性较低时,大部分时间用于将两个激活的专家模型加载到内存中,这比密集层需要的内存访问时间更少,从而降低了时延。
  3. 更高效的计算:对于单个查询,MoE需要从内存中读取的参数更少,因此在计算效率上优于密集层。
  4. 性能优越:MoE模型可以在保持小型模型的计算效率的同时,提供接近大型密集模型的强大性能。例如,Mistral MoE模型展示了在降低成本的同时,取得与更大模型相当的性能。
  5. 灵活性:可以将一个已经训练好的大型密集模型转换为MoE模型,使其具有小型模型的高效计算和大型密集模型的强大性能。

同时,MoE同样存在以下挑战:

  1. 由于MoE需要把所有专家模型都加载在内存中,这一架构对于显存的压力将是巨大的,通常涉及复杂的算法和高昂的通信成本,并且在资源受限设备上部署受到很大限制。
  2. 此外,随着模型规模的扩大,MoE同样面临着训练不稳定性和过拟合的问题、以及如何确保模型的泛化性和鲁棒性问题、如何平衡模型性能和资源消耗等种种问题,等待着大模型开发者们不断优化提升。

4、MoE化

将一个Dense模型转换为MoE模型的过程被称为MoE化(MoEfication)。这个过程的目标是保留Dense模型的强大性能,同时通过MoE模型的高效结构实现更高的计算效率。以下是MOE化的关键步骤:

  1. 分解Dense模型:将Dense模型的参数和计算分解为多个专家模块。每个专家模块只处理输入数据的一部分。
  2. 门控机制:引入门控(gate)机制,以决定每个输入数据应该由哪些专家模块处理。门控机制可以基于输入数据的特征来动态选择专家。
  3. 训练MoE模型:使用与Dense模型相同的数据和训练方法,训练新的MoE模型。确保训练过程中门控机制能够有效地选择合适的专家模块。
  4. 优化和调试:通过实验和调试,优化MoE模型的性能和效率。可以调整门控机制、专家数量等参数,以达到最佳效果。

MoE模型是一种基于“分而治之”策略的神经网络架构,它将复杂的问题分解为多个子问题,每个子问题由一个独立的模型进行处理。这些专家模型可以是任意类型的神经网络,如全连接网络、卷积神经网络或循环神经网络等。MoE模型的核心在于如何有效地结合这些专家模型的输出,以得到最终的预测结果。

【推广时间】

有做模型推理、微调、AI绘画出图,需要GPU资源的朋友们,可以试试UCloud云计算旗下的Compshare这家GPU算力云平台,4090性价比高,单卡按时2.6元,免费200G磁盘。单卡一个月价格在1250元,还是很香的。现在通过链接注册联系客服可以获得20元代金券,同时现在还有个内容激励活动,发布分享一些AI绘画。模型微调、推理,大模型相关的文章带上他们平台,还可以拿500元代金券,可以白嫖好久的算力了,大家可以试试。

高性价比4090算力租用,注册就送20元代金券,更有内容激励活动:GPU算力平台 | 面向AI场景的高性价比GPU租用平台

GPU云服务器租用,P40、4090、V100S多种显卡可选:GPU云服务器租用_GPU云主机限时特惠-UCloud中立云计算服务商

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

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

相关文章

【Go】十一、标准化请求返回与viper管理配置文件的简单使用

请求返回的返回方法 这里指的是:传参的方式,类似与Java的r.setData() 创建目录: user-web global response user.go 定义一个结构体用于接收返回值,这里的 json 属于将对象转换为 json 时的规则定义。 时间处理 方法一&#x…

【机器分配问题】

问题: 现有设备n台,可投放到m个项目中,每个项目的产量与投入该项目的设备数量有关。如表2所示为三个项目的产量(吨)和投入设备(台)的关系。求对m个项目的最优设备分配,使总产量效益…

2024年QMT智能量化交易全解读:一文带你深入了解什么是QMT

随着科技的飞速发展和金融市场的日益成熟,量化交易逐渐成为投资者关注的焦点。QMT(Quantitative Market Trading)智能量化交易系统,作为量化交易领域的重要工具,以其高效、精准、自动化的特点,受到越来越多…

【TensorFlow深度学习】Dropout层工作原理与实际运用

Dropout层工作原理与实际运用 Dropout层工作原理与实际运用Dropout:随机失活的艺术工作机制实现代码示例实际运用成效结语 Dropout层工作原理与实际运用 在深度学习的征途中,模型的过拟合问题一直是研究者们面临的一大挑战。过拟合意味着模型在训练数据…

Ableton Live 11 Suite for Mac:音乐创作的全能伙伴

在数字音乐创作的广阔天地中,Ableton Live 11 Suite for Mac无疑是一颗璀璨的明星。作为一款专业的音乐制作软件,它集合了音频录制、编辑、混音、母带制作等全方位功能,为Mac用户提供了无与伦比的音乐创作体验。 Ableton Live 11 Suite拥有直…

Ubuntu/Linux 安装Paraview

文章目录 0. 卸载已有ParaView1. 安装ParaView1.1 下载后安装 2.进入opt文件夹改名3. 更改启动项4. 创建硬链接5. 添加桌面启动方式6. 即可使用 0. 卸载已有ParaView YUT 1. 安装ParaView https://www.paraview.org/ 1.1 下载后安装 找到下载的文件夹,文件夹内…

NTLM Relay Gat:自动化NTLM中继安全检测工具

关于NTLM Relay Gat NTLM Relay Gat是一款功能强大的NTLM中继威胁检测工具,该工具旨在利用Impacket工具套件中的ntlmrelayx.py脚本在目标环境中实现NTLM中继攻击风险检测,以帮助研究人员确定目标环境是否能够抵御NTLM中继攻击。 功能介绍 1、多线程支持…

日用百货元宇宙 伊利牛奶亮相博鳌论坛

近日,博鳌亚洲论坛2024年会在海南博鳌举行,本次年会以“亚洲与世界:共同的挑战,共同的责任”为主题,受到了亚洲各国的高度重视。在本次论坛上,伊利牛奶旗下的金典鲜牛奶作为博鳌亚洲论坛2024年年会官方唯一指定鲜奶亮相,以顶配鲜活营养,向世界贡献中国的健康方案。据悉,这是伊利…

AdaBoost 乳腺癌数据挖掘

目录 1.数据集背景 2 集成学习方法 AdaBoost集成过程 3 个体学习器 结果评价 准确率以及混淆矩阵 评估集成学习模型的泛化学习能力 评估集成学习模型的多样性 结论 源码 1.数据集背景 乳腺癌数据集是一个非常经典的二元分类数据集,被广泛应用…

LSTM长短时记忆网络:推导与实现(pytorch)

LSTM长短时记忆网络:推导与实现(pytorch) 背景推导遗忘门输入门输出门 LSTM的改进:GRU实现 背景 人类不会每秒钟都从头开始思考。当你阅读这篇文章时,你会根据你对以前单词的理解来理解每个单词。你不会把所有东西都扔…

Camunda 7.x 系列【64】实战篇之挂起、删除流程模型

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 前后端基于若依:https://gitee.com/y_project/RuoYi-Vue 流程设计器基于RuoYi-flowable:https://gi…

2024年6月1日(星期六)骑行禹都甸

2024年6月1日 (星期六)骑行禹都甸(韭葱花),早8:30到9:00,昆明氧气厂门口集合,9:30准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:昆明氧气厂门口集合 ,…

Linux系统维护

1. 批量安装部署 2. 初始化配置 3. 禁用Selinux 永久更改 SELinux 配置: 编辑 SELinux 配置文件:使用文本编辑器打开 /etc/selinux/config 文件: 在配置文件中,找到 SELINUX… 的行。将其值更改为以下选项之一: e…

TypeScript 学习笔记(七):TypeScript 与后端框架的结合应用

1. 引言 在前几篇学习笔记中,我们已经探讨了 TypeScript 的基础知识和在前端框架(如 Angular 和 React)中的应用。本篇将重点介绍 TypeScript 在后端开发中的应用,特别是如何与 Node.js 和 Express 结合使用,以构建强类型、可维护的后端应用。 2. TypeScript 与 Node.js…

YoloV8改进策略:BackBone|融合改进的HCANet网络中的多尺度前馈网络(MSFN)|二次创新|即插即用

本文使用HCANet网络中的多尺度前馈网络来提高Backbone的表征能力和检测精度。即插即用,方便大家移植自己的模型中。 论文指导 原论文中的表述 B. 多尺度前馈网络 在 V i T \mathrm{ViT} ViT 中的原始 FFN 是由两个线性层所构成,这样的设计仅用于单尺度特征聚合。但是,F…

2024 GIAC 全球互联网架构大会:拓数派向量数据库 PieCloudVector 架构设计与案例实践

5月24-25日,msup 和高可用架构联合举办了第11届 GIAC 全球互联网架构大会。会议聚焦“共话AI技术的最新进展、架构实践和未来趋势”主题,邀请了 100 余位行业内的领军人物和革新者,分享”Agent/RAG 技术、云原生、基座大模型“等多个热门技术…

浏览器修改后端返回值

模拟接口响应和网页内容 通过本地覆盖可以模拟接口返回值和响应头,无需 mock 数据工具,比如(Requestly),无需等待后端支持,快速复现在一些数据下的 BUG 等。在 DevTools 可以直接修改你想要的 Fetch/XHR 接…

event.preventDefault()使用指南

event.preventDefault(); 是 JavaScript 中用于阻止默认事件行为的方法。具体而言,它在处理 HTML 元素(如链接和表单)的事件时非常有用。下面是详细的解释和示例,说明它的作用和使用场景。 解释 在 HTML 中,许多元素…

将四种算法的预测结果绘制在一张图中

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 之前的一期推文中,我们推出了…

RPA在抖音等短视频创作开发的应用

相较于一般人对Ai的漠视或仅仅停留在逗比对话而言,在凭此谋生的专业的行当,或AI应用相对宽泛的领域。融合Ai的自动化辅助办公(创作、演示等)的进步日新月异,这方面的知识还是应尽快了解。 RPA是Robotic process autom…