模型:
optimum/gpt2
在这里测试整个生成能力: 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)