AI实践与学习6-RAG流程优化学习

2024-06-15 1491阅读

背景

RAG流程很多细节优化点,助力AIGC。

内容

LangChain在RAG功能上的一些能力

多路向量检索

多向量检索器的核心想法是将我们想要用于答案合成的文档与我们想要用于检索的参考文献分开。这允许系统为搜索优化文档的版本(例如,摘要)而不失去答案合成时的上下文。

考虑一个冗长的文档。我们可以为该文档创建一个摘要,该摘要经过优化以进行基于向量的相似性搜索。但当需要生成答案时,我们仍然可以将完整的文档传递给LLM,确保在答案合成过程中不会丢失任何上下文。

查询转换

查询转换的核心思想是,用户的原始查询可能不总是最适合检索的,所以我们需要某种方式来改进或扩展它。利用LLM的能力优化和改进用户问题,从而提高检索的效果和满足用户的需求。

https://www.datalearner.com/blog/1051698375259477

如文档块可能包含与检索无关的内容,用户问题可能表述不佳,或可能需要从用户问题中生成结构化查询。

具体来说包括:

  1. 内容的不相关性:传统的检索方法可能会返回含有与问题不相关的内容的文档块。这可能会降低检索的质量,因为返回的内容可能不完全符合用户的期望。
  2. 用户问题的表述问题:用户提出的问题可能表述不清或用词不准确,这可能导致检索系统无法准确地理解其意图并返回相关的答案。
  3. 复杂的查询需求:有时,用户的问题可能需要转换为更复杂的结构化查询,例如用于带有元数据过滤的向量存储或SQL数据库的查询。

为了解决上述问题,查询转换(Query Transformations)的方案利用了大型语言模型(LLM)的强大能力,通过某种提示或方法将原始的用户问题转换或重写为更合适的、能够更准确地返回所需结果的查询。LLM的能力确保了转换后的查询更有可能从文档或数据中获取相关和准确的答案。

重写-检索-阅读
提供一个更好的搜索查询,以便网络搜索引擎回答给定的问题,并以“**”结束查询。
问题 {x} 
答案:
demo

// TODO

退后提示

目的:生成一个“退后”的问题,在使用检索时,将同时使用“退后”问题和原始问题进行检索,然后使用这两个结果来支持语言模型的响应。后退问题是从原始问题派生出来的、抽象层次更高的问题。

例如,原始问题是“Estella Leopold在特定时期去了哪所学校”,这个可能很难回答。但如果不是直接询问”Estella Leopold在特定时期去了哪所学校”,我们文一个后退问题会询问她的”教育历史”。这个更高层次的问题涵盖了原始问题的所有信息。很容易得到答案。

You are an expert of world knowledge. I am going to ask you a question. Your response should be comprehensive and not contradicted with the following context if they are relevant. Otherwise, ignore them if they are not relevant.
{normal_context}
{step_back_context}
Original Question: {question}
Answer:
您是世界知识的专家。我要问你一个问题。如果相关的话,您的回答应该是全面的,并且不与以下上下文相矛盾。否则,如果它们不相关,请忽略它们。
{正常上下文检索内容}
{会退问题上下文检索内容}
原始问题:{问题}
回答:
demo

// TODO

高级RAG

优化点

  • Query理解(Query NLU):使用LLM作为基础引擎来重写用户Query以提高检索质量,涉及Query意图识别、消歧、分解、抽象等
  • Query路由(Query Routing):查询路由是LLM支持的决策步骤,根据给定的用户查询下一步该做什么
  • 索引(Indexing):是当前RAG中比较核心的模块,包括文档解析(5种工具)、文档切块(5类)、嵌入模型(6类)、索引类型(3类)等内容
  • Query检索(Query Retrieval):重点关注除典型RAG的向量检索之外的图谱与关系数据库检索(NL2SQL)
  • 重排(Rerank):来自不同检索策略的结果往往需要重排对齐,包括重排器类型(5种),自训练领域重排器等
  • 生成(Generation):实际企业落地会遇到生成重复、幻觉、通顺、美化、溯源等问题,涉及到RLHF、偏好打分器、溯源SFT、Self-RAG等等
  • 评估与框架:RAG需要有全链路的评价体系,作为RAG企业上线与迭代的依据

    Agentic RAG

    最终,大模型RAG问答终章是Agentic RAG!

    向Lv2-智能体提出一个问题。
    while (Lv2-智能体无法根据其记忆回答问题) {
        Lv2-智能体提出一个新的子问题待解答。
        Lv2-智能体向Lv1-RAG提问这个子问题。
        将Lv1-RAG的回应添加到Lv2-智能体的记忆中。
    }
    Lv2-智能体提供原始问题的最终答案。
    

    如下面

    AI实践与学习6-RAG流程优化学习

    // TODO

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]