英文

BigScience大型开放科学开放获取多语言模型 版本1.3 /2022年7月6日

当前检查点:训练迭代次数95000

论文链接: here

总体数据数量:366B

模型详情

BLOOM 是一种自回归大型语言模型(LLM),通过使用大规模计算资源,在大量文本数据上进行训练,以在46种语言和13种编程语言中生成与人类编写的文本几乎无法区分的连贯文本。BLOOM 还可以通过将它们视为文本生成任务来指示执行它们尚未明确训练的文本任务。

基础知识

本节提供了关于模型类型、版本、许可证、资助者、发布日期、开发者和联系信息的信息。对于希望引用模型的任何人都有用。

点击展开

开发者: BigScience( website

所有合作者要么是志愿者,要么与其雇主达成了协议。(进一步的参与者细分将很快提供。)

模型类型:基于Transformer的语言模型

检查点格式:transformers(也提供Megatron-DeepSpeed格式: here

版本:1.0.0

语言:多种语言,请参见训练数据

许可证:RAIL许可证v1.0( link / article and FAQ

预计发布日期:2022年7月11日(星期一)

问题发送至:bigscience-contact@googlegroups.com

引用方式:BigScience,BigScience Language Open-science Open-access Multilingual (BLOOM) Language Model。国际,2021年5月-2022年5月

资助者:

  • 法国政府。

  • Hugging Face( website )。

  • 贡献者组织。(进一步的组织细分将很快提供。)

技术规格

本节包括模型目标和架构的详细信息,以及计算基础设施。对于对模型开发感兴趣的人有用。

点击展开

完整的培训复制详细信息,请参阅: the BLOOM training README

模型架构和目标

  • 修改自Megatron-LM GPT2(请参阅 paper BLOOM Megatron code ):

  • 仅解码器架构

  • 对词嵌入层进行层归一化(使用StableEmbedding请参阅 code paper

  • 使用ALiBI位置编码(请参阅 paper ),带有GeLU激活函数

  • 176,247,271,424个参数:

    • 3,596,615,680个嵌入参数

    • 70个层,112个注意力头

    • 隐藏层为14336维度

    • 使用2048个标记的序列长度(请参阅 BLOOM tokenizer ,标记器描述)

目标函数:交叉熵与均值归约(请参阅 API documentation )。

计算基础设施

由法国政府提供的Jean Zay公共超级计算机(请参阅 announcement )。

硬件:

  • 384个A100 80GB GPU(48个节点)

  • 额外的32个A100 80GB GPU(4个节点)储备

  • 每个节点8个GPU,使用NVLink 4个互连和4个OmniPath连接

  • CPU:AMD

  • CPU内存:每个节点512GB

  • GPU内存:每个节点640GB

  • 节点间连接:Omni-Path架构(OPA)

  • NCCL通信网络:完全专用子网

  • 磁盘IO网络:与其他类型节点共享网络

软件:

培训

本节提供有关培训数据、培训要素的速度和大小以及培训的环境影响的信息。对于希望了解模型输入和培训足迹基础知识的人有用。

点击展开

培训数据

本节提供培训数据的高级概述。这对于想要了解模型正在学习的基本知识的任何人都是相关的。

有关每个数据集的详细信息,请参见单独的 Data Cards ,并且每个数据集对聚合培训数据的贡献大小在一个 Interactive Corpus Map 中呈现。

培训数据包括:

  • 46种自然语言

  • 13种编程语言

  • 1.6TB的预处理文本,转换为350B个唯一标记(请参见标记器部分了解更多信息)

语言

饼图显示了培训数据中语言的分布。

下表显示了尼日尔刚果语系和印度语系以及编程语言在培训数据中的分布。

尼日尔刚果与印度语系的分布。

Niger Congo Percentage Indic Percentage
Chi Tumbuka 0.00002 Assamese 0.01
Kikuyu 0.00004 Odia 0.04
Bambara 0.00004 Gujarati 0.04
Akan 0.00007 Marathi 0.05
Xitsonga 0.00007 Punjabi 0.05
Sesotho 0.00007 Kannada 0.06
Chi Chewa 0.0001 Nepali 0.07
Setswana 0.0002 Telugu 0.09
Lingala 0.0002 Malayalam 0.10
Northern Sotho 0.0002 Urdu 0.10
Fon 0.0002 Tamil 0.20
Kirundi 0.0003 Bengali 0.50
Wolof 0.0004 Hindi 0.70
Luganda 0.0004
Chi Shona 0.001
Isi Zulu 0.001
Igbo 0.001
Xhosa 0.001
Kinyarwanda 0.003
Yoruba 0.006
Swahili 0.02

编程语言的分布。

Extension Language Number of files
java Java 5,407,724
php PHP 4,942,186
cpp C++ 2,503,930
py Python 2,435,072
js JavaScript 1,905,518
cs C# 1,577,347
rb Ruby 6,78,413
cc C++ 443,054
hpp C++ 391,048
lua Lua 352,317
go GO 227,763
ts TypeScript 195,254
C C 134,537
scala Scala 92,052
hh C++ 67,161
H C++ 55,899
tsx TypeScript 33,107
rs Rust 29,693
phpt PHP 9,702
c++ C++ 1,342
h++ C++ 791
php3 PHP 540
phps PHP 270
php5 PHP 166
php4 PHP 29

预处理

标记化:BLOOM标记器( link ),使用以下训练的学习子词标记器进行训练:

  • 字节级字节对编码(BPE)算法

  • 简单的预标记规则,无规范化

  • 词汇表大小为250,680

它是使用语言特定的alpha加权对初步版本的语料库的子集进行训练的。

速度、大小、时间

培训日志: Tensorboard link

  • 日期:

    • 开始于2022年3月11日上午11:42 PST

    • 预计结束:2022年7月5日

  • 检查点大小:

    • Bf16权重:329GB

    • 具有优化器状态的完整检查点:2.3TB

  • 培训吞吐量:每个GPU每秒约150 TFLOP

  • 时代数量:1

  • 培训成本估算:相当于云计算中的2-5百万美元(包括预limlimexperiments云计算)

  • 服务器培训位置:法国Île-de-France

环境影响

训练超级计算机Jean Zay( website )主要使用核能。它产生的热量被重复利用用于供暖校园住宅。

估计的碳排放量:(即将到来。)

预计的电力使用量:(即将到来。)

用途

本节回答了关于模型预期如何使用的问题,讨论了可能受到模型影响的用户,并描述了被认为不在范围内或滥用模型的用途。对于考虑使用模型或受模型影响的任何人都有用。

点击展开

如何使用

可以使用HuggingFace的生态系统轻松使用和部署该模型。需要安装transformers和accelerate。可按以下方式下载模型:

预期使用

正在创建此模型以便启用大型语言模型(LLMs)的公共研究。LLMs旨在用于语言生成或作为可以进一步微调以用于特定任务的预训练基模型。以下用例不是详尽无遗的。

直接使用

  • 文本生成

  • 探索语言模型生成文本的特征

    • 示例:完形填空测试、虚拟条件、重述生成

下游使用

  • 利用语言模型的任务包括:信息提取、问题回答、摘要

滥用和超出范围的使用

本节阐述了用户不应该使用模型的内容。

超出范围的使用

模型不适用于在高风险环境中使用。该模型不适用于对个人的生计或福祉产生任何实质性后果的关键决策或使用。该模型输出的内容似乎是事实,但可能不正确。

超出范围的使用包括:

  • 医学领域、政治与法律领域或金融领域中的使用

  • 用于评估或评分个人,如就业、教育或信用评分

  • 将模型应用于关键的自动决策、生成事实内容、创建可靠摘要或生成必须正确的预测

滥用行为

故意使用模型造成伤害、侵犯人权或进行其他形式的恶意活动是对该模型的滥用。这包括:

  • 生成垃圾内容

  • 虚假信息和影响运作

  • 诋毁和诽谤

  • 骚扰和滥用

  • 欺骗

  • 未经同意的冒充和模仿

  • 未经同意的监视

  • 以模型为根据生成内容,而未注明模型来源,如在 RAIL License, Use Restrictions 中指定的那样

预期用户

直接用户

  • 一般公众

  • 研究人员

  • 学生

  • 教育工作者

  • 工程师/开发人员

  • 非商业实体

  • 社区倡导者,包括人权和公民权利团体

间接用户

其他相关方

  • 模型所指称的人和群体

  • 暴露于模型输出或基于模型的决策中的个人和群体

  • 原始作品包含在LLM中的个人和群体 。

风险和限制

本节识别了可以预见到的危害和误解。

点击展开

模型可能:

  • 过多地代表某些观点并低估其他观点

  • 包含陈规陋习

  • 包含个人信息

  • 生成:

    • 恶言、辱骂或暴力语言

    • 歧视或偏见语言

    • 可能不适合所有场景的内容,包括性内容

  • 出错,包括生成错误的信息使其看起来像是事实

  • 生成不相关或重复的输出

  • 使用户产生将人类特质归因给它的错觉,例如存在感或意识

评估

本节描述了评估协议并提供结果。

点击展开

度量

本节描述了计算性能的不同方式以及原因。

包括:

Metric Why chosen
Perplexity Standard metric for quantifying model improvements during training
Cross Entropy Loss Standard objective for language models.

和特定任务的多个不同指标。 (评估协议完成后将提供更多评估指标。)

因素

本节列出了BLOOM模型的一些不同方面。它关注的是可能导致模型行为高度变化的方面。

  • 语言,如英语或约鲁巴语

  • 领域,如新闻线路或故事

  • 人口特征,例如性别或国籍

结果

结果基于因素和指标。

零-shot评估:

警告:本节曾包含更多结果,但这些结果不正确,我们未经评估工作组批准发布。我们目前正在修复评估结果。

有关JSON文件,请参见此存储库: https://github.com/bigscience-workshop/evaluation-results

Task Language Metric BLOOM-176B OPT-175B*
humaneval python pass@1 ↑ 0.155 0.0
humaneval python pass@10 ↑ 0.328 0.0
humaneval python pass@100 ↑ 0.572 0.003

培训时间评估:

95K步骤后的最终检查点:

  • 培训损失:1.939

  • 验证损失:2.061

  • 困惑度:7.045

更多信息请参阅: https://huggingface.co/bigscience/tr11-176B-ml-logs

建议

本节提供有关警告和潜在减轻措施的信息。

点击展开
  • 间接用户在使用由LLM创建的内容时应该知道它的来源。

  • 用户应该了解风险和限制,并根据需要包含适当的年龄免责声明或阻止界面。

  • 在训练BLOOM LM的模型中应包括更新的模型卡。

  • 模型的用户应提供受影响方提供反馈意见的机制,例如提供评论的电子邮件地址。

术语表和计算

本节定义了常见术语以及如何计算指标。

点击展开
  • 损失(Loss):学习模型与数据显示(“groundtruth”)之间的差异的计算。损失越低越好。训练过程旨在最小化损失。

  • 困惑度(Perplexity):基于模型估计新数据概率的指标。困惑度越低越好。如果模型完全正确地预测它将见到的下一个标记,那么困惑度为1。在数学上,它使用熵进行计算。

  • 高风险AI系统和不可接受风险AI系统(例如 Artificial Intelligence (AI) Act )等,

  • 符合 Critical decisions: 定义的系统,例如欧盟提议中定义的分类。

  • 包括在人权(请参阅 the United States' proposed Algorithmic Accountability Act )和个人信息保护(请参阅GDPR, Article 9; Protection of Personal Information Act, Chapter 1 )中定义的受保护类别。

  • 个人数据和信息在多个数据保护法规中都有定义,例如欧洲GDPR中的“个人数据”和南非共和国的“个人信息”。

  • 受到人权(请参阅 UHDR, Article 2 )和个人信息监管(请参阅GDPR UHDR, Article 2 )的明确保护的类别。

  • 故意欺骗个人相信不真实的事情,例如通过在社交媒体上创建扮演真实人物的死人机器人或聊天机器人,或生成文本文档而不使消费者意识到文本是机器生成的。

更多信息

本节提供有关数据集创建、技术规格、经验教训和初步结果的信息链接。

点击展开

中间检查点

对于学术(或任何)用途,我们发布了中间检查点,对应每5000步的模型状态。请跟随链接以获取这些检查点。 this link

数据集创建

详细介绍了数据集创建过程中的设计选择的博客文章: https://bigscience.huggingface.co/blog/building-a-tb-scale-multilingual-dataset-for-language-modeling

技术规格

概述了如何选择架构、大小、形状和预训练持续时间的博客文章: https://bigscience.huggingface.co/blog/what-language-model-to-train-if-you-have-two-million-gpu-hours

有关架构/优化器的更多详细信息: https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml

关于硬件/工程方面的博客文章: https://bigscience.huggingface.co/blog/which-hardware-to-train-a-176b-parameters-model

关于用于训练的分布式设置的详细信息: https://github.com/bigscience-workshop/bigscience/tree/master/train/tr11-176B-ml

训练期间更新的Tensorboard: https://huggingface.co/bigscience/tr11-176B-ml-logs/tensorboard#scalars&tagFilter=loss

经验教训

关于如何进行训练、负面结果的见解: https://github.com/bigscience-workshop/bigscience/blob/master/train/lessons-learned.md

如何在工程方面克服的障碍的详细信息(不稳定性、优化训练吞吐量、许多技术诀窍和问题): https://github.com/bigscience-workshop/bigscience/blob/master/train/tr11-176B-ml/chronicles.md

初步结果

使用中间检查点进行初始启发式实验: https://huggingface.co/spaces/bigscience/bloom-book

原始检查点

此存储库中的检查点对应于HuggingFace Transformers格式。如果要使用我们与模型训练的 Megatron-DeepSpeed ,您将需要使用它。

许多中间检查点可在 https://huggingface.co/bigscience/bloom-intermediate/ 中找到

模型卡作者

按照创建此模型卡所花费的时间和数量进行排序。

Margaret Mitchell,Giada Pistilli,Yacine Jernite,Ezinwanne Ozoani,Marissa Gerchick,Nazneen Rajani,Sasha Luccioni,Irene Solaiman,Maraim Masoud,Somaieh Nikpoor,Carlos Muñoz Ferrandis,Stas Bekman,Christopher Akiki,Danish Contractor,David Lansky,Angelina McMillan-Major,Tristan Thrush,Suzana Ilić,Gérard Dupont,Shayne Longpre,Manan Dey,Stella Biderman,Douwe Kiela,Emi Baylor,Teven Le Scao,Aaron Gokaslan,Julien Launay,Niklas Muennighoff