模型简介
模型特点
模型能力
使用案例
🚀 Cerebras-GPT 2.7B
Cerebras-GPT 2.7B 是基于 Transformer 架构的语言模型,旨在助力大语言模型的研究,可作为自然语言处理等领域的基础模型。
🚀 快速开始
本模型可通过 AutoModelForCausalLM
功能轻松加载:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("cerebras/Cerebras-GPT-2.7B")
model = AutoModelForCausalLM.from_pretrained("cerebras/Cerebras-GPT-2.7B")
text = "Generative AI is "
也可与 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 家族包含 111M、256M、590M、1.3B、2.7B、6.7B 和 13B 等多种规模的模型。
- 遵循缩放定律:所有模型均按照 Chinchilla 缩放定律进行训练,即每个模型参数对应 20 个令牌,实现了计算最优。
- 高效训练:借助 Cerebras 的权重流技术,简化了大语言模型的训练过程,实现了跨节点的高效扩展。
📚 详细文档
模型描述
Cerebras-GPT 家族的发布是为了推动使用开放架构和数据集对大语言模型缩放定律的研究,并展示在 Cerebras 软件和硬件栈上训练大语言模型的简单性和可扩展性。所有 Cerebras-GPT 模型均可在 Hugging Face 上获取。
该家族包括 111M、256M、590M、1.3B、2.7B、6.7B 和 13B 等模型。所有 Cerebras-GPT 家族的模型都根据 Chinchilla 缩放定律(每个模型参数对应 20 个令牌)进行训练,这是计算最优的方式。
这些模型在由 16 个 CS - 2 晶圆级系统组成的 Andromeda AI 超级计算机上进行训练。Cerebras 的 权重流技术 通过将计算与模型存储分离,简化了大语言模型的训练。这使得使用简单的数据并行性在节点间进行高效的训练扩展成为可能。
用于预训练和微调的 Cerebras 系统可通过 Cerebras Model Studio 在云端获取。与 Cerebras CS - 2 兼容的检查点可在 Cerebras Model Zoo 中找到。
模型详情
属性 | 详情 |
---|---|
开发者 | Cerebras Systems |
许可证 | Apache 2.0 |
模型类型 | 基于 Transformer 的语言模型 |
架构 | GPT - 3 风格架构 |
数据集 | The Pile |
分词器 | 字节对编码(Byte Pair Encoding) |
词汇表大小 | 50257 |
序列长度 | 2048 |
优化器 | AdamW,(β1, β2) = (0.9, 0.95),adam_eps = 1e−8(较大模型为 1e−9) |
位置编码 | 学习型 |
语言 | 英语 |
更多信息 | 有关训练过程、配置文件和使用方法的详细信息,请参阅《Dense Scaling Laws Paper》 |
联系方式:若要询问有关 Cerebras - GPT 模型的问题,请加入 Cerebras Discord。
这是 Cerebras - GPT 的标准参数化版本,具有 27 亿 参数。
相关模型:[Cerebras - GPT 模型](https://huggingface.co/models?sort=downloads&search=cerebras - gpt)
不同规模 Cerebras - GPT 模型的参数详情如下:
模型 | 参数数量 | 层数 | d_model | 头数 | d_head | d_ffn | 学习率 | 批次大小(序列) | 批次大小(令牌) |
---|---|---|---|---|---|---|---|---|---|
Cerebras - GPT | 1.11 亿 | 10 | 768 | 12 | 64 | 3072 | 6.0E - 04 | 120 | 24.6 万 |
Cerebras - GPT | 2.56 亿 | 14 | 1088 | 17 | 64 | 4352 | 6.0E - 04 | 264 | 54.1 万 |
Cerebras - GPT | 5.9 亿 | 18 | 1536 | 12 | 128 | 6144 | 2.0E - 04 | 264 | 54.1 万 |
Cerebras - GPT | 13 亿 | 24 | 2048 | 16 | 128 | 8192 | 2.0E - 04 | 528 | 108 万 |
Cerebras - GPT | 27 亿 | 32 | 2560 | 32 | 80 | 10240 | 2.0E - 04 | 528 | 108 万 |
Cerebras - GPT | 67 亿 | 32 | 4096 | 32 | 128 | 16384 | 1.2E - 04 | 1040 | 213 万 |
Cerebras - GPT | 130 亿 | 40 | 5120 | 40 | 128 | 20480 | 1.2E - 04 | 720 → 1080 | 147 万 → 221 万 |
训练数据
Cerebras - GPT 使用来自 EleutherAI 的 the Pile 数据集进行训练。有关数据源和方法的更详细分解,请参阅 Pile 论文。Pile 数据集使用 ftfy 库进行清理以规范文本,然后使用 Eleuther 提供的脚本进行过滤。
我们使用基于 GPT - 2 词汇表的字节对编码对数据进行分词。我们的 Pile 分词版本有 3710 亿个令牌。我们在论文的附录 A.1 中包含了有关训练数据集预处理的更多详细信息。
近期的研究发现 Pile 数据集中存在大量重复数据。Eleuther 的 Pythia 应用了去重过程以减少重复数据,从而减小了 Pile 数据集的大小。Pythia 在标准数据集和去重数据集上都进行了训练,以评估其影响。我们的模型在未去重的标准 Pile 数据集上进行训练,使用去重数据集可能会带来进一步改进的机会。
训练过程
我们使用 GPT - 3 风格的模型架构。与 GPT - 3 风格的稀疏带状注意力不同,我们所有的层都使用全注意力。模型形状的选择要么遵循 80 的长宽比,要么与 GPT - 3 模型的形状相同。学习率在 3.75 亿个令牌(1.11 亿和 2.56 亿参数模型为 1500 步)内进行预热,并进行 10 倍余弦衰减。未使用丢弃法(dropout),权重衰减设置为 0.1。所有模型的最大序列长度(MSL)均为 2048。
所有模型都训练到 Chinchilla 点:每个模型参数对应 20 个令牌。步数根据最优批次大小(因模型而异)和固定序列长度(2048)来选择。具体细节如下表所示:
模型参数 | 序列长度 | 批次大小 | 步数 | 令牌数 | 每个参数的令牌数 | 浮点运算次数 |
---|---|---|---|---|---|---|
1.11 亿 | 2048 | 120 | 9037 | 2.22E + 09 | 20 | 2.6E + 18 |
2.56 亿 | 2048 | 264 | 9468 | 5.12E + 09 | 20 | 1.3E + 19 |
5.9 亿 | 2048 | 264 | 21836 | 1.18E + 10 | 20 | 6.1E + 19 |
13 亿 | 2048 | 528 | 24334 | 2.63E + 10 | 20 | 2.8E + 20 |
27 亿 | 2048 | 528 | 49041 | 5.30E + 10 | 20 | 1.1E + 21 |
67 亿 | 2048 | 1040 | 62522 | 1.33E + 11 | 20 | 6.3E + 21 |
130 亿 | 2048 | 720 | 174335 | 2.57E + 11 | 20 | 2.3E + 22 |
评估
我们从小到大训练模型,并在训练过程中拟合幂律。幂律有助于推断我们训练的下一个更大模型的验证损失,并为训练过程是否顺利提供信心。
我们使用 Pile 验证集和测试集对文本预测交叉熵进行了上游(预训练)评估。我们使用 [Eleuther lm - evaluation - harness](https://github.com/EleutherAI/lm - evaluation - harness) 对标准化任务上的文本生成准确性进行了下游评估。论文的第 3 节将结果与许多公开可用的大语言模型进行了比较。
零样本评估
模型 | 参数 | 训练浮点运算次数 | PILE 测试交叉熵 | Hella - Swag | PIQA | Wino - Grande | Lambada | ARC - e | ARC - c | OpenBookQA | 下游平均 |
---|---|---|---|---|---|---|---|---|---|---|---|
Cerebras - GPT | 1.11 亿 | 2.6E + 18 | 2.566 | 0.268 | 0.594 | 0.488 | 0.194 | 0.380 | 0.166 | 0.118 | 0.315 |
Cerebras - GPT | 2.56 亿 | 1.3E + 19 | 2.299 | 0.274 | 0.613 | 0.511 | 0.293 | 0.410 | 0.170 | 0.158 | 0.347 |
Cerebras - GPT | 5.9 亿 | 6.1E + 19 | 2.184 | 0.291 | 0.627 | 0.498 | 0.366 | 0.464 | 0.190 | 0.158 | 0.370 |
Cerebras - GPT | 13 亿 | 2.8E + 20 | 1.996 | 0.325 | 0.664 | 0.521 | 0.462 | 0.508 | 0.224 | 0.166 | 0.410 |
Cerebras - GPT | 27 亿 | 1.1E + 21 | 1.834 | 0.386 | 0.701 | 0.559 | 0.567 | 0.571 | 0.246 | 0.206 | 0.462 |
Cerebras - GPT | 67 亿 | 6.3E + 21 | 1.704 | 0.447 | 0.739 | 0.602 | 0.636 | 0.643 | 0.282 | 0.238 | 0.512 |
Cerebras - GPT | 130 亿 | 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 | 1.11 亿 | 0.267 | 0.588 | 0.475 | 0.158 | 0.356 | 0.166 | 0.136 |
Cerebras - GPT | 2.56 亿 | 0.278 | 0.606 | 0.522 | 0.225 | 0.422 | 0.183 | 0.164 |
Cerebras - GPT | 5.9 亿 | 0.291 | 0.634 | 0.479 | 0.281 | 0.475 | 0.206 | 0.152 |
Cerebras - GPT | 13 亿 | 0.326 | 0.668 | 0.536 | 0.395 | 0.529 | 0.241 | 0.174 |
Cerebras - GPT | 27 亿 | 0.382 | 0.697 | 0.543 | 0.487 | 0.590 | 0.267 | 0.224 |
Cerebras - GPT | 67 亿 | 0.444 | 0.736 | 0.590 | 0.591 | 0.667 | 0.314 | 0.270 |
Cerebras - GPT | 130 亿 | 0.514 | 0.768 | 0.674 | 0.655 | 0.743 | 0.398 | 0.318 |
使用与限制
预期用途
主要预期用途是进一步开展大语言模型的研究。这些模型可作为自然语言处理、应用程序、伦理学和对齐研究的基础模型。我们的主要目标用户是致力于改进大语言模型的研究人员,以及寻求参考实现、训练设置、超参数或预训练模型的从业者。我们以完全宽松的 Apache 许可证发布这些模型,供社区免费使用。
您可以通过 Cerebras Model Studio 或第三方库对 Cerebras - GPT 模型进行微调并进行部署。在将 Cerebras - GPT 模型家族用于生产下游应用之前,应进行进一步的安全相关测试和缓解措施。
由于财务和计算预算的限制,Cerebras - GPT 模型仅按照论文中描述的方法进行训练和评估。
非预期用途
Cerebras - GPT 模型在 Pile 数据集上进行训练,仅支持英语,不适合机器翻译任务。
Cerebras - GPT 模型未针对面向人类的对话应用(如聊天机器人)进行调整,因此不会像经过指令调整或从人类反馈中进行强化学习(RLHF)的模型(如 Flan - T5 或 ChatGPT)那样对提示做出响应。Cerebras - GPT 模型可以使用这些方法进行调整。
风险、偏差和伦理考虑
- 数据:Pile 数据集已从各种伦理角度进行了全面分析,如毒性分析、性别偏差、贬义词内容、种族敏感内容等。请参考 Pile 数据集的相关参考文献。
- 人类生活:该模型的输出可能与人类价值观一致,也可能不一致。在将该模型部署到可能直接影响人类生活的生产环境之前,需要彻底调查风险。
- 风险和危害:Pile 数据集中可能存在分布偏差,这可能在下游模型部署中以各种形式表现出来。大语言模型还存在其他风险,如放大刻板印象、记忆训练数据或泄露私人或安全信息。
- 缓解措施:在预训练 Cerebras - GPT 时,仅采用了标准 Pile 数据集预处理中的缓解措施。
📄 许可证
本项目采用 Apache 2.0 许可证。
👏 致谢
我们感谢所有现在和过去的 Cerebras 工程师,是他们让这项工作成为可能。



