对话式搜索简明教程
生成式 AI 和大型语言模型 (LLM) 实现的最令人兴奋的模式之一是对话式搜索。 在这篇文章中,我将介绍你为什么需要对话式搜索、它是如何工作的以及这种搜索模式有哪些限制和变体。
1、为什么需要对话式搜索
您希望能够从您控制的知识库中回答问题吗? 您是否有可以回答您所在领域的问题的文档? 是否不可能从您的知识库中列举出您希望能够回答的所有问题? 如果您对这些问题中的任何一个回答“是”,那么对话式搜索可能适合您。
简而言之,对话式搜索可以对您的文档进行任意问题和答案。 它使用您的文档来查找与给定问题相关的内容,并使用大型语言模型从相关内容生成文本。 问题和生成的答案都不逐字存在于您的知识库中。 生成的答案仍然基于您的知识库。 用户以对话方式提出问题,答案基于知识库搜索,因此我们称之为对话式搜索。
有些人将这种方法称为检索增强生成(RAG)。 系统执行以下操作:给定此上下文(从搜索查询中检索),回答此问题(使用生成的文本增强搜索结果)。
这是对传统搜索的改进,传统搜索给出的是一段话,而不是答案。 例如,我根据我自己和 Marco Noel 撰写的关于语音定制主题的文章训练了一个会话搜索系统。 下面是图 1 中的示例:
传统搜索返回文档中的一段内容。 该段落是与问题非常相关的文档中的关键字匹配。 在传统搜索中,用户可以单击文档并最终找到答案。 在对话式搜索中,系统直接返回答案。 对话式搜索的答案太棒了! 它源自知识库,下面来自开发人员工具的图 2 显示了使用哪些文档来构建答案。 提出问题的用户还可以获得文档的链接来验证答案。
众所周知,LLM会通过给出自信但不合理的答案来产生幻觉。 许多LLM都是“在互联网上接受训练的”。 如果您从互联网上获取一个平均片段,您会相信它吗? 然而,会话搜索可以通过首先要求答案的很大一部分直接来自知识库,然后在无法使用知识库时回答“我不知道”来减轻幻觉。 其他缓解措施也是可能的,并且可能需要根据您的LLM进行。 如上图所示,对话式搜索可以提供证据,帮助您决定是否信任其答案。
在文档集合上使用生成式人工智能比针对您可以枚举的问题编写常见问题解答脚本或静态聊天机器人更容易。 它生成答案,而不是段落,因此它对用户来说比搜索更有用。 最后,它可以为生成的答案提供出处,为您提供值得信赖的响应。
2、对话式搜索的工作原理
传统搜索的流程是“用户查询”->“知识库搜索”->“返回相关段落”。
在会话式搜索中,流程是“用户查询”->“知识库搜索加LLM”->“返回答案(带证据)”。
我们已经了解了纯粹的“知识库搜索”是如何工作的。 纯粹的LLM是当你将查询发送到像 ChatGPT 这样的界面时,它会根据自己的知识库(它是训练数据)而不是你的知识库来回答问题。 神奇的事情发生在“知识库搜索加LLM”的结合中。 关键步骤如下图3所示。 假设用户问一个问题“我该怎么做 X?”
对话式搜索从传统搜索开始,但将搜索结果输入到大型语言模型中。 LLM使用精心设计的提示,其中包括知识库中的上下文。 此提示指示LLM生成答案,但将答案限制在知识库中。 显示的提示是说明性的 - 您的聊天平台提供商可能会添加其他说明,例如告诉LLM何时说“我不知道”。
对话式搜索的美妙之处在于,大部分工作都落在聊天平台提供商身上。
聊天解决方案构建者只需要:
- 提供相关文档(或知识库API 的链接)。
- 配置与 LLM 的连接。
聊天平台提供商做了更繁重的工作:
- 托管LLM。
- 提示工程构建最高效的提示。 LLM对提示的大小有严格的限制,导致需要权衡。 应包含多少搜索结果? 其他提示说明需要详细到什么程度?
- 可能会与提示工程一起调整知识库 API 调用,以检索相关且简洁的包。
我在不到一个小时的时间内为自己建立了一个演示对话搜索,其中包括建立我的知识库!
在图 3 中,我们看到了会话式搜索如何回答用户的初始问题。 这种模式也可以在用户提出后续问题的来回对话中发挥作用。 后续问题如图 4 所示。
同样,对话平台完成了大部分工作。
对话式搜索令人兴奋,因为每个企业都有一个知识库,而对话式搜索可以轻松解锁该知识库! 我预计会话搜索将在几年内成为知识库的新基线期望。 用户会喜欢有证据支持的答案; 知识库所有者会喜欢从其内容中获得的增加的价值。
3、对话式搜索有哪些限制和变化
会话式搜索仍处于起步阶段。 大规模实施面临一些挑战,并且基本主题存在多种变化。
- 挑战#1:价格昂贵。
会话搜索背后的大型语言模型的计算成本很高,在专用硬件上运行,并且需要专门的技能来调整。
大型人工智能公司拥有大部分LLM,我预计大多数企业会购买而不是构建。 对 LLM 的 API 调用通常比大多数知识库搜索 API 昂贵得多。
一种变体是使用对话式搜索作为后备选项。 您可以为最常见的问题(“短尾”或“80/20”中的“80”)构建传统/静态问答聊天机器人,并回退到对话式搜索以解决任何未预先编程的问题(“长尾”) 。 您可以将静态问答视为缓存。 在此模式中,您可以使用 LLM 一次性生成常见问题的答案并将其存储在静态聊天机器人中。
- 挑战#2:模型由谁托管?
如上所述,这些模型很昂贵。 许多模型提供商通过保留发送到其模型的请求以用作未来的训练数据来抵消这一成本。 您的企业可以将他们的问题和知识库内容发送给第三方吗? 我预计企业会要求选择使用LLM来保护其机密数据。
- 挑战#3:这种模式只是问答,还不是事务性的
对话式搜索可以为用户问题生成出色的答案。 我看到了“如何开设账户”、“如何重置密码”等问题的精彩答案。 为用户开设帐户或重置密码不是很好吗? 这是显而易见的下一步,我想我们很快就会看到它来自平台提供商。 企业需要一个可以与其 API 集成来完成任务的解决方案。
- 变体 #1:搜索 API
基本的会话式搜索架构可以使用几乎任何搜索 API。 接收文本查询并返回文档和/或段落的传统搜索 API 无处不在。 对话式搜索受搜索 API 的支配,返回高度相关的内容以输入到 LLM 提示中。 LLM 提示空间非常宝贵,搜索相关性的微小改进可以带来更好的答案。 一种变体是使用向量嵌入,而不是搜索 API 的传统“倒置索引”。
向量嵌入对单词之间的语义关系进行编码,从而可以更深入地理解用户的问题以及知识库中的文档。 传统的搜索方法更接近基于关键词。 图 1 中的传统搜索返回的结果与关键字相关,但不足以回答问题。 现有的搜索 API 很简单; 向量嵌入可以给出更好的答案。
- 变体#2:向 LLM 传递更多背景信息
这篇文章中的示例 LLM 提示是通用的,适用于任何对话。 提示可以通过附加上下文(例如用户配置文件)进一步增强。 可以指示LLM“用户是黄金会员”、“用户是成年人”或“用户位于”。 我希望聊天平台提供商能够提供一种方法来做到这一点,尽管这需要一些工作才能使解决方案构建者轻松集成。
4、结束语
对话式搜索是一种令人兴奋的模式,易于设置且前景广阔。 我希望这篇文章对您理解该模式有所帮助。 写这篇文章帮助我巩固了我的观点!
原文链接:Conversational Search with Generative AI
BimAnt翻译整理,转载请标明出处