GitHub 项目:matmulfreellm
仓库地址:https://github.com/ridgerchu/matmulfreellm
星级:3085 | 作者:里杰楚
项目描述:MatMul-free LM 的实现。
===================================================
自述文件内容:
MatMul-Free LM
如果您喜欢我们的项目,请在 GitHub 上给我们一个星 ⭐ 以获取最新更新。
此存储库改编自flash-linear-attention。
[](https://huggingface.co/collections/ridger/matmulfree-lm-665f4d2b4e4648756e0dd13c) [](https://arxiv.org/abs/2406.02528)
# 简介
MatMul-Free LM 是一种语言模型架构,无需矩阵乘法 (MatMul) 运算。该存储库提供了与 🤗 Transformers 库兼容的 MatMul-Free LM 的实现。
# 缩放定律
我们评估了缩放定律如何适合 Transformer++ 和我们的模型中的 370M、1.3B 和 2.7B 参数模型。为了公平比较,尽管我们的模型在某些层中使用了更有效的三元权重,但每个操作都被同等对待。有趣的是,与 Transformer++ 相比,我们模型的缩放投影呈现出更陡峭的下降,这表明我们的架构在利用额外计算来提高性能方面更有效。
# 安装
应满足以下要求
- [PyTorch](https://pytorch.org/) >= 2.0
- [Triton](https://github.com/openai/triton) >=2.2
- [einops](https://einops.rocks/)
````嘘
pip install -U git+https://github.com/ridgerchu/matmulfreellm
````
# 用法
## 预训练模型动物园
|型号尺寸|层 |隐藏维度|训练过的代币 |
|:----------------|:------------:|:----------------:|:--------------------:|
| [370M](https://huggingface.co/ridger/MMfreeLM-370M) | 24 | 1024 | 1024 15B | 15B
| [1.3B](https://huggingface.co/ridger/MMfreeLM-1.3B) | 24 | 2048 | 2048 100B | 100B
| [2.7B](https://huggingface.co/ridger/MMfreeLM-2.7B) | 32 | 32 2560 | 2560 100B | 100B
## 型号
我们提供与🤗 Transformers 库兼容的模型的实现。
以下是如何从“matmulfreelm”中的默认配置初始化模型的示例:
这是一个与 Huggingface 兼容的库,您可以使用这样的命令来使用 Huggingface `AutoModel` 来初始化模型:
``py
>>> 从 mmfreelm.models 导入 HGRNBitConfig
>>> 从变压器导入 AutoModel
>>> 配置 = HGRNBitConfig()
>>> AutoModel.from_config(配置)
HGRNBitModel(
(嵌入):嵌入(32000, 2048)
(层):模块列表(
(0): HGRNBitBlock(
(attn_norm):RMSNorm(2048,eps=1e-06)
(attn): HGRNBitAttention(
(i_proj): FusedBitLinear(
in_features=2048,out_features=2048,偏差=False
(范数):RMSNorm(2048,eps=1e-08)
)
(f_proj): FusedBitLinear(
我