我使用在拥抱脸上发现的T5模型进行文本摘要。如何直接输出T5模型的逻辑,为生成目的提供文本输入(而不是培训)?
我希望通过令牌生成输出令牌,以便分别计算每个输出令牌的熵。看起来,.generate()方法对此不起作用。
我实际上想要创建自己的生成函数,但我需要获得模型的逻辑才能做到这一点。
发布于 2022-08-11 04:07:02
您可以使用前向函数获取您的逻辑,并将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)您可以在这里查看原始源:Forward outputs on multiple sequences is wrong
https://stackoverflow.com/questions/73314467
复制相似问题