英文

警告:这是一个中间检查点和正在进行的项目。它尚未完全训练好。如果您想要一个完成训练的模型,可以使用 Bloom-1B3 。这个模型是 Bloom-1B3 的简化版本

BLOOM LM

BigScience大型开放科学开放获取多语种语言模型

模型卡片

版本1.0 / 2022年7月18日

目录

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

    基本信息

    本节提供给希望了解模型的人的信息。

    扩展详细信息

    开发者:BigScience( website

    • 所有合作伙伴要么是志愿者,要么与雇主达成协议。(将来会进一步详细说明参与者的情况。)

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

    版本:1.0.0

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

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

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

    提出问题的邮箱:bigscience-contact@googlegroups.com

    引用方式:BigScience,BigScience语言开放科学开放获取多语种(BLOOM)语言模型。International,2021年5月至2022年5月

    资金支持:

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

    技术规格

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

    扩展详细信息

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

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

    • 只有解码器架构
    • 对词嵌入层应用层归一化(StableEmbedding;请参见 code paper
    • ALiBI位置编码(请参见 paper ),使用GeLU激活函数
    • 2.88亿个参数:
      • 12个层,8个注意力头部
      • 隐藏层维度为1024
      • 序列长度为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体系结构(OPA)
      • NCCL通信网络:完全专用子网
      • 磁盘IO网络:与其他类型的节点共享网络
    • 软件:
    训练中

    进行中。

    当前训练日志: Tensorboard link

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

    BLOOM分词器( link )是一个通过以下方式进行训练的学习子词分词器:

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

    它是在使用每种语言的alpha加权的预初版本语料库的子集上进行训练的。

    环境影响

    扩展详细信息

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

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

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

    使用

    本节回答了有关模型的预期使用方式的问题,讨论了可预见的模型用户(包括受模型影响的用户),并描述了模型的范围外或滥用的使用情况。它为考虑使用模型或受模型影响的任何人提供了信息。

    扩展详细信息

    预期用途

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

    直接使用
    • 文本生成
    • 探索语言模型生成的语言特征
      • 例如:填空题,虚构内容,具有不同表述的生成结果
    下游使用
    • 利用语言模型的任务包括:信息提取,问题回答,摘要

    滥用和范围外使用

    扩展详细信息

    本节介绍了用户不应该对模型做什么的内容。

    有关详细的使用限制,请参见 BLOOM License ,附录A。以下列表不是详尽无遗的,但列出了一些容易预见的问题用例。

    范围外使用

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

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

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

    • 生成垃圾邮件
    • 进行虚假信息和干预行动
    • 进行诽谤和中伤
    • 进行骚扰和虐待
    • 进行欺骗
    • 进行未经同意的冒充和模仿
    • 进行未经同意的监视
    • 生成没有提及模型来源的内容,如 RAIL License, Use Restrictions 所指定的那样

    预期用户

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

    训练数据

    本节提供了有关训练数据的概述。对于希望了解模型学习内容基础知识的人来说,这是相关的。

    扩展详细信息

    每个数据集的详细信息在各自的 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.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