license: apache-2.0
MoLM
MoLM是一系列基于混合专家(MoE)架构的语言模型集合,参数量级从40亿到80亿不等。本仓库存储的是转换为Hugging Face Transformers格式的MoLM-700M-4B预训练模型,其他模型链接详见文末索引表。
模型使用
加载模型前需安装ModuleFormer工具包。随后可通过以下代码加载模型:
from transformers import AutoTokenizer, AutoModelForCausalLM, AutoConfig, AutoModelForSequenceClassification
from moduleformer import ModuleFormerForCausalLM, ModuleFormerConfig, ModuleFormerForSequenceClassification
AutoConfig.register("moduleformer", ModuleFormerConfig)
AutoModelForCausalLM.register(ModuleFormerConfig, ModuleFormerForCausalLM)
AutoModelForSequenceClassification.register(ModuleFormerConfig, ModuleFormerForSequenceClassification)
tokenizer = AutoTokenizer.from_pretrained('ibm/MoLM-700M-4B')
model = AutoModelForCausalLM.from_pretrained('ibm/MoLM-700M-4B')
模型详情
MoLM-350M-4B是基于MoE架构的语言模型,总参数量40亿但每个输入token仅激活3.5亿参数,计算消耗相当于3.5亿参数的稠密模型。
MoLM-700M-4B总参数量40亿,计算消耗相当于7亿参数的稠密模型。
MoLM-700M-8B总参数量80亿,计算消耗相当于7亿参数的稠密模型。所有模型均在3000亿公开可用token数据上训练完成,采用3.0×10-4学习率和300万token的全局批次大小。
开发团队 IBM
版本变体 提供4B和8B两种参数量级。其中4B模型有350M和700M两种计算消耗版本。
输入 仅接受文本输入
输出 仅生成文本内容
架构设计 MoLM采用ModuleFormer架构的自回归语言模型。每层注意力模块含16个专家单元,MLP层含32个专家单元。推理时:MoLM-350M-4B和MoLM-700M-8B每token激活2个模块,MoLM-700M-4B激活4个模块。MoLM-350M-4B与MoLM-700M-4B含24个模块块,MoLM-700M-8B含48个模块块。
当前状态 本模型为静态版本,基于离线数据集训练。未来将根据社区反馈持续优化模型安全性并发布调优版本。
研究论文 "ModuleFormer: 混合专家中涌现的模块化架构"
训练数据
所有MoLM模型均在3000亿token的公开数据上预训练完成。
评估结果
本节展示MoLM在标准学术基准测试中的表现,评估工具采用LM评估工具包。
模型 |
延迟 |
显存 |
吞吐量 |
Hellaswag |
PIQA |
ARC-e |
ARC-c |
OBQA |
|
毫秒 |
GB |
token/秒 |
准确率 |
准确率 |
准确率 |
准确率 |
准确率 |
Pythia 410M |
554 |
25 |
59594 |
33.72 |
66.70 |
51.89 |
21.42 |
18.2 |
GPT-Neo 1.3B |
991 |
23 |
32857 |
38.66 |
71.11 |
56.19 |
23.12 |
21.4 |
Pythia 1.4B |
918 |
42 |
35559 |
40.41 |
70.84 |
60.52 |
26.11 |
22.2 |
MoLM-350M-4B |
497 |
27 |
71017 |
39.21 |
70.13 |
56.44 |
23.55 |
20.8 |
GPT-Neo 2.7B |
1737 |
35 |
18788 |
42.71 |
72.2 |
61.07 |
27.47 |
23.2 |
Pythia 2.8B |
2111 |
70 |
15522 |
45.34 |
73.99 |
64.35 |
29.35 |
23.8 |
MoLM-700M-4B |
863 |
27 |
39931 |
42.20 |
73.01 |
60.82 |
25.94 |
22.6 |
MoLM-700M-8B |
939 |
38 |
37419 |
43.33 |
72.91 |
62.46 |
27.90 |
23.8 |
模型 |
|
TriviaQA |
|
|
HumanEval |
|
Wikitext |
|
零样本 |
单样本 |
五样本 |
通过率@1 |
通过率@10 |
通过率@100 |
困惑度 |
Pythia 410M |
2.32 |
5.02 |
6.42 |
1.20 |
3.85 |
9.98 |
20.09 |
GPT-Neo 1.3B |
5.24 |
8.01 |
9.74 |
3.62 |
6.87 |
14.50 |
16.16 |
Pythia 1.4B |
5.30 |
9.87 |
12.84 |
2.19 |
7.31 |
14.33 |
14.71 |
MoLM-350M-4B |
5.40 |
11.12 |
13.70 |
3.04 |
6.99 |
13.79 |
15.15 |
GPT-Neo 2.7B |
4.82 |
11.23 |
13.67 |
4.89 |
9.54 |
17.90 |
13.93 |
Pythia 2.8B |
7.38 |
15.58 |
18.98 |
4.91 |
11.76 |
21.54 |
12.68 |
MoLM-700M-4B |
9.07 |
14.24 |
16.49 |
5.50 |
10.65 |
20.27 |
13.20 |
MoLM-700M-8B |
11.47 |
16.73 |
20.75 |
5.51 |
12.58 |
20.40 |
12.97 |
伦理考量与局限性
MoLM作为新兴技术存在应用风险。当前测试仅限英语场景,无法覆盖所有可能性。与其他大语言模型类似,MoLM可能产生不准确、偏见或其他不当输出。开发者应在实际应用前进行针对性安全测试与调优。
引用
若使用本仓库数据或代码,请引用以下论文:
@article{shen2023moduleformer,
title={ModuleFormer: 基于非筛选数据的模块化大语言模型学习},
author={沈宜康 and 张哲宇 and 曹天佑 and 谭骁 and 陈振方 and 甘创},
journal={arXiv预印本 arXiv:2306.04640},
year={2023}
}
MoLM模型索引
模型 |
访问链接 |
350M-4B |
链接 |
700M-4B |
链接 |
700M-8B |
链接 |