英文

警告:此存储库的检查点并非完全训练的模型。在进行中间检查点和最终模型的评估时会添加(请参见下文)。

BLOOM LM BigScience大型开放科学开源多语言语言模型模型卡片

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

  • 1000, 10000, 100000, 200000, 300000, 400000, 500000, 600000

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

如何加载特定版本

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

from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
    "bigscience/bloom-760m-intermediate",
    revision="global_step1000",
    torch_dtype="auto",
)

目录

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

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

    基本信息

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

    点击展开

    开发者:BigScience( website

    所有合作者要么是志愿者,要么与其雇主达成协议。(有关参与者的详细分类将随后公布。)

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

    版本:1.0.0

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

    许可证:RAIL License v1.0( link

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

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

    引用方式:BigScience,BigScience Language开放科学开源多语言(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个互连GPU和4个OmniPath互连

    • CPU:AMD

    • CPU内存:每个节点512GB

    • GPU内存:每个节点640GB

    • 节点间连接:Omni-Path架构(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

    它是使用每种语言的初始版本的语料子集进行训练的。

    速度、大小、时间

    训练日志: Tensorboard link

    • 日期:

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

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

    • 检查点大小:

      • Bf16权重:329GB

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

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

    • 时代数:1

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

    • 服务器训练地点:法国Île-de-France

    环境影响

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

    估计的碳排放。(即将公布。)

    估计的电力使用量。(即将公布。)

    用途

    本节解答了关于模型应该如何使用的问题,讨论了可能受到该模型影响的用户,并描述了被视为超出范围或滥用模型的用途。适用于考虑使用该模型或受该模型影响的任何人。

    点击展开

    预期使用

    创建该模型的目的是支持对大型语言模型(LLMs)进行公共研究。LLMs旨在用于语言生成,或作为可进一步微调以用于特定任务的预训练基础模型。以下用例不是详尽无遗的。

    直接使用

    • 文本生成

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

      • 例子:填空测试、虚假假设、重构生成

    下游使用

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

    滥用和超出范围的使用

    本节阐述了用户不应该对模型进行的行为。

    超出范围的使用

    参见 BLOOM License ,附件A,以了解详细的使用限制。下面的列表并非详尽无遗,但列出了一些容易预见到的问题用例。

    • 在生物医学领域、政治和法律领域或金融领域使用模型

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

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

    滥用

    故意使用模型进行伤害、侵犯人权或其他恶意活动属于对该模型的滥用。这包括:

    • 生成垃圾邮件

    • 虚假信息和影响操作

    • 贬低和诽谤

    • 骚扰和虐待

    • 欺骗

    • 未经许可的冒充和模仿

    • 未经许可的监视

    • 在不提及模型的情况下生成内容,如在 RAIL License, Use Restrictions 中指定的那样

    预期用户

    直接用户

    • 普通公众

    • 研究人员

    • 学生

    • 教育工作者

    • 工程师/开发人员

    • 非商业实体

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

    间接用户

    其他受影响方(Parties Prenantes)

    • 被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创建的内容时,应该意识到它是由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, Niklas Muennighoff