[14章]RAG全栈技术从基础到精通 ,打造高精准AI应用

kuaidelasi · 大约1个月之前 · 281 次点击 · 大约8小时之前 开始浏览    置顶

/s/1BGVyjP4c6zO650imj45JAQ 提取码:z18s

一、检索增强生成RAG(Retrieval-Augmented Generation)的应用,有两方面原因: 1、没有跑大模型的资源:大多数人没有GPU集群搞LLM的预训练。

2、大模型缺乏知识:大模型往往缺乏某些知识,如私域或最新的知识。

RAG方法让LLM能够获取内化知识之外的信息,并允许LLM在专业知识库的基础上,以更准确的方式回答问题,并且不会特别消耗资源。

在大模型时代,是用于解决幻觉问题、知识时效问题、超长文本问题等各种大模型本身制约或不足的必要技术。

RAG主要通过检索语义匹配的文档,然后将文档知识传递给大模型,基于大模型推理获取争取的答案。RAG可以减少预训练LLM或者通用LLM的幻觉问题,消除文档标注。

通常,基于RAG的LLM应用可以表述为一个映射过程,即基于给定数据D,将用户输入(查询Q)映射到预期响应(答案A)。

二、RAG的问题与挑战 问题1:内容缺失(Missing Content)。提问的问题,无法在被检索文档库中找到,最准确的答案是缺失的。理想情况下,RAG系统回应应该是“抱歉,我不知道答案”。然而,对于检索内容相关但没有相关答案的问题,系统可能被误导,给出一个respone。

问题2:检索的TopK内容缺失(Missed the Top Ranked Documents)。问题的答案在文档库中,但排名得分不够高,无法返回给用户。理论上,检索过程中所有文档都会被排名得分。然而,在实际操作中,会返回排名前K个文档,为了提高召回率,K不可能设置的无限大,必须基于LLM大模型的能力,折中选择的一个值。

问题3:未在上下文中(Not in Context) - 整合策略局限性。从数据库中检索到了包含答案的文档,但在生成答案的过程中,这些文档并未被纳入上下文。当数据库返回许多文档时,会进行整合过程以获取答案,此时会发生这种情况。

问题4:未提取(Not Extracted)答案存在于上下文中,但大型语言模型未能提取出正确的答案。通常,这是因为上下文中存在太多噪声或矛盾信息。简而言之,Retrival命名是对的,但是LLM根据Retrival回答问题出错。睁眼说瞎话的概率明显大于用户可以接受的概率(用户一般只能接收0.1%的错误概率)

三、Modular RAG的关键创新包括: 混合检索策略:结合稀疏检索方法(例如稀疏编码器-BM25)与密集检索技术(例如DPR - Dense Passage Retrieval),以最大化不同查询类型的准确性。工具集成:整合外部API、数据库或计算工具,处理专业任务,如实时数据分析或特定领域的计算。可组合的流程:Modular RAG允许检索器、生成器和其他组件独立地替换、增强或重新配置,提供了对特定用例的高度适应性。例如,为金融分析设计的Modular RAG系统可能通过API检索实时股票价格,使用密集检索分析历史趋势,并通过定制的语言模型生成可操作的投资见解。这种模块化和定制化使Modular RAG成为复杂、多领域任务的理想选择,提供了可扩展性和精确性。

四、基本的RAG方法 数据预处理与分块(Chunking):将长文本或文档进行适当的分块,便于索引和检索。常用的分块策略包括: 固定长度分块:将文本按固定长度切分,但可能会打断句子或段落。 基于段落或语义的分块:根据文本的自然段落或语义边界进行分块,保持内容的完整性。 索引构建: 稀疏索引:使用传统的信息检索方法,如TF-IDF、BM25,基于关键词匹配。 密集索引:使用预训练的语言模型(如BERT)生成文本向量嵌入,进行向量检索。 检索技术: 利用向量相似度计算或关键词匹配,从索引中检索与查询最相关的文本片段。 答案生成: 将检索到的文本片段作为上下文,输入到LLM中,生成最终的回答。

五、RAG 的常见架构: Naive RAG:最基础的 RAG 架构,通过检索相关文档片段并将其作为上下文输入到生成模型中来生成响应。就像你去图书馆找书,先随便找几本相关的,然后读一读,再写个总结。 Retrieve-and-rerank:这种架构首先检索相关的文档片段,然后对这些片段进行重新排序,以选择最相关的片段作为上下文输入到生成模型中。就像你在图书馆先找一堆书,然后仔细看看哪些书最相关,再用这些书来写总结。 Multimodal RAG:这种架构处理多模态数据(如文本、图像等),通过多模态嵌入模型将不同类型的输入转换为统一的表示形式,然后进行检索和生成。这次你不仅找书,还找图片、视频等各种资料,把它们都变成可以比较的东西,再找最相关的来用。 Graph RAG:这种架构利用图数据库存储和检索信息,通过图结构来捕捉数据之间的关系,从而生成更相关的响应。你用一种特别的方式组织你的资料,比如思维导图,这样更容易找到最相关的信息。 Hybrid RAG:这种架构结合了多种检索和生成技术,旨在提高系统的灵活性和性能。你用各种方法找资料,比如图书馆、网络搜索等,然后综合起来用。 Agentic RAG (Router):这种架构使用代理(agent)来路由查询到不同的检索和生成模块,根据查询的类型和需求选择最优的处理路径。你有一个小助手,它帮你决定去哪里找资料,比如是去图书馆还是上网搜。 Agentic RAG (Multi-Agent RAG):这种架构使用多个代理协同工作,每个代理负责特定的任务或数据源,共同完成复杂的检索和生成任务。你有一群小助手,每个小助手负责不同的任务,比如有的去找书,有的去上网搜,最后大家一起合作完成任务。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

281 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传