模型:

facebook/opt-125m

英文

OPT :开放式预训练Transformer语言模型

OPT首次于 Open Pre-trained Transformer Language Models 年引入,并于2022年5月3日由Meta AI发布在 metaseq's repository 上。

声明:发布OPT的团队编写了官方模型卡,该模型卡在 paper 的附录D中提供。本文中的内容由Hugging Face团队编写而成。

简介

引用 official paper 的前两段:

大规模的在海量文本集合上训练的语言模型展示了令人惊讶的文本生成和零样本学习能力。虽然在某些情况下公众可以通过付费API与这些模型互动,但完全获取模型的权限仅限于一些资源丰富的实验室。这种限制的获取方式限制了研究人员研究这些大型语言模型的工作方式和原因,阻碍了改进相关挑战(如鲁棒性、偏差和有害性)的进展。

我们提供了Open Pretrained Transformers(OPT)——一套仅编码器的预训练Transformer模型,参数范围从125M到175B。我们的目标是与GPT-3类模型的性能和规模大致匹配,并应用最新的数据收集和高效训练的最佳实践。我们开发这套OPT模型的目的是为了实现可重复且负责任的大规模研究,并在研究语言模型的影响时,汇集更多的观点。整个研究共同体需要作为一个整体明确风险、伤害、偏差和有害性等定义标准,这只有在有模型可供研究时才可能实现。

模型描述

OPT主要使用英文文本进行预训练,但仍然通过CommonCrawl的少量非英文数据在训练语料库中存在。该模型使用自回归式语言建模(CLM)目标进行预训练。OPT属于与 GPT-3 类似的仅编码器模型系列。因此,它使用自监督的自回归语言建模目标进行预训练。

在评估方面,OPT遵循了 GPT-3 的提示和整体实验设置。更多细节请阅读 official paper

预期用途和限制

该仅预训练模型可用于在下游任务中进行提示进行评估,以及生成文本。此外,可以使用 CLM example 对下游任务对该模型进行微调。对于其他所有OPT检查点,请参考 model hub

如何使用

您可以使用管道直接使用此模型进行文本生成。

>>> from transformers import pipeline

>>> generator = pipeline('text-generation', model="facebook/opt-125m")
>>> generator("Hello, I'm am conscious and")
[{'generated_text': 'Hello, I am conscious and aware of the fact that I am a woman. I am aware of'}]

默认情况下,生成结果是确定性的。要使用top-k采样,请将do_sample设置为True。

>>> from transformers import pipeline, set_seed

>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-125m", do_sample=True)
>>> generator("Hello, I'm am conscious and")
[{'generated_text': 'Hello, I am conscious and active member of the Khaosan Group, a private, self'}]

限制和偏差

如Meta AI的模型卡所述,由于用于该模型的训练数据包含大量来自互联网的未经筛选内容,远非中立,因此该模型具有很强的偏见:

像其他大型语言模型一样,训练数据的多样性(或缺乏多样性)会对模型的质量产生下游影响,OPT-175B在偏见和安全性方面存在限制。OPT-175B在生成多样性和虚构方面也可能存在质量问题。总的来说,OPT-175B无法免受困扰现代大型语言模型的众多问题。

这种偏见也将影响到该模型的所有微调版本。

训练数据

Meta AI团队希望在尽可能大的语料库上训练该模型。它由以下5个筛选数据集的并集组成的文本文件组成:

  • BookCorpus,包括10,000多本未出版书籍,
  • CC-Stories,其中包含与Winograd框架的故事风格匹配的CommonCrawl数据子集,
  • The Pile,其中包括Pile-CC、OpenWebText2、USPTO、Project Gutenberg、OpenSubtitles、Wikipedia、DM Mathematics和HackerNews,
  • Pushshift.io Reddit数据集,该数据集由Baumgartner等人(2020)开发,并在Roller等人(2021)进行处理,
  • CCNewsV2,包含RoBERTa(Liu等人,2019b)中使用的更新版本的CommonCrawl News数据集的英文部分。

最终的训练数据包含180B个标记,相当于800GB的数据。验证集由200MB的预训练数据组成,按照训练预料库中每个数据集的大小比例进行抽样。

该数据集可能包含冒犯性内容,因为其中的部分数据集是公共Common Crawl数据的子集,还包括公共Reddit数据的子集,其中可能包含直接查看会引起侮辱、威胁或引发其他焦虑情绪的句子。

收集过程

数据集是从互联网收集的,并经过经典的数据处理算法和重新格式化实践处理,包括删除重复/无信息的文本,如"第一章"或"由Project Gutenberg提供的电子书"等。

训练过程

预处理

文本使用GPT2字节级版本的字节对编码(用于Unicode字符)进行标记化,并使用50272个词汇量。输入是2048个连续标记的序列。

175B模型使用992个80GB的A100 GPU进行训练。训练持续时间约为连续训练33天。

BibTeX条目和引用信息

@misc{zhang2022opt,
      title={OPT: Open Pre-trained Transformer Language Models}, 
      author={Susan Zhang and Stephen Roller and Naman Goyal and Mikel Artetxe and Moya Chen and Shuohui Chen and Christopher Dewan and Mona Diab and Xian Li and Xi Victoria Lin and Todor Mihaylov and Myle Ott and Sam Shleifer and Kurt Shuster and Daniel Simig and Punit Singh Koura and Anjali Sridhar and Tianlu Wang and Luke Zettlemoyer},
      year={2022},
      eprint={2205.01068},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}