微信扫码
与创始人交个朋友
我要投稿
介绍
近年来,问题回答应用已经大量涌现。它们无处不在:在现代搜索引擎、聊天机器人中,或者在那些简单地从大量主题数据中检索相关信息的应用程序中都能找到它们的身影。
顾名思义,QA应用的目标是在一段文本中找到给定问题的最合适答案。一些最初的方法包括通过关键词或正则表达式进行简单搜索。显然,这些方法并不理想:一个问题或文本可能包含打字错误。此外,正则表达式无法检测同义词,这对于查询中的某个单词来说可能非常重要。因此,这些方法被新的健壮方法所取代,特别是在Transformers和向量数据库的时代。
本文涵盖了构建现代且可扩展的QA应用的三种主要设计方法。
抽取式问答
抽取式问答系统由三个组件组成:
检索器
数据库
阅读器
首先,问题被输入到检索器中。检索器的目标是返回一个与问题相对应的嵌入向量。检索器的实现方式有多种,从简单的向量化方法如TF-IDF、BM-25,到更复杂的模型都有。大多数情况下,类似Transformer的模型(如BERT)会被集成到检索器中。与仅依赖于词频的简单方法不同,语言模型可以构建密集的嵌入向量,这些向量能够捕捉文本的语义含义。
在从问题中得到一个查询向量后,它随后被用来在外部文档集合中找到最相似的向量。每个文档都有一定的可能性包含问题的答案。通常情况下,文档集合会在训练阶段进行处理,通过将其传递给检索器来输出对应的文档嵌入向量。然后,这些嵌入向量通常会存储在一个数据库中,该数据库可以进行有效的搜索。
在问答系统中,向量数据库通常扮演着在嵌入向量之间基于其相似性进行高效存储和搜索的组件角色。最受欢迎的向量数据库是Faiss、Pinecone和Chroma。
如果您想更好地了解向量数据库的内部工作原理,那么我推荐您查看我的关于相似性搜索的文章系列,在那里我深入讨论了最受欢迎的算法。
通过检索与查询向量最相似的k个数据库向量,它们原始的文本表示被用来通过另一个称为阅读器的组件来查找答案。阅读器接收一个初始问题,并对每个检索到的k个文档,它在文本段落中提取答案并返回这个答案正确的概率。然后,具有最高概率的答案最终从抽取式问答系统中返回。
专门用于问答下游任务的微调过的大语言模型通常被用作阅读器的角色。
开放生成式问答
开放生成式问答遵循与抽取式问答完全相同的框架,除了它们使用生成器而不是阅读器这一事实。与阅读器不同,生成器不是从文本段落中提取答案。相反,答案是根据问题和文本段落中提供的信息生成的。就像在抽取式问答的情况下一样,具有最高概率的答案被选为最终答案。
正如名称所示,开放生成式问答系统通常使用像GPT这样的生成模型来生成答案。
由于结构非常相似,人们可能会问何时使用抽取式或开放生成式架构更好。事实证明,当阅读器模型可以直接访问包含相关信息的文本段落时,它通常足够智能以检索到精确且简洁的答案。另一方面,大多数情况下,生成模型倾向于为给定的上下文产生更长且更通用的信息。在问题以开放式形式提出的情况下,这可能是有益的,但当期望得到简短或确切的答案时,这可能不太适合。
检索增强生成
最近,“检索增强生成”或“RAG”这一术语在机器学习中的流行度急剧上升。简单来说,它是一种基于开放生成式问答系统构建LLM(大型语言模型)应用的框架。
在某些情况下,如果一个LLM应用涉及多个知识领域,RAG检索器可以增加一个补充步骤,在该步骤中,它将尝试识别与给定查询最相关的知识领域。根据识别出的领域,检索器随后可以执行不同的操作。例如,可以使用几个各自对应特定领域的向量数据库。当查询属于某个特定领域时,该领域的向量数据库随后被用来检索与查询最相关的信息。
这种技术使得搜索过程更快,因为我们只搜索特定的文档子集(而不是所有文档)。此外,它可以使搜索更可靠,因为最终检索的上下文是由更相关的文档构建的。
封闭生成式问答
封闭生成式问答系统无法访问任何外部信息,仅利用问题中的信息来生成答案。
封闭生成式问答系统的明显优势是减少了流水线时间,因为我们不必搜索大量外部文档。但这是以训练和准确性为代价的:生成器必须足够强大并且拥有大量的训练知识,才能生成合适的答案。
封闭生成式问答流水线还有另一个缺点:生成器不知道在其训练数据之后出现的任何信息。为了解决这个问题,可以在更新的数据集上重新训练生成器。然而,生成器通常有数百万或数十亿个参数,因此训练它们是一项极其资源密集型的任务。相比之下,用抽取式问答和开放生成式问答系统处理相同的问题要简单得多:只需将新的上下文数据添加到向量数据库中即可。
大多数时候,封闭生成式方法被用于通用问题的应用中。对于非常特定的领域,封闭生成模型的性能往往会下降。
结论
在本文中,我们探讨了构建问答系统的三种主要方法。它们之间没有绝对的赢家:每种方法都有自己的优缺点。因此,首先需要分析输入的问题,然后选择正确的问答架构类型,以便产生更好的性能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-05-28
2024-04-12
2024-04-25
2024-05-14
2024-07-18
2024-08-13
2024-04-26