作者 | Chetna Khanna 编译 | VK
每当我想到一个问答系统,我脑海中浮现的第一件事就是教室——一个老师回答一个或几个学生举手提出的问题。
也就是说,回答问题对人类来说是一项微不足道的任务,但对机器来说却并非如此微不足道。要回答任何问题,机器都需要克服许多不同的挑战,如词汇空缺、共指消解、语言歧义等。
为此,机器需要大量的训练数据和智能体系结构来理解和存储文本中的重要信息。NLP的最新进展已经开启了机器理解文本和执行不同任务的能力。
在本文中,我们将共同研究一个问答系统。我们将使用一个已经从HuggingFace Transformers库微调Bert模型来回答问题,从CoQA数据集的基础上。
我确信,通过查看代码,你将认识到为我们的目的使用微调模型是多么容易。
注意:本文将不深入讨论BERT体系结构的细节。但是,如果需要或可能,我将提供一个解释。
文章中使用的版本:torch-1.7.1,transformers-4.4.2
让我们首先回答与本文相关的几个重要问题。
什么是 Hugging Face 和 Transformers ?
Hugging Face是自然语言处理(NLP)技术的开源提供商。
你可以使用最先进的模型来构建、训练和部署你自己的模型。Transformers是他们的NLP库。
我强烈建议你去看看Hugging Face团队所做的惊人工作,以及他们大量的预训练过的NLP模型。
什么是CoQA?
CoQA是斯坦福NLP于2019年发布的会话问答数据集,是构建会话问答系统的大型数据集。
这个数据集的目的是测量机器理解一段文字和回答对话中出现的一系列相互关联的问题的能力。这个数据集的独特之处在于,他们是问答的形式,因此,这些问题是对话性的。
要了解JSON数据的格式,请参考此链接:http://downloads.cs.stanford.edu/nlp/data/coqa/coqa-train-v1.0.json。我们将使用JSON数据集中的故事、问题和答案来形成我们的数据框架。
Bert是什么?