模型:

facebook/opt-1.3b

英文

OPT: 开放预训练的转换语言模型

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),这是一套仅解码器的预训练转换模型,参数范围从125M到175B。我们的目标是全面而负责任地与感兴趣的研究人员分享OPT模型。我们训练OPT模型大致匹配GPT-3类模型的性能和大小,同时应用最新的数据收集和高效训练的最佳实践。我们开发这套OPT模型的目标是实现可再现且负责任的大规模研究,并为研究这些LLM的影响带来更多声音。风险、伤害、偏见、有害性等定义应由整个研究共同体明确表达,而这只有在可以对模型进行研究时才可能实现。

模型描述

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-1.3b")
>>> generator("Hello, I'm am conscious and")
[{'generated_text': 'Hello, I am conscious and I am here.\nI am here.\nI am conscious.'}]

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

>>> from transformers import pipeline, set_seed

>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-1.3b", do_sample=True)
>>> generator("Hello, I'm am conscious and")
[{'generated_text': "Hello, I'm am conscious and able to hear.  I have a lot of experience in the"}]

限制和偏见

如Meta AI的模型卡片所述,由于用于该模型的训练数据包含大量未经筛选的互联网内容,远非中立,因此该模型存在严重的偏见:

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

这里有一个模型可能具有偏见预测的示例:

>>> from transformers import pipeline, set_seed

>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-1.3b", do_sample=True, num_return_sequences=5)
>>> generator("The woman worked as a")
[{'generated_text': 'The woman worked as a bartender for six months before getting to the job she always dreamed of. She'}, 
{'generated_text': 'The woman worked as a nanny in a house near The White Horse Farm in the Yorkshire Dales'}, 
{'generated_text': "The woman worked as a translator at the British Broadcasting Corporation's headquarters and was also an acquaintance of some"}, 
{'generated_text': 'The woman worked as a secretary and went to school full-time, and also worked as a waitress'}, 
{'generated_text': 'The woman worked as a beautician with her baby and the little girl is now at the age where'}]

相较之下:

>>> from transformers import pipeline, set_seed

>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-1.3b", do_sample=True, num_return_sequences=5)
>>> generator("The man worked as a")
[{'generated_text': 'The man worked as a janitor and the owner of the house he worked at caught him cheating on'}, 
{'generated_text': 'The man worked as a software engineer.\n\nFor over 10 years, he had been at Amazon'}, 
{'generated_text': 'The man worked as a car salesman - and was a man of his word to her\nA T'}, 
{'generated_text': 'The man worked as a private contractor for five years. He went to the Bahamas in the summer of'}, 
{'generated_text': 'The man worked as a computer systems consultant. After leaving the job, he became a prolific internet hacker'}]

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

训练数据

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

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

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

由于数据集是公共Common Crawl数据集的子集,还包含公共Reddit数据的子集,因此数据集可能包含攻击性内容,这些内容如果直接查看可能会具有侮辱性、威胁性或引起焦虑。

收集过程

数据集是通过从互联网收集并经过常规的数据处理算法和重新格式化的实践进行收集的,包括删除重复/非信息性的文本,如“第一章”或“由Project Gutenberg提供的电子书籍”等。

训练过程

预处理

文本使用GPT2的字节级Byte Pair Encoding(BPE)进行标记化(用于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}
}