英文

BLOOM LM

BigScience Large Open-science Open-access Multilingual Language Model

模型卡片

版本 1.0 / 26.May.2022

内容目录

  • 模型详细信息
  • 使用方法
  • 训练数据
  • 风险和限制
  • 评估
  • 推荐
  • 术语表和计算
  • 更多信息
  • 模型卡片作者
  • 模型详细信息

    基本信息

    本节提供了有关该模型的信息,供任何想了解该模型的人参考。

    点击展开

    开发者: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) Language Model. International, May 2021-May 2022

    资金支持:

    • 法国政府
    • Hugging Face( website
    • 贡献者的组织。(进一步的组织细分待定。)

    技术规格

    本节提供给从事模型开发的人员一些相关的信息。

    点击展开

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

    模型架构:基于 Megatron-LM GPT2 的修改版(参见 paper , BLOOM Megatron code ):

    • 只有解码器架构
    • 施加到词嵌入层的层归一化(见 StableEmbedding;参见 code , paper
    • ALiBI的位置编码(参见 paper ),具有GeLU激活函数
    • 3.5亿参数:
      • 24层,16个注意力头
      • 隐层为1024维
      • 使用2048个标记的序列长度(参见 BLOOM tokenizer ,分词器描述)

    目标函数:交叉熵与均值归约(参见 API documentation )。

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

    • 硬件:384个A100 80GB GPU(48个节点):
      • 额外的32个A100 80GB GPU(4个节点)作为备用
      • 每个节点8个GPU,使用4个NVLink 4连接和4个OmniPath连接
      • CPU:AMD
      • CPU内存:每个节点512GB
      • GPU内存:每个节点640GB
      • 节点间连接:Omni-Path架构(OPA)
      • NCCL通信网络:完全专用子网
      • 磁盘IO网络:与其他类型的节点共享网络
    • 软件:
    训练

    训练进行中。

    当前训练日志: Tensorboard link

    • 检查点大小:
      • Bf16权重:329GB
      • 包括优化器状态的完整检查点:2.3TB
    • 训练吞吐量:每个GPU每秒约150 TFLOP
    • 迭代轮数:1轮(目标)
    • 日期:
      • 开始时间:2022年3月11日上午11:42(PST)
      • 预计结束时间:2022年7月5日
    • 训练成本估计:相当于200-500万美元的云计算费用(包括预实验)
    • 服务器训练地点:法国伊夫林地区
    分词化

    BLOOM分词器( link )是一种学习得到的子词分词器,使用了:

    • 字节级的字对编码(BPE)算法
    • 一个简单的预分词规则,无标准化
    • 词汇表大小为250,680

    它是使用预处理的文本子集进行训练的,转换成了350B个唯一标记(有关详细信息,请参见分词器部分)。

    环境影响

    点击展开

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

    预计碳排放:(训练完成后提供)

    预计用电量:(训练完成后提供)

    使用方法

    本节解答了有关模型如何使用的问题,讨论了模型的预期用户(包括受模型影响的人群),并描述了不在模型的适用范围内或滥用模型的使用方法。这部分提供给任何考虑使用该模型或受该模型影响的人参考。

    点击展开

    预期使用

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

    直接使用
    • 文本生成
    • 探索由语言模型生成的语言的特点
      • 示例:填空测试,反事实推理,以不同方式生成的文本
    下游使用
    • 利用语言模型的任务包括:信息提取、问题回答、摘要

    滥用和超范围使用

    本节解答了用户不应该使用模型进行的操作。

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

    超范围使用

    在高风险设置中使用模型不在该模型的适用范围内。该模型不适用于关键决策或对个人生活或福祉产生任何实质后果的用途。模型输出内容看似真实,但实际上是不正确的。

    超范围使用包括:
    • 在生物医学领域、政治和法律领域或金融领域中的使用
    • 用于评估或评分个体,如就业、教育或信用评分
    • 将该模型应用于关键自动决策、生成事实内容、创建可靠摘要或生成必须正确的预测的情况
    滥用

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

    • 生成垃圾邮件
    • 制造虚假信息和影响操作
    • 诽谤和诋毁
    • 骚扰和虐待
    • 欺骗行为
    • 未经允许的模仿和冒充行为
    • 未经允许的监视行为
    • 未按照 RAIL License, Use Restrictions 中规定提供模型属性生成内容

    预期用户

    直接用户
    • 普通公众
    • 研究人员
    • 学生
    • 教育工作者
    • 工程师/开发者
    • 非商业实体
    • 社区倡导者,包括人权和公民权利组织
    间接用户 其他相关方
    • 由LLM所指称的个人和群体
    • 暴露于LLM输出或基于LLM的决策的个人和群体
    • 包含在LLM中的原始作品的个人和群体

    训练数据

    本节提供了训练数据的概述信息。这对于任何想了解模型正在学习的基本知识的人都是相关的。

    点击展开

    每个数据集的详细信息请参见单独的 Data Cards

    训练数据包括:

    • 45种自然语言
    • 12种编程语言
    • 1.5TB的预处理文本,转换成了350B个唯一标记(详见分词器部分)
    语言

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

    下表显示了Niger-Congo语言和Indic语言在训练数据中的分布情况。

    点击展开
    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

    风险和限制

    本节识别了可预见的风险和误解。

    点击展开

    模型可能:

    • 过度代表某些观点,低估其他观点
    • 包含刻板印象
    • 包含个人信息
    • 生成:
      • 令人讨厌、辱骂或暴力的语言
      • 歧视性或偏见的语言
      • 可能不适合所有环境的内容,包括性内容
    • 出错,包括将不正确的信息生成为准确的信息
    • 生成无关的或重复的输出

    评估

    本节描述了评估协议并提供了结果。

    点击展开

    指标

    本节描述了计算性能的不同方式以及原因。

    包括:

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

    术语表和计算

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

    点击展开

    更多信息

    点击展开

    数据集创建

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