14个文本转图像AI API
从预检索到生成的15种高级RAG技术(篇二)
记于2024年8月31日,深夜
今天,将继续翻译、解读、分享“从预检索到生成的15种高级RAG技术”中的第二篇,检索中的3种RAG高级技巧。
预检索即检索前的5种RAG高级技巧,可以阅读历史文章:从预检索到生成的15种高级RAG技术(篇一)
技术6:使用LLMs优化搜索查询
搜索系统在特定格式呈现搜索查询时通常能够最佳运行。LLMs是一种强大的工具,可用于为特定搜索系统定制或优化用户搜索查询。为了说明这一点,让我们看两个例子:优化简单搜索查询和对话系统的查询。
1、简单搜索查询优化
假设用户想要搜索来自example-news-site.com有关比尔·盖茨或史蒂夫·乔布斯的所有新闻文章。他们可能会在Google中输入类似以下内容:次优的Google搜索查询:关于比尔·盖茨或史蒂夫·乔布斯的文章来自example-news-siteLLMs可以被用来优化这个搜索查询内容,专门针对谷歌,利用谷歌提供的一些高级搜索功能:最佳谷歌搜索查询:“比尔·盖茨” OR “史蒂夫·乔布斯” -site:example-news-site.com这种方法适用于简单查询,但对于对话系统,我们需要提升一下水平。
2、对话式人工智能系统的搜索查询优化
上述简单搜索查询优化可以被视为一种增强,让我们发现,在对话系统中使用LLMs来优化搜索查询对于RAG至关重要。对于一个只能进行单轮交互的简单问答机器人,用户的问题可以作为搜索查询,以检索信息来增强LLM的知识。但在对话系统中情况会复杂一些。看下面的对话为例:顾客:“你们的定期存单利率是多少?”助手:“我们的利率是XYZ。”顾客:“哪张信用卡适合旅行?”助手:“XYZ信用卡因为ABC原因适合旅行。”顾客:“告诉我更多关于那张信用卡的利率。”为了回答用户的最后一个问题,很可能需要进行语义搜索,以检索关于特定XYZ旅行信用卡的信息。那么,搜索查询应该是什么?仅仅使用最后一条用户消息并不够具体,因为金融机构很可能有多种产生利息的产品。在这种情况下,语义搜索可能会产生大量潜在无关信息,这可能会淹没LLM上下文窗口中的真正相关信息。那么,将整个对话文本作为语义搜索查询呢?这可能会产生更好的结果,但它们仍然可能包含关于定期存单的信息,这与用户在对话中提出的最新问题无关。到目前为止我们发现的最佳技术是使用LLM生成给定对话作为输入的最佳搜索查询。对于上面的对话,提示如下:
const messages = [...]
const systemPrompt = `您正在检查一个顾客和Example bank聊天机器人之间的对话。查看Example bank的政策、产品或服务的文档对于聊天机器人回应顾客是必要的。请构建一个搜索查询,该查询将被用于检索相关文档,以便回应用户。`
let optimizedSearchQuery = await this.textCompletionEngine.complete(
[
{ role: ‘system’, content: systemPrompt },
{ role: ‘user’, content: stringifyChatConversation(messages) }
],
‘gpt-4’,
{
temperature: 0,
maxTokens: 100,
},
);
这种技术的一个变体是查询扩展,LLM生成多个子搜索查询。这种变体在具有混合检索系统的RAG系统中特别有用,该系统将来自具有不同结构的多个数据存储库的搜索结果结合在一起(例如,SQL数据库+单独的向量数据库)。其他提示工程技术,如后退提示和HyDE(在下一节中讨论),也可以与这种方法结合使用。
技术7:使用假设性文档嵌入(HyDE)
在信息检索中,查询-文档不对称指的是用户提出的查询与文档库中实际文档之间的语义差异。为了解决这一问题并提高检索结果的语义相似性,可以应用一种称为假设性文档嵌入(HyDE)的技术。以下是对这项技术的详细介绍:
- 问题背景:
- 在信息检索领域,查询-文档不对称性可能导致用户提出的查询与文档库中的实际文档之间存在较大的语义差距,从而影响检索结果的准确性和相关性。
- HyDE技术:
- HyDE是一种利用大型语言模型(LLMs)的技术,旨在通过在检索发生之前生成一个假设性文档或文档块来解决查询-文档不对称问题。
- 在HyDE技术中,通过向LLM提供特定的提示,要求其生成一个假设性文档或文档块,这个文档或块会回答用户提出的查询。
- 生成的假设性文档或文档块通常会被嵌入到语义搜索中,用作替代用户查询进行检索。这样做的目的是假设性文档或文档块与用户查询相比具有更高的语义相似性,从而提高检索结果的准确性和相关性。
- 应用场景:
- HyDE技术在复杂的信息检索系统中特别有用,如基于RAG(Retrieval-Augmented Generation)模型的系统,其中查询-文档不对称性对检索结果产生较大影响。
- 通过使用HyDE技术,可以在检索阶段改善语义相似性,使得检索结果更贴近用户实际需求,提高系统的性能和用户体验。
- 优势与挑战:
- 优势:HyDE技术可以帮助解决查询-文档不对称问题,提高检索结果的语义相似性,增强系统的智能和准确性。
- 挑战:在实践中,需要设计有效的提示和生成假设性文档的策略,以确保生成的文档或文档块能够有效地补充用户查询,而不是引入更多的噪声或不相关信息。
通过使用HyDE技术,可以改善信息检索系统的性能,提高检索结果的质量,使得系统更加智能和适应用户需求。
技术8:实现查询路由或RAG决策器模式
在这个技术介绍中,提到了两个关键概念:查询路由和RAG决策器模式,这些是用于增强检索系统性能和效率的先进技术。
- 查询路由:
- 查询路由是一种利用大型语言模型(LLMs)将搜索查询路由到适当数据库的技术。当一个RAG系统涉及多个数据源时,查询路由可以帮助确定应该将查询发送到哪个数据库,以获得最佳结果。
- 在查询路由中,需要预定义路由决策选项,并解析LLM的输出来做出正确的路由决策。这有助于提高系统的效率和查询结果的准确性。
1. RAG决策器模式:
- RAG决策器模式是一种用于提升RAG系统性能的技术变种。它的目标是降低成本并改善质量。
- 该模式的一个关键思想是识别出当LLM能够独立回答查询而无需外部知识时,可以避免进行完整的RAG查找。这种识别可以提高系统的效率,特别是对于简单问题或在对话历史中已经存在所需信息的情况。
2. 应用场景:
- 查询路由和RAG决策器模式适用于那些需要处理多个数据源并希望提高检索效率和准确性的系统。
- 通过合理使用这些技术,系统可以更智能地决定何时进行全面的RAG查找,何时可以直接回答查询,从而提高系统的响应速度和用户体验。
3. 优势与挑战:
- 优势:查询路由和RAG决策器模式可以帮助提高系统的效率、降低成本,并加强查询结果的准确性。
- 挑战:在实践中,需要精心设计路由决策选项和决策逻辑,以确保系统能够正确地判断何时应用RAG查找,何时可以直接回答查询。
通过实现查询路由和采用RAG决策器模式,可以使检索系统更加智能和高效,提升用户体验,并为系统的运行和维护带来更多便利。
后记
以上就是检索中可用的3种高级RAG技巧。
预检索即检索前的5种RAG高级技巧,可以阅读历史文章:从预检索到生成的15种高级RAG技术(篇一)
明天我们将继续分享:检索后的3种RAG高级技巧。
敬请期待…
AI智能时代,我们更需要成为一个独立思考、独一无二的个体。持续学习,遇见不一样的自己。
文章转自微信公众号@耳东观察