BLOOM LM 大科学开源开放多语种自然语言模型模型卡
版本 1.3 / 2022年7月11日 - 可用的中间检查点 - global steps:
您可以点击仓库的分支部分来查看可用的检查点
我们使用git标签来加载特定版本的模型(例如global_step1000):
from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained( "bigscience/bloom-2b5-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互连和4个OmniPath链接
CPU:AMD
CPU内存:每个节点512GB
GPU内存:每个节点640GB
节点间连接:Omni-Path架构(OPA)
NCCL-通信网络:全面专用子网
磁盘IO网络:与其他类型的节点共享网络
软件
Megatron-DeepSpeed( Github link )
DeepSpeed( Github link )
PyTorch(pytorch-1.11与CUDA-11.5;参见 Github link )
apex( Github link )
此部分提供有关训练数据、训练元素的速度和大小以及训练的环境影响的信息。对于希望了解模型输入和训练过程的人是有用的。
点击展开此部分提供训练数据的概述。对于想要了解模型学习的基本原理的人是相关的。
有关每个数据集的详细信息,请参见各个 Data Cards 。
训练数据包括:
45种自然语言
12种编程语言
经过预处理的文本总计1.5TB,转换为3500B个不同的令牌(有关详细信息,请参见分词器部分)
饼图显示了训练数据中语言的分布。
下表显示了尼日尔-刚果语系和印度语系以及编程语言在训练数据中的分布。
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每秒约150 TFLOP
时代数量:1
预计训练成本:等同于200-500万美元的云计算费用(包括初步实验)
服务器训练位置:法国伊勒-德弗朗斯
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创建的内容时应意识到这一点。
用户应了解风险和限制,并根据需要包括适当的年龄免责声明或封锁界面。
在BLOOM LM之后训练或微调的模型应包含更新的模型卡。
模型的用户应提供给受影响方提供反馈的机制,例如提供评论的电子邮件地址。
此部分定义常见术语以及如何计算指标。
点击展开Loss: :模型所学习和数据显示(“groundtruth”)之间的差异的计算。损失越低越好。训练过程旨在最小化损失。
Perplexity: :基于模型估计的新数据的概率。困惑度越低越好。如果模型对将要出现的下一个令牌的预测完全正确,则困惑度为1。在数学上,困惑度是使用熵计算的。
High-stakes settings: :例如在欧洲联盟的提案 Artificial Intelligence (AI) Act 中被识别为“高风险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 中的“个人数据”和南非共和国的 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