Hugging Face——QA

问答模型可以从给定文本中检索问题的答案,这对于在文档中搜索答案很有用。一些问答模型可以在没有上下文的情况下生成答案!

使用场景:

常见问题解答:

可以使用问答 (QA) 模型通过使用知识库(文档)作为上下文来自动回答常见问题。客户问题的答案可以从这些文件中得出。

如果您想节省推理时间,您可以首先使用段落排名模型来查看哪个文档可能包含问题的答案,然后使用 QA 模型迭代该文档。

任务变体

基于输入和输出有不同的 QA 变体:

1.抽取式 QAExtractive QA):模型从上下文中抽取答案。这里的上下文可以是提供的文本、表格甚至 HTML!这通常用类似 BERT 的模型来解决。

2. 开放式生成 QAOpen Generative QA):模型直接根据上下文生成自由文本。您可以在其页面中了解有关文本生成任务的更多信息。

3.封闭式生成 QAClosed 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}

Useful Resources

Would you like to learn more about QA? Awesome! Here are some curated resources that you may find helpful!

  • Course Chapter on Question Answering
  • Question Answering Workshop
  • How to Build an Open-Domain Question Answering System?
  • Blog Post: ELI5 A Model for Open Domain Long Form Question Answering

Notebooks

  • PyTorch
  • TensorFlow

Scripts for training

  • PyTorch
  • TensorFlow
  • Flax

你可能感兴趣的:(QA专栏,自然语言处理,人工智能,nlp)