BLOOM LM BigScience大型开放科学开源多语言语言模型模型卡片
版本1.3 / 2022年7月11日 - 可用的中间检查点-全局步骤:
您可以通过点击存储库的分支部分来查看可用的检查点
我们使用git标签来加载特定版本的模型(例如global_step1000)
from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained( "bigscience/bloom-760m-intermediate", revision="global_step1000", torch_dtype="auto", )
BLOOM是一种语言模型,它是对单词序列的概率分布。具体而言,BLOOM是一个大型语言模型(LLM),这意味着它是使用大量文本数据和工业规模的计算资源进行训练的。因此,该模型能够捕捉到它在训练数据中接触到的词、短语、句子和更大范围文本的统计趋势。
本节提供有关模型类型、版本、许可证、资助者、发布日期、开发者和联系信息的详细信息。对于希望引用该模型的任何人都很有用。
点击展开开发者:BigScience( website )
所有合作者要么是志愿者,要么与其雇主达成协议。(有关参与者的详细分类将随后公布。)
模型类型:基于Transformer的语言模型
版本:1.0.0
语言:多种语言;见训练数据
许可证:RAIL License v1.0( link )
预计发布日期:2022年7月11日星期一
发送问题至:bigscience-contact@googlegroups.com
引用方式:BigScience,BigScience Language开放科学开源多语言(BLOOM)语言模型。国际,2021年5月-2022年5月
资助方:
法国政府。
Hugging Face( website )。
贡献者的组织。(有关贡献组织的详细分类将随后公布。)
本节包括有关模型目标和架构以及计算基础设施的详细信息。对于对模型开发感兴趣的人很有用。
点击展开有关复制训练的完整细节,请参见 the BLOOM training README 。
改编自Megatron-LM GPT2(参见 paper , BLOOM Megatron code ):
仅解码器架构
ALiBI位置编码(参见 paper ),使用GeLU激活函数
总共1760亿个参数:
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个互连GPU和4个OmniPath互连
CPU:AMD
CPU内存:每个节点512GB
GPU内存:每个节点640GB
节点间连接:Omni-Path架构(OPA)
NCCL通信网络:完全专用子网
磁盘IO网络:与其他类型节点共享网络
Megatron-DeepSpeed( Github link )
DeepSpeed( Github link )
PyTorch(pytorch-1.11 w/ CUDA-11.5;参见 Github link )
apex( Github link )
本节提供关于训练数据、训练元素的速度和大小以及训练的环境影响的信息。对于希望了解模型输入和训练印记的人很有用。
点击展开本节提供训练数据的高级概述。对于希望了解模型学习的基本知识的任何人都是相关的。
有关每个数据集的详细信息,请参见各自的 Data Cards 。
训练数据包括:
45种自然语言
12种编程语言
1.5TB的预处理文本,转换为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 |
Northern Sotho | 0.0002 | Malayalam | 0.10 |
Fon | 0.0002 | Urdu | 0.10 |
Kirundi | 0.0003 | Tamil | 0.20 |
Wolof | 0.0004 | Bengali | 0.50 |
Kuganda | 0.0004 | Hindi | 0.70 |
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
它是使用每种语言的初始版本的语料子集进行训练的。
训练日志: Tensorboard link
日期:
开始时间:2022年3月11日上午11:42 PST
预计结束时间:2022年7月5日
检查点大小:
Bf16权重:329GB
带有优化器状态的完整检查点:2.3TB
训练吞吐量:每个GPU每秒约150TFLOP
时代数:1
训练成本估计:相当于云计算中的200-500万美元(包括初步实验)
服务器训练地点:法国Île-de-France
训练超级计算机Jean Zay( website )主要使用核能。其产生的热量被再利用用于供暖校园住房。
估计的碳排放。(即将公布。)
估计的电力使用量。(即将公布。)
本节解答了关于模型应该如何使用的问题,讨论了可能受到该模型影响的用户,并描述了被视为超出范围或滥用模型的用途。适用于考虑使用该模型或受该模型影响的任何人。
点击展开创建该模型的目的是支持对大型语言模型(LLMs)进行公共研究。LLMs旨在用于语言生成,或作为可进一步微调以用于特定任务的预训练基础模型。以下用例不是详尽无遗的。
文本生成
探索语言模型生成的特征
利用语言模型的任务包括信息提取、问答、摘要
本节阐述了用户不应该对模型进行的行为。
超出范围的使用参见 BLOOM License ,附件A,以了解详细的使用限制。下面的列表并非详尽无遗,但列出了一些容易预见到的问题用例。
在生物医学领域、政治和法律领域或金融领域使用模型
用于评估或评分个人,例如就业、教育或信用
将模型应用于关键自动决策、生成事实内容、创建可靠摘要或生成必须是正确的预测
故意使用模型进行伤害、侵犯人权或其他恶意活动属于对该模型的滥用。这包括:
生成垃圾邮件
虚假信息和影响操作
贬低和诽谤
骚扰和虐待
欺骗
未经许可的冒充和模仿
未经许可的监视
在不提及模型的情况下生成内容,如在 RAIL License, Use Restrictions 中指定的那样
普通公众
研究人员
学生
教育工作者
工程师/开发人员
非商业实体
社区倡导者,包括人权和公民权利团体
间接用户使用直接用户创建的衍生产品的用户,例如使用具有预期使用的软件的用户
使用 Derivatives of the Model, as described in the License 的用户
被LLM提及的个人和组织
暴露给LLM输出或基于LLM的决策的个人和组织
他们的原创作品被包含在LLM中的个人和组织
本节指出了可能出现的危害和误解。
点击展开模型可能:
过多地展示某些观点,而忽视其他观点
包含刻板印象
包含个人信息
生成:
仇恨、滥用或暴力言论
带有歧视性或偏见的语言
可能不适合所有环境的内容,包括性内容
出错,包括产生错误的信息,将其作为事实呈现
生成不相关或重复的输出
本节描述了评估协议并提供结果。
点击展开本节描述了不同方式计算性能以及原因。
包括:
Metric | Why chosen |
---|---|
Perplexity | Standard metric for quantifying model improvements during training |
Cross Entropy Loss | Standard objective for language models. |
以及针对特定任务的多种不同评估指标。(更多评估指标将在评估协议完成后提供。)
本节列出了BLOOM模型所涵盖的不同方面。其重点是那些可能导致模型行为高度变异的方面。
语言,如英语或约鲁巴语
领域,如新闻稿或故事
人口统计特征,如性别或国籍
结果基于因素和指标。
训练时评估:
截至2022年5月25日15:00 PST:
训练损失:2.0
验证损失:2.2
困惑度:8.9
(更多评估分数即将公布。)
本节提供关于警告和潜在缓解措施的信息。
点击展开间接用户在使用由LLM创建的内容时,应该意识到它是由LLM创建的。
用户应该注意风险和限制,并在必要时提供适当的年龄免责声明或封锁界面。
使用BLOOM LM训练或微调的模型应包含更新的模型卡片。
模型的用户应为受影响人提供提供意见的机制,例如提供评论的电子邮件地址。
本节定义了常见术语以及如何计算指标。
点击展开Loss: :模型学到的内容与数据显示的内容(“真实情况”)之间的差异的计算。损失越低,效果越好。训练过程旨在最小化损失。
Perplexity: :根据模型估计的新数据的概率。困惑度越低,效果越好。如果模型完全准确地预测其将看到的下一个标记,困惑度将为1。在数学上,这是使用熵来计算的。
High-stakes settings: :如欧洲联盟提议的“高风险AI系统”和“不可接受的风险AI系统”中定义的那样。
Critical decisions: :例如在 the United States' proposed Algorithmic Accountability Act 中定义的那样。
Human rights: :包括在 Universal Declaration of Human Rights 中定义的那些权利。
Personal Data and Personal Information: :个人数据和信息在多个数据保护条例中定义,例如“ personal data ”在“ European Union's General Data Protection Regulation ”中;以及南非共和国“ Protection of Personal Information Act ”,中华人民共和国“ Personal information protection law ”的“个人信息”。
Sensitive characteristics: :包括人权(请参阅 UHDR, Article 2 )和个人信息监管(请参阅GDPR, Article 9; Protection of Personal Information Act, Chapter 1 )中明确定义的受特殊保护的类别。
Deception: :有意误导个人相信错误的事物,例如在社交媒体上创建死机器人或聊天机器人假扮真人,或者在不让消费者意识到文本是由机器生成的情况下生成文本文档。
本节提供有关数据集创建、技术规格、经验教训和初步结果的链接。
点击展开详细介绍数据集创建过程中的设计选择的博文: 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
按照大致的时间顺序和花费的时间顺序排序。
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