Project Icon

m2

子二次GEMM架构Monarch Mixer实现高效语言模型

Monarch Mixer是一种创新的子二次GEMM架构,用于训练序列长度和模型维度均为子二次的语言模型。该架构使用Monarch矩阵层替代Transformer中的注意力和MLP操作,提高了计算效率。基于此架构的M2-BERT模型在减少25%参数和计算量的同时,在GLUE基准测试中达到了与BERT相当的性能。项目开源了预训练模型权重以及预训练和微调代码,方便研究者进行further研究。

Monarch混合器

2024年1月11日更新: 我们很高兴发布新的长上下文M2-BERT模型,其中包括为嵌入微调的版本!详情请参阅博客文章,更多细节请查看bert/EMBEDDINGS.md

Monarch混合器:一种简单的亚二次GEMM基础架构
Daniel Y. Fu, Simran Arora*, Jessica Grogan*, Isys Johnson*, Sabri Eyuboglu*, Armin W. Thomas*, Benjamin F. Spector, Michael Poli, Atri Rudra, 和 Christopher Ré.
arXiv | M2-BERT博客文章

使用Monarch混合器的长上下文检索模型
Jon Saad-Falcon, Dan Fu, Simran Arora. 博客文章,2024年1月11日.
博客文章.

更新:

  • 2024年1月11日: M2-BERT检索模型现已在Together API上提供!查看下方说明以运行它们!
  • 2024年1月11日: 新的长上下文M2-BERT模型(2k、8k和32k)以及用于嵌入的检索版本现已可用。同时发布LoCo预览版,这是一个新的长上下文检索基准!查看我们的博客了解更多信息,并在这里试用这些模型!
  • 2023年10月21日: M2-BERT-large检查点现已在HuggingFace上提供(260M341M)。260M模型在GLUE微调方面与BERT-large相匹配,参数减少24%,而341M模型优于BERT-large。
  • 2023年10月18日: M2论文现已在arXiv上发布,并将在NeurIPS上作为口头报告呈现!

基础M2-BERT检查点:

长上下文和检索M2-BERT检查点:

  • M2-BERT-base-80M-2K
  • M2-BERT-base-80M-8K
  • M2-BERT-base-80M-32K
  • M2-BERT-base-80M-2K-retrieval
  • M2-BERT-base-80M-8K-retrieval
  • M2-BERT-base-80M-32K-retrieval Transformer已经席卷了全球!该架构由两个核心操作组成:注意力机制用于混合输入序列中的信息,MLP用于混合模型维度中的信息。每个操作的复杂度都是二次方的——注意力机制的复杂度与序列长度成二次方关系,MLP的复杂度与模型维度成二次方关系。理想情况下,我们希望有更高效的替代方案,同时保持Transformer级别的质量。为此,我们一直在开发Monarch Mixer (M2),这是一个用于训练模型的框架,在序列长度和模型维度上都是亚二次方的。

M2 图表

我们的基本思想是用Monarch矩阵替换Transformer的主要元素——Monarch矩阵是一类结构化矩阵,它们是FFT的推广,具有亚二次方、硬件高效和表达能力强的特点。在Monarch Mixer中,我们使用由Monarch矩阵构建的层来进行序列间的混合(替代注意力操作)和模型维度间的混合(替代密集MLP)。这个仓库包含了用于训练Monarch Mixer架构的代码和模型!

开始使用嵌入

M2-BERT嵌入模型现已在Together API上可用。 你可以通过注册账户并按如下方式查询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"请求失败,状态码 {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获取更多关于如何评估这些模型并在本地运行它们的信息!

当前内容

**2024年1月9日:**长上下文M2-BERT-base检查点已上传至HuggingFace,同时还有用于嵌入模型的检索版本!

**2023年10月21日:**M2-BERT-large检查点现已上传至HuggingFace,论文也已发布在arXiv上!

**2023年7月24日:**我们很高兴发布Monarch Mixer BERT (M2-BERT),它比BERT少25%的参数/FLOPs,并在GLUE基准测试上匹配了平均质量。BERT文件夹包含了预训练和微调BERT基线和M2-BERT的代码。我们还发布了128序列长度的预训练检查点,包括一个80M参数的BERT模型,它在GLUE基准测试的平均分数上匹配了110M参数的BERT-base-uncased模型,以及一个参数匹配的M2-BERT模型。

引用

如果你使用了这个代码库,或者认为我们的工作有价值,你可以按以下方式引用我们:

@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={鬣狗层级:迈向更大规模的卷积语言模型},
  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预印本 arXiv:2302.10866},
  year={2023}
}
@article{fu2023simple,
  title={用于序列建模的简单高效长卷积},
  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={国际机器学习会议},
  year={2023}
}
@inproceedings{fu2023hungry,
  title={饥饿饥饿的河马:迈向状态空间模型的语言建模},
  author={Fu, Daniel Y. and Dao, Tri and Saab, Khaled K. and Thomas, Armin W.
  and Rudra, Atri and R{\'e}, Christopher},
  booktitle={国际学习表示会议},
  year={2023}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号