【亲测免费】 Monarch Mixer:简单高效的亚二次方GEMM架构
2026-01-22 04:26:48作者:裘晴惠Vivianne
项目介绍
Monarch Mixer 是由斯坦福大学的Hazy Research团队开发的一种新型神经网络架构,旨在解决传统Transformer模型在处理长序列时计算复杂度高的问题。Monarch Mixer通过引入Monarch矩阵,成功地将计算复杂度降低到亚二次方级别,同时保持了与Transformer相当的模型质量。
项目最新更新于2024年1月11日,推出了新的长上下文M2-BERT模型,并针对嵌入任务进行了微调。这些模型现已通过Together API提供,用户可以轻松访问并使用这些高效的嵌入模型。
项目技术分析
Monarch Mixer的核心创新在于使用Monarch矩阵替代Transformer中的注意力机制和全连接层。Monarch矩阵是一种结构化矩阵,具有以下特点:
- 亚二次方复杂度:相比于Transformer的二次方复杂度,Monarch Mixer在序列长度和模型维度上都实现了亚二次方的计算复杂度。
- 硬件效率:Monarch矩阵在硬件上的实现效率高,能够充分利用现代计算资源。
- 表达能力强:尽管计算复杂度降低,Monarch Mixer仍能保持与Transformer相当的模型表达能力。
Monarch Mixer通过以下方式实现高效计算:
- 序列混合:使用Monarch矩阵替代注意力机制,实现序列间的信息混合。
- 模型维度混合:使用Monarch矩阵替代全连接层,实现模型维度间的信息混合。
项目及技术应用场景
Monarch Mixer适用于需要处理长序列的各类任务,特别是在以下场景中表现尤为出色:
- 自然语言处理:如文本分类、命名实体识别、机器翻译等。
- 生物信息学:如DNA序列分析、蛋白质结构预测等。
- 时间序列分析:如金融预测、天气预报等。
特别是M2-BERT模型,通过微调后在嵌入任务中表现优异,适用于文本检索、语义搜索等应用。
项目特点
- 高效计算:亚二次方的计算复杂度,显著降低计算成本。
- 硬件友好:Monarch矩阵的硬件实现效率高,适合大规模部署。
- 模型质量:在保持计算效率的同时,模型质量与Transformer相当。
- 易于使用:通过Together API,用户可以轻松访问和使用M2-BERT模型。
如何开始使用
M2-BERT嵌入模型现已通过Together API提供。用户可以通过注册账户并获取API密钥,使用以下代码进行嵌入生成:
import os
import requests
def generate_together_embeddings(text: str, model_api_string: str, api_key: str):
url = "https://api.together.xyz/api/v1/embeddings"
headers = {
"accept": "application/json",
"content-type": "application/json",
"Authorization": f"Bearer {api_key}"
}
session = requests.Session()
response = session.post(
url,
headers=headers,
json={
"input": text,
"model": model_api_string
}
)
if response.status_code != 200:
raise ValueError(f"Request failed with status code {response.status_code}: {response.text}")
return response.json()['data'][0]['embedding']
print(generate_together_embeddings('Hello world', 'togethercomputer/m2-bert-80M-32k-retrieval', os.environ['TOGETHER_API_KEY'])[:10])
更多详细信息,请参阅bert/EMBEDDINGS.md。
引用
如果您使用了本项目或认为我们的工作对您有价值,请引用以下内容:
@inproceedings{fu2023monarch,
title={Monarch Mixer: A Simple Sub-Quadratic GEMM-Based Architecture},
author={Fu, Daniel Y and Arora, Simran and Grogan, Jessica and Johnson, Isys and Eyuboglu, Sabri and Thomas, Armin W and Spector, Benjamin and Poli, Michael and Rudra, Atri and R{\'e}, Christopher},
booktitle={Advances in Neural Information Processing Systems},
year={2023}
}
此外,您还可以引用我们之前的相关工作:
@article{poli2023hyena,
title={Hyena Hierarchy: Towards Larger Convolutional Language Models},
author={Poli, Michael and Massaroli, Stefano and Nguyen, Eric and Fu, Daniel Y and Dao, Tri and Baccus, Stephen and Bengio, Yoshua and Ermon, Stefano and R{\'e}, Christopher},
journal={arXiv preprint arXiv:2302.10866},
year={2023}
}
@article{fu2023simple,
title={Simple Hardware-Efficient Long Convolutions for Sequence Modeling},
author={Fu, Daniel Y. and Epstein, Elliot L. and Nguyen, Eric and Thomas, Armin W. and Zhang, Michael and Dao, Tri and Rudra, Atri and R{\'e}, Christopher},
journal={International Conference on Machine Learning},
year={2023}
}
@inproceedings{fu2023hungry,
title={Hungry {H}ungry {H}ippos: Towards Language Modeling with State Space Models},
author={Fu, Daniel Y. and Dao, Tri and Saab, Khaled K. and Thomas, Armin W.
and Rudra, Atri and R{\'e}, Christopher},
booktitle={International Conference on Learning Representations},
year={2023}
}
Monarch Mixer为处理长序列任务提供了一种高效且强大的解决方案,欢迎大家使用并探索其潜力!
登录后查看全文
热门项目推荐
相关项目推荐
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0123
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
491
3.62 K
Ascend Extension for PyTorch
Python
300
332
暂无简介
Dart
740
178
React Native鸿蒙化仓库
JavaScript
297
346
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
866
473
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
289
123
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
11
1
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
65
20
仓颉编程语言测试用例。
Cangjie
43
870