ONNX 模型库
返回模型

说明文档

<h1 style='text-align: center '>BLOOM 语言模型</h1> <h2 style='text-align: center '><em>BigScience 大规模开放科学开源多语言语言模型</em> </h2> <h3 style='text-align: center '>模型卡片</h3> <img src="https://s3.amazonaws.com/moonup/production/uploads/1657124309515-5f17f0a0925b9863e28ad517.png" alt="BigScience Logo" width="800" style="margin-left:'auto' margin-right:'auto' display:'block'"/>

版本 1.0 / 2022年5月26日

Bloom-560m 模型卡片

<!-- 提供模型是什么/做什么的快速摘要。 -->

目录

  1. 模型详情
  2. 用途
  3. 偏见、风险与局限性
  4. 建议
  5. 训练数据
  6. 评估
  7. 环境影响
  8. 技术规格
  9. 引用
  10. 术语表与计算
  11. 更多信息
  12. 模型卡片作者
  13. 模型卡片联系方式

模型详情

模型描述

本节为想了解该模型的人士提供信息。

  • 开发者: BigScience (网站)

    • 所有贡献者均为志愿者或与其雇主有协议。(贡献者详细分类即将公布。)*
  • 模型类型: 基于Transformer的语言模型

  • 版本: 1.0.0

  • 语言: 多种语言;详见训练数据

  • 许可证: RAIL License v1.0 (链接)

  • 预计发布日期: 2022年7月11日,星期一

  • 资助方:

    • 法国政府。

    • Hugging Face (网站).

    • 贡献者组织。(组织详细分类即将公布。)

用途

本节解答关于模型预期用途的问题,讨论可预见的用户群体(包括受模型影响的人群),并描述不在范围内或滥用模型的情况。 本节为考虑使用模型或受模型影响的人士提供信息。

预期用途

创建此模型是为了促进对大型语言模型(LLM)的公开研究。大型语言模型用于语言生成或作为预训练基础模型,可进一步微调以完成特定任务。以下用例并非详尽无遗。

直接使用

  • 文本生成

  • 探索语言模型生成的语言特征

    • 示例:完形填空、反事实、重构生成

下游使用

  • 利用语言模型的任务包括:信息抽取、问答、摘要

滥用与超出范围的使用

本节讨论用户不应该用该模型做什么。

详细使用限制请参阅 BLOOM 许可证 附件A。以下列表虽非详尽无遗,但列出了一些容易预见的潜在问题用例。

超出范围的使用

高风险环境中使用该模型不在本模型范围内。本模型不适用于关键决策或对个人生计或福祉有实质影响的用途。模型输出的内容看似事实但实际不正确。

超出范围的使用包括:
  • 在生物医学、政治法律或金融领域使用

  • 用于评估或评分个人,例如用于就业、教育或信贷

  • 将模型用于关键自动决策、生成事实内容、创建可靠摘要或生成必须正确的预测

滥用

故意将模型用于危害、侵犯人权或其他恶意活动属于滥用本模型。包括:

  • 垃圾信息生成

  • 虚假信息与影响力操作

  • 诽谤与污蔑

  • 骚扰与虐待

  • 欺骗

  • 未经同意的冒名与模仿

  • 未经同意的监视

  • 在未按 RAIL 许可证使用限制 规定注明模型来源的情况下生成内容

预期用户

直接用户

  • 普通公众

  • 研究人员

  • 学生

  • 教育工作者

  • 工程师/开发者

  • 非商业实体

  • 社区倡导者,包括人权与公民权利团体

间接用户

其他受影响方

  • 大语言模型所涉及的个人和群体

  • 接触大语言模型输出或基于其做出决策的个人和群体

  • 其原创作品被纳入大语言模型的个人和群体

偏见、风险与局限性

本节识别可预见的危害和误解。

模型可能:

  • 过度代表某些观点而忽视其他观点

  • 包含刻板印象

  • 包含个人信息

  • 生成:

    • 仇恨、虐待或暴力语言

    • 歧视性或偏见性语言

    • 可能不适合所有场景的内容,包括色情内容

  • 犯错误,包括将不正确的信息作为事实输出

  • 生成无关或重复的输出

建议

本节提供关于警告和潜在缓解措施的信息。

  • 间接用户应被告知他们所接触的内容是由大语言模型生成的。

  • 用户应了解风险与局限性,并根据需要添加适当的年龄限制提示或屏蔽界面。

  • 使用大语言模型预训练的模型应包含更新后的模型卡片。

  • 模型用户应提供机制,让受影响者能够提供反馈,例如提供评论邮箱。

训练数据

本节提供训练数据的高层次概述。对于想了解模型学习内容基础的人士来说,这很相关。

每个数据集的详细信息见各自的数据卡片

训练数据包括:

  • 45种自然语言

  • 12种编程语言

  • 预处理后的1.5TB文本,转换为3500亿个唯一token(详见分词器部分。)

语言

饼图显示了训练数据中语言的分布。

饼图显示训练数据中语言的分布

