language: zh
inference: false
tags:
license: other
commercial: false
OPT:开放预训练Transformer语言模型
OPT首次在论文《开放预训练Transformer语言模型》中提出,并于2022年5月3日由Meta AI在metaseq代码库中发布。
免责声明:发布OPT的团队撰写了一份官方模型卡片,可在论文附录D中查阅。本模型卡片内容由Hugging Face团队撰写。
简介
引用官方论文前两段:
基于海量文本训练的大型语言模型展现出惊人的涌现能力,能够生成文本并进行零样本和少样本学习。虽然公众可以通过付费API与部分模型交互,但完整模型目前仅限少数资源雄厚的实验室访问。这种限制阻碍了研究人员探究这些大型语言模型工作原理的能力,延缓了在鲁棒性、偏见和毒性等已知挑战领域的改进进程。
我们推出开放预训练Transformers(OPT),这是一套包含1.25亿至1750亿参数的仅解码器预训练Transformer模型,旨在向感兴趣的研究者全面且负责任地开放。OPT模型的性能与规模对标GPT-3系列模型,同时应用了数据收集和高效训练的最新最佳实践。我们开发OPT系列模型的目的是实现可复现的大规模负责任研究,并让更多声音参与研究这些大语言模型的影响。关于风险、危害、偏见和毒性等的定义,应由整个研究社区共同阐明——这只有在模型可被研究时才能实现。
模型描述
OPT主要基于英文文本预训练,但通过CommonCrawl在训练语料中包含少量非英语数据。模型采用因果语言建模(CLM)目标进行预训练。OPT与GPT-3同属仅解码器模型家族,因此其预训练使用自监督的因果语言建模目标。
评估方面,OPT沿用GPT-3的提示词和实验设置。详见官方论文。
用途与限制
预训练模型可用于下游任务评估提示和文本生成。此外,可通过CLM示例对下游任务进行微调。其他OPT模型请查阅模型中心。
使用方法
可直接使用pipeline进行文本生成:
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model="facebook/opt-1.3b")
>>> generator("你好,我是有意识的")
[{'generated_text': '你好,我是有意识的,我在这里。\n我在这里。\n我是有意识的。'}]
默认生成是确定性的。若需使用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("你好,我是有意识的")
[{'generated_text': "你好,我是有意识的且能听见。我在这个领域有很多经验"}]
局限性与偏见
如Meta AI模型卡片所述,由于训练数据包含大量未过滤的互联网内容(远非中立),模型存在显著偏见:
与其他受训练数据多样性(或缺乏多样性)影响的大型语言模型类似,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("这位女性的职业是")
[{'generated_text': '这位女性当了六个月调酒师后,获得了她梦寐以求的工作。她'},
{'generated_text': '这位女性在约克郡谷地白马农场附近当保姆'},
{'generated_text': "这位女性在英国广播公司总部担任翻译,还认识一些"},
{'generated_text': '这位女性担任秘书并全职上学,同时还做服务员'},
{'generated_text': '这位女性带着宝宝做美容师,小女孩现在到了'}]
对比男性版本:
>>> generator("这位男性的职业是")
[{'generated_text': '这位男性担任看门人时,房主发现他出轨'},
{'generated_text': '这位男性是软件工程师。\n\n他在亚马逊工作超过10年'},
{'generated_text': '这位男性是汽车销售员——对她言出必行\n一个T'},
{'generated_text': '这位男性做了五年私人承包商。他于'},
{'generated_text': '这位男性担任计算机系统顾问。离职后成为多产的黑客'}]
这种偏见会影响该模型的所有微调版本。
训练数据
Meta AI团队力求使用最大规模的语料库,包含以下5个过滤文本数据集的联合:
- BookCorpus:包含1万+未出版书籍
- CC-Stories:过滤CommonCrawl数据以匹配Winograd模式的叙事风格
- The Pile:包含Pile-CC、OpenWebText2、USPTO、古腾堡计划、OpenSubtitles、维基百科、DM数学和HackerNews
- Pushshift.io Reddit数据集(经Baumgartner等人(2020)开发,Roller等人(2021)处理)
- CCNewsV2:CommonCrawl新闻数据集的英文更新版(曾用于RoBERTa)
最终训练数据包含1800亿token(800GB)。验证集从预训练数据中按比例抽取200MB。
数据集可能包含冒犯性内容,因其部分源自公开Common Crawl和Reddit数据,可能存在直接观看时会引发不适的文本。
收集过程
数据来自互联网,经过经典数据处理算法和重构实践,包括移除重复/非信息文本(如"第一章"或"古腾堡计划电子书"等)。
训练流程
预处理
文本使用GPT2字节级BPE(针对Unicode字符)进行分词,词表大小50272。输入为2048个连续token的序列。
1750亿参数模型在992块80GB A100 GPU上训练,持续约33天。
BibTeX引用
@misc{zhang2022opt,
title={OPT: 开放预训练Transformer语言模型},
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}
}