RAG 是目前大模型方面发展较热的方向,最近实习的项目也涉及这个方面,做了较多的研究,后续会陆续发送相关学习内容,含手搓代码!本文主要讲述RAG 的发展历程。
一、定义
RAG即检索增强生成(Retrieval-Augmented Generation),是一种通过集成外部知识源来增强大型语言模型(LLM)能力的技术范式。它通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,可提升内容的准确性和相关性,缓解模型幻觉问题,提高知识更新速度,并增强内容生成的可追溯性。
RAG的发展过程如下:
概念提出:RAG的概念首次于2020年被提出。早期研究焦点集中在如何通过预训练模型注入额外知识,以增强语言模型的能力。
Naive RAG是 RAG 技术的初始形态,其核心流程为索引→检索→生成三阶段线性架构。具体步骤如下:
- 索引阶段:将原始文档(如 PDF、HTML)转换为纯文本,按固定长度分割为文档块(Chunk),使用 BM25 或 TF-IDF 等传统检索模型建立倒排索引。
- 检索阶段:将用户问题通过关键词匹配从索引中召回 Top-K 文档块,直接拼接后作为上下文输入生成模型。
- 生成阶段:采用预训练语言模型(如 T5、GPT),将 “问题 + 检索结果” 作为提示词生成回答,依赖模型自身知识补全信息。
技术局限:
语义理解不足:基于关键词匹配的检索无法捕捉语义关联,例如 “自动驾驶事故责任” 可能无法召回 “AI 算法缺陷” 相关文档。
上下文冗余:直接拼接所有检索结果可能引入噪声,导致生成模型注意力分散,例如包含与问题无关的段落。
幻觉问题:当检索结果不完整或模型依赖内部过时知识时,容易生成虚构信息
Advanced RAG 阶段(增强优化的检索生成)
- 语义检索升级:采用 Sentence-BERT、DPR 等模型生成文档与问题的稠密向量,通过余弦相似度匹配提升召回精度。
- 上下文精细化处理:
滑动窗口索引:将文档分割为重叠的细粒度块(如 200 字 / 块),保留语义连续性。
重排序机制:引入交叉编码器(如 BERT-CrossEncoder)对召回结果重新排序,过滤低相关文档。
上下文压缩:通过摘要模型(如 BART)对检索结果进行摘要,减少冗余信息。
生成控制增强:
提示词工程:设计结构化提示(如 “根据以下资料回答问题:{context}”),强制模型依赖检索内容。
幻觉检测:在生成后加入事实核查模块,对比检索结果与回答的一致性。
Modular RAG 阶段(模块化动态架构)
Modular RAG 将 RAG 系统拆解为可插拔的独立模块,支持动态流程编排,核心模块包括:
- 索引模块:支持层次化索引(如文档→章节→段落三级结构)和知识图谱索引,提升复杂语义关联能力。
- 预检索模块:
- 查询重写:使用 LLM 扩展用户问题(如将 “血糖控制” 扩展为 “饮食、运动、药物三方面的血糖管理方法”。
- 多查询扩展:生成多个变体查询并行检索,覆盖语义多样性。
- 后检索模块:
迭代检索:根据初步生成结果中的缺失信息触发二次检索,形成 “生成→检索→再生成” 闭环。
结构化解构:将检索结果解析为结构化数据(如 JSON),便于生成模型精准调用。
编排模块:通过状态机或 LLM 决策动态调整流程,例如根据问题类型选择不同检索策略(技术问题→产品文档,投诉→处理流程)。
多模态支持:整合图像、表格等非结构化数据,例如用 CLIP 模型检索图片,用 Table-BERT 解析表格。
动态路由:基于用户意图(通过意图分类模型)自动选择最佳检索路径,例如法律咨询优先检索法条库,医疗问题优先检索临床指南。
长期记忆:缓存高频检索结果,建立用户专属知识库,实现个性化响应。
二、RAG 架构
为了更直观地呈现RAG(检索增强生成)的全流程,我将以流程图形式展示核心环节,并针对每个节点的常见问题及解决方案进行说明。
2.1 各节点问题与解决方案对比
2.2.1 RAG的分块策略
选择合适的分块策略,是解决RAG实际应用中准确性、召回率与复杂文档解析等痛点最直接有效的方式,也是我们建设RAG系统最关键的一个环节。最常见的RAG分块策略包括:固定大小分块、语义分块、递归分块、基于文档结构的分块、基于LLM的分块。
- 定长分块
按照固定长度分块
- 语义分块
语义分块(Semantic Chunking),根据句子、段落、主题等有语义内涵的单位对文档进行分段创建嵌入,如果第一个段的嵌入与第二个段的嵌入具有较高的余弦相似度,则这两个段形成一个块。通过合并相似内容,确保每个块表达完整的语义内容。由于每个分块的内容更加丰富,它提高了检索准确性,让大模型产生更加连续和相关的响应。但是它依赖于一个阈值来确定余弦相似度是否显著下降,而这个阈值在不同类型文档中可能涉及不同的参数设置。
- 递归分块(Recursive Chunking)
递归分块(Recursive Chunking),先按主题或段落初步划分,再对超长块递归细分,直至满足大小限制。递归分块融合了结构化与非结构化处理逻辑,与固定大小的分块不同,这种方法保持了语言的自然流畅性并保留了完整的内容语义。
- 基于文档结构分块(Document Structure-based Chunking)
基于文档结构分块(Document Structure-based Chunking),利用文档固有结构(如标题、章节、列表、表格)进行切分,每个结构单元作为一个块。它通过与文档的逻辑部分对齐来保持结构完整性。这种分块适用于文档有清晰的结构,但很多时候,一个文档的结构会比想象中复杂,此外,很多时候文档章节内容大小不一,很容易超过块的大小限制,需要结合递归拆分再进行合并处理。
- 基于LLM的分块(LLM-based Chunking)
基于LLM的分块(LLM-based Chunking),直接将原始文档输入大语言模型(LLM),由模型智能生成语义块。利用LLM的语义理解能力,动态划分文本,保证了分块语义的准确性,但这种分块方法对算力要求最高,对时效性与性能也将带来挑战。
三、开源化方案对比
以下是当前主流的开源RAG(检索增强生成)方案及其对比分析,涵盖实现方法、技术特点和适用场景。
一、核心开源方案
1. LangChain
- 文档支持:支持TXT、PDF、CSV、HTML等常见格式,通过UnstructuredFileLoader处理非结构化数据。
- LLM模型:支持开源模型(如LLaMA、Alpaca)和API模型(如OpenAI、Anthropic),可通过LLMChain灵活调用。
- 向量化模型:嵌入模型 | LangChain中文网 向量存储 | LangChain中文网
- 免费选项:HuggingFaceEmbeddings(如Sentence-BERT、BAAI/bge-small-zh-v1.5)。
- 配置示例:from langchain.embeddings import HuggingFaceEmbeddings。
- 框架构造:模块化链式结构,通过ConversationalRetrievalChain整合检索与生成。
检索方式:
混合检索:向量检索(FAISS)+关键词检索(BM25),通过逆序位融合(RRF)重排结果。
查询优化:支持子问题分解(如将“比较两框架star数”拆分为两个子查询)。
数据库选型:FAISS、Pinecone、Elasticsearch(开源版)。
2. LlamaIndex
- 文档支持:支持PDF、DOCX、PPTX、CSV,通过SimpleDirectoryReader批量加载。
- LLM模型:支持本地模型(如Qwen2.5、Llama2)和API模型(如OpenAI),通过LLMPredictor封装。
- 向量化模型:
免费选项:BAAI/bge-m3(中英文高效)、MiniLM-L6,可通过VectorStoreIndex配置。
框架构造:以索引为核心,支持树状索引(Tree Index)和知识图谱索引,动态选择检索策略。
检索方式:
智能检索:查询引擎(Query Engine)通过子问题分解和查询重写提升召回率。
上下文管理:使用模糊匹配关联生成内容与原始文档,支持引用标注。
数据库选型:FAISS、Qdrant、Pinecone。
3. LightRAG
- 文档支持:
支持TXT、PDF、DOC、PPT、CSV,通过LLM提取实体和关系构建知识图谱。
- LLM模型:
支持本地模型(如Ollama的StableLM)和API模型(如GPT-4o-mini),通过ollama_model_complete调用。
- 向量化模型:
免费选项:NanoVectorDBStorage(轻量级向量数据库)、Sentence-BERT。
框架构造:双层检索架构(低层次实体检索+高层次主题检索),结合图结构与向量表示。
- 检索方式:
双层检索:低层检索(实体级)与高层检索(主题级)结合,通过混合模式(Hybrid)提升全面性。
增量更新:仅更新变化部分,减少重复计算。
数据库选型:NanoVectorDB、FAISS。
普通人如何抓住AI大模型的风口?
领取方式在文末
为什么要学习大模型?
目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。
目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。
随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!
最后
只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!
在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
大模型全套学习资料展示
自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。
希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!
01教学内容
从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!
大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
02适学人群
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!
03入门到进阶学习路线图
大模型学习路线图,整体分为5个大的阶段:
04视频和书籍PDF合集
从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)
新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
05行业报告+白皮书合集
收集70+报告与白皮书,了解行业最新动态!
0690+份面试题/经验
AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
07 deepseek部署包+技巧大全
由于篇幅有限
只展示部分资料
并且还在持续更新中…
真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】