语言:
- 英语
标签:
- pytorch
- 因果语言模型
许可证: apache-2.0
数据集:
- the_pile
流水线标签: 文本生成
Cerebras-GPT 111M
查看我们的博客文章和arXiv论文!
模型描述
Cerebras-GPT系列模型的发布旨在促进使用开放架构和数据集研究LLM扩展规律,并展示在Cerebras软硬件堆栈上训练LLM的简洁性和可扩展性。所有Cerebras-GPT模型均可在Hugging Face获取。
该系列包含111M、256M、590M、1.3B、2.7B、6.7B和13B参数的模型。
Cerebras-GPT家族的所有模型均按照Chinchilla扩展定律(每模型参数20个token)进行训练,实现了计算最优。
这些模型在由16个CS-2晶圆级系统组成的Andromeda AI超级计算机上训练。Cerebras的权重流技术通过将计算与模型存储解耦,简化了LLM的训练。这使得能够使用简单的数据并行在节点间高效扩展训练。
通过Cerebras Model Studio,可在云端使用Cerebras系统进行预训练和微调。兼容Cerebras CS-2的检查点可在Cerebras Model Zoo获取。
模型详情
- 开发者: Cerebras Systems
- 许可证: Apache 2.0
- 模型类型: 基于Transformer的语言模型
- 架构: GPT-3风格架构
- 数据集: The Pile
- 分词器: 字节对编码
- 词汇表大小: 50257
- 序列长度: 2048
- 优化器: AdamW, (β1, β2) = (0.9, 0.95), adam_eps = 1e−8(较大模型为1e−9)
- 位置编码: 学习式
- 语言: 英语
- 了解更多: 训练流程、配置文件及使用方法的详细信息,请参阅密集扩展定律论文。
联系方式: 如有关于Cerebras-GPT模型的问题,请加入Cerebras Discord。
这是标准参数化的Cerebras-GPT模型,参数为111M。
相关模型: Cerebras-GPT模型
模型 |
参数 |
层数 |
d_model |
头数 |
d_head |
d_ffn |
学习率 |
批次大小(序列) |
批次大小(token) |
Cerebras-GPT |
111M |
10 |
768 |
12 |
64 |
3072 |
6.0E-04 |
120 |
246K |
Cerebras-GPT |
256M |
14 |
1088 |
17 |
64 |
4352 |
6.0E-04 |
264 |
541K |
Cerebras-GPT |
590M |
18 |
1536 |
12 |
128 |
6144 |
2.0E-04 |
264 |
541K |
Cerebras-GPT |
1.3B |
24 |
2048 |
16 |
128 |
8192 |
2.0E-04 |
528 |
1.08M |
Cerebras-GPT |
2.7B |
32 |
2560 |
32 |
80 |
10240 |
2.0E-04 |
528 |
1.08M |
Cerebras-GPT |
6.7B |
32 |
4096 |
32 |
128 |
16384 |
1.2E-04 |
1040 |
2.13M |
Cerebras-GPT |
13B |
40 |
5120 |
40 |
128 |
20480 |
1.2E-04 |
720 → 1080 |
1.47M → 2.21M |
快速开始
此模型可轻松通过AutoModelForCausalLM功能加载:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("cerebras/Cerebras-GPT-111M")
model = AutoModelForCausalLM.from_pretrained("cerebras/Cerebras-GPT-111M")
text = "生成式AI是 "
并可配合Hugging Face Pipelines使用:
from transformers import pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
generated_text = pipe(text, max_length=50, do_sample=False, no_repeat_ngram_size=2)[0]
print(generated_text['generated_text'])
或使用model.generate()
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, num_beams=5,
max_new_tokens=50, early_stopping=True,
no_repeat_ngram_size=2)
text_output = tokenizer.batch_decode(outputs, skip_special_tokens=True)
print(text_output[0])
训练数据
Cerebras-GPT使用来自EleutherAI的the Pile数据集进行训练。关于数据源和方法的更详细分析,请参阅Pile论文。Pile数据通过ftfy库清理以标准化文本,随后使用Eleuther提供的脚本进行过滤。
我们使用基于GPT-2词汇表的字节对编码对数据进行分词。分词后的Pile数据集包含371B token。关于训练数据集预处理的更多细节,请参阅论文附录A.1。
近期研究发现Pile中存在大量重复数据。Eleuther的Pythia应用了去重流程以减少数据复制,缩小了Pile数据集规模。Pythia在标准数据集和去重数据集上均进行了训练以评估影响。我们的模型在未去重的标准Pile上训练,这为使用去重数据集进一步改进提供了可能。
训练流程
我们采用GPT-3风格的模型架构。所有层均使用全注意力机制,而非GPT-3风格的稀疏带状注意力。模型形状选择遵循80的纵横比或与GPT-3模型相同形状。学习率在375M token(111M和256M模型为1500步)内预热,并以10倍余弦衰减。未使用dropout,权重衰减设为0.1。所有模型均以2048的最大序列长度(MSL)训练。
所有模型训练至Chinchilla点:每模型参数20个token。步数根据最优批次大小(因模型而异)和固定序列长度(2048)选择。详情参见下方训练表。
模型参数 |
序列长度 |
批次大小 |
步数 |
Token数 |
每参数Token数 |
Flops |
111M |
2048 |
120 |
9037 |
2.22E+09 |
20 |
2.6E+18 |
256M |
2048 |
264 |
9468 |
5.12E+09 |
20 |
1.3E+19 |
590M |
2048 |
264 |
21836 |
1.18E+10 |
20 |
6.1E+19 |
1.3B |
2048 |
528 |
24334 |
2.63E+10 |
20 |
2.8E+20 |
2.7B |
2048 |
528 |
49041 |
5.30E+10 |
20 |
1.1E+21 |
6.7B |
2048 |
1040 |
62522 |
1.33E+11 |
20 |
6.3E+21 |
13B |
2048 |
720 |
174335 |
2.57E+11 |
20 |
2.3E+22 |
评估
我们从最小到最大训练模型,并在此过程中拟合幂律。幂律有助于外推下一个最大模型的验证损失,并为训练运行是否顺利提供信心。
我们使用Pile验证和测试分割进行了上游(预训练)文本预测交叉熵评估。使用Eleuther lm-evaluation-harness对标准化任务进行了下游文本生成准确性评估。结果与论文第3节中许多公开可用的大型语言模型进行了比较。
零样本评估
模型 |
参数 |
训练FLOPs |
PILE测试xent |
Hella-Swag |
PIQA |
Wino-Grande |
Lambada |
ARC-e |
ARC-c |
OpenBookQA |
下游平均 |
Cerebras-GPT |
111M |
2.6E+18 |
2.566 |
0.268 |
0.594 |
0.488 |
0.194 |
0.380 |
0.166 |
0.118 |
0.315 |
Cerebras-GPT |
256M |
1.3E+19 |
2.299 |
0.274 |
0.613 |
0.511 |
0.293 |
0.410 |
0.170 |
0.158 |
0.347 |
Cerebras-GPT |
590M |
6.1E+19 |
2.184 |
0.291 |
0.627 |
0.498 |
0.366 |
0.464 |
0.190 |
0.158 |
0.370 |
Cerebras-GPT |
1.3B |
2.8E+20 |
1.996 |
0.325 |
0.664 |
0.521 |
0.462 |
0.508 |
0.224 |
0.166 |
0.410 |
Cerebras-GPT |
2.7B |
1.1E+21 |
1.834 |
0.386 |
0.701 |
0.559 |
0.567 |
0.571 |
0.246 |
0.206 |
0.462 |
Cerebras-GPT |
6.7B |
6.3E+21 |
1.704 |
0.447 |
0.739 |
0.602 |
0.636 |
0.643 |
0.282 |
0.238 |
0.512 |
Cerebras-GPT |
13B |
2.3E+22 |
1.575 |
0.513 |
0.766 |
0.646 |
0.696 |
0.714 |
0.367 |
0.286 |
0.570 |
五样本评估
模型 |
参数 |
Hella-Swag |
PIQA |
Wino-Grande |
Lambada |
ARC-e |
ARC-c |
OpenBookQA |
Cerebras-GPT |
111M |
0.267 |
0.588 |
0.475 |
0.158 |
0.356 |
0.166 |
0.136 |
Cerebras-GPT |
256M |
0.278 |
0.606 |
0.522 |
0.225 |
0.422 |
0.183 |
0.164 |
Cerebras-GPT |
590M |
0.291 |
0.634 |
0.479 |
0.281 |
0.475 |
0.206 |
0.152 |
Cerebras-GPT |
1.3B |
0.326 |
0.668 |
0.536 |
0.395 |
0.529 |
0.241 |
0.174 |
Cerebras-GPT |
|
|
|
|
|
|
|
|