模型描述: GPT-2 Large 是 GPT-2 的77400万参数版本,这是一个由 OpenAI 创建并发布的基于Transformer的语言模型。该模型是在英语语言上使用因果语言建模(CLM)目标进行预训练的模型。
使用以下代码开始使用模型。您可以直接通过文本生成管道使用此模型。由于生成过程依赖于一定的随机性,我们设置了一个种子以确保结果可复现:
from openmind import AutoTokenizer
import openmind
import torch
model = "models/gpt-neo-125m"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = openmind.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'Hello, I am a language model',
do_sample=True,
top_k=10,
num_return_sequences=1,
repetition_penalty=1.5,
eos_token_id=tokenizer.eos_token_id,
max_length=500,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")OpenAI在其关于GPT-2的模型卡片中写道:
这些模型的主要目标用户是AI研究人员和从业者。
我们主要设想研究人员将使用这些语言模型来更好地理解大规模生成式语言模型的行为、能力、偏差和局限性。
OpenAI在其关于GPT-2的模型卡片中写道:
我们认为以下是一些可能的次要使用场景:
- 写作辅助:语法辅助、自动补全(针对普通散文或代码)
- 创意写作与艺术:探索创意性虚构文本的生成;辅助诗歌及其他文学艺术形式的创作。
- 娱乐:游戏开发、聊天机器人以及有趣内容的生成。
OpenAI在其关于GPT-2的模型卡片中写道:
由于像GPT-2这样的大规模语言模型无法区分事实与虚构,我们不支持那些要求生成文本必须真实的使用场景。
此外,像GPT-2这样的语言模型反映了其训练数据中固有的偏差,因此我们不建议将它们部署到与人类交互的系统中,除非部署者首先针对预期使用场景进行相关偏差研究。我们发现774M和1.5B版本在性别、种族和宗教偏差探测方面没有统计学上的显著差异,这意味着所有版本的GPT-2在涉及对人类属性敏感的偏差使用场景时,都应保持类似程度的谨慎。
内容警告:读者应注意本节包含令人不安、冒犯性的内容,并可能传播历史和当前的刻板印象。
已有大量研究探讨了语言模型的偏差和公平性问题(例如,参见Sheng et al. (2021)和Bender et al. (2021))。
用于训练此模型的数据尚未作为可浏览的数据集发布。我们知道它包含大量来自互联网的未经过滤的内容,这些内容远非中立。模型生成的预测可能包含针对受保护群体、身份特征以及敏感的社会和职业群体的令人不安且有害的刻板印象。例如:
>>> from transformers import pipeline, set_seed
>>> generator = pipeline('text-generation', model='gpt2-large')
>>> set_seed(42)
>>> generator("The man worked as a", max_length=10, num_return_sequences=5)
[{'generated_text': 'The man worked as a security guard in a hotel'},
{'generated_text': 'The man worked as a salesman in Mexico and in'},
{'generated_text': 'The man worked as a supervisor at the warehouse for'},
{'generated_text': "The man worked as a cleaner for the store's"},
{'generated_text': 'The man worked as a barbershop apprentice.'}]
>>> set_seed(42)
>>> generator("The woman worked as a", max_length=10, num_return_sequences=5)
[{'generated_text': 'The woman worked as a clerk at the bank.'},
{'generated_text': 'The woman worked as a caregiver, and her'},
{'generated_text': 'The woman worked as a customer service agent for a'},
{'generated_text': 'The woman worked as a cleaner at the store,'},
{'generated_text': 'The woman worked as a barista and was "'}]这种偏见也会影响该模型的所有微调版本。用户(包括直接用户和下游用户)应了解模型存在的风险、偏见和局限性。
OpenAI 团队希望在尽可能大的语料库上训练此模型。为构建该语料库,他们从 Reddit 上获得至少 3 个 karma 的出站链接中抓取了所有网页。请注意,所有维基百科页面均已从该数据集中移除,因此该模型未在维基百科的任何部分上进行训练。生成的数据集(称为 WebText)包含 40GB 文本,但尚未公开发布。你可以在此处找到 WebText 中排名前 1000 的域名列表。
该模型在一个非常大的英语数据语料库上以自监督的方式进行预训练。这意味着它仅在原始文本上进行预训练,无需人工以任何方式对其进行标记(这也是它能够使用大量公开可用数据的原因),并通过自动过程从这些文本中生成输入和标签。更准确地说,它被训练来猜测句子中的下一个单词。
更具体地说,输入是特定长度的连续文本序列,目标是向右移动一个标记(单词或单词片段)的相同序列。模型在内部使用掩码机制,以确保对标记 i 的预测仅使用来自 1 到 i 的输入,而不使用未来的标记。
通过这种方式,模型学习英语语言的内部表示,然后可用于提取对下游任务有用的特征。
文本使用字节级版本的字节对编码(BPE)(针对 unicode 字符)进行标记化,词汇表大小为 50,257。输入是 1024 个连续标记的序列。
以下评估信息摘自相关论文。
模型作者在相关论文中写道:
由于我们的模型在字节级别运行,不需要有损的预处理或标记化,因此我们可以在任何语言模型基准上对其进行评估。语言建模数据集的结果通常以平均负对数概率的缩放或指数化版本的形式报告,该平均负对数概率是针对每个标准预测单元(通常是字符、字节或单词)。我们通过根据 WebText 语言模型计算数据集的对数概率并将其除以标准单元的数量来评估相同的量。对于许多这些数据集,WebText 语言模型将在显著的分布外进行测试,必须预测经过严格标准化的文本、标记化伪影(如断开的标点符号和缩写)、打乱的句子,甚至在 WebText 中极为罕见的字符串
——在 400 亿字节中仅出现 26 次。我们报告我们的主要结果……使用可逆的去标记化器,尽可能多地去除这些标记化/预处理伪影。由于这些去标记化器是可逆的,我们仍然可以计算数据集的对数概率,并且它们可以被视为一种简单形式的领域适应。
该模型在不进行任何微调(零样本)的情况下取得了以下结果:
| 数据集 | LAMBADA | LAMBADA | CBT-CN | CBT-NE | WikiText2 | PTB | enwiki8 | text8 | WikiText103 | 1BW |
|---|---|---|---|---|---|---|---|---|---|---|
| (指标) | (PPL) | (ACC) | (ACC) | (ACC) | (PPL) | (PPL) | (BPB) | (BPC) | (PPL) | (PPL) |
| 10.87 | 60.12 | 93.45 | 88.0 | 19.93 | 40.31 | 0.97 | 1.02 | 22.05 | 44.575 |
可使用 Lacoste et al. (2019) 中提出的 机器学习影响计算器 来估算碳排放。
有关建模架构、目标、计算基础设施和训练细节的详细信息,请参见 相关论文。
@article{radford2019language,
title={Language models are unsupervised multitask learners},
author={Radford, Alec and Wu, Jeffrey and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya and others},
journal={OpenAI blog},
volume={1},
number={8},
pages={9},
year={2019}
}本模型卡片由 Hugging Face 团队编写。