本文我们将运用 Transformers 库来完成抽取式问答任务。自动问答 (Question Answering, QA) 是经典的 NLP 任务,需要模型基于给定的上下文回答问题。
根据回答方式的不同可以分为:
- **抽取式 (extractive) 问答:**从上下文中截取片段作为回答,类似于我们前面介绍的序列标注任务;
- **生成式 (generative) 问答:**生成一个文本片段作为回答,类似于我们前面介绍的翻译和摘要任务。
抽取式问答模型通常采用纯 Encoder 框架(例如 BERT),它更适用于处理事实性问题,例如“谁发明了 Transformer 架构?”,这些问题的答案通常就包含在上下文中;而生成式问答模型则通常采用 Encoder-Decoder 框架(例如 T5、BART),它更适用于处理开放式问题,例如“天空为什么是蓝色的?”,这些问题的答案通常需要结合上下文语义再进行抽象表达。
本文我们将微调一个 BERT 模型来完成抽取式问答任务:对于给定的问题,从上下文中抽取出概率最大的文本片段作为答案。
如果你对生成式问答感兴趣,可以参考 Huggin