模型简介
模型特点
模型能力
使用案例
🚀 BLOOM LM
BLOOM LM 是 BigScience 推出的大型开放科学、开放访问的多语言语言模型,可用于文本生成等多种自然语言处理任务,为相关领域的研究和应用提供了强大支持。
📚 详细文档
目录
模型详情
基础信息
点击展开
开发者:BigScience (网站)
- 所有协作者要么是志愿者,要么与他们的雇主达成了协议。(参与者的进一步细分信息即将公布。)
模型类型:基于 Transformer 的语言模型
版本:1.0.0
支持语言:多种;详见训练数据
许可证:RAIL 许可证 v1.0 (链接)
预计发布日期:2022 年 7 月 11 日,星期一
咨询问题请发送至:bigscience-contact@googlegroups.com
引用格式:BigScience, BigScience Language Open-science Open-access Multilingual (BLOOM) Language Model. International, May 2021 - May 2022
资助方:
- 法国政府。
- Hugging Face (网站)。
- 贡献者所在的组织。(组织的进一步细分信息即将公布。)
技术规格
点击展开
如需了解复制训练的完整详情,请参阅 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 网络:与其他类型节点共享网络
- 软件:
训练
训练日志:Tensorboard 链接
- 训练轮数:1
- 日期:
- 开始时间:2022 年 3 月 11 日,太平洋标准时间上午 11:42
- 结束时间:2022 年 7 月 5 日
- 估计训练成本:相当于 200 万 - 500 万美元的云计算费用(包括初步实验和其他模型规模)
- 服务器训练地点:法国法兰西岛大区
分词
BLOOM 分词器(链接)是一个学习型子词分词器,使用以下方法进行训练:
- 字节级字节对编码(BPE)算法
- 简单的预分词规则,无归一化处理
- 词汇表大小为 250,680
它是在语料库的一个初步版本的子集上,按语言进行 alpha 加权训练得到的。
环境影响
使用方式
点击展开
预期用途
本模型旨在推动大型语言模型(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 | 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 | 678,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 模型的一些不同方面。重点关注那些可能导致模型行为出现高方差的方面。
- 语言,如英语或约鲁巴语
- 领域,如新闻专线或故事
- 人口统计学特征,如性别或国籍
评估结果
训练时评估: 截至 2022 年 5 月 25 日,太平洋标准时间 15:00:
- 训练损失:2.7
- 验证损失:3.1
- 困惑度:21.9
(模型训练结束后将公布更多评估分数。)
建议
点击展开
- 间接用户在处理由大语言模型生成的内容时应被告知。
- 用户应了解风险与局限性,并在必要时提供适当的年龄声明或屏蔽界面。
- 使用大语言模型进行预训练的模型应包含更新后的模型卡片。
- 模型用户应为受影响者提供反馈机制,如用于接收评论的电子邮件地址。
术语表与计算方法
点击展开
- 损失: 计算模型所学内容与数据显示内容(“真实情况”)之间的差异。损失越低越好。训练过程旨在最小化损失。
- 困惑度: 基于模型对新数据概率的估计。困惑度越低越好。如果模型在预测下一个标记时 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
初始结果
使用临时检查点进行的初始提示实验
模型卡片作者
文档中未提及相关内容,故跳过该章节。



