问答模型可以从给定文本中检索问题的答案,这对于在文档中搜索答案很有用。一些问答模型可以在没有上下文的情况下生成答案!
常见问题解答:
可以使用问答 (QA) 模型通过使用知识库(文档)作为上下文来自动回答常见问题。客户问题的答案可以从这些文件中得出。
如果您想节省推理时间,您可以首先使用段落排名模型来查看哪个文档可能包含问题的答案,然后使用 QA 模型迭代该文档。
基于输入和输出有不同的 QA 变体:
1.抽取式 QA(Extractive QA):模型从上下文中抽取答案。这里的上下文可以是提供的文本、表格甚至 HTML!这通常用类似 BERT 的模型来解决。
2. 开放式生成 QA(Open Generative QA):模型直接根据上下文生成自由文本。您可以在其页面中了解有关文本生成任务的更多信息。
3.封闭式生成 QA(Closed Generative QA):在这种情况下,不提供上下文。答案完全由模型生成。
上面的模式说明了抽取式的开放式 QA。该模型采用上下文和问题,并从给定的上下文中提取答案。
您还可以根据它们是开放域还是封闭域来区分 QA 模型。开放域模型不限于特定领域,而封闭域模型仅限于特定领域(例如法律、医学文档)。
Inference
您可以使用问答管道通过 Transformers 库推断 QA 模型。如果没有给出模型检查点,则管道将使用 distilbert-base-cased-distilled-squad 进行初始化。这个管道接受一个问题和一个上下文,从中提取和返回答案。
from transformers import pipeline
qa_model = pipeline("question-answering")
question = "Where do I live?"
context = "My name is Merve and I live in İstanbul."
qa_model(question = question, context = context)
## {'answer': 'İstanbul', 'end': 39, 'score': 0.953, 'start': 31}
Would you like to learn more about QA? Awesome! Here are some curated resources that you may find helpful!