我怎样才能用抱脸实现基本的问答?
How can I implement basic question answering with hugging-face?
我有:
from transformers import XLNetTokenizer, XLNetForQuestionAnswering
import torch
tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased')
model = XLNetForQuestionAnswering.from_pretrained('xlnet-base-cased')
input_ids = torch.tensor(tokenizer.encode("What is my name?", add_special_tokens=True)).unsqueeze(0) # Batch size 1
start_positions = torch.tensor([1])
end_positions = torch.tensor([3])
outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
loss = outputs[0]
print(outputs)
print(loss)
根据文档。这做了一些事情:
(tensor(2.3008, grad_fn=<DivBackward0>),)
tensor(2.3008, grad_fn=<DivBackward0>)
但是,如果可能的话,我想要一个实际的答案?
感谢Joe Davison for providing the answer on Twitter:
from transformers import pipeline
qa = pipeline('question-answering')
response = qa(context='I like to eat apples, but hate bananas.',
question='What do I like?')
print(response)
给出的回应是:
{'score': 0.282511100858045, 'start': 31, 'end': 38, 'answer': 'bananas.'}
不太对,但至少分数低
我有:
from transformers import XLNetTokenizer, XLNetForQuestionAnswering
import torch
tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased')
model = XLNetForQuestionAnswering.from_pretrained('xlnet-base-cased')
input_ids = torch.tensor(tokenizer.encode("What is my name?", add_special_tokens=True)).unsqueeze(0) # Batch size 1
start_positions = torch.tensor([1])
end_positions = torch.tensor([3])
outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
loss = outputs[0]
print(outputs)
print(loss)
根据文档。这做了一些事情:
(tensor(2.3008, grad_fn=<DivBackward0>),)
tensor(2.3008, grad_fn=<DivBackward0>)
但是,如果可能的话,我想要一个实际的答案?
感谢Joe Davison for providing the answer on Twitter:
from transformers import pipeline
qa = pipeline('question-answering')
response = qa(context='I like to eat apples, but hate bananas.',
question='What do I like?')
print(response)
给出的回应是:
{'score': 0.282511100858045, 'start': 31, 'end': 38, 'answer': 'bananas.'}
不太对,但至少分数低