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

GPT-2

基于因果语言建模(CLM)目标在英语语言上预训练的模型。它在本文中被介绍,并首次在此页面发布。

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

修改

  • 修改示例并添加NPU支持;
  • 添加依赖项;

模型描述

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

更具体地讲,输入是特定长度的连续文本序列,目标是将该序列向右移动一个标记(单词或单词片段)后的相同序列。该模型在内部使用掩码机制,以确保对标记i的预测仅使用来自标记1到i的输入,而不使用未来的标记。

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

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

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

预期用途和局限性

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

依赖项

  • transformers==4.44.2
  • psutil==6.0.0

使用方法

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

from openmind import pipeline, is_torch_npu_available
from openmind_hub import snapshot_download

if is_torch_npu_available():
	device = "npu:0"
else:
	device = "cpu"
generator = pipeline(
	'text-generation', 
	model="SY_AICC/gpt2",
	device=device
)
output = generator(
	"Hello, I'm a language model,",
	max_length=30, 
	num_return_sequences=1
)
print(f">>>output={output}", flush=True)

局限性与偏见

用于训练此模型的训练数据尚未作为可浏览的数据集公开发布。我们知道其中包含大量来自互联网的未经过滤的内容,这些内容远非中立。正如OpenAI团队在其模型卡片中所指出的:

由于像GPT-2这样的大规模语言模型无法区分事实与虚构,我们不支持那些要求生成文本必须真实的使用场景。 此外,像GPT-2这样的语言模型反映了其训练数据中固有的偏见,因此,除非部署者首先针对预期使用场景对相关偏见进行研究,否则我们不建议将其部署到与人交互的系统中。我们发现774M和1.5B版本在性别、种族和宗教偏见探测方面没有统计学上的显著差异,这意味着所有版本的GPT-2在涉及对人类属性敏感的偏见使用场景时,都应保持类似程度的谨慎。

训练数据

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

训练过程

预处理

文本使用字节级的字节对编码(Byte Pair Encoding, 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}
}