英文

BLOOM LM

BigScience大型开放科学开放多语言语言模型

模型卡

版本1.0 / 2022年5月26日

目录

  • 模型细节
  • 用途
  • 训练数据
  • 风险和限制
  • 评估
  • 推荐事项
  • 术语表和计算
  • 更多信息
  • 模型卡作者
  • 模型细节

    基础知识

    此部分提供了有关该模型的信息,适用于任何希望了解该模型的人。

    点击展开

    开发者: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。国际,2021年5月-2022年5月

    资助机构:

    • 法国政府。
    • Hugging Face( website )。
    • 贡献者组织。 (待进一步明确组织的详细情况。)

    技术规格

    此部分提供给从事模型开发的人员的信息。

    点击展开

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

    模型架构:修改自Megatron-LM GPT2(请参阅 paper BLOOM Megatron code ):

    • 仅解码器架构
    • 对词嵌入层应用层归一化(StableEmbedding;请参阅 code paper
    • 使用ALiBI位置编码(请参阅 paper ),使用GeLU激活函数
    • 7,069,016,064个参数:
      • 1,027,604,480个嵌入参数
      • 30个层,32个注意力头
      • 隐藏层为4096维
      • 使用2048个标记的序列长度(请参阅 BLOOM tokenizer ,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网络:与其他类型的节点共享网络
    训练

    训练日志: Tensorboard link

    • 训练时期数:1(当前目标)
    • 日期:
      • 开始时间:2022年3月11日上午11:42(PST)
      • 结束时间:2022年7月5日
    • 训练的预计成本:等值于云计算中的2-5百万美元(包括预备实验)
    • 服务器训练位置:法国伊尔德弗朗斯岛
    分词

    BLOOM分词器( link )是一种使用以下方法进行训练的学习子词分词器:

    • 字节级字对编码(BPE)算法
    • 简单的预分词规则,无归一化
    • 250,680个词汇量

    它使用经过alpha加权的语言预料的子集进行训练

    环境影响

    点击展开

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

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

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

    用途

    此部分回答了关于模型的预期使用方法的问题,讨论了可能受模型影响的用户,并描述了被视为模型超出范围或误用的用途。它为考虑使用该模型或受该模型影响的任何人提供信息。

    点击展开

    预期使用

    创建此模型是为了促进关于大型语言模型(LLM)的公共研究。LLM可用于语言生成或作为进一步微调用于特定任务的预训练基模型。下面列出的用例不是详尽无遗的。

    直接使用
    • 文本生成
    • 探索语言模型生成的语言特征
      • 示例:填空测试、虚构事实、以不同角度生成的内容
    下游应用
    • 利用语言模型的任务包括:信息提取、问答、摘要

    误用和超出范围的使用

    本部分介绍用户不应该对模型进行的操作。

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

    超出范围的用途

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

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

    故意将该模型用于伤害、侵犯人权或其他恶意活动属于对该模型的误用。包括:

    • 生成垃圾邮件
    • 虚假信息和影响力操作
    • 蔑视和诽谤
    • 骚扰和虐待
    • 欺骗
    • 未经同意的冒充和模仿
    • 未经同意的监视
    • 未按照模型规定对内容进行归属标注

    预期用户

    直接用户
    • 普罗大众
    • 研究人员
    • 学生
    • 教育工作者
    • 工程师/开发人员
    • 非商业实体
    • 社区倡导者,包括人权和公民权益组织
    间接用户 其他受影响方(Parties Prenantes)
    • 模型所提及的人员和团体
    • 暴露于模型输出或基于模型生成的决策的人员和团体
    • 其原始作品包含在模型中的人员和团体

    训练数据

    本部分提供了对训练数据的高级概述。对于希望了解模型正在学习的基本知识的任何人,这是相关的。

    点击展开

    每个数据集的详细信息在单独的 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

    风险和限制

    本部分认定了可预见的风险和误解。

    点击展开

    模型可能会:

    • 过度呈现某些观点并低估其他观点
    • 含有刻板印象
    • 含有个人信息
    • 生成:
      • 令人憎恶、辱骂或暴力的语言
      • 歧视性或偏见性语言
      • 部分场景不适宜的内容,包括性内容
    • 出现错误,包括生成错误的信息使其看似真实
    • 生成无关紧要或重复的输出

    评估

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

    点击展开

    指标

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

    包括:

    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.3
    • 验证损失:2.9
    • 困惑度:16

    推荐事项

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

    点击展开
    • 间接用户在使用由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