英文

警告:此存储库上的检查点不是完全训练好的模型。当进行评估时,会添加中间检查点和最终模型的评估结果(请参见以下内容)。

BLOOM LM BigScience大型开放科学开放获取的多语言语言模型 模型卡片

版本1.3 / 2022年7月11日 - 可用的中间检查点 - 全球步骤:

  • 5000 , 10000 , 15000 , 20000 , 25000 , 30000 , 35000 , 40000 , 45000 , 50000 , 55000 , 60000 , 65000 , 70000 , 75000 , 80000 , 85000 , 90000 , 91000 , 92000 , 93000

您可以通过单击存储库的分支部分来检查可用的检查点

如何加载特定版本

我们使用 git 标签来加载特定版本的模型(例如 global_step5000 ):

目录

  • 模型详情
  • 使用情况
  • 训练数据
  • 风险和限制
  • 评估
  • 建议
  • 术语表和计算
  • 更多信息
  • 模型卡片作者
  • 模型详情

    BLOOM 是一种语言模型,它是对单词序列的概率分布。具体而言,BLOOM 是一个大型语言模型(LLM),意味着它是使用大量的文本数据和工业规模的计算资源进行训练的。因此,该模型能够捕捉训练数据中单词、短语、句子和更大范围的文本的统计倾向。

    基础知识

    该部分提供有关模型类型、版本、许可证、资助者、发布日期、开发人员和联系信息的信息。对于希望引用该模型的任何人都很有用。

    点击展开

    开发者:BigScience( website

    所有合作伙伴要么是志愿者,要么与其雇主达成了协议。(更多参与者的细分将很快发布。)

    模型类型:基于Transformer的语言模型

    版本:1.0.0

    语言:多语言;请参阅训练数据

    许可证:RAIL许可证v1.0( link

    估计发布日期:2022年7月11日星期一

    提问发送至:bigscience-contact@googlegroups.com

    引用方式:BigScience,BigScience Language Open-science Open-access Multilingual(BLOOM)语言模型。国际,2021年5月至2022年5月

    资金提供:

    • 法国政府。

    • Hugging Face( website )。

    • 贡献者组织。 (进一步组织细分将很快发布。)

    技术规格

    该部分包括有关模型目标和架构以及计算基础设施的详细信息。对于对模型开发感兴趣的人很有用。

    点击展开

    有关完整的训练复制详细信息,请参见 the BLOOM training README

    模型架构和目标

    • 修改自Megatron-LM GPT2(请参阅 paper BLOOM Megatron code ):

    • 仅解码器架构

    • 应用于词嵌入层的层归一化(StableEmbedding;请参阅 code paper

    • 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 Architecture(OPA)

    • NCCL通信网络:专用子网

    • 磁盘IO网络:与其他类型的节点共享网络

    软件

    训练

    本节提供有关训练数据、训练元素的速度和大小,以及训练对环境的影响的信息。对于想要了解模型输入和训练足迹基础知识的人很有用。

    点击展开

    训练数据

    本节提供有关训练数据的高级概述。对于想要了解模型正在学习的基本知识的人有用。

    每个数据集的详细信息在单独的 Data Cards 中提供。

    训练数据包括:

    • 45种自然语言

    • 12种编程语言

    • 1.5TB的预处理文本,转换为350B个唯一标记(请参阅分词器部分以了解更多信息。)

    语言

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

    下表显示了尼日尔-刚果语系和印度语系语言以及编程语言在训练数据中的进一步分布。

    尼日尔刚果语系和印度语系语言的分布。

    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个

    它是使用预备版本的语料库子集的alpha加权进行训练的。

    速度、大小、时间

    训练日志: Tensorboard link

    • 日期:

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

      • 预计结束:2022年7月5日

    • 检查点大小:

      • bf16权重:329GB

      • 具有优化器状态的完整检查点:2.3TB

    • 训练吞吐量:每个GPU每秒约150 TFLOP

    • 周期数:1

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

    • 服务器训练位置:法国Île-de-France

    环境影响

    训练超级计算机Jean Zay( website )主要使用核能。它产生的热量被重新利用用于供暖校区住房。

    估计的碳排放量:(即将发布。)

    估计的用电量:(即将发布。)

    使用情况

    本节讨论模型的预期使用方式,讨论了模型的可预见用户(包括受模型影响的用户),并描述了模型的使用范围以及对模型的滥用。对于考虑使用模型或受模型影响的任何人都很有用。

    点击展开

    预期使用

    正在创建该模型以便实现大规模语言模型(LLMs)的公共研究。LLMs旨在用于语言生成或作为可以进一步微调以适应特定任务的预训练基准模型。以下用例不是详尽无遗的。

    直接使用

    • 文本生成

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

      • 例子:填空测试、逆条件测试、重新构建生成

    下游使用

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

    滥用和超范围使用

    本节讨论用户不应该对模型做的事情。

    超出范围的使用

    在本模型中,将其用于高风险环境范围之外是超出范围的。该模型不适用于对个人生计或福祉产生任何实质后果的关键决策。模型输出的内容似乎是事实,但实际上是不正确的。

    超出范围的使用包括:

    • 在生物医学领域、政治和法律领域或金融领域使用
    • 用于评估或评分个人,例如就业、教育或信贷
    • 将模型应用于关键的自动决策、生成事实内容、创建可靠摘要或生成必须正确的预测
    滥用行为

    故意用模型进行有害行为,违反人权或其他恶意活动,都属于对该模型的滥用。这包括:

    • 生成垃圾邮件
    • 虚假信息和影响操作
    • 蔑视和诽谤
    • 骚扰和虐待
    • 欺骗
    • 未经同意的冒充和模仿
    • 未经同意的监视
    • 生成未归因于模型的内容,如 RAIL License, Use Restrictions 中所述

    预期用户

    直接用户

    • 普通公众
    • 研究人员
    • 学生
    • 教育工作者
    • 工程师/开发人员
    • 非商业实体
    • 包括人权和公民权利团体在内的社区倡导者

    间接用户

    其他受影响的人(合作方)

    • 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的模型进行训练或微调后,应更新模型卡片。
    • 模型的用户应该提供受影响用户提供反馈的机制,例如电子邮件地址供评论使用。

    术语表和计算

    本节定义了常见术语以及如何计算指标。

    点击展开

    更多信息

    本节提供有关数据集创建、技术规格、经验教训和初步结果的链接。

    点击展开

    数据集创建

    博客文章详细介绍了数据集创建过程中的设计选择: 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