feat(docs): integrate version2 curriculum and stage-3 updates
概要
- 将 version2 分支的课程结构重构、第三阶段章节新增、示例资源迁移、高级 RAG 文档与 Vercel 部署配置等整合为 main 上的一次汇总提交
内容导航与 README 调整
- 更新 README 的总体介绍文案,引入“第零阶段 + 第一到第三阶段”的完整学习路径描述
- 将原先的“三阶段实战路径”说明替换为新版分阶段描述,突出从小游戏到跨平台复杂应用的学习节奏
- 删除已过时的“第二次更新将在分支 version2 合并到主分支”的提示,改为直接以 main 为主线
- 统一 README 顶部标题和排版风格,保证中英文导航、徽章展示等视觉结构一致
课程结构与章节导航更新
- 调整 docs 目录下的学习阶段导航结构,使 README 中的导航表与各 stage 实际目录对齐
- 补全并创建 stage-3 相关章节入口文件,用于承载高级阶段的课程内容
- 新增或更新以下章节入口:
- 高级核心技能:
- docs/stage-3/core-skills/3.1-mcp-claudecode-skills/index.md
- docs/stage-3/core-skills/3.2-long-running-tasks/index.md
- 多平台开发:
- docs/stage-3/cross-platform/3.3-wechat-miniprogram/index.md
- docs/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md
- docs/stage-3/cross-platform/3.5-android-app/index.md
- docs/stage-3/cross-platform/3.6-ios-app/index.md
- 个人品牌:
- docs/stage-3/personal-brand/3.7-personal-website-blog/index.md
- 保持 stage-0、stage-1、stage-2 既有章节结构不变的前提下,对导航表格进行排版和链接校正,使整体课程地图清晰、可点击
示例与图片资源重组
- 将原先位于 docs/examples/example1/images/ 下的微信小程序示例图片,整体迁移到 stage-3 的正式课程路径中:
- 目标路径:docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/images/
- 通过 rename 方式保留 git 历史关系,避免图片资源被视为完全新增,从而方便后续追踪
- 为微信小程序示例新增 index 页面:
- docs/stage-3/3.3-how-to-build-a-wechat-miniprogram/example1/index.md
- 使该示例在“高级三:多平台开发:如何构建微信小程序”章节中有清晰的入口,对应实际实战内容
高级 RAG 与 AI 进阶文档
- 新增一篇系统介绍 RAG 的高级文档:
- docs/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future.md
- 覆盖内容包括:RAG 的基本概念、典型架构、工作流程以及未来演进方向,为第三阶段的复杂应用提供知识检索基础
- 配套引入多张插图,帮助读者从架构图和流程视角理解 RAG:
- docs/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png ~ image15.png
部署与工程配置
- 新增 vercel.json 配置文件,为项目在 Vercel 上的部署提供基础配置
- 明确文档构建产物的输出路径和静态站点托管方式
- 为之后的一键部署和自动化预览打下基础
依赖与锁文件更新
- 调整 package.json 中与新版文档结构和部署相关的配置,保持脚本和依赖与当前课程形态同步
- 更新 package-lock.json,以反映最新的依赖树和版本锁定状态
- 保证在执行 npm install / npm run build 时,依赖环境与 version2 中的实际使用情况一致
兼容性与行为说明
- 该提交通过 npm run build 验证,确保在整合 version2 内容后,VitePress 构建过程正常完成
- main 分支上的历史被压缩为一条有语义的“第二次大更新”提交,详细的开发过程仍保留在 version2 分支,用于后续需要时回溯
This commit is contained in:
@@ -10,13 +10,13 @@
|
||||
|
||||
# 本节课你将学到
|
||||
|
||||
* RAG的核心价值:深入理解它如何解决长上下文在成本、注意力、知识更新上的核心难题
|
||||
* RAG的工作原理:通过具体案例看它如何完成从检索到生成的闭环
|
||||
* RAG的技术演进脉络:从基础的Naive RAG到Advanced RAG再到模块化的Modular RAG
|
||||
* RAG的模型选型建议:掌握Embedding、Rerank和LLM三大关键模型的评估与选择策略
|
||||
* RAG的企业级实践:学习从数据预处理到系统上线评估的全链路构建指南
|
||||
* RAG的效果评估与调优:了解核心评测指标、主流框架与持续优化的方法
|
||||
* RAG的前沿趋势:探索其与智能体、多模态等技术融合的未来方向
|
||||
- RAG的核心价值:深入理解它如何解决长上下文在成本、注意力、知识更新上的核心难题
|
||||
- RAG的工作原理:通过具体案例看它如何完成从检索到生成的闭环
|
||||
- RAG的技术演进脉络:从基础的Naive RAG到Advanced RAG再到模块化的Modular RAG
|
||||
- RAG的模型选型建议:掌握Embedding、Rerank和LLM三大关键模型的评估与选择策略
|
||||
- RAG的企业级实践:学习从数据预处理到系统上线评估的全链路构建指南
|
||||
- RAG的效果评估与调优:了解核心评测指标、主流框架与持续优化的方法
|
||||
- RAG的前沿趋势:探索其与智能体、多模态等技术融合的未来方向
|
||||
|
||||
# 本节课你将收获
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
> 上下文(context)从意义上指模型在回答当前问题时所“参考”的背景信息与对话历史;从技术上则是指一次推理时输入给模型的 Token 序列(如 system/user 指令、历史消息、检索片段等)的总和。
|
||||
>
|
||||
> “上下文窗口”是这批输入内容的 **容量上限** :模型一次最多只能“看到”这么多 Token。在当前主流的大模型架构(例如 Transformer)中,这些 Token 会在模型的每一层里彼此做注意力计算、反复参与运算,因此一旦窗口变长、Token 变多,计算量和成本都会成倍甚至指数级增加。
|
||||
>
|
||||
|
||||
3. 计算资源存在大量浪费:绝大多数任务仅需极少量与当前问题高度相关的信息,将全量文档塞入上下文,会造成严重的计算资源闲置与浪费,进而降低系统吞吐量,拖慢响应速度,最终影响用户体验。
|
||||
4. **注意力与聚焦的问题** :
|
||||
大模型虽能 “覆盖” 超长上下文,却无法对每一段信息都实现同等质量的利用。当上下文长度达到一定阈值时,模型会出现明显的 “注意力偏差”:
|
||||
@@ -83,9 +83,9 @@ RAG(Retrieval-Augmented Generation,检索增强生成)的核心思路是
|
||||
|
||||
在图中,这一阶段对应右上角紫色区域 “Indexing”。从 “Documents” 出发,经由 “Chunks / Vectors” 到 “embeddings” 的那一部分,就是在说明文档被切块并转换为向量、写入索引的过程。具体过程如下:
|
||||
|
||||
* 文档被划分为若干个语义相对完整的 chunks,每个 chunk 可能对应一小段新闻、一段说明或一段分析。
|
||||
* 每个 chunk 会通过 embedding 模型转换成高维向量,并存入向量索引中。
|
||||
* 这个索引支持后续基于相似度的检索,为回答问题提前准备好“可被查阅的知识库”。
|
||||
- 文档被划分为若干个语义相对完整的 chunks,每个 chunk 可能对应一小段新闻、一段说明或一段分析。
|
||||
- 每个 chunk 会通过 embedding 模型转换成高维向量,并存入向量索引中。
|
||||
- 这个索引支持后续基于相似度的检索,为回答问题提前准备好“可被查阅的知识库”。
|
||||
|
||||
2. **检索阶段 + 基于检索结果生成答案**
|
||||
|
||||
@@ -166,9 +166,9 @@ RAG(Retrieval-Augmented Generation,检索增强生成)的核心思路是
|
||||
|
||||
简化示例(实际向量维度高得多,这里仅示意):
|
||||
|
||||
* 文档A向量(关于苹果公司创立):`[0.85, -0.23, 0.41, -0.56, 0.12, 0.78, ...]`
|
||||
* 文档B向量(关于水果苹果):`[-0.12, 0.95, -0.34, 0.67, -0.89, 0.05, ...]`
|
||||
* 文档C向量(关于iPhone发布):`[0.79, -0.18, 0.52, -0.61, 0.23, 0.81, ...]`
|
||||
- 文档A向量(关于苹果公司创立):`[0.85, -0.23, 0.41, -0.56, 0.12, 0.78, ...]`
|
||||
- 文档B向量(关于水果苹果):`[-0.12, 0.95, -0.34, 0.67, -0.89, 0.05, ...]`
|
||||
- 文档C向量(关于iPhone发布):`[0.79, -0.18, 0.52, -0.61, 0.23, 0.81, ...]`
|
||||
|
||||
相关向量需存入向量数据库(如 Pinecone、Weaviate、FAISS)用于之后的检索召回工作。
|
||||
|
||||
@@ -186,9 +186,9 @@ RAG(Retrieval-Augmented Generation,检索增强生成)的核心思路是
|
||||
|
||||
接下来系统将进行相似度检索 (Top-K, K=2)操作,计算该查询向量与知识库中所有文档向量的余弦相似度(一种衡量向量方向接近程度的指标)。结果如下:
|
||||
|
||||
* 与文档A(公司创立)相似度:0.97(高度相关)
|
||||
* 与文档C(iPhone发布)相似度:0.88(相关,同属公司主题)
|
||||
* 与文档B(水果营养)相似度:0.12(几乎不相关)
|
||||
- 与文档A(公司创立)相似度:0.97(高度相关)
|
||||
- 与文档C(iPhone发布)相似度:0.88(相关,同属公司主题)
|
||||
- 与文档B(水果营养)相似度:0.12(几乎不相关)
|
||||
|
||||
> Top-K 是向量检索场景中常用的筛选策略,核心含义是 “从所有匹配结果中,按相似度从高到低排序后,选取排名前 K 个的结果”;而 K=2 则是对该策略的具体数值定义,即明确要求系统仅保留相似度排名前 2 的文档向量,过滤掉其余相似度更低的结果,以确保后续仅基于最相关的 2 个文档片段生成答案。
|
||||
|
||||
@@ -220,9 +220,9 @@ LLM接收到上述结构化输入后,会遵循系统指令,将“参考信
|
||||
|
||||
接下来系统将进行相似度检索 (Top-K, K=2) 操作,计算该查询向量与知识库中所有文档向量的余弦相似度。结果如下:
|
||||
|
||||
* 与文档B(水果营养)相似度:0.95(高度相关)
|
||||
* 与文档C(iPhone发布)相似度:0.18(几乎不相关)
|
||||
* 与文档A(公司创立)相似度:0.15(几乎不相关)
|
||||
- 与文档B(水果营养)相似度:0.95(高度相关)
|
||||
- 与文档C(iPhone发布)相似度:0.18(几乎不相关)
|
||||
- 与文档A(公司创立)相似度:0.15(几乎不相关)
|
||||
|
||||
系统根据相似度分数从高到低,返回 Top‑2 的文档片段作为证据:
|
||||
|
||||
@@ -254,9 +254,9 @@ LLM接收到上述结构化输入后,其最终回复将类似:
|
||||
|
||||
接下来系统将进行相似度检索 (Top-K, K=2) 操作,计算余弦相似度。由于问题主题与知识库内容无关,整体相似度得分都很低。结果如下:
|
||||
|
||||
* 与文档B(水果营养)相似度:0.18(极低)
|
||||
* 与文档C(iPhone发布)相似度:0.10(几乎不相关)
|
||||
* 与文档A(公司创立)相似度:0.08(几乎不相关)
|
||||
- 与文档B(水果营养)相似度:0.18(极低)
|
||||
- 与文档C(iPhone发布)相似度:0.10(几乎不相关)
|
||||
- 与文档A(公司创立)相似度:0.08(几乎不相关)
|
||||
|
||||
Top-K 仍会返回相似度排名前 K 个结果,但在该场景下,这些结果并不能提供有效证据。实际系统常会结合“最低相似度阈值”直接返回空召回,即没有任何召回的结果,参考信息为 0,以减少无关信息干扰。
|
||||
|
||||
@@ -310,48 +310,46 @@ Naive RAG可以理解为基础的 RAG 形态,它在工程上非常直接,典
|
||||
|
||||
在检索前,重点是把“存什么”和“怎么问”处理好:
|
||||
|
||||
* 在索引端,从固定长度切分演进到语义感知分块与分层索引,例如按章节、小节、段落或句子边界进行切分,辅以滑动窗口和多粒度索引结构。
|
||||
* 为每个文档块附加丰富的元数据,例如来源、时间、作者、主题、文档类型等,为后续的过滤和排序提供更多维度。
|
||||
* 在查询端,对用户原始问题进行重写、扩展和拆分,例如通过 Query Rewrite、多路查询(Multi-Query)、子问题分解(Sub-Query)、Step-back Prompting 等方式,将含糊或口语化的问题转换为更利于检索理解的表达。
|
||||
- 在索引端,从固定长度切分演进到语义感知分块与分层索引,例如按章节、小节、段落或句子边界进行切分,辅以滑动窗口和多粒度索引结构。
|
||||
- 为每个文档块附加丰富的元数据,例如来源、时间、作者、主题、文档类型等,为后续的过滤和排序提供更多维度。
|
||||
- 在查询端,对用户原始问题进行重写、扩展和拆分,例如通过 Query Rewrite、多路查询(Multi-Query)、子问题分解(Sub-Query)、Step-back Prompting 等方式,将含糊或口语化的问题转换为更利于检索理解的表达。
|
||||
> 1. Query Rewrite(查询重写)
|
||||
>
|
||||
> 核心是将用户模糊、口语化或不规范的原始查询,转化为检索系统更易理解的标准化表述,补充关键信息、修正歧义。
|
||||
>
|
||||
> * 用户原始问题为 “咋查明天北京的天气啊”,会去除 “咋”“啊” 等口语化词汇,补充 “实时”“全天” 等关键限定,重写为 “查询北京市明日全天实时天气”;
|
||||
> * 用户原始问题为 “推荐好看的电影”,若结合用户历史行为发现其常看悬疑片,会补充 “2024 年高分”“悬疑题材” 等信息,重写为 “推荐 2024 年高分悬疑题材电影”。
|
||||
> - 用户原始问题为 “咋查明天北京的天气啊”,会去除 “咋”“啊” 等口语化词汇,补充 “实时”“全天” 等关键限定,重写为 “查询北京市明日全天实时天气”;
|
||||
> - 用户原始问题为 “推荐好看的电影”,若结合用户历史行为发现其常看悬疑片,会补充 “2024 年高分”“悬疑题材” 等信息,重写为 “推荐 2024 年高分悬疑题材电影”。
|
||||
>
|
||||
> 2. Multi-Query(多路查询)
|
||||
>
|
||||
> 基于原始问题生成多个 “语义相关但角度不同” 的查询语句,避免单一查询遗漏潜在结果,覆盖用户未明确的潜在需求。
|
||||
>
|
||||
> * 用户原始问题为 “如何给刚满月的宝宝拍嗝”,会生成聚焦 “姿势” 的查询:“新生儿拍嗝的正确姿势”;
|
||||
> * 生成聚焦 “防吐奶” 的查询:“满月宝宝拍嗝避免吐奶的方法”;
|
||||
> * 生成聚焦 “月龄适配” 的查询:“婴儿拍嗝的步骤(0-1 个月)”;
|
||||
> * 生成聚焦 “新手场景” 的查询:“新手爸妈给满月宝宝拍嗝技巧”。
|
||||
> - 用户原始问题为 “如何给刚满月的宝宝拍嗝”,会生成聚焦 “姿势” 的查询:“新生儿拍嗝的正确姿势”;
|
||||
> - 生成聚焦 “防吐奶” 的查询:“满月宝宝拍嗝避免吐奶的方法”;
|
||||
> - 生成聚焦 “月龄适配” 的查询:“婴儿拍嗝的步骤(0-1 个月)”;
|
||||
> - 生成聚焦 “新手场景” 的查询:“新手爸妈给满月宝宝拍嗝技巧”。
|
||||
>
|
||||
> 3. Sub-Query(子问题分解)
|
||||
>
|
||||
> 针对包含多个诉求的复合问题,拆分为独立、简单的子查询,让检索系统针对单一诉求精准匹配数据,避免信息混杂缺失。
|
||||
>
|
||||
> * 用户原始复合问题为 “北京到上海的高铁,明天有哪些班次?票价多少?需要坐多久?”,会拆解出聚焦 “班次” 的子查询:“北京市至上海市 明日高铁班次表”;
|
||||
> * 拆解出聚焦 “票价” 的子查询:“北京到上海高铁 二等座 / 一等座票价”;
|
||||
> * 拆解出聚焦 “时长” 的子查询:“北京到上海高铁 行驶时长(最快 / 平均)”。
|
||||
> - 用户原始复合问题为 “北京到上海的高铁,明天有哪些班次?票价多少?需要坐多久?”,会拆解出聚焦 “班次” 的子查询:“北京市至上海市 明日高铁班次表”;
|
||||
> - 拆解出聚焦 “票价” 的子查询:“北京到上海高铁 二等座 / 一等座票价”;
|
||||
> - 拆解出聚焦 “时长” 的子查询:“北京到上海高铁 行驶时长(最快 / 平均)”。
|
||||
>
|
||||
> 4. Step-back Prompting(回溯提示)
|
||||
>
|
||||
> 先生成 “比原始问题更宏观的上位问题”,再基于上位逻辑回推检索方向,解决原始问题因聚焦细节导致的理解偏差。
|
||||
>
|
||||
> * 用户原始问题为 “为什么 2024 年某国产新能源汽车品牌的销量突然下降?”,第一步生成宏观上位问题:“影响新能源汽车品牌短期销量波动的核心因素有哪些?”(如产品迭代、竞品动作、政策变化、市场需求等);
|
||||
> * 第二步基于上位问题逻辑,生成具体检索方向:“2024 年某国产新能源品牌 产品更新情况”“2024 年新能源汽车市场 竞品定价策略”“2024 年新能源汽车补贴政策调整”。
|
||||
>
|
||||
> - 用户原始问题为 “为什么 2024 年某国产新能源汽车品牌的销量突然下降?”,第一步生成宏观上位问题:“影响新能源汽车品牌短期销量波动的核心因素有哪些?”(如产品迭代、竞品动作、政策变化、市场需求等);
|
||||
> - 第二步基于上位问题逻辑,生成具体检索方向:“2024 年某国产新能源品牌 产品更新情况”“2024 年新能源汽车市场 竞品定价策略”“2024 年新能源汽车补贴政策调整”。
|
||||
|
||||
在检索后,重点是把“取回来的内容”治理好:
|
||||
|
||||
* 使用专门的 Rerank 模型或 LLM 对候选文档进行重新排序,确保最关键、最贴近问题的内容优先进入上下文。
|
||||
- 使用专门的 Rerank 模型或 LLM 对候选文档进行重新排序,确保最关键、最贴近问题的内容优先进入上下文。
|
||||
> Rerank 模型是信息检索流程中的关键组件,主要用于对 “召回阶段” 初步筛选出的候选结果进行二次排序 —— 它会借助更复杂的语义理解能力(常基于 Transformer 等深度学习架构),分析用户需求与候选结果的深层关联,修正初步排序中可能存在的语义偏差,最终让更贴合用户需求的结果排在更靠前的位置,提升用户获取有效信息的效率。
|
||||
>
|
||||
* 对检索结果进行筛选、去重与压缩,去掉明显无关或高度重复的片段,缓解长上下文中部信息被忽略的问题。
|
||||
* 在必要时,结合轻量的模型微调,使 LLM 更倾向于依据检索证据作答,并在回答中附带引用或出处信息。
|
||||
- 对检索结果进行筛选、去重与压缩,去掉明显无关或高度重复的片段,缓解长上下文中部信息被忽略的问题。
|
||||
- 在必要时,结合轻量的模型微调,使 LLM 更倾向于依据检索证据作答,并在回答中附带引用或出处信息。
|
||||
|
||||
总体来看,第二代检索增强生成技术其关注点不再局限于 “是否需要检索”“能否检索到信息” 这两个基础问题,而是进一步聚焦于三个更大的挑战:“能否精准定位到真正关键的段落内容”“传递给大模型的上下文是否简洁有序、具备清晰结构且易于高效利用”“当面临信息噪音、内容冲突或多资料源查找需求时,系统整体性能是否依然稳健可靠”。
|
||||
|
||||
@@ -452,8 +450,8 @@ MTEB为各类Embedding模型提供了一个统一、客观的评估框架。它
|
||||
|
||||
在选择 Embedding 模型时,我们可以用 MTEB 这样的 benchmark。而对于 Rerank 模型我们可以参考 Agentset 的 [Reranker Leaderboard](https://agentset.ai/rerankers),该网站针对 RAG 场景下的重排能力做了系统测试。
|
||||
|
||||
| Model Name↑ | ELO | nDCG@10 | Latency (ms) | Price / 1M | License |
|
||||
| --------------------------------------------------------------------------------------------------- | ---- | ------- | ------------ | ---------- | ------------ |
|
||||
| Model Name↑ | ELO | nDCG@10 | Latency (ms) | Price / 1M | License |
|
||||
| ------------------------------------------------------------------------------------------------------ | ---- | ------- | ------------ | ---------- | ------------ |
|
||||
| [BAAI/BGE Reranker v2 M3](https://agentset.ai/rerankers/baaibge-reranker-v2-m3) | 1314 | 0.201 | 2383 | $0.02 | Apache 2.0 |
|
||||
| [Cohere Rerank 3.5](https://agentset.ai/rerankers/cohere-rerank-35) | 1452 | 0.2 | 392 | $0.05 | Proprietary |
|
||||
| [Cohere Rerank 4 Fast](https://agentset.ai/rerankers/cohere-rerank-4-fast) | 1506 | 0.216 | 447 | $0.05 | Proprietary |
|
||||
@@ -472,8 +470,8 @@ MTEB为各类Embedding模型提供了一个统一、客观的评估框架。它
|
||||
|
||||
在此基础上,基准测试还设计了两组互补性指标,用于对模型进行多维度综合评估:
|
||||
|
||||
* nDCG@5/10:聚焦排序精准度,重点衡量相关文档是否被合理置于结果前列,直接反映 “排得准” 的能力;
|
||||
* Recall@5/10:侧重结果覆盖面,核心评估系统能否识别出所有与查询相关的文档,对应 “找得全” 的能力。
|
||||
- nDCG@5/10:聚焦排序精准度,重点衡量相关文档是否被合理置于结果前列,直接反映 “排得准” 的能力;
|
||||
- Recall@5/10:侧重结果覆盖面,核心评估系统能否识别出所有与查询相关的文档,对应 “找得全” 的能力。
|
||||
|
||||
这两组指标相辅相成,共同构建起对 Rerank 模型的完整评估体系,确保评估结果更具全面性与参考价值。
|
||||
|
||||
@@ -493,8 +491,8 @@ MTEB为各类Embedding模型提供了一个统一、客观的评估框架。它
|
||||
|
||||
以下是竞技场排名的示例(截止至 2025 年 12 月 15 日)
|
||||
|
||||
| Rank | Model | Score | Votes | Organization | License |
|
||||
| ---- | ---------------------------------------------------------------------------------------- | ----- | ------ | ------------ | ----------- |
|
||||
| Rank | Model | Score | Votes | Organization | License |
|
||||
| ---- | ------------------------------------------------------------------------------------------- | ----- | ------ | ------------ | ----------- |
|
||||
| 1 | [gemini-3-pro](http://aistudio.google.com/app/prompts/new_chat?model=gemini-3-pro-preview) | 1492 | 15,871 | Google | Proprietary |
|
||||
| 2 | [grok-4.1-thinking](https://x.ai/news/grok-4-1) | 1478 | 16,660 | xAI | Proprietary |
|
||||
| 3 | [claude-opus-4-5-20251101-thinking-32k](https://www.anthropic.com/news/claude-opus-4-5) | 1470 | 9,879 | Anthropic | Proprietary |
|
||||
@@ -516,20 +514,20 @@ LMArena的独特价值在于其评估方式更贴近真实用户体验,而非
|
||||
|
||||
在实际工程实践中,通常不需要从零开始构建整个 RAG 系统。目前业界已有多个成熟的开源框架可供选择,它们在架构设计、模块集成和开发效率等方面各有特色。企业可以根据自身的技术储备和业务场景,选择合适的框架快速搭建系统。常见的框架类型包括:
|
||||
|
||||
**低代码** **/可视化平台**
|
||||
**低代码** **/可视化平台**
|
||||
|
||||
* [Dify](https://dify.ai):提供直观的可视化界面,支持快速搭建 RAG 应用,适合非技术团队或快速原型验证场景。内置多模型接入、工作流编排和 prompt 管理功能。
|
||||
* [Coze](https://www.coze.com/):字节跳动推出的 AI Bot 开发平台,提供零代码的可视化搭建能力。特色在于与豆包等字节系大模型深度集成,支持插件市场、定时任务和多渠道发布(飞书、微信等),适合快速构建面向 C 端用户的对话应用或企业内部智能助手。
|
||||
* [n8n](https://n8n.io/):一个开源的、基于节点的工作流自动化平台。它通过可视化的方式连接各类应用、API和数据源。在RAG场景中,可以利用n8n编排复杂的业务逻辑,将数据预处理、向量数据库操作、大模型调用以及后续动作(如发送邮件、更新工单)串联成一个自动化流程。
|
||||
* [RAGFlow](https://ragflow.io/):专注于深度版面分析和知识抽取能力,对复杂文档(如多栏 PDF、表格密集型文档)的处理效果较好,适合文档结构复杂的企业知识库场景。
|
||||
* [FastGPT](https://fastgpt.io/en):中国国内开源方案,集成了知识库管理、对话流程编排和应用发布功能,中文文档完善,适合快速部署中文 RAG 应用。
|
||||
- [Dify](https://dify.ai):提供直观的可视化界面,支持快速搭建 RAG 应用,适合非技术团队或快速原型验证场景。内置多模型接入、工作流编排和 prompt 管理功能。
|
||||
- [Coze](https://www.coze.com/):字节跳动推出的 AI Bot 开发平台,提供零代码的可视化搭建能力。特色在于与豆包等字节系大模型深度集成,支持插件市场、定时任务和多渠道发布(飞书、微信等),适合快速构建面向 C 端用户的对话应用或企业内部智能助手。
|
||||
- [n8n](https://n8n.io/):一个开源的、基于节点的工作流自动化平台。它通过可视化的方式连接各类应用、API和数据源。在RAG场景中,可以利用n8n编排复杂的业务逻辑,将数据预处理、向量数据库操作、大模型调用以及后续动作(如发送邮件、更新工单)串联成一个自动化流程。
|
||||
- [RAGFlow](https://ragflow.io/):专注于深度版面分析和知识抽取能力,对复杂文档(如多栏 PDF、表格密集型文档)的处理效果较好,适合文档结构复杂的企业知识库场景。
|
||||
- [FastGPT](https://fastgpt.io/en):中国国内开源方案,集成了知识库管理、对话流程编排和应用发布功能,中文文档完善,适合快速部署中文 RAG 应用。
|
||||
|
||||
**代码框架/开发库**
|
||||
|
||||
以下介绍的软件通常都有不同平台(前后端)语言的实现方式,你可以根据当前应用的语言选择下列对应软件的语言版本(例如 Python 或 Java 版)。
|
||||
|
||||
* [LlamaIndex](https://www.llamaindex.ai/):专为 RAG 场景设计的 Python 框架,提供丰富的数据连接器(Connector)、索引结构和查询引擎,模块化程度高,适合需要深度定制检索策略或集成多种数据源的场景。
|
||||
* [LangChain](https://www.langchain.com/):通用 LLM 应用开发框架,RAG 只是其中一个应用方向。优势在于生态丰富、组件齐全,支持复杂的 Agent 和工作流编排,但学习曲线相对陡峭,适合构建复杂的多模块 LLM 应用。
|
||||
- [LlamaIndex](https://www.llamaindex.ai/):专为 RAG 场景设计的 Python 框架,提供丰富的数据连接器(Connector)、索引结构和查询引擎,模块化程度高,适合需要深度定制检索策略或集成多种数据源的场景。
|
||||
- [LangChain](https://www.langchain.com/):通用 LLM 应用开发框架,RAG 只是其中一个应用方向。优势在于生态丰富、组件齐全,支持复杂的 Agent 和工作流编排,但学习曲线相对陡峭,适合构建复杂的多模块 LLM 应用。
|
||||
|
||||
如果团队技术储备有限、追求快速上线,可优先考虑 Dify 、Coze 或 FastGPT 等低代码平台;如果需要深度定制检索框架、对接特殊数据源或优化性能细节,LlamaIndex 和 LangChain 提供了更大的灵活性。实际项目中,也可以采用"混合方案":用低代码平台快速验证可行性,再用代码框架实现生产级部署和性能优化。此外,这些框架大多支持主流 Embedding、Rerank 和 LLM 模型的快速接入,可以基于前文提到的模型选型标准灵活组合最后使用的模型型号。
|
||||
|
||||
@@ -543,9 +541,9 @@ LMArena的独特价值在于其评估方式更贴近真实用户体验,而非
|
||||
|
||||
具体而言,该流程通常包含三个关键步骤:
|
||||
|
||||
* 首先合成评测数据集,我们需要从知识库中采样文档,并指令 LLM 生成与之对应的、高质量的“问题-参考答案”对,再经过相关性、事实 groundedness 等过滤,形成基准测试集;
|
||||
* 其次,运行 RAG 系统并收集答案,让待评估的系统处理测试集中的每个问题,得到其生成的答案;
|
||||
* 最后,进行自动化判分,调用另一个作为“裁判”的 LLM,将系统生成的答案与参考答案进行对比,从准确性、完整性等维度给出量化评分。
|
||||
- 首先合成评测数据集,我们需要从知识库中采样文档,并指令 LLM 生成与之对应的、高质量的“问题-参考答案”对,再经过相关性、事实 groundedness 等过滤,形成基准测试集;
|
||||
- 其次,运行 RAG 系统并收集答案,让待评估的系统处理测试集中的每个问题,得到其生成的答案;
|
||||
- 最后,进行自动化判分,调用另一个作为“裁判”的 LLM,将系统生成的答案与参考答案进行对比,从准确性、完整性等维度给出量化评分。
|
||||
|
||||
可以用一个简单的例子展示其过程:
|
||||
|
||||
@@ -559,8 +557,8 @@ LMArena的独特价值在于其评估方式更贴近真实用户体验,而非
|
||||
|
||||
若你需要深入掌握具体细节(如指标的数学计算逻辑、框架的实操部署步骤、不同基准数据集的适用场景等),建议参考以下两篇 RAG 评测领域的论文:
|
||||
|
||||
* [https://arxiv.org/pdf/2504.14891](https://arxiv.org/pdf/2504.14891)(《Retrieval Augmented Generation Evaluation in the Era of Large Language Models: A Comprehensive Survey》):系统梳理了 LLM 时代 RAG 的内外部评测方法,涵盖组件级与系统级评估,还汇总了海量评测数据集与框架,并分析了当前研究趋势与挑战。
|
||||
* [https://arxiv.org/pdf/2405.07437](https://arxiv.org/pdf/2405.07437)(《Evaluation of Retrieval-Augmented Generation: A Survey》):提出了统一的 RAG 评测流程(Auepora),从 “评测目标、数据集、指标” 三维度拆解评测逻辑,同时对比了不同基准的优劣,为实践提供了清晰指引。
|
||||
- [https://arxiv.org/pdf/2504.14891](https://arxiv.org/pdf/2504.14891)(《Retrieval Augmented Generation Evaluation in the Era of Large Language Models: A Comprehensive Survey》):系统梳理了 LLM 时代 RAG 的内外部评测方法,涵盖组件级与系统级评估,还汇总了海量评测数据集与框架,并分析了当前研究趋势与挑战。
|
||||
- [https://arxiv.org/pdf/2405.07437](https://arxiv.org/pdf/2405.07437)(《Evaluation of Retrieval-Augmented Generation: A Survey》):提出了统一的 RAG 评测流程(Auepora),从 “评测目标、数据集、指标” 三维度拆解评测逻辑,同时对比了不同基准的优劣,为实践提供了清晰指引。
|
||||
|
||||
### 5.3.2 评测指标
|
||||
|
||||
@@ -574,9 +572,9 @@ RAG系统的评估本质上围绕两个核心问题:检索模块能否准确
|
||||
|
||||
首先是一组衡量召回基本质量的经典指标:Recall@K、Precision@K和F1。
|
||||
|
||||
* **Recall@K** 衡量在前K条检索结果中,相关文档被找回的比例。比如知识库中有5篇相关文档,前10条结果找回了3篇,则Recall@10为60%。这个指标告诉我们检索的"覆盖面"如何。
|
||||
* **Precision** **@K** 衡量前K条结果中真正相关文档的占比。同样是前10条结果,如果其中有3篇相关、7篇不相关,则Precision@10为30%。这个指标反映检索的"准确度"。
|
||||
* **F1** 则是Recall和Precision的调和平均,在两者间寻求平衡。
|
||||
- **Recall@K** 衡量在前K条检索结果中,相关文档被找回的比例。比如知识库中有5篇相关文档,前10条结果找回了3篇,则Recall@10为60%。这个指标告诉我们检索的"覆盖面"如何。
|
||||
- **Precision** **@K** 衡量前K条结果中真正相关文档的占比。同样是前10条结果,如果其中有3篇相关、7篇不相关,则Precision@10为30%。这个指标反映检索的"准确度"。
|
||||
- **F1** 则是Recall和Precision的调和平均,在两者间寻求平衡。
|
||||
|
||||
这组指标适合快速发现召回阶段的基础问题,比如向量化模型是否有效、检索策略是否合理、Query改写是否到位等。如果Recall很低,说明相关文档根本没被找到;如果Precision很低,说明检索噪声太大。
|
||||
|
||||
@@ -584,9 +582,9 @@ RAG系统的评估本质上围绕两个核心问题:检索模块能否准确
|
||||
|
||||
找到相关文档只是第一步,更重要的是把最相关的文档排在前面。这就需要关注排序质量的指标:MRR、NDCG@K和MAP。
|
||||
|
||||
* **MRR** **(** **Mean Reciprocal Rank** **)** 计算第一个相关文档出现位置的倒数均值。如果第一个相关文档出现在第3位,该条查询的RR就是1/3。MRR适合那些只需要一个正确答案的场景,比如问答系统。
|
||||
* **NDCG@K(Normalized Discounted Cumulative Gain)** 考虑了相关性分级和位置衰减两个因素。它不仅关注文档是否相关,还关注相关程度;同时,越相关的文档排在越前面,得分越高。这使得NDCG成为衡量排序质量最全面的指标之一。
|
||||
* **MAP(Mean ** **Average Precision** **)** 综合考虑所有相关文档的位置,对整体排序质量更为敏感。
|
||||
- **MRR** **(** **Mean Reciprocal Rank** **)** 计算第一个相关文档出现位置的倒数均值。如果第一个相关文档出现在第3位,该条查询的RR就是1/3。MRR适合那些只需要一个正确答案的场景,比如问答系统。
|
||||
- **NDCG@K(Normalized Discounted Cumulative Gain)** 考虑了相关性分级和位置衰减两个因素。它不仅关注文档是否相关,还关注相关程度;同时,越相关的文档排在越前面,得分越高。这使得NDCG成为衡量排序质量最全面的指标之一。
|
||||
- **MAP(Mean ** **Average Precision** **)** 综合考虑所有相关文档的位置,对整体排序质量更为敏感。
|
||||
|
||||
在实际工程中,我们通常采用 Recall@K + MRR@K 的组合,既保证召回覆盖面又约束排序质量。举个例子,如果发现Recall@10达到80%但MRR@10只有0.3,说明相关文档虽然被找到了但都埋在后面,这时就需要优化重排序策略,比如引入交叉编码器或调整多路召回的权重分配。
|
||||
|
||||
@@ -598,11 +596,11 @@ RAG系统的评估本质上围绕两个核心问题:检索模块能否准确
|
||||
|
||||
**精确匹配与文本相似度**
|
||||
|
||||
最直接的评估方式是 **EM(Exact Match)** ,要求生成答案与参考答案完全一致。这个指标适合答案唯一、形式固定的场景,比如"成立日期是什么时候?""总部在哪里?"这类事实性问答。但EM过于严格,同样正确的"2020年1月1日"和"2020-01-01"会被判为不匹配。
|
||||
最直接的评估方式是 **EM(Exact Match)** ,要求生成答案与参考答案完全一致。这个指标适合答案唯一、形式固定的场景,比如"成立日期是什么时候?""总部在哪里?"这类事实性问答。但EM过于严格,同样正确的"2020年1月1日"和"2020-01-01"会被判为不匹配。
|
||||
|
||||
因此,更常用的是基于n-gram重叠的相似度指标: **ROUGE** **、** **BLEU** **、METEOR** 。它们通过计算生成内容与参考答案的词汇重叠程度来打分。其中,ROUGE-L关注最长公共子序列,对答案的流畅性更敏感;BLEU源自机器翻译领域,注重精确匹配;METEOR则加入了同义词和词干的考量。这些指标的优势是计算简单、易于理解,但也有明显局限——它们只看表面词汇匹配,对语义理解不够深入。
|
||||
因此,更常用的是基于n-gram重叠的相似度指标: **ROUGE** **、** **BLEU** **、METEOR** 。它们通过计算生成内容与参考答案的词汇重叠程度来打分。其中,ROUGE-L关注最长公共子序列,对答案的流畅性更敏感;BLEU源自机器翻译领域,注重精确匹配;METEOR则加入了同义词和词干的考量。这些指标的优势是计算简单、易于理解,但也有明显局限——它们只看表面词汇匹配,对语义理解不够深入。
|
||||
|
||||
为了弥补这一不足,我们可以引入 **BertScore** 或直接的 **向量相似度** 。它们利用预训练模型的向量表示来计算语义相似度,更能容忍表述差异。比如"这款产品很受欢迎"和"该设备广受好评"在词汇上几乎没有重叠,但向量相似度会很高。这对于需要改写、总结、解释的生成任务特别有效。
|
||||
为了弥补这一不足,我们可以引入 **BertScore** 或直接的 **向量相似度** 。它们利用预训练模型的向量表示来计算语义相似度,更能容忍表述差异。比如"这款产品很受欢迎"和"该设备广受好评"在词汇上几乎没有重叠,但向量相似度会很高。这对于需要改写、总结、解释的生成任务特别有效。
|
||||
|
||||
**事实忠实度与幻觉检测**
|
||||
|
||||
@@ -618,10 +616,10 @@ RAG系统的评估本质上围绕两个核心问题:检索模块能否准确
|
||||
|
||||
具体做法是:将问题、检索文档、系统回答、参考答案一并输入一个独立的大模型(通常选择能力较强的模型如GPT-4或Claude),让它按多个维度进行综合评分:
|
||||
|
||||
* **问题相关性** :答案是否真正回应了用户问题,有没有答非所问?
|
||||
* **信息完整性** :该涵盖的要点是否都说到了,有没有遗漏关键信息?
|
||||
* **事实忠实性** :答案是否出现了检索文档中不存在的内容,有没有幻觉?
|
||||
* **整体正确性** :与参考答案相比,生成答案的质量如何?
|
||||
- **问题相关性** :答案是否真正回应了用户问题,有没有答非所问?
|
||||
- **信息完整性** :该涵盖的要点是否都说到了,有没有遗漏关键信息?
|
||||
- **事实忠实性** :答案是否出现了检索文档中不存在的内容,有没有幻觉?
|
||||
- **整体正确性** :与参考答案相比,生成答案的质量如何?
|
||||
|
||||
LLM裁判的优势在于能进行更接近人类的整体性判断——它可以理解上下文、把握语义、识别逻辑,甚至能发现一些自动化指标捕捉不到的细微问题,比如语气不当、逻辑矛盾、表述含糊等。当然,裁判本身也需要精心设计prompt,并用人工标注样本进行校准,确保评分标准的一致性和可靠性。
|
||||
|
||||
@@ -631,9 +629,9 @@ LLM裁判的优势在于能进行更接近人类的整体性判断——它可
|
||||
|
||||
一个务实的建议是 **从精简组合开始,逐步完善** :
|
||||
|
||||
* **检索评估** :采用 Recall@K + MRR@K 的核心组合,快速把握召回覆盖和排序质量
|
||||
* **生成评估** :根据任务特点,从 EM、ROUGE-L、BertScore 中选择一到两个作为基线
|
||||
* **综合评估** :引入 LLM裁判,重点关注相关性、完整性、忠实性三个维度
|
||||
- **检索评估** :采用 Recall@K + MRR@K 的核心组合,快速把握召回覆盖和排序质量
|
||||
- **生成评估** :根据任务特点,从 EM、ROUGE-L、BertScore 中选择一到两个作为基线
|
||||
- **综合评估** :引入 LLM裁判,重点关注相关性、完整性、忠实性三个维度
|
||||
|
||||
在此基础上,采用"评测→发现问题→调整策略→再评测"的循环迭代。比如,发现召回率不错但MRR很低,就重点优化重排序;发现幻觉率偏高,就加强对检索文档的忠实度约束;发现某些类型的问题回答质量不好,就针对性地补充细分指标。
|
||||
|
||||
@@ -649,13 +647,13 @@ LLM裁判的优势在于能进行更接近人类的整体性判断——它可
|
||||
|
||||
**研究型框架**主要服务于学术研究和前沿探索,特点是评测维度细致、方法创新性强。代表性的如FiD-Light和Diversity Reranker,它们专注于检索阶段的细粒度评估,前者关注召回的延迟性(Latency),后者强调结果的多样性(Diversity)。这类框架通常会深入到RAG系统的某个特定环节,提供精细化的诊断能力。
|
||||
|
||||
**基准测试****框架**则提供了标准化的测试集和评测流程,用于横向比较不同RAG系统的性能。这类框架数量最多、影响最广。例如:
|
||||
**基准测试\*\***框架\*\*则提供了标准化的测试集和评测流程,用于横向比较不同RAG系统的性能。这类框架数量最多、影响最广。例如:
|
||||
|
||||
* **RAGAS** (2023.09)是最早的综合性RAG评测框架之一,采用LLM-as-a-Judge模式,同时评估检索和生成两个环节
|
||||
* **ARES** (2023.11)引入了分类器辅助的评测方法,结合LLM判断和传统分类器来评估Context相关性和Answer相关性
|
||||
* **RGB** (2023.12)专注于生成阶段的评估,提出了信息整合(Info Integration)、噪声鲁棒性(NoiseRobust)、负样本拒绝(NegRejection)、反事实鲁棒性(Counterfact)等细分维度
|
||||
* **MultiHop-RAG** (2024.01)针对多跳推理场景,重点评估检索的相关性(Retrieval C)和回答的正确性(Response C),使用MAP、MRR、Hit@K等指标
|
||||
* **CRUD-RAG** (2024.02)模拟真实的知识管理场景,评估系统在Create、Read、Update、Delete四种操作下的表现,引入了RAGQuerEval评分体系
|
||||
- **RAGAS** (2023.09)是最早的综合性RAG评测框架之一,采用LLM-as-a-Judge模式,同时评估检索和生成两个环节
|
||||
- **ARES** (2023.11)引入了分类器辅助的评测方法,结合LLM判断和传统分类器来评估Context相关性和Answer相关性
|
||||
- **RGB** (2023.12)专注于生成阶段的评估,提出了信息整合(Info Integration)、噪声鲁棒性(NoiseRobust)、负样本拒绝(NegRejection)、反事实鲁棒性(Counterfact)等细分维度
|
||||
- **MultiHop-RAG** (2024.01)针对多跳推理场景,重点评估检索的相关性(Retrieval C)和回答的正确性(Response C),使用MAP、MRR、Hit@K等指标
|
||||
- **CRUD-RAG** (2024.02)模拟真实的知识管理场景,评估系统在Create、Read、Update、Delete四种操作下的表现,引入了RAGQuerEval评分体系
|
||||
|
||||
进入2024年后,评测框架呈现出明显的专业化和细分化趋势。医疗领域有MedRAG,法律领域有LegalBench-RAG,金融领域有相关的domain-specific框架。这些领域框架不仅提供了专业数据集,还针对行业特点设计了定制化的评测指标,比如医疗场景特别关注准确性(Accuracy),法律场景强调文档级精确度(Doc-level Precision)和引用相关性(Citation Relevance)。
|
||||
|
||||
@@ -663,9 +661,9 @@ LLM裁判的优势在于能进行更接近人类的整体性判断——它可
|
||||
|
||||
上述我们介绍了多种不同的 RAG 评测框架,但在具体实战中该如何选择?不妨先选取 GitHub 星标数量较多的几款进行初步测试;而当企业面临丰富的框架选择、需要落地决策时,可从以下几方面着手。
|
||||
|
||||
* 快速上手需求:若需快速搭建基线评测,可选择 RAGAS、RAGEval 等综合性框架,它们能提供开箱即用的完整流程,若需深入诊断某一环节问题,则需选用针对性框架 :例如检索效果不佳时可用 MultiHop-RAG,幻觉问题突出时则可采用 CoURAGE 或 RAG Unfairness。
|
||||
* 结合行业进行选择:若应用于医疗、法律、金融等专业领域,应优先选择适配该领域的框架,这类框架往往内置专业术语处理、合规性检查等关键能力,通用框架虽功能全面,但在专业场景中易出现 “水土不服” 的情况。
|
||||
* 根据集成成本选择:像 LangChain Benchmarks、TruEra RAG Triad 等框架已与主流开发框架深度集成,能快速接入现有系统,而部分学术框架虽技术方法先进,却需额外投入工程适配工作;最后需关注持续维护情况,应优先选择社区活跃、文档完善且持续更新的框架,避开已停止维护的项目,具体可参考 GitHub 星标数量、更新频率、Issue 响应速度等指标。
|
||||
- 快速上手需求:若需快速搭建基线评测,可选择 RAGAS、RAGEval 等综合性框架,它们能提供开箱即用的完整流程,若需深入诊断某一环节问题,则需选用针对性框架 :例如检索效果不佳时可用 MultiHop-RAG,幻觉问题突出时则可采用 CoURAGE 或 RAG Unfairness。
|
||||
- 结合行业进行选择:若应用于医疗、法律、金融等专业领域,应优先选择适配该领域的框架,这类框架往往内置专业术语处理、合规性检查等关键能力,通用框架虽功能全面,但在专业场景中易出现 “水土不服” 的情况。
|
||||
- 根据集成成本选择:像 LangChain Benchmarks、TruEra RAG Triad 等框架已与主流开发框架深度集成,能快速接入现有系统,而部分学术框架虽技术方法先进,却需额外投入工程适配工作;最后需关注持续维护情况,应优先选择社区活跃、文档完善且持续更新的框架,避开已停止维护的项目,具体可参考 GitHub 星标数量、更新频率、Issue 响应速度等指标。
|
||||
|
||||
除此之外,在社区中还公认推荐了一批工具,部分框架已在上述内容中提到:Ragas 提供了丰富指标且不绑定特定框架;Continuous Eval 以轻量和低成本为特点,支持构建具备数学保证的评估流水线;TruLens‑Eval 与 LangChain、Llama‑Index 等主流框架集成良好,并提供可视化分析;而 Llama‑Index 自身生态中也集成了评估与合成数据生成功能,便于对其构建的应用进行闭环测试。还有 Phoenix、DeepEval、LangSmith 和 OpenAI Evals 等工具也在持续迭代中,你可综合自身需求和对应工具的口碑进一步选用。
|
||||
|
||||
@@ -677,9 +675,9 @@ LLM裁判的优势在于能进行更接近人类的整体性判断——它可
|
||||
|
||||
对于大多数企业而言,由于业务场景存在独特性,最终往往需要构建自己的评测数据集。
|
||||
|
||||
* 构建过程可以从业务日志中提取真实用户问题入手,并依据类型、频率和难度进行分层采样,以保证数据的代表性。对于简单问题可由领域专家直接标注,复杂问题则可先用高质量LLM生成候选答案,再由专家审核修改,这种"机器生成+人工校准"的方式能显著降低标注成本。
|
||||
* 除答案本身,标注相关文档、答案类型、难度等级等元信息,为后续细分析提供支持。建立标注规范,进行多人交叉验证,计算标注一致性(如Kappa系数),确保数据质量。
|
||||
* 定期从线上反馈中补充新的测试用例,尤其是系统回答不好的问题,让评测数据与系统能力同步演进。这种持续迭代的机制能让评测基准始终保持对业务场景的敏感度和有效性。
|
||||
- 构建过程可以从业务日志中提取真实用户问题入手,并依据类型、频率和难度进行分层采样,以保证数据的代表性。对于简单问题可由领域专家直接标注,复杂问题则可先用高质量LLM生成候选答案,再由专家审核修改,这种"机器生成+人工校准"的方式能显著降低标注成本。
|
||||
- 除答案本身,标注相关文档、答案类型、难度等级等元信息,为后续细分析提供支持。建立标注规范,进行多人交叉验证,计算标注一致性(如Kappa系数),确保数据质量。
|
||||
- 定期从线上反馈中补充新的测试用例,尤其是系统回答不好的问题,让评测数据与系统能力同步演进。这种持续迭代的机制能让评测基准始终保持对业务场景的敏感度和有效性。
|
||||
|
||||
当然,如果团队资源有限或希望快速建立基线,参考业界成熟的公开评测基准也是一个可行的起点。截至2025年,已有诸多涵盖通用领域和垂直行业的基准可供选择(见图表)。
|
||||
|
||||
@@ -846,9 +844,9 @@ RAG技术已从最初的检索增强生成工具,发展为构建智能体认
|
||||
Agentic RAG实现上述复杂任务处理的关键,在于其建立了一个多层次的主动循环工作机制。 面对复杂查询,智能体首先分析问题本质,将其拆解为子问题,并为每个子问题设计精准的检索策略。获得初步结果后,智能体进行评估与反思,判断信息的完整性和相关性,识别知识缺口,并动态生成更精确的新查询。这种迭代过程常包含多跳检索,即基于前一轮结果发现新的检索方向,形成类似人类研究者的知识探索链条。然而,要支撑这种持续的、迭代的智能行为,尤其是实现长期交互中的个性化和知识积累,仅依赖单次会话的短期上下文(短期记忆)是远远不够的。这引出了对长期、结构化记忆能力的需求。
|
||||
|
||||
正是为了满足这一需求,RAG被赋予了作为智能体长期记忆系统的角色,构建了一个完整的外部记忆架构。 该系统与负责维护当前会话上下文的短期记忆形成互补。该长期记忆系统的核心运作依赖于三项关键机制:
|
||||
第一,结构化索引能力:使智能体能够为海量非结构化数据建立多维索引体系(如按时间、主题或实体关系),支持多角度高效检索,模拟人脑通过不同线索回忆信息的方式。
|
||||
第二,智能遗忘机制:通过价值评估算法,系统对使用频率低、相关性弱或过时的信息进行权重衰减或选择性剔除,维持记忆系统的精炼高效,防止信息过载。
|
||||
第三,知识巩固过程:系统将零散对话和交互经验提炼为结构化知识,利用实体识别、关系抽取和语义聚类等技术,将碎片信息整合连接成知识图谱,完成从短期经验到长期知识的转化与沉淀。
|
||||
第一,结构化索引能力:使智能体能够为海量非结构化数据建立多维索引体系(如按时间、主题或实体关系),支持多角度高效检索,模拟人脑通过不同线索回忆信息的方式。
|
||||
第二,智能遗忘机制:通过价值评估算法,系统对使用频率低、相关性弱或过时的信息进行权重衰减或选择性剔除,维持记忆系统的精炼高效,防止信息过载。
|
||||
第三,知识巩固过程:系统将零散对话和交互经验提炼为结构化知识,利用实体识别、关系抽取和语义聚类等技术,将碎片信息整合连接成知识图谱,完成从短期经验到长期知识的转化与沉淀。
|
||||
|
||||
这种由RAG构建的外部记忆系统,不仅极大地扩展了智能体的认知边界,更重要的是赋予了其持续学习和知识进化的能力。 它使得智能体能够在长期互动中积累经验,形成个性化的处理模式和领域专业知识体系,从而为执行更复杂、更持久的任务提供了坚实的基础。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user