繁体   English   中英

BERT 使用拥抱面部模型的分数将“SpanAnnotation”转换为答案

[英]BERT Convert 'SpanAnnotation' to answers using scores from hugging face models

我正在关注从 huggingface 导入预训练的 model 问题和答案 model 的文档

from transformers import BertTokenizer, BertForQuestionAnswering
import torch
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForQuestionAnswering.from_pretrained('bert-base-uncased')
question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
inputs = tokenizer(question, text, return_tensors='pt')
start_positions = torch.tensor([1])
end_positions = torch.tensor([3])
outputs = model(**inputs, start_positions=start_positions, end_positions=end_positions)
loss = outputs.loss
start_scores = outputs.start_logits
end_scores = outputs.end_logits

这将返回开始和结束分数,但我怎样才能从这里获得有意义的文本答案?

所以我做了一点挖掘,看起来分数可以转换为可用于构建答案的标记。 这是一个简短的例子:

answer_start = torch.argmax(start_scores) 
answer_end = torch.argmax(end_scores) + 1

tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs["input_ids"][0][answer_start:answer_end]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM