英文

注意:此存储库中的检查点尚未完全训练完成。中间检查点和最终模型的评估将在进行时添加(见下文)。

BLOOM LM BigScience大型开放科学开放获取多语言语言模型 模型卡

版本1.3 / 2022年7月11日-可用中间检查点-全局步骤:

  • 1000 , 10000 , 100000 , 200000 , 300000 , 400000 , 500000 , 600000

您可以通过单击存储库的分支部分来查看可用的检查点

如何加载特定版本

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

from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
    "bigscience/bloom-350m-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 ,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网络:与其他类型的节点共享网络

    软件

    训练

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

    点击展开

    训练数据

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

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

    预处理

    分词:BLOOM分词器( link ),使用以下方式进行训练的学习子词分词器:

    • 字节级字对编码(BPE)算法

    • 简单的预分词规则,无归一化

    • 词汇大小为250,680个

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

    速度、大小、时间

    训练日志: Tensorboard link

    • 日期:

      • 2022年3月11日上午11:42 PST开始

      • 预计结束时间:2022年7月5日

    • 检查点大小:

      • Bf16权重:329GB

      • 包含优化器状态的完整检查点:2.3TB

    • 训练吞吐量:每个GPU每秒约150 TFLOP

    • 训练时期数:1

    • 训练成本估计:相当于200-500万美元的云计算费用(包括预实验)

    • 服务器训练位置:法国Île-de-France

    环境影响

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

    预计碳排放:(待公布。)

    预计用电量:(待公布。)

    用途

    本部分回答了有关模型拟用途、预见用户(包括受模型影响的用户)以及不考虑范围外或滥用模型的用途的问题。对于考虑使用该模型或受该模型影响的人来说是有用的。

    点击展开

    预期用途

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

    直接用途

    • 文本生成

    • 探索语言模型生成的特征

      • 例如:填空测试、假设性问题、具有不同解释的生成

    下游用途

    • 利用语言模型的任务包括:信息提取、问答、摘要

    滥用和超出范围的用途

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

    超出范围的用途

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

    超出范围的用途包括:

    • 在生物医学领域、政治和法律领域或金融领域使用

    • 用于评估或对个人进行评分,例如用于就业、教育或信用

    • 将模型应用于关键的自动决策、生成事实性内容、创建可靠的摘要或生成必须正确的预测

    滥用

    故意利用模型进行危害、违反人权或其他恶意活动属于此模型的滥用。包括:

    • 生成垃圾邮件

    • 信息误导和影响操作

    • 贬低和诽谤

    • 骚扰和虐待

    • 欺骗

    • 未经同意的冒充和模仿

    • 未经同意的监视

    • 生成不带模型属性的内容,如规定在 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创建的内容时应该意识到其来源于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