fMoE论文阅读笔记

原文链接:https://arxiv.org/pdf/2502.05370v1

在混合专家(MoE)架构中,初始阶段涉及输入样本通过GateNet进行多分类的鉴别过程,目的是确定最适合处理输入的专家模型。这个步骤被称为“experts selection”,也是整个MoE模型的核心理念,学术界通常将其描述为稀疏性激活。随后,被选中(激活)的专家模型负责处理输入样本,进而生成最终的预测结果。

在这里插入图片描述
所以MOE有高效性的特点:由于只有少数专家模型被激活,大部分模型处于未激活状态,混合专家模型具有很高的稀疏性。这种稀疏性带来了计算效率的提升,因为只有特定的专家模型对当前输入进行处理,减少了计算的开销。

但是MOE也同样有问题:那些不参与推理的模型仍然在GPU中待命,这样就导致GPU的memory不堪重负。所以就提出了experts offload。

由于是MOE所以一些模型其实是不激活的,那么,就可以把这些模型offload到CPU上,这样就是可以节约GPU的储存和带宽。这个就叫做experts offload.

但是现有的很多experts offload方法都没有很好的提升模型时延,或者仍然有大量内存占用的问题。主要原因是他们做的不够细,模型没有很好的被分门别类,导致真正需要使用的expert被错误的放到了CPU上,在使用expert的时候需要重新加载的时间。

粗颗粒度的offloading solution是基于request level的,这样的话就是由多个iteration组成的。而细颗粒度则是iteration level的。但是实验表明,粗颗粒度的expert heatmap被激活的更加均匀(熵更大)而且随着iteration的增加,expert被激活的就是更加均匀。

在这里插入图片描述
fMoE提出了expert-map,记录iteration级别输入的内容以及调取模型的情况,然后根据这张expert-map来决定experts offload。

fMoE的整体架构:
在这里插入图片描述
问题

  1. 这个fMoE是在训练阶段用呢,还是推理阶段用呢?
    推理阶段用,因为模型不能有变化
  2. Expert map macher 和expert cache怎么保证比推理更快的呢?
    要提前几层预测出来expert的使用情况

整片文章使用了启发解的方式去semantic和trajectory与历史记录的相似性(用cosine similarity),然后选择和历史semantic、trajectory相近的expert去prefetch

LLM中的trajectory是指啥?In this paper, “trajectory” is defined as the collection of probability distributions over experts observed through layers.

大概的意思是,由历史的iteration的内容来推断当前iteration的内容。但是,每个iteration有很多layers, 所以存在semantic和trajectory两种方式。但这两个score咋整合呢???

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

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

相关文章

Linux 禅道开源版安装

1、下载安装包安装wget https://www.zentao.net/dl/zentao/18.5/ZenTaoPMS.18.5.zbox_64.tar.gz tar zxf ZenTaoPMS.18.5.zbox_64.tar.gz/opt/zbox/zbox -ap 81 -mp 3307 # 指定apache服务端口 、 mysql服务端口 /opt/zbox/zbox start #启动禅道服务( 其他命令 /opt/zbox/…

PySpark基础知识(python)

PySpark 是 Apache Spark 的 Python API,它允许开发者使用 Python 语言编写 Spark 应用程序,结合了 Python 的易用性和 Spark 的分布式计算能力,是处理大规模数据的强大工具。 一、安装与环境配置 安装方式: 通过 pip 安装&#…

基于python大数据的电影数据分析可视化系统设计与应用

标题:基于python大数据的电影数据分析可视化系统设计与应用内容:1.摘要 本研究旨在设计并实现一个基于Python的大数据电影数据分析与可视化系统,以解决当前电影行业数据分散、分析效率低及可视化能力不足的问题。系统采用Python语言结合Pandas、NumPy进行数据清洗与…

【PyTorch】图像多分类

多类图像分类的目标是为一组固定类别中的图像分配标签。目录 加载和处理数据 搭建模型 定义损失函数 定义优化器 训练和迁移学习 用随机权重进行训练 用预训练权重进行训练 加载和处理数据 将使用 PyTorch torchvision 包中提供的 STL-10 数据集,数据集中有…

计算机视觉----opencv实战----指纹识别的案例

一、数据准备src2.BMPsrc1.BMPsrc.bmpmodel.BMP二、识别原理讲解(sift特征提取)SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)是一种经典的图像特征提取算法,核心优势是不受图像尺度缩放、旋转…

npm 发布流程——从创建组件到发布到 npm 仓库

1. 准备组件 1.1 创建一个 Vue 组件 假设我们要创建一个简单的按钮组件&#xff1a; src/MyButton.vue <template><button class"my-btn" click"$emit(click)"><slot /></button> </template><script setup lang"ts…

MySQL入门基础指南

目录 一、什么是数据库&#xff1f; 仅依靠文件存储数据存在以下几个明显缺点&#xff1a; 数据库的存储介质通常包括&#xff1a; 二、主流数据库介绍 三、客户端 VS 服务器 四、推荐看的MySQL安装技术博客 五、数据库的存储介质 数据库的存储介质主要分为以下两类&am…

【实战中提升自己完结篇】分支篇之分支之无线、内网安全与QOS部署(完结)

