模型简介
模型特点
模型能力
使用案例
🚀 BLOOM LM
BigScience研发的大型开放科学、开放访问的多语言语言模型,可用于文本生成等任务,支持多种自然语言和编程语言。
📚 详细文档
目录
模型详情
模型描述
本部分为想了解该模型的用户提供相关信息。
- 开发者:BigScience(网站)
- 所有协作者要么是志愿者,要么与他们的雇主达成了协议。(参与者的进一步细分信息即将公布。)
- 模型类型:基于Transformer的语言模型
- 版本:1.0.0
- 支持语言:多种;详见训练数据
- 许可证:RAIL许可证v1.0(链接)
- 预计发布日期:2022年7月11日,星期一
- 资助方:
- 法国政府。
- Hugging Face(网站)。
- 贡献者所在的组织。(组织的进一步细分信息即将公布。)
用途
本部分解答了关于模型预期用途的问题,讨论了模型的潜在用户(包括受模型影响的用户),并描述了超出模型适用范围或滥用模型的情况。它为考虑使用该模型或受模型影响的用户提供了信息。
预期用途
该模型旨在推动大型语言模型(LLM)的公开研究。LLM可用于文本生成,或作为预训练基础模型,进一步针对特定任务进行微调。以下用例并非详尽无遗。
- 直接用途
- 文本生成
- 探索语言模型生成语言的特性
- 示例:完形填空测试、反事实推理、重新构建框架后的生成
- 下游用途
- 利用语言模型的任务包括:信息提取、问答、摘要生成
超出适用范围的使用和滥用
本部分说明了用户不应如何使用该模型。 请参阅BLOOM许可证附件A,了解详细的使用限制。以下列表并非详尽无遗,但列出了一些容易预见的有问题的使用场景。
- 超出适用范围的使用
在高风险场景中使用该模型超出了其适用范围。该模型并非为关键决策而设计,也不适用于对个人生计或福祉有重大影响的用途。模型输出的内容可能看似事实,但实际上并不正确。
- 超出适用范围的使用包括:
- 在生物医学、政治和法律、金融领域的使用
- 用于评估或评分个人,如用于就业、教育或信贷
- 将模型用于关键的自动决策、生成事实性内容、创建可靠的摘要或生成必须正确的预测
- 超出适用范围的使用包括:
- 滥用
故意使用该模型造成伤害、侵犯人权或进行其他恶意活动,均属于对该模型的滥用。这包括:
- 垃圾邮件生成
- 虚假信息和影响操作
- 诋毁和诽谤
- 骚扰和虐待
- 欺骗
- 未经同意的模仿和假冒
- 未经同意的监视
- 未按照RAIL许可证使用限制的规定对模型进行归因就生成内容
预期用户
- 直接用户
- 普通公众
- 研究人员
- 学生
- 教育工作者
- 工程师/开发者
- 非商业实体
- 社区倡导者,包括人权和公民权利组织
- 间接用户
- 使用直接用户创建的衍生产品的用户,如使用具有预期用途的软件的用户
- 使用许可证中描述的模型衍生产品的用户
- 其他受影响方
- 大型语言模型提及的个人和群体
- 接触到大型语言模型输出内容或基于其输出做出决策的个人和群体
- 其原创作品被纳入大型语言模型的个人和群体
偏差、风险和局限性
本部分识别了可预见的危害和误解。 模型可能存在以下问题:
- 过度代表某些观点,而对其他观点代表不足
- 包含刻板印象
- 包含个人信息
- 生成:
- 仇恨性、辱骂性或暴力性语言
- 歧视性或偏见性语言
- 可能不适合所有场景的内容,包括色情内容
- 出现错误,包括将不正确的信息当作事实输出
- 生成无关或重复的输出
建议
本部分提供了警告和潜在缓解措施的信息。
- 间接用户在处理由大型语言模型创建的内容时,应被告知这一情况。
- 用户应了解风险和局限性,并根据需要包含适当的年龄声明或屏蔽界面。
- 使用大型语言模型进行预训练的模型应包含更新后的模型卡片。
- 模型用户应提供受影响方反馈的机制,如用于接收评论的电子邮件地址。
训练数据
本部分提供了训练数据的高级概述。对于想了解模型学习基础的用户来说,这部分内容很有参考价值。 每个数据集的详细信息可在单独的数据卡片中找到。 训练数据包括:
- 45种自然语言
- 12种编程语言
- 1.5TB的预处理文本,转换为3500亿个唯一标记(更多信息请参阅标记器部分)
语言
饼图展示了训练数据中语言的分布情况。
以下表格展示了训练数据中尼日尔 - 刚果语系和印度 - 雅利安语系语言的进一步分布情况。
尼日尔 - 刚果语系 | 百分比 | 印度 - 雅利安语系 | 百分比 | |
---|---|---|---|---|
奇通布卡语 | 0.00002 | 阿萨姆语 | 0.01 | |
基库尤语 | 0.00004 | 奥里亚语 | 0.04 | |
班巴拉语 | 0.00004 | 古吉拉特语 | 0.04 | |
阿坎语 | 0.00007 | 马拉地语 | 0.05 | |
聪加语 | 0.00007 | 旁遮普语 | 0.05 | |
塞索托语 | 0.00007 | 卡纳达语 | 0.06 | |
奇切瓦语 | 0.0001 | 尼泊尔语 | 0.07 | |
茨瓦纳语 | 0.0002 | 泰卢固语 | 0.09 | |
北索托语 | 0.0002 | 马拉雅拉姆语 | 0.10 | |
丰语 | 0.0002 | 乌尔都语 | 0.10 | |
基隆迪语 | 0.0003 | 泰米尔语 | 0.20 | |
沃洛夫语 | 0.0004 | 孟加拉语 | 0.50 | |
卢干达语 | 0.0004 | 印地语 | 0.70 | |
奇绍纳语 | 0.001 | |||
祖鲁语 | 0.001 | |||
伊博语 | 0.001 | |||
科萨语 | 0.001 | |||
卢旺达语 | 0.003 | |||
约鲁巴语 | 0.006 | |||
斯瓦希里语 | 0.02 |
以下表格展示了编程语言的分布情况。
文件扩展名 | 编程语言 | 文件数量 |
---|---|---|
java | Java | 5407724 |
php | PHP | 4942186 |
cpp | C++ | 2503930 |
py | Python | 2435072 |
js | JavaScript | 1905518 |
cs | C# | 1577347 |
rb | Ruby | 678413 |
cc | C++ | 443054 |
hpp | C++ | 391048 |
lua | Lua | 352317 |
go | GO | 227763 |
ts | TypeScript | 195254 |
C | C | 134537 |
scala | Scala | 92052 |
hh | C++ | 67161 |
H | C++ | 55899 |
tsx | TypeScript | 33107 |
rs | Rust | 29693 |
phpt | PHP | 9702 |
c++ | C++ | 1342 |
h++ | C++ | 791 |
php3 | PHP | 540 |
phps | PHP | 270 |
php5 | PHP | 166 |
php4 | PHP | 29 |
评估
本部分描述了评估协议并提供了评估结果。
评估指标
本部分描述了计算性能的不同方法及其原因。 包括:
指标 | 选择原因 |
---|---|
困惑度 | 用于量化模型在训练过程中改进情况的标准指标 |
交叉熵 损失 | 语言模型的标准目标函数 |
此外,针对特定任务还有多种不同的评估指标。(评估协议完成后将提供更多评估指标。)
影响因素
本部分列出了影响BLOOM模型的一些不同方面。重点关注那些可能导致模型行为出现较大差异的方面。
- 语言,如英语或约鲁巴语
- 领域,如新闻专线或故事
- 人口统计学特征,如性别或国籍
评估结果
评估结果基于影响因素和评估指标。 训练时评估: 截至2022年5月25日太平洋标准时间15:00:
- 训练损失:2.0
- 验证损失:2.2
- 困惑度:8.9 (模型训练结束后将提供更多评估分数。)
环境影响
训练用的超级计算机Jean Zay(网站)主要使用核能。其产生的热量被用于为校园住房供暖。 预计碳排放量:(训练完成后公布。) 预计耗电量:(训练完成后公布。)
技术规格
本部分为从事模型开发的人员提供信息。 有关重复训练的详细信息,请参阅BLOOM训练README。
- 模型架构:基于Megatron - LM GPT2修改(参见论文,BLOOM Megatron代码):
- 目标函数:均值缩减的交叉熵(参见API文档)。
- 计算基础设施:法国政府提供的Jean Zay公共超级计算机(参见公告)。
- 硬件: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通信网络:专用子网
- 磁盘I/O网络:与其他类型节点共享的网络
- 软件:
- 硬件:384个A100 80GB GPU(48个节点):
训练
- 训练日志:Tensorboard链接
- 训练吞吐量:每个GPU约150 TFLOPs
- 训练轮数:1(当前目标)
- 训练日期:
- 开始时间:2022年3月11日太平洋标准时间上午11:42
- 结束时间:2022年7月5日
- 预计训练成本:相当于200 - 500万美元的云计算成本(包括初步实验和其他模型规模)
- 服务器训练地点:法国法兰西岛大区
标记化
BLOOM标记器(链接)是一个经过学习的子词标记器,使用以下方法进行训练:
- 字节级字节对编码(BPE)算法
- 简单的预标记规则,无归一化
- 词汇表大小为250680 它是在语料库的一个初步版本的子集上使用每种语言的alpha加权进行训练的。
引用
引用格式:BigScience, BigScience Language Open - science Open - access Multilingual (BLOOM) Language Model. International, May 2021 - May 2022
术语表和计算方法
本部分定义了常用术语以及如何计算评估指标。
- 损失:模型学习结果与数据实际情况(“真实值”)之间差异的计算。损失越低越好。训练过程旨在最小化损失。
- 困惑度:基于模型对新数据概率的估计。困惑度越低越好。如果模型在预测下一个标记时100%正确,则困惑度为1。从数学上讲,这是使用熵来计算的。
- 高风险场景:如欧盟提议的人工智能(AI)法案中确定的“高风险人工智能系统”和“不可接受风险人工智能系统”。
- 关键决策:如美国提议的算法问责法案中定义的决策。
- 人权:包括世界人权宣言中定义的权利。
- 个人数据和个人信息:个人数据和信息在多个数据保护法规中都有定义,如欧盟通用数据保护条例中的“个人数据”;南非共和国个人信息保护法中的“个人信息”;中华人民共和国个人信息保护法中的“个人信息”。
- 敏感特征:包括人权(参见世界人权宣言第2条)和个人信息法规(参见GDPR第9条;个人信息保护法第1章)中特别保护的类别。
- 欺骗:故意误导个人相信虚假信息的行为,例如在社交媒体上创建伪装成真人的僵尸机器人或聊天机器人,或者在未让消费者知晓文本是机器生成的情况下生成文本文档。
更多信息
数据集创建
详细介绍数据集创建过程中设计选择的博客文章: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



