🚀 OPT : 开放预训练Transformer语言模型
OPT是一种开放预训练的Transformer语言模型,旨在为研究人员提供可复现和负责任的大规模研究工具,助力解决大语言模型在鲁棒性、偏差和毒性等方面的挑战。
🚀 快速开始
OPT最早于2022年5月3日由Meta AI在metaseq的仓库中发布,相关研究首次发表于《Open Pre-trained Transformer Language Models》。
免责声明:发布OPT的团队撰写了官方模型卡片,可在论文的附录D中查看。本模型卡片的内容由Hugging Face团队撰写。
✨ 主要特性
引用官方论文的前两段内容:
基于大规模文本集合训练的大语言模型在生成文本以及进行零样本和少样本学习方面展现出了惊人的新兴能力。尽管在某些情况下,公众可以通过付费API与这些模型进行交互,但目前只有少数资源丰富的实验室能够完全访问这些模型。这种受限的访问方式限制了研究人员研究这些大语言模型的工作原理和原因,阻碍了在改善已知挑战(如鲁棒性、偏差和毒性)方面的进展。
我们推出了开放预训练Transformer(OPT),这是一套仅含解码器的预训练Transformer模型,参数范围从1.25亿到1750亿。我们的目标是与感兴趣的研究人员全面且负责地分享这些模型。我们训练OPT模型,使其在性能和规模上大致匹配GPT - 3系列模型,同时在数据收集和高效训练方面采用最新的最佳实践。我们开发这套OPT模型的目的是实现可复现和负责任的大规模研究,并让更多人参与到研究这些大语言模型的影响中来。风险、危害、偏差和毒性等定义应该由整个研究界共同明确,而这只有在模型可供研究时才有可能实现。
📚 详细文档
模型描述
OPT主要使用英文文本进行预训练,但通过CommonCrawl,训练语料库中仍包含少量非英文数据。该模型使用因果语言建模(CLM)目标进行预训练。OPT与GPT - 3同属仅含解码器的模型家族,因此使用自监督因果语言建模目标进行预训练。
在评估方面,OPT遵循GPT - 3的方法,使用其提示和整体实验设置。更多详细信息,请阅读官方论文。
预期用途和局限性
仅预训练的模型可用于下游任务评估的提示以及文本生成。此外,可使用[CLM示例](https://github.com/huggingface/transformers/tree/main/examples/pytorch/language - modeling)对模型进行下游任务微调。其他OPT检查点可在模型中心查看。
训练数据
Meta AI团队希望在尽可能大的语料库上训练该模型,语料库由以下5个经过筛选的文本文档数据集合并而成:
- BookCorpus:包含超过10000本未出版的书籍。
- CC - Stories:包含CommonCrawl数据的一个子集,经过筛选以匹配Winograd模式的故事风格。
- 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新闻数据集英文部分的更新版本。
最终的训练数据包含1800亿个标记,对应800GB的数据。验证集由200MB的预训练数据组成,按每个数据集在预训练语料库中的大小比例进行采样。
由于部分数据集是公共Common Crawl数据的子集以及公共Reddit数据的子集,因此数据集可能包含冒犯性内容,其中的句子可能具有侮辱性、威胁性或会引起焦虑。
收集过程
数据集从互联网收集而来,经过经典的数据处理算法和重新格式化操作,包括去除重复/无信息的文本,如第一章或古登堡计划电子书。
训练过程
预处理
文本使用GPT2字节级的字节对编码(BPE)(用于Unicode字符)进行分词,词汇表大小为50272。输入是2048个连续标记的序列。
1750亿参数的模型在992个80GB A100 GPU上进行训练,训练时长约为33天的连续训练。
💻 使用示例
基础用法
你可以直接使用文本生成管道来使用此模型。
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model="facebook/opt-125m")
>>> generator("What are we having for dinner?")
[{'generated_text': 'What are we having for dinner?\nA nice dinner with a friend.\nI'm not sure'}]
高级用法
默认情况下,生成是确定性的。若要使用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("What are we having for dinner?")
[{'generated_text': 'What are we having for dinner?\nCoffee, sausage and cream cheese at Chili's.'}]
局限性和偏差
正如Meta AI的模型卡片中所述,由于该模型的训练数据包含大量来自互联网的未过滤内容,这些内容远非中立,因此模型存在严重偏差:
与其他大语言模型一样,训练数据的多样性(或缺乏多样性)会对模型质量产生下游影响,OPT - 175B在偏差和安全性方面存在局限性。OPT - 175B在生成多样性和幻觉方面也可能存在质量问题。总体而言,OPT - 175B无法避免困扰现代大语言模型的诸多问题。
这种偏差也会影响该模型的所有微调版本。
🔧 技术细节
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}
}
📄 许可证
本模型使用其他许可证,不支持商业使用。