1、经典RAG应付不了的场景:

  • 基于全局的理解文档后回答问题。比如:对某知识内容进行总结摘要?
  • 跨文档与知识库的回答问题。比如:比较不同文档内容的区别?
  • 结合非知识工具的复合场景。比如:从文档提取产品介绍发送给xx客户?

Agentic RAG方案:一种基于AI Agent的方法,借助Agent的任务规划与工具能力,来协调完成对多文档的、多类型的问答需求。既能提供RAG的基础查询能力,也能提供基于RAG之上更多样与复杂任务能力。

RAG Tip_多文档

可以完成任意基于知识的复杂任务:

  • 基于RAG之上的Tool Agent将不再局限于简单的回答事实性的问题,通过扩展更多的后端RAG引擎,可以完成更多的知识型任务。比如:整理、摘要生成、数据分析、甚至借助API访问外部系统等  
  • Top Agent管理与协调下的多个Tool Agent可以通过协作完成联合型的任务。比如对两个不同文档中的知识做对比与汇总,这也是经典问答型的RAG无法完成的任务类型。

2、尽管基于高维向量的索引在很多场景下的基于自然语言的语义检索可以工作的不错,但其也并非全能:

  • 比如你可能想借助知识图谱索引来更精确的获取实体之间的复杂关系;
  • 借助树状的摘要索引来更好的回答概要性的问题等。因此,你可以同时通过多路不同类型的索引(比如向量索引与关键词索引)来对输入问题进行检索,并对召回的知识块进行重排序处理后获取top_K。

RAG Tip_知识块_02

RAG流程检索器肯定应该支持向量搜索,因为这可以找到与用户查询具有相似语义的文档,但向量搜索还不够。检索器应该支持完全混合搜索,这意味着它可以同时执行向量搜索和全文搜索,然后合并并重新排列结果。这将使RAG流程能够找到语义相似的概念,还可以找到精确匹配项,例如专有名称、ID和数字。

3、『RAG 高效应用指南』系列公众号文章3篇。

RAG Tip_多文档_03

  • 随着大语言模型(LLM)和多模态技术的发展,文档理解领域逐渐出现了端到端的多模态模型,长期来看,大模型和文档理解进行结合应该是一个趋势
  • 比如,微软的 LayoutLM 系列模型将视觉特征、文本和布局信息进行了联合预训练,在多种文档理解任务上取得了显著提升;
  • OpenAI 的 GPT-4V 能够分析用户输入的图像,并为有关图像的问题提供文本回应,它结合了自然语言处理和视觉理解;
  • 微软的 Table Transformer 可以从非结构化文档中提取表格
  • 基于 Transformer 的 Donut 模型无需 OCR 就可以进行文档理解;
  • 旷世科技近期发布的 OneChart 模型可以对图表(如折线图、柱状图和饼图等)信息进行结构化提取。

4、Embedding 用一个多维稠密向量来表示事物的多维特征,从而在一个连续的向量空间中刻画事物之间的相似性和差异性。这种表示方式不仅提高了计算效率,还增强了模型对数据内在结构和关系的理解能力,Embedding 能捕捉到数据中的潜在关系。

  • 倒排索引是一种基于关键词的精确性检索,但语义理解能力弱,而向量索引是基于文本向量的语义检索,可以捕捉文本的语义信息。一般情况下,我们会同时使用这两种检索方式。

