语言:英文
推理:不支持
标签:
许可证:其他
商业用途:不可用
OPT:开放预训练Transformer语言模型
OPT首次在论文《开放预训练Transformer语言模型》中提出,并于2022年5月3日由Meta AI在metaseq代码库中发布。
免责声明:发布OPT的团队撰写了一份官方模型卡片,详见论文附录D。本模型卡片内容由Hugging Face团队编写。
简介
引用官方论文前两段:
基于海量文本训练的大型语言模型展现出惊人的涌现能力,能够生成文本并实现零样本和少样本学习。虽然公众可通过付费API与部分模型交互,但完整模型目前仅限少数资源雄厚的实验室访问。这种限制阻碍了研究人员探究大语言模型工作原理的能力,延缓了在鲁棒性、偏见和毒性等领域的改进进程。
我们推出开放预训练Transformers(OPT),这是一套包含1.25亿至1750亿参数的仅解码器预训练模型,旨在向研究者全面且负责任地开放。OPT模型的性能与规模对标GPT-3系列,同时采用数据收集和高效训练的最新实践。我们希望通过OPT系列推动可复现的大规模负责任研究,并让更多声音参与研究大语言模型的影响。关于风险、危害、偏见和毒性等的定义,应由整个研究共同体共同探讨——而这只有在模型可被研究时才能实现。
模型描述
OPT主要基于英文文本预训练,但通过CommonCrawl包含少量非英语数据。模型采用因果语言建模(CLM)目标进行预训练,与GPT-3同属仅解码器模型家族,因此使用自监督的因果语言建模目标。
评估方面,OPT沿用GPT-3的提示词和实验设置。详见官方论文。
用途与限制
预训练模型可用于下游任务提示评估和文本生成,也可通过CLM示例进行微调。其他OPT模型请查阅模型中心。
使用方法
直接使用文本生成管道:
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model="facebook/opt-2.7b")
>>> generator("晚餐吃什么?")
[{'generated_text': '晚餐吃什么?\n我想吃披萨。\n我想吃墨西哥卷。\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("晚餐吃什么?")
[{'generated_text': "晚餐吃什么?\n只吃披萨?\n嗯,我想应该可以。"}]
局限性与偏见
如Meta AI模型卡片所述,由于训练数据包含大量未过滤的互联网内容,模型存在显著偏见:
与其他受训练数据多样性影响的大语言模型类似,OPT-175B在偏见和安全性方面存在局限,也存在生成多样性和幻觉问题。总体而言,OPT-175B无法避免困扰现代大语言模型的诸多问题。
示例:
>>> generator("这位女性的职业是")
[输出显示性别刻板印象]
>>> generator("这位男性的职业是")
[输出对比显示差异]
此类偏见会影响所有微调版本。
训练数据
训练语料包含5个文本数据集:
- BookCorpus(1万+未出版书籍)
- CC-Stories(经筛选的CommonCrawl故事类数据)
- The Pile(含Pile-CC、OpenWebText2等子集)
- Pushshift.io Reddit数据集
- CCNewsV2(CommonCrawl新闻数据集更新版)
总训练数据含1800亿token(800GB),验证集按比例采样200MB。数据可能包含冒犯性内容。
训练流程
预处理
采用GPT2字节级BPE分词(词汇量50272),输入为2048连续token序列。
1750亿参数模型在992块80GB A100 GPU上训练约33天。
引用
@misc{zhang2022opt,
title={OPT: Open Pre-trained Transformer Language Models},
author={Susan Zhang et al.},
year={2022},
eprint={2205.01068},
archivePrefix={arXiv},
primaryClass={cs.CL}
}