英文

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语言开放科学开放获取多语种(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激活函数
    • 1,065,314,304个参数:
      • 385,351,680个嵌入参数
      • 24个层,16个注意力头
      • 隐藏层的维度为1536
      • 使用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网络:与其他类型的节点共享的网络
    • 软件:
    训练

    训练日志: Tensorboard link

    • 迭代次数:1
    • 日期:
      • 开始时间:2022年3月11日上午11:42 PST
      • 结束时间:2022年7月5日
    • 训练成本估计:相当于云计算中的2-5百万美元(包括初步实验和其他模型大小)
    • 服务器训练位置:法国Île-de-France
    分词

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

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

    它是在预处理文本的1.5TB子集上进行训练的,转换为350B个唯一标记(详情请参见分词器部分)。

    环境影响

    点击展开

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

    估计的碳排放:(训练完成后即将公布。)

    估计的用电量:(训练完成后即将公布。)

    用途

    此部分回答了关于模型的预期使用方式的问题,讨论了模型的可预见用户(包括受模型影响的用户)以及不在模型范围或滥用模型的使用方式。它为考虑使用模型或受模型影响的任何人提供信息。

    点击展开

    预期用途

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

    直接使用
    • 文本生成
    • 探索语言模型生成的语言特征
      • 例如:完形填空测试,虚构语句,以不同方式重新表述的生成结果
    下游使用
    • 利用语言模型的任务,包括信息提取、问答、摘要

    滥用和超出范围的使用

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

    详细的使用限制请参见 BLOOM License .下面列出了一些可以预见的问题使用案例。

    超出范围的使用
    • 在高风险环境中使用模型超出了此模型的范围。该模型不适用于关键决策或对个人生计或福祉产生任何实质性影响的用途。模型输出的内容看似真实,但实际不正确。
    • 超出范围的使用包括:
      • 在生物医学领域、政治和法律领域或金融领域使用
      • 用于评估或评分个人,如就业,教育或信用
      • 应用该模型进行关键自动决策、生成事实内容、创建可靠摘要或生成必须准确的预测
    滥用

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

    • 生成垃圾邮件
    • 散布虚假信息和影响操作
    • 诽谤和诋毁
    • 骚扰和虐待
    • 欺骗
    • 未经同意的冒充和模仿
    • 未经同意的监视
    • 未注明引用模型生成的内容,如 RAIL License, Use Restrictions 中所示

    预期用户

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

    训练数据

    此部分提供训练数据的高级概述,适用于任何希望了解模型正在学习内容的人。

    点击展开

    每个数据集的详细信息在个别 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.7
    • 验证损失:3.1
    • 困惑度:21.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