推荐几个性能不错的向量模型:MTEB 排行榜https://huggingface.co/spaces/mteb/leaderboard

  • OpenAI 的最新 embedding 模型如text-embedding-ada-002
  • Jina AI 发布的 jina-embeddings-v2,支持 8K tokens (一般而言,如果文本的输入长度大于向量模型支持的最大 tokens 长度,则文本被会截断,从而破坏了文本的完整性,这样会直接影响下游任务的效果。
  • 北京智源人工智能研究院(BAAI)开源了 BGE 系列 Embedding 模型
  • 除此之外,还有包括 sentense-bert 系列,text2vec,m3e 等向量模型。

5、当前常用的 query 理解技术分为三大类:query 改写、query 增强和 query 分解:

RAG Tip_知识块_04

  • 逆向排名融合(RRF):RRF 是一种简单而有效的技术,用于融合多个检索结果的排名,以提高搜索结果的质量。它通过将多个系统的排名结果进行加权综合,生成一个统一的排名列表,使最相关的文档更有可能出现在结果的顶部。

6、LLMs(大型语言模型)的进展在各种自然语言处理任务中展示了巨大的潜力 。然而,LLMs 仍然难以准确感知其事实知识的边界,而且LLMs 所记忆的知识可能是不完整的、不正确的和过时的。因此,LLMs 经常生成与事实不符的虚假答案,这被称为幻觉。检索增强生成(RAG)通过引入外部知识作为 LLM 的上下文,显著减轻了幻觉问题。

  • 然而,现有的 RAG 系统通常不加区分地调用检索,忽视了 LLM 的内部知识 ,即自我知识。最近的研究表明,糟糕的(例如,分散注意力、不相关或冲突的)检索结果会损害模型性能。理想情况下,只有当问题的答案超出 LLM 的自我知识时,才应激活检索。
  • 自适应 RAG(ARAG)旨在通过评估 LLM 自我知识的边界来动态确定检索必要性,目的是平衡外部知识和自我知识的利用 。然而,直接感知知识边界 是具有挑战性的。作为替代方案,现有的 ARAG 系统通过以下方式决定检索时机:(i)基于明确语言化的 LLM 反馈 ,(ii)基于概率的反馈 [23, 68],(iii)通过微调注入能力 等。

7、大语言模型的能力:

  • 随着模型规模的持续增长,许多新能力已经出现,例如上下文学习思维链推理
  • 大规模语言模型具有出色的上下文学习(ICL)能力。ICL将输入-输出演示融入到提示文本中。通过ICL,现成的LLMs可以在不进行额外微调的情况下使用,同时实现可比的性能。
  • Wei等人(2022b)发现,通过在演示中添加逐步推理过程,可以提高LLMs的推理能力,这被称为思维链提示(思维链是一种主要在大型语言模型中观察到的新兴能力)。CoT提示使模型能够更精确地理解问题的复杂性和推理过程。此外,模型生成了一系列推理步骤,这为我们提供了对模型认知过程的透明视图,进一步提高了可解释性。——由于缺乏人类对齐,自动生成的思维链面临质量差、幻觉和事实不一致等挑战。思维链推理在很大程度上依赖于预训练期间引入的语义知识
  • 随着模型从线性链过渡到层次化的树和复杂的图,思维的相互作用逐渐变得更加复杂,从而逐步增强了解决复杂问题的能力。然而,随着拓扑复杂性的增加,相关方法对任务选择施加了更多限制,导致它们的泛化能力显著降低,使其应用变得困难。将基于复杂拓扑结构的方法扩展到通用领域是未来研究面临的一个主要挑战。
  • 扩大语言模型的规模显著提高了性能,并带来了许多惊喜,例如突现能力;
  • 简单地在提示中添加一个魔法短语“让我们一步步来”就能使LLMs在没有任何人类注释的情况下执行样本思维链推理(零样本CoT不需要示例);
  • 由量变引起的质变现象,人们称之为「涌现(emergence)」。更具体而言,如果一个能力在更小的模型中没有,但更大的模型有,我们就说这个能力是涌现的能力。由于规模扩展会解锁涌现能力,因此可以预期进一步扩展还能进一步产生更多能力。
  • 由于LLM生成过程中固有的随机性,使得LLM推理具有随机性和不确定性。LLM推理是一个无监督的过程,在这个过程中,来自中间推理步骤的反馈信号对提高推理起着至关重要的作用。来自反馈信号的引导可以有效地减少推理中的幻觉现象(如事实错误、语境不一致等)。
  • 考虑到语言模型本质上属于统计模型,并且由于数据噪声和知识遗忘等因素,幻觉现象是不可避免的。
  • 思维链推理往往倾向于产生幻觉,产生错误的推理步骤。中间推理步骤中的错误又可能触发一系列错误。引入验证以获得反馈,随后根据这些反馈细化推理过程,可以有效地减轻这种现象,类似于人类反思的过程。
  • 一个具有良好泛化能力的大语言模型,不会仅仅局限于对训练数据的记忆和重复,而是能够从已有的训练中提取出一般性的模式、规则和知识,并将其应用到更广泛的范围中。
  • 知识整合与迁移能力:能够将不同领域、不同类型的知识进行整合,并将已有的知识应用到新的情境或问题中。
  • 跨模态理解能力(部分模型具备):与图像等其他模态信息结合,理解和处理跨模态的内容。
  • 扩展定律(Scaling Law)已经达到极限,即投入更多数据和更多算力来训练 AI,也无法继续显著增强 AI 智能。
  • 模型中的参数化知识在预训练结束时固定,模型内参数化的知识是有限的且过时的,这导致其在知识容量和知识更新方面的不足。虽然引入外部知识可以在一定程度上缓解这一点,但它仍然是一个不完美的解决方案。要从根本上解决这个问题,持续学习(Lange等人,2022年;Wang等人,2023g)是未来研究工作的一个有希望的途径。

尽管大型语言模型(LLMs)展示了广泛的知识,但也伴随着一些挑战。这些挑战包括无法访问最新新闻、在回答涉及领域外知识的查询时倾向于产生幻觉,以及缺乏复杂的推理能力,如数学计算或符号推理。通过赋予LLMs使用外部工具的能力,可以增强模型的推理能力并整合外部知识,使其能够进行信息检索和环境交互。