英文

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

BLOOM LM 大科学开源开放多语种自然语言模型模型卡

版本 1.3 / 2022年7月11日 - 可用的中间检查点 - global steps:

  • 1000, 10000, 50000, 100000, 150000, 200000, 250000, 300000

您可以点击仓库的分支部分来查看可用的检查点

如何加载特定版本

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

from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    "bigscience/bloom-2b5-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互连和4个OmniPath链接

    • CPU:AMD

    • CPU内存:每个节点512GB

    • GPU内存:每个节点640GB

    • 节点间连接:Omni-Path架构(OPA)

    • NCCL-通信网络:全面专用子网

    • 磁盘IO网络:与其他类型的节点共享网络

    软件

    培训

    此部分提供有关训练数据、训练元素的速度和大小以及训练的环境影响的信息。对于希望了解模型输入和训练过程的人是有用的。

    点击展开

    训练数据

    此部分提供训练数据的概述。对于想要了解模型学习的基本原理的人是相关的。

    有关每个数据集的详细信息,请参见各个 Data Cards

    训练数据包括:

    • 45种自然语言

    • 12种编程语言

    • 经过预处理的文本总计1.5TB,转换为3500B个不同的令牌(有关详细信息,请参见分词器部分)

    语言

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

    下表显示了尼日尔-刚果语系和印度语系以及编程语言在训练数据中的分布。

    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每秒约150 TFLOP

    • 时代数量:1

    • 预计训练成本:等同于200-500万美元的云计算费用(包括初步实验)

    • 服务器训练位置:法国伊勒-德弗朗斯

    环境影响

    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创建的内容时应意识到这一点。

    • 用户应了解风险和限制,并根据需要包括适当的年龄免责声明或封锁界面。

    • 在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