模型简介
模型特点
模型能力
使用案例
🚀 BLOOM LM
BigScience大型开放科学、开放访问的多语言语言模型
该模型旨在推动大语言模型的公开研究,可用于文本生成等任务,也能作为预训练基础模型进行特定任务的微调。
🚀 快速开始
本文档提供了BLOOM LM模型的详细信息,包括模型详情、使用场景、训练数据、风险与局限、评估结果等内容,帮助你了解和使用该模型。
📚 详细文档
模型详情
基础信息
本部分为想了解模型的人提供相关信息。
点击展开
开发者: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通信网络:完全专用子网
- 磁盘IO网络:与其他类型节点共享网络
- 软件:
训练
训练日志: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日下午3:00(太平洋标准时间):
- 训练损失:2.3
- 验证损失:2.9
- 困惑度:16
建议
本部分提供了警告信息和潜在的缓解措施。
点击展开
- 间接用户在处理由大语言模型生成的内容时应被告知。
- 用户应了解风险与局限,并在必要时提供适当的年龄声明或屏蔽界面。
- 使用大语言模型进行预训练的模型应包含更新后的模型卡片。
- 模型用户应为受影响者提供反馈机制,如用于接收评论的电子邮件地址。
术语表和计算方法
本部分定义了常用术语以及指标的计算方法。
点击展开
- 损失: 计算模型所学内容与数据实际情况(“真实值”)之间的差异。损失越低越好。训练过程旨在最小化损失。
- 困惑度: 基于模型对新数据概率的估计。困惑度越低越好。如果模型在预测下一个标记时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/bigsc
模型卡片作者
暂未提供相关内容。
许可证
本模型使用的许可证为:bigscience - bloom - rail - 1.0。详细信息请参阅BLOOM许可证。



