Monarch Mixer: A Simple Sub-Quadratic GEMM-Based Architecture

news/2025/2/13 2:15:15/

Monarch Mixer: A Simple Sub-Quadratic GEMM-Based Architecture

发于 2023年AI顶会 NeurIPS。

sub-quadratic primitive(次二次原语)


GEMMs(General Matrix Multiply algorithms)是指在许多核心系统上执行的通用矩阵乘法操作的模型。


“causal model”(因果模型)和 “non-causal model”(非因果模型)之间的区别。

Causal model(因果模型)是一种建模方法,旨在理解因果关系和因果推断。这种模型试图描述变量之间的因果关系,即某个变量的变化如何导致其他变量的变化。因果模型通常基于因果关系图,其中节点表示变量,边表示因果关系。

Causal model的一个重要特征是它能够根据因果关系进行因果推断。例如,如果有一个因果模型描述了药物治疗和疾病之间的关系,我们可以使用该模型来预测给定某种治疗方案的情况下,患者的疾病状况会如何改变。

Non-causal model(非因果模型)则不涉及因果关系的建模。这些模型可能只是对数据进行描述、预测或分类,而不考虑变量之间的因果关系。非因果模型可以是统计模型、机器学习模型或其他描述性模型。


FFT(快速傅里叶变换)


在这里插入图片描述

摘要

现在大多数的工作为了提示模型在长文本的表现,都是想办法去缩减序列的长度和模型的维度来实现。
作者提出来了一种新的模型 **Monarch Mixer(M2)**一种新的模型,uses the same sub-quadratic primitive(用相同的次二次原语)。
Monarch矩阵(也是新突出的概念),一类简单的表达型结构化矩阵,可以捕获许多线性变换,在GPU上实现高硬件效率,并按次二次方进行扩展。
为了证明其效果,作者在:
1、non-causal BERT-style language modeling
2、ViT-style image classification
3、causal GPT-style language modeling
三个任务上做了实验。
最后的结果都是可以省掉一大半参数资源的情况下,达到和模型相似甚至更高的模型结果。

Introduction

作者想在序列长度模型维度上面都找到二次型的运算原语。框架灵感来自于 MLP-mixer和ConvMixer。
Monarch: Expressive structured matrices for efficient and accurate training是基于这篇文章的Monarch做的更改。

在这里插入图片描述
👆解释了Monarch的优越性。

Preliminaries

GPU Accelerator Cost Model

讨论GPU加速的问题,可以把GPU的计算操作分为compute-bound(计算绑定)和memory-bound(内存绑定)。
这里memory-bound(内存绑定)的计算相对于arithmetic 操作微乎其微,例子:Typical examples are matrix multiply with large inner
dimension, and short convolution kernels with a large number of channels.(典型的例子是具有大内维数的矩阵乘法和具有大量通道的短卷积核)。
GPU计算方面结论:matrix multiply operation比non-matrix multiply operations(没有矩阵综合运算)的快15倍左右。
在这里插入图片描述

这里只有MLP是关注于 compute-bound的操作,其他几个都是类似的memory-bound操作。
这里的** FFT(快速傅里叶变换) **的计算公式
在这里插入图片描述

Monarch Mixer

通过解释Monarch matrices来去说明Monarch Mixer(M2)


http://www.ppmy.cn/news/1214878.html

相关文章

el-table实现单选和隐藏全选框和回显数据

0 效果 1 单选 <el-table ref"clientTableRef" selection-change"clientChangeHandle"><el-table-column fixed type"selection" width"50" align"center" /><el-table-column label"客户名称" a…

【Cookie 和 session 的区别】

会话&#xff08;Session&#xff09; 跟踪是Web程序中常用的技术&#xff0c;用来跟踪用户的整个会话。cookie和session都是用来跟踪浏览器用户身份的会话方式。Cookie通过在客户端记录信息确定用户身份&#xff0c;Session通过在服务器端记录信息确定用户身份。 我们目前使用…

统计分钟级别的视频在线用户数+列炸裂+repeat函数

统计分钟级别的视频在线用户数 1、原始数据如下&#xff1a; uid vid starttime endtime select aa as uid,v00l as vid,2023-10-25 12:00 as starttime,2023-10-2512:15 as endtime union select bb as uid,v002 as vid,2023-10-25 12:05 as starttime,2023-10-25 12:19 …

Python语言:经典案例分析讲解2

例题1&#xff1a;文件的操作 例题2&#xff1a;调用函数求偶数之和 例题3&#xff1a;调用函数并使用递归的方法求斐波那契数前N项之和 题1: 以只写的模式打开文件test.txt&#xff0c;写入"Python"&#xff0c;关闭文件。 代码如下&#xff1a; f open("E:/…

LeetCode算法练习top100:(1)子串,普通数组

package jz.top100;import java.util.*;public class Top1002 {//560. 和为 K 的子数组//方法1. 暴力计算public int subarraySum(int[] nums, int k) {int res 0;for (int left 0; left < nums.length; left) {int sum 0;for (int right left; right < nums.length;…

asp.net blazor集成ReactiveUI.Blazor

asp.net blazor项目添加Nuget包ReactiveUI和ReactiveUI.Blazor 创建视图模型BlogPostViewModel继承自ReactiveObject public class BlogPostViewModel : ReactiveObject{private readonly AnonymousBlogClient _http;public List<BlogCategory> Categories { get; set; …

具名挂载和匿名挂载

匿名卷挂载 &#xff1a; -v 的时候只指定容器内的路径 如下面这个&#xff1a;/etc/nginx 1.docker run -d -P --name nginx -v /etc/nginx nginx 2.查看所有卷 docker volume ls 这里发现&#xff0c;这就是匿名挂载&#xff0c;只指定容器内的路径&#xff0c;没有指定…

网络运维Day13

文章目录 部署web服务器部署虚拟机web1安装依赖包解压NGINX压缩包初始化编译编译安装查看验证配置动静分离 部署虚拟机web2安装依赖包解压NGINX压缩包初始化编译编译安装查看验证配置动静分离 配置NGINX七层代理测试健康检查功能 配置NGINX四层代理部署代理服务器 总结 部署web…