1 1拓扑 「模拟器、工具合集」复制整段内容 链接&#xff1a;https://docs.qq.com/sheet/DV0xxTmFDRFVoY1dQ?tab7ulgil1 分支无线部署 说明&#xff1a;分支无线用瘦AP部署&#xff0c;通过VPN直接注册到总部的AC上面&#xff0c;实现无线的业务提供&…

带你了解STM32:GPIO通用输入输出口

目录 3.1 GPIO简介 3.2 GPIO基本结构 3.3 GPIO位结构 输入部分&#xff1a; 二极管的保护作用&#xff1a; 施密特触发器&#xff1a; 片上外设端口 输出部分&#xff1a; MOS管 3.4 GPIO模式 3.4.1 浮空/上拉/下拉输入 3.4.2 模拟输入 3.4.3 开漏/推挽输出 3.4.…

Http(自写)

作为一个程序员&#xff0c;假设我们要在a电脑的进程里发一段数据到b电脑&#xff0c;一般使用socket编程&#xff0c;可选项也就tcp&#xff0c;udp二选一socket本质上就是一个代码库tcp有粘包问题&#xff08;字节流&#xff09;&#xff0c;纯裸tcp不能之际拿来使用所以我们…

C#使用OpenVinoSharp和PP-Human进行行人检测

效果 项目依赖 OpenCvSharp 4.11.0.20250507 OpenVINO.CSharp.Windows 2024.0.0.1 主要代码 using OpenCvSharp; using OpenVinoSharp; using System; using System.Windows.Forms;namespace HelloPPHuman {public partial class Form1 : Form{public Form1(){InitializeCo…

四、Scala深入面向对象:类、对象与伴生关系

在前几节中&#xff0c;我们学习了 Scala 的基础语法和流程控制。现在&#xff0c;我们将深入探索 Scala 作为一门纯粹的面向对象语言的核心。在 Scala 中&#xff0c;万物皆对象&#xff0c;没有像 Java 那样的原始类型和静态成员的区分。本节将重点介绍如何定义对象的蓝图&am…

【大语言模型 58】分布式文件系统:训练数据高效存储

分布式文件系统&#xff1a;训练数据高效存储 关键词&#xff1a;分布式文件系统、HDFS、Lustre、GlusterFS、数据本地性、I/O优化、存储架构、大数据存储、训练数据管理、存储性能调优 摘要&#xff1a;本文深入探讨大语言模型训练中的分布式文件系统技术&#xff0c;从存储架…

【科研绘图系列】R语言绘制散点图以及线性回归拟合曲线图

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍 加载R包 数据下载 函数 导入数据 数据预处理 画图 总结 系统信息 介绍 数据导入 代码的开始部分涉及多个数据集的导入,这些数据集涵盖了不同类型的生态学数据,包括实验室培养…

SQL 数据库操作语言详解

1. SQL 语言概述SQL&#xff08;Structured Query Language&#xff09;是用于管理关系型数据库的标准语言&#xff0c;主要分为以下几个子语言&#xff1a;- DQL&#xff08;数据查询语言&#xff09;&#xff1a;SELECT - 用于数据查询 - DML&#xff08;数据操作语言&#x…

积分变换的前世今生

积分变换常应用于解微分方程微分方程的解法&#xff1a;时域经典法&#xff1b;频域变换法&#xff1b;“积分变换”最初并不是为了解微分方程&#xff0c;而是出于更“纯粹”的数学动机——理解函数的结构、求解代数或几何问题&#xff0c;以及简化复杂的积分运算。微分方程的…

《Linux——gflags》

一、什么是gflags&#xff1f; gflags 是一个由 Google 开发的命令行参数解析库&#xff0c;主要用于在 C&#xff08;也支持其他语言&#xff09;程序中便捷地处理命令行参数。它的核心作用是帮助开发者快速定义、解析和使用命令行选项&#xff0c;避免手动编写繁琐的参数解析…

编译器的前端中端和后端

前面说的词法分析和语法分析&#xff0c;确实是编译器前端 (Front End) 最核心的两个部分。但前端的工作还没有结束。编译器各阶段划分 一个完整的编译器通常可以分为三个部分&#xff1a;前端、中端 (Middle End)、后端 (Back End)。 前端 (Front End) 核心职责: 理解源代码。…

黑马Java进阶教程,全面剖析Java多线程编程,并发和并行,笔记02

黑马Java进阶教程&#xff0c;全面剖析Java多线程编程&#xff0c;并发和并行&#xff0c;笔记02 一、并发和并行 并发&#xff1a;在同一时刻&#xff0c;有多个指令在单个CPU上交替执行 并行&#xff1a;在同一时刻&#xff0c;有多个指令在多个CPU上同时执行 二、为什么有…

20250908 背包DP总结

引子 ~ 我们都有一个家&#xff0c;名字叫背包 ~ 背包DP 顾名思义&#xff0c;背包DP是用来解决背包最值问题的。题目会给出背包的容量&#xff0c;以及几个物品的属性&#xff0c;比如重量&#xff0c;价值&#xff0c;限额等等&#xff0c;具体是什么看题目。 01背包 01…