四、Query变换
查询转换是一种利用大型语言模型(LLM)来优化和改进用户输入的技术,目的是提高检索系统的质量和效率。
(1)子查询分解:
- 当用户提出一个复杂的问题时,LLM可以将这个问题分解为几个更简单的子查询。
例如,问题“在Github上Langchain 或 LlamaIndex 上哪个有更多颗星?”可以分解为“Langchain 在 Github 上有多少颗星?”和“LlamaIndex 在 Github 上有多少颗星?”。
(2)并行执行:
- 这些子查询可以并行执行,以提高效率。
- 检索到的结果将组合在一起,形成一个提示语,供LLM用来合成对初始查询的最终答案。
(3)后退提示(Step-back prompting):
- 这种方法使用LLM生成一个更一般的查询,以便检索到更广泛或更高层次的上下文。
- 原始查询和后退提示的检索结果将一起提供给LLM,以便在生成最终答案时建立在更广泛的上下文上。
(4)Query重写:
- 使用LLM重新制定初始查询,目的是提高检索效率。
- LangChain和LlamaIndex都有实现Query重写的技术,但LlamaIndex的实现可能更为强大。
(5)多源答案生成:
- 当需要从多个来源生成答案时,可能是因为初始查询的复杂性,需要执行多个子查询,然后将检索到的上下文合并到一个答案中。
- 另一种情况是在多个文档中发现了单个查询的相关上下文,能够准确地反向引用。
(6)引用任务:
- 可以将引用任务插入到提示语中,并要求LLM提供所使用源的ID。然后,生成的响应部分与索引中的原始文本块匹配,LlamaIndex为这种情况提供了一种有效的基于模糊匹配的解决方案。
这些技术通过利用LLM的强大能力,可以显著提高检索系统的性能,确保用户能够获得更准确和更相关的信息。
五、聊天引擎
聊天引擎是构建交互式文本检索系统的关键部分,特别是在需要处理复杂对话和上下文的情况下。
构建一个可以在单个查询中多次运行RAG系统的一个重要特性是聊天逻辑。
(1)聊天逻辑
- 聊天引擎需要能够处理对话上下文,类似于传统的聊天机器人。这使得系统能够理解和处理后续问题、重复指代以及与之前对话相关的任意用户命令。
(2)查询压缩技术
- 这些技术考虑了聊天上下文和用户查询,以便在生成答案时能够充分利用这些信息。查询压缩有助于减少信息的冗余,并确保对话的连贯性。
(3)ContextChatEngine:
- 这是一个实现上下文压缩的方法,它首先检索与用户查询相关的上下文。然后,将这些上下文信息连同聊天历史从缓存中发送给LLM(大型语言模型),以便在生成下一个答案时能够考虑到前一个上下文。
(4)CondensePlusContextMode
- 这是一种更复杂的实现方式,它在每次交互中将聊天历史记录和最后一条消息压缩成一个新的查询。
这个新查询被发送到索引中进行检索,检索到的上下文信息被传递给LLM,同时连同原始用户消息一起生成答案。
(5)检索上下文:
- 在CondensePlusContextMode中,检索到的上下文信息是关键,因为它提供了对话的背景和相关信息。
这些信息帮助LLM更准确地理解用户的需求,并生成相关的答案。
这些方法的实现可能涉及到复杂的算法和模型,需要对LLM进行适当的训练和调整,以确保它们能够有效地处理对话上下文。
通过这些技术,可以构建一个能够理解和响应复杂对话的系统,提供更自然和更准确的交互体验。这对于需要处理大量用户输入和复杂查询的应用场景尤为重要。
六、Query 路由
Query路是大型语言模型(LLM)驱动的决策过程,它根据用户查询来决定接下来的行动。
(1)路由选项:
路由的选项可能包括对文档进行总结、在特定的数据索引上执行搜索,或者尝试多种不同的路由方法,并在最终答案中综合它们的输出。
(2)索引选择:
- Query路由还可以决定将用户查询发送到哪个索引或数据存储,例如向量存储、图形数据库、关系数据库等。
(3)多文档存储:
对于多文档存储的情况,Query路由可能涉及到选择使用摘要索引还是文档块向量索引。
(4)路由决策过程:
- 路由的决策是通过LLM的调用来执行的,LLM以预定义的格式返回结果,指导如何将查询路由到特定的索引。
(5)代理方式:
- 如果采用代理方式,Query路由可以将查询路由到子链或其他代理,这在多文档代理方案中很常见。
(6)LlamaIndex和LangChain的支持:
- LlamaIndex和LangChain都支持Query路由功能,允许系统根据用户查询和上下文来智能地选择最佳的处理路径。
(7)Query路由的重要性:
- Query路由对于构建高效的检索系统至关重要,因为它可以确保用户查询被正确地引导到最合适的处理流程。
(8)灵活性和可扩展性:
- Query路由提供了系统的灵活性和可扩展性,允许随着系统的发展和用户需求的变化,轻松地添加或修改路由规则。
(9)智能决策:
- 通过LLM的智能决策,Query路由可以提高检索系统的准确性和效率,为用户提供更准确和更个性化的答案。
Query路由是构建复杂检索系统的关键组件,它通过智能地选择最佳的处理路径,提高了系统的响应能力和用户满意度。
七、RAG中的智能体Agent
智能体Agent几乎自第一个 LLM API 发布以来就一直存在,其想法是为一个能够推理的 LLM 提供一套工具以及需要完成的任务。
(1)工具的集成:
- 这些工具可能包括确定性函数,如代码函数、外部API调用,甚至是其他代理。
(2)LangChain的起源:
- LangChain的概念部分源自于LLM链接的思想,即将多个LLM或代理链接在一起以实现更高级的功能。
(3)OpenAI助手和函数调用API:
- OpenAI助手提供了许多围绕LLM所需的工具,其中最重要的是函数调用API,它允许将自然语言转换为对外部工具或数据库的API调用。
(4)LlamaIndex中的OpenAIAgent:
- 在LlamaIndex中,OpenAIAgent类结合了高级逻辑、ChatEngine和QueryEngine,提供了基于知识和上下文感知的聊天功能,以及一次性调用多个OpenAI函数的能力。
(5)多文档代理方案:
- 在多文档代理方案中,每个文档都初始化一个代理(OpenAIAgent),负责文档摘要和QA机制。
存在一个顶层总代理,负责查询路由和最终答案的合成。
(6)文档代理的工具:
- 每个文档代理都配备了两个工具:向量存储索引和摘要索引,根据路由查询的需求决定使用哪个工具。
(7)路由决策:
- 在这种架构中,每个相关的代理都会进行大量的路由决策,以确定最佳的处理路径。
(8)方案的优势:
- 这种方法允许比较不同的解决方案或实体,这些可能在不同的文档及其摘要中有所描述,提供了一种全面的与文档集交互的方式。
(9)性能和可伸缩性:
- 由于内部使用了多次LLM迭代,该方案可能速度较慢。为了优化速度,LLM调用通过RAG流水线中最长的搜索操作进行优化。
- 对于大型多文档存储,可能需要对方案进行简化,以提高可伸缩性。
智能体Agent展示了如何将LLM与外部工具和数据源相结合,以创建能够执行复杂任务和推理的智能系统。这种集成方法为构建高级的、交互式的和可扩展的检索系统提供了基础。
八、响应合成
响应合成是RAG流水线的最后一步,它涉及到根据检索到的上下文和用户的初始查询生成最终答案。
响应合成的主要方法有:
-
最简单的响应合成方法是将所有检索到的、高于某个相关性阈值的上下文与用户查询一起连接,然后提供给LLM。
-
一种更复杂的方法是逐块向LLM发送检索到的上下文,以迭代地细化答案。这允许LLM逐步构建和改进答案。
-
另一种方法是对检索到的上下文进行总结,以适应LLM的提示限制。这有助于确保提供给LLM的信息既相关又简洁。
-
根据不同的上下文块生成多个答案,然后通过连接或总结这些答案来生成最终的响应。这种方法可以提供更全面的答案。
响应合成的目标是综合所有检索到的信息,生成一个准确、全面且对用户有用的答案。
最后
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!
一、大模型全套的学习路线
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
达到L4级别也就意味着你具备了在大多数技术岗位上胜任的能力,想要达到顶尖水平,可能还需要更多的专业技能和实战经验。
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、大模型经典PDF书籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人在大模型时代,需要不断提升自己的技术和认知水平,同时还需要具备责任感和伦理意识,为人工智能的健康发展贡献力量。
有需要全套的AI大模型学习资源的小伙伴,可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费
】
如有侵权,请联系删除。