HuggingFace镜像/gpt2
模型介绍文件和版本分析
下载使用量0

GPT-2

在此测试完整的生成能力:https://transformer.huggingface.co/doc/gpt2-large

这是一个基于英语语言、采用因果语言建模(CLM)目标训练的预训练模型。它在 本论文 中被首次提出,并在此页面首次发布。

免责声明:发布 GPT-2 的团队也为其模型编写了一份 模型卡片。本模型卡片中的部分内容由 Hugging Face 团队撰写,旨在补充原团队提供的信息,并给出具体的偏见示例。

模型描述

GPT-2 是一个基于 Transformer 架构的模型,它在一个非常庞大的英语语料库上以自监督的方式进行了预训练。这意味着它仅通过原始文本进行预训练,无需人工对文本进行任何形式的标注(这也是它能够利用大量公开可用数据的原因),并通过自动流程从这些文本中生成输入和标签。更准确地说,它被训练用于预测句子中的下一个单词。

具体而言,输入是特定长度的连续文本序列,目标是将同一序列向右移动一个标记(单词或单词片段)。模型内部采用了一种掩码机制,以确保对第 i 个标记的预测仅使用从第 1 个到第 i 个的输入,而不会利用未来的标记。

通过这种方式,模型学习到了英语语言的内部表示,这些表示随后可用于提取对下游任务有用的特征。然而,该模型最擅长的仍是其预训练的目标,即根据提示生成文本。

这是 GPT-2 的最小版本,拥有 1.24 亿个参数。

相关模型: GPT-Large、GPT-Medium 和 GPT-XL

预期用途与局限性

您可以将原始模型用于文本生成,或对其进行微调以适应下游任务。请查看 模型中心,寻找您感兴趣的任务的微调版本。

如何使用

以下是在 PyTorch 中使用该模型获取给定文本特征的方法:

from openmind import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('pretrainmodel/gpt2')
model = AutoModel.from_pretrained('pretrainmodel/gpt2')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
print(output)

训练数据

OpenAI 团队希望在尽可能大的语料库上训练此模型。为构建该语料库,他们从 Reddit 上获得至少 3 个 karma 的出站链接中抓取了所有网页。请注意,此数据集中已移除所有维基百科页面,因此该模型未在维基百科的任何部分进行训练。生成的数据集(称为 WebText)包含 40GB 文本,但尚未公开发布。您可以在此处找到 WebText 中存在的前 1000 个域名列表。

训练过程

预处理

文本使用字节级版本的字节对编码(BPE)(针对 unicode 字符)进行分词,词汇表大小为 50,257。输入是 1024 个连续标记的序列。

更大的模型在 256 个云 TPU v3 核心上进行训练。训练时长未披露,训练的确切细节也未公开。

评估结果

该模型在不进行任何微调(零样本)的情况下取得了以下结果:

数据集LAMBADALAMBADACBT-CNCBT-NEWikiText2PTBenwiki8text8WikiText1031BW
(指标)(PPL)(ACC)(ACC)(ACC)(PPL)(PPL)(BPB)(BPC)(PPL)(PPL)
35.1345.9987.6583.429.4165.851.161,1737.5075.20

BibTeX 条目和引用信息

@article{radford2019language,
  title={Language Models are Unsupervised Multitask Learners},
  author={Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya},
  year={2019}
}