Monarch Mixer:简单高效的亚二次方GEMM架构

Monarch Mixer:简单高效的亚二次方GEMM架构

m2 Repo for "Monarch Mixer: A Simple Sub-Quadratic GEMM-Based Architecture" m2 项目地址: https://gitcode.com/gh_mirrors/m2/m2

项目介绍

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通过以下方式实现高效计算:

  1. 序列混合:使用Monarch矩阵替代注意力机制,实现序列间的信息混合。
  2. 模型维度混合:使用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为处理长序列任务提供了一种高效且强大的解决方案,欢迎大家使用并探索其潜力!

m2 Repo for "Monarch Mixer: A Simple Sub-Quadratic GEMM-Based Architecture" m2 项目地址: https://gitcode.com/gh_mirrors/m2/m2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍霜盼Ellen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值