英文

GPT-2

在这里测试整个生成能力: https://transformer.huggingface.co/doc/gpt2-large

在英语语言上的预训练模型,使用因果语言建模(CLM)目标。它是在 this paper 中介绍的,并在 this page 首次发布。

免责声明:发布GPT-2的团队还为其模型撰写了 model card 。本模型卡的内容是由Hugging Face团队撰写的,以补充他们提供的信息,并提供特定的偏差示例。

模型描述

GPT-2是一个transformers模型,在一个非常大的英语数据语料库上进行了预训练。这意味着它仅使用原始文本进行预训练,而没有任何人以任何方式对其进行标注(这就是为什么它可以使用大量公开可用的数据),预训练过程自动生成输入和标签。更准确地说,它被训练来猜测句子中的下一个单词。

更准确地说,输入是一定长度的连续文本序列,目标是相同的序列,向右移动一个标记(单词或一部分单词)。模型在内部使用掩码机制,以确保只有来自1到i的输入对令牌i的预测产生影响,而未来的标记则不会影响。

这样,模型学习到了英语语言的内在表示,然后可以用于提取对下游任务有用的特征。然而,模型最擅长的是它的预训练任务,即从提示文本生成文本。

预期用途和限制

您可以使用原始模型进行文本生成,或将其微调用于下游任务。请参阅 model hub ,以查找您感兴趣的任务的微调版本。

使用方法

以下是使用gpt2的ONNX模型获取给定文本特征的方法:

使用transformers.pipelines的示例:

from transformers import AutoTokenizer, pipeline
from optimum.onnxruntime import ORTModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = ORTModelForCausalLM.from_pretrained("gpt2", from_transformers=True)
onnx_gen = pipeline("text-generation", model=model, tokenizer=tokenizer)

text = "My name is Philipp and I live in Germany."
gen = onnx_gen(text)

文本生成示例:

from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("optimum/gpt2")
model = ORTModelForCausalLM.from_pretrained("optimum/gpt2")

inputs = tokenizer("My name is Arthur and I live in", return_tensors="pt")

gen_tokens = model.generate(**inputs,do_sample=True,temperature=0.9, min_length=20,max_length=20)
tokenizer.batch_decode(gen_tokens)