🚀 OPT:开放预训练Transformer语言模型
OPT是一种预训练的Transformer语言模型,旨在解决大语言模型研究受限的问题,为研究人员提供可复现和负责任的研究基础,推动对大语言模型影响的研究。
🚀 快速开始
你可以直接使用管道进行文本生成来使用这个模型。
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b")
>>> generator("What are we having for dinner?")
[{'generated_text': 'What are we having for dinner?\nI'm thinking pizza.\nI'm thinking tacos.\n'}]
默认情况下,生成是确定性的。若要使用top - k采样,请将do_sample
设置为True
。
>>> from transformers import pipeline, set_seed
>>> set_seed(32)
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b", do_sample=True)
>>> generator("What are we having for dinner?")
[{'generated_text': "What are we having for dinner?\nJust pizza?\nWell, I suppose that would suffice."}]
✨ 主要特性
- 开放共享:Meta AI团队旨在将OPT模型完全且负责任地分享给感兴趣的研究人员,推动大语言模型的可复现和负责任研究。
- 性能匹配:训练的OPT模型在性能和规模上大致匹配GPT - 3类模型,同时应用了数据收集和高效训练的最新最佳实践。
- 多数据集训练:使用多个过滤后的文本数据集进行训练,包括BookCorpus、CC - Stories、The Pile等,训练数据丰富。
📚 详细文档
模型简介
OPT首次在Open Pre-trained Transformer Language Models中被提出,并于2022年5月3日由Meta AI在metaseq's repository中首次发布。
模型描述
OPT主要使用英文文本进行预训练,但通过CommonCrawl,训练语料库中仍存在少量非英文数据。该模型使用因果语言建模(CLM)目标进行预训练,属于与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新闻数据集英文部分的更新版本。
- 数据收集过程:数据集从互联网收集,并经过经典的数据处理算法和重新格式化操作,包括去除重复/无信息的文本,如Chapter One或This ebook by Project Gutenberg.。
训练过程
预处理
文本使用GPT2字节级版本的字节对编码(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}
}
📄 许可证
本项目许可证为other,不允许商业使用。
⚠️ 重要提示
由于训练数据包含大量来自互联网的未过滤内容,模型可能存在偏差,使用时需谨慎。
💡 使用建议
在使用模型进行文本生成时,可根据需求调整do_sample
参数以获得不同的生成效果。