下表显示了训练数据中尼日尔-刚果语言和印度语言的详细分布。

尼日尔-刚果语言 百分比 印度语言 百分比
奇图姆布卡语 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 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模型的一些不同方面。重点关注可能导致模型行为高度差异的方面。

  • 语言,如英语或约鲁巴语

  • 领域,如新闻或故事

  • 人口统计特征,如性别或国籍

结果

结果基于因素指标

训练时评估:

截至2022年5月25日 15:00 PST:

  • 训练损失:2.0

  • 验证损失:2.2

  • 困惑度:8.9

(更多评估分数将在模型训练结束后公布。)

环境影响

训练用超级计算机 Jean Zay(网站)主要使用核能。其产生的热量被重新用于为校园住宅供暖。

预估碳排放: (训练完成后公布)

预估用电量: (训练完成后公布)

技术规格

本节为从事模型开发的人士提供信息。

有关复制训练的完整详情,请参阅 BLOOM 训练 README

模型架构: 基于 Megatron-LM GPT2 改进(见论文BLOOM Megatron 代码):

  • 仅解码器架构

  • 对词嵌入层应用层归一化(StableEmbedding;见代码论文

  • ALiBi 位置编码(见论文),使用 GeLU 激活函数

  • 559,214,592 个参数:

目标函数: 交叉熵,采用均值归约(见 API 文档)。

计算基础设施: Jean Zay 公共超级计算机,由法国政府提供(见公告)。

  • 硬件: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 网络:与其他类型节点共享网络

  • 软件:

训练

训练日志:Tensorboard 链接

  • 训练吞吐量:每 GPU 约 150 TFLOPs

  • 训练轮数:1(当前目标

  • 日期:

    • 开始于 2022年3月11日 11:42am PST

    • 结束于 2022年7月5日

  • 预估训练成本:相当于 200-500 万美元的云计算费用(包括初步实验和其他模型规模)

  • 训练服务器位置:法兰西岛,法国

分词

BLOOM 分词器(链接)是使用以下方法训练的学习型子词分词器:

  • 字节级字节对编码(BPE)算法

  • 简单的预分词规则,无归一化

  • 词汇表大小为 250,680

它是使用语言alpha加权在一版预训练语料库的子集上训练的。

引用

引用方式: BigScience, BigScience Language Open-science Open-access Multilingual (BLOOM) Language Model. 国际,2021年5月至2022年5月

术语表与计算

本节定义常见术语以及指标的计算方式。

  • <a name="损失">损失:</a> 计算模型所学内容与数据所显示的"真实情况"之间的差异。损失越低越好。训练过程旨在最小化损失。

  • <a name="困惑度">困惑度:</a> 基于模型对新数据概率的估计。困惑度越低越好。如果模型在预测下一个token时的准确率为100%,则困惑度为1。数学上使用熵来计算。

  • <a name="高风险">高风险环境:</a> 如欧盟拟议的人工智能法案中确定的"高风险人工智能系统"和"不可接受风险人工智能系统"所定义的场景。

  • <a name="关键决策">关键决策:</a> 如美国拟议的算法责任法案中所定义的决策。

  • <a name="人权">人权:</a> 包括《世界人权宣言》中定义的权利。

  • <a name="个人数据与信息">个人数据与个人信息:</a> 个人数据和信息在多项数据保护法规中有定义,例如欧盟通用数据保护条例中的"个人数据";以及南非共和国的个人信息保护法、中华人民共和国个人信息保护法中的"个人信息"。

  • <a name="敏感特征">敏感特征:</a> 包括人权法中专门保护的类别(见《世界人权宣言》第二条)以及个人信息法规中保护的类别(见 GDPR 第九条个人信息保护法第一章

  • <a name="欺骗">欺骗:</a> 故意误导个人使其相信虚假信息的行为,例如在社交媒体上创建伪装成真人的deadbot或chatbot,或在未告知消费者文本由机器生成的情况下生成文本文件。

更多信息

数据集创建

详细介绍数据集设计决策的博客文章: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

模型卡片联系方式

如有问题请发送至: bigscience-contact@googlegroups.com

bigscience/bloom-560m

作者 bigscience

text-generation transformers
↓ 188.2K ♥ 371

创建时间: 2022-05-19 11:51:24+00:00

更新时间: 2023-09-26 09:16:49+00:00

在 Hugging Face 上查看

文件 (21)

.gitattributes
LICENSE
README.md
config.json
flax_model.msgpack
model.safetensors
onnx/config.json
onnx/decoder_model.onnx ONNX
onnx/decoder_model.onnx_data
onnx/decoder_model_merged.onnx ONNX
onnx/decoder_model_merged.onnx_data
onnx/decoder_with_past_model.onnx ONNX
onnx/decoder_with_past_model.onnx_data
onnx/generation_config.json
onnx/special_tokens_map.json
onnx/tokenizer.json
onnx/tokenizer_config.json
pytorch_model.bin
special_tokens_map.json
tokenizer.json
tokenizer_config.json