我使用拥抱脸上的T5模型进行文本摘要。我如何在给定文本输入的情况下直接输出T5模型的logits以用于生成目的(而不是训练(?
我想逐个生成输出令牌,这样我就可以分别计算每个输出令牌的熵。generate((方法似乎对此不起作用。
我实际上想创建自己的生成函数,但我需要获得模型的logits才能做到这一点。
您可以使用forward函数来获取logits,并应用argmax,如下所示:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch.nn.functional as F
tokenizer = AutoTokenizer.from_pretrained("t5-small")
model = AutoModelForSeq2SeqLM.from_pretrained("t5-small")
input_ids = tokenizer("test here", padding="longest",
max_length=128
truncation=True,
return_tensors="pt"
)
logits = model(**input_ids).logits
preds = F.softmax(logits, dim=-1).argmax(dim=-1)
y = tokenizer.batch_decode(sequences=preds, skip_special_tokens=True)
您可以在此处查看原始来源:多个序列上的正向输出是错误的