在近几年中,问答回答(QA)应用的快速开展彻底改变了咱们获取信息的办法。无论是在查找引擎、聊天机器人,仍是在从很多主题数据中检索相关信息的应用程序中,QA应用的身影无处不在。
简而言之,QA应用的首要目的是在文本阶段中找到对特定问题最合适的答案。早期的一些办法包括依据关键词的简略查找或运用正则表达式,但很明显,这些办法并不理想。问题或文本或许包括打字错误,而正则表达式无法识别近义词,这关于查询中的某个词来说或许十分关键。因而,这些早期办法被新的、更为强壮的办法所替代,特别是在Transformers和向量数据库时代。
本文将介绍构建现代且可扩展QA应用的三种首要规划办法:
抽取式问答 | 开放式生成问答 | 封闭式生成问答 | |
外部上下文的运用 | √ | √ | |
答案获取办法 | 抽取 | 生成 | 生成 |
一:抽取式问答
抽取式问答体系由三个中心部件构成:检索模块、数据库、解析模块。
问题输入到检索模块。检索模块的方针是生成与问题相对应的嵌入向量。检索模块的实现办法多样,从简略的向量化办法(如TF-IDF、BM-25)到更杂乱的模型都有。一般,类似于Transformer的模型(例如BERT)会被整合进检索模块。与仅依赖于词频的简略办法不同,言语模型能构建出能够捕捉文本语义含义的密布嵌入向量。
在从问题中获取到查询向量后,该向量被用来在一个外部文档调集中找到最类似的向量。每个文档都或许包括问题的答案。一般,在练习阶段,文档调集会被传递给检索模块,检索模块输出文档对应的嵌入向量。这些嵌入向量一般存储在数据库中,以便进行有用的查找。
在问答体系中,向量数据库一般扮演着高效存储和依据类似性查找嵌入向量的角色。最盛行的向量数据库包括Faiss、Pinecone和Chroma。
经过检索与查询向量最类似的_k_个数据库向量,它们的原始文本表示被用来经过另一个称为_解析模块_的组件找到答案。解析模块接收初始问题,并对每个检索到的文档中的文本阶段提取答案,并回来这个答案正确的概率。然后,概率最高的答案终究被抽取式问答体系回来。
在解析模块的角色中,一般运用经过微调、专门用于问答下流使命的大型言语模型。
二、开放式生成问答
开放式生成问答(Open Generative QA)与抽取式问答(Extractive QA)采用了类似的框架,不同之处在于它运用了内容生成模块而非信息解析组件。与信息解析组件不同,内容生成器并不从文本阶段中直接提取答案。相反,答案是依据问题和文本阶段中供给的信息生成的。与抽取式问答相同,挑选概率最高的答案作为终究答案。
正如其称号所示,开放式生成问答体系一般运用像GPT这样的生成模型来生成答案。
由于两种架构结构十分类似,人们或许会疑问何时运用抽取式问答和何时运用开放式生成问答架构更为合适。事实证明,当信息解析组件能够直接拜访包括相关信息的文本阶段时,它一般能够检索到准确且简练的答案。另一方面,生成模型在大多数状况下倾向于为给定上下文发生更长、更泛化的信息。在提出开放式问题的状况下,这或许是有利的,但关于等待简略或确切答案的状况则否则。
三、检索增强式生成
最近,“检索增强式生成”(Retrieval-Augmented Generation,简称“RAG”)这一术语在机器学习范畴的盛行度急剧上升。简略来说,它是一个依据开放式生成问答体系架构的大型言语模型(LLM)应用创立框架。
在某些状况下,如果一个LLM应用需要处理多个常识范畴,RAG检索器能够添加一个额定步骤,企图确定给定查询最相关的常识范畴。依据识别出的范畴,检索模块随后能够执行不同的操作。例如,能够运用多个向量数据库,每个数据库对应一个特定范畴。当查询属于某一范畴时,就运用该范畴的向量数据库来检索查询最相关的信息。
这种技能使查找过程更快,由于咱们只经过特定的文档子集进行查找(而不是一切文档)。此外,它能够使查找更可靠,由于终究检索到的上下文是从更相关的文档中构建的。
RAG流程示例:检索模块从给定问题中构建一个嵌入向量。然后,运用这个嵌入向量将问题分类到某一运动类别中。关于每种类型的运动,相应的向量数据库被用来检索最类似的上下文。问题和检索到的上下文被输入到生成器中以发生答案。如果问题与运动无关,则RAG应用会通知用户。
四、封闭式生成问答
封闭式生成问答(Closed Generative QA)体系独特之处在于,它们仅利用问题中的信息生成答案,而不接触任何外部信息。
这种体系的一个显著长处是,由于无需查找很多外部文档,因而能够缩短处理时间。然而,这种便利是有价值的,首要体现在练习和准确性上:生成器需要满足强壮,具有广泛的练习常识库,以便能够生成恰当的答案。
此外,封闭式生成QA体系还面对另一个问题:生成器无法识别练习数据后期呈现的新信息。为了处理这个问题,能够经过在更新更近的数据集上重新练习生成器来实现。可是,考虑到生成器一般包括数百万甚至数十亿参数,重新练习不仅消耗巨大资源,也是一个极端繁重的使命。相比之下,处理相同问题在抽取式问答(Extractive QA)和开放式生成问答(Open Generative QA)体系中就简略多了:只需向向量数据库中添加新的上下文数据即可。
在大多数状况下,封闭式生成办法首要应用于处理通用问题。而在十分特定的范畴,封闭式生成模型的功能往往会下降。经过将杂乱的概念简化,咱们能够更直接地了解封闭式生成问答体系的作业原理、长处和面对的挑战。
五、总结
前面介绍了构建问答(QA)体系的三种中心办法。重要的是,没有一个办法能够称之为绝对的最佳挑选:每种办法都有其独特的长处和局限性。因而,在挑选合适的QA体系架构之前,首先需要对问题进行深入分析,以保证所选架构能够供给更优的功能。
值得一提的是,开放式生成问答(Open Generative QA)架构现在在机器学习范畴内备受重视,尤其是随着最近呈现的创新性检索增强生成(RAG)技能。如果你是一名自然言语处理(NLP)工程师,那么你绝对应该亲近重视RAG体系,由于它们现在正以极快的速度开展。