Auto-sync: update nexus workspace
This commit is contained in:
@@ -1,68 +1,67 @@
|
||||
---
|
||||
title: "RAG从入门到精通系列1:基础RAG"
|
||||
type: source
|
||||
tags: [rag, llm, 向量检索, 知识库, langchain]
|
||||
date: 2025-01-16
|
||||
---
|
||||
|
||||
## Source File
|
||||
- [[AI/RAG从入门到精通系列1:基础RAG.md]]
|
||||
|
||||
## Summary(用中文描述)
|
||||
- 核心主题:RAG(检索增强生成)基础原理与实战入门,从 Indexing(索引)、Retrieval(检索)到 Generation(生成)的完整流程。
|
||||
- 问题域:LLM 无法使用最新数据和私有数据的根本问题,以及如何通过 RAG 打通 LLM 与外部知识库的连接。
|
||||
- 方法/机制:三大核心阶段——(1) Indexing:将外部文档加载、切分、Embedding 向量化后存入向量数据库;(2) Retrieval:用户问题 Embedding 化后通过向量相似度检索 Top-k 相关文档块;(3) Generation:将问题 + 检索结果输入 LLM 生成带事实依据的答案。实战工具链:Qwen(LLM)+ BAAI(Embedding)+ LangChain(编排)+ Qdrant(向量数据库)。
|
||||
- 结论/价值:RAG 是让 LLM 拥有外部知识的标准范式,LangChain 和 LlamaIndex 等框架将三阶段流程封装为 Chain,大幅降低开发门槛;LangSmith 可视化整个 RAG 管道便于调试。
|
||||
|
||||
## Key Claims(用中文描述)
|
||||
- RAG 将 LLM 与外部数据源(私有数据/最新数据)连接,使 LLM 能够使用非训练知识生成答案。
|
||||
- Indexing 阶段通过 Embedding Model 将文本转为固定长度的语义向量,以满足向量相似度检索的需求。
|
||||
- 由于 Embedding Model 的 Context Window 有限(512~8192 token),需将外部文档切分成满足窗口大小的 Split(文档块)。
|
||||
- Retrieval 阶段根据用户问题的语义向量,在向量数据库中按相似度(余弦相似度等)找出 Top-k 个最相关的文档块。
|
||||
- Generation 阶段将问题与检索到的文档块通过 PromptTemplate 组合为 Prompt,输入 LLM 生成有事实依据的最终答案。
|
||||
- LangChain 和 LlamaIndex 将 Indexing-Retrieval-Generation 三阶段封装为 Chain,简化 RAG 应用开发。
|
||||
- LangSmith 提供 RAG 管道的全链路可视化监控和调试能力。
|
||||
|
||||
## Key Quotes
|
||||
> "RAG(Retrieval Augmented Generation,检索增强生成)是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。" — RAG 的定义与价值
|
||||
> "Embedding Model 的 Context Window 有限,我们不能直接把整篇文档丢进去,所以要将原始文档拆分成一个个文档块。" — 文档切分的必要性
|
||||
> "看起来很复杂,但这就是 LangChain 和 LlamaIndex 这类框架存在的意义。" — 框架的价值定位
|
||||
|
||||
## Key Concepts
|
||||
- [[RAG]]:检索增强生成,将 LLM 链接外部知识库的核心技术架构
|
||||
- [[Indexing]]:索引阶段,将外部文档加载、切分、向量化后存入向量数据库
|
||||
- [[Retrieval]]:检索阶段,通过向量相似度从数据库中检索与问题相关的文档块
|
||||
- [[Generation]]:生成阶段,将问题+检索结果输入 LLM 生成答案
|
||||
- [[Embedding]]:将文本转为固定长度语义向量的技术,是向量检索的基础
|
||||
- [[Vector Store]](向量数据库):存储 Embedding Vector 并实现相似度比较的数据库系统,如 Qdrant
|
||||
- [[Split]](文档块):将长文档切分后满足 Embedding Model Context Window 的文本片段
|
||||
- [[Context Window]]:模型一次性处理的最大 token 数量,Embedding Model 通常为 512~8192 token
|
||||
- [[PromptTemplate]]:将问题与上下文组装为 LLM 输入 Prompt 的模板技术
|
||||
- [[Chain]](链):LangChain 中将多个步骤串联执行的抽象,RAG Chain 串联 Retrieval 与 Generation
|
||||
- [[Token]]:模型处理文本的基本单位,英文约 3~4 字母/token,中文约 1 汉字/token
|
||||
|
||||
## Key Entities
|
||||
- [[LangChain]]:Python/LLM 应用开发框架,提供文档加载器、Embedding、Vector Store、Chain、RAG 原语
|
||||
- [[Qwen]]:阿里通义千问系列 LLM,本教程中用作 Generation 阶段的 LLM
|
||||
- [[BAAI]](BGE Embedding):开源 Embedding Model 系列,将文本转为语义向量
|
||||
- [[Qdrant]]:Rust 编写的开源向量数据库,存储 Embedding Vector 并提供相似度检索
|
||||
- [[LlamaIndex]]:另一主流 LLM 数据框架(与 LangChain 并列),专注知识增强
|
||||
- [[LangSmith]]:LangChain 官方平台,用于构建、监控和评估生产级 LLM 应用,支持 RAG 管道可视化
|
||||
- [[PyTorch研习社]]:文章来源微信公众号
|
||||
|
||||
## Connections
|
||||
- [[RAG]] ← 基础理论 ← [[rag从入门到精通系列1-基础rag]]
|
||||
- [[RAG]] ← 依赖 ← [[Embedding]]
|
||||
- [[RAG]] ← 依赖 ← [[Vector Store]]
|
||||
- [[RAG]] ← 工具链 ← [[LangChain]]
|
||||
- [[RAG]] ← 工具链 ← [[LlamaIndex]]
|
||||
- [[Indexing]] ← 依赖 ← [[Embedding]]
|
||||
- [[Retrieval]] ← 依赖 ← [[Vector Store]]
|
||||
- [[Generation]] ← 依赖 ← [[PromptTemplate]]
|
||||
- [[Indexing]] ← 依赖 ← [[LangChain]](文档加载器/Splitter/Embedding/Vector Store)
|
||||
- [[Retrieval]] ← 依赖 ← [[LangChain]](Retriever)
|
||||
- [[Generation]] ← 依赖 ← [[LangChain]](Chain/PromptTemplate)
|
||||
- [[rag从入门到精通系列1-基础rag]] ← 系列第一篇 → 其他 RAG 系列文章(待补充)
|
||||
|
||||
## Contradictions
|
||||
- 与其他 RAG 进阶技术存在优化方向上的差异:本文为基础 RAG(Naive RAG),采用直接向量检索 + 简单拼接 Prompt 的朴素方案。与 Advanced RAG(包含 Query Rewrite、Step-back Prompt、HyDE 等查询优化技术)和 RAG Fusion(多路召回 + RRF 重排)等进阶方案相比,基础 RAG 在检索质量和上下文利用上存在局限。当前 Wiki 中暂无 Advanced RAG 或 RAG Fusion 的专门页面,此冲突待后续补充进阶内容后更新。
|
||||
---
|
||||
title: "RAG从入门到精通系列1:基础RAG"
|
||||
type: source
|
||||
tags: [RAG, LLM, 检索增强生成, 向量数据库]
|
||||
date: 2025-01-16
|
||||
sources: []
|
||||
last_updated: 2025-01-16
|
||||
---
|
||||
|
||||
## Source File
|
||||
- [[raw/AI/RAG从入门到精通系列1:基础RAG.md]]
|
||||
|
||||
## Summary(用中文描述)
|
||||
- 核心主题:RAG(检索增强生成)的基础概念与工作流程,包括 Indexing(索引)、Retrieval(检索)和 Generation(生成)三阶段
|
||||
- 问题域:LLM 缺乏最新知识和私有领域数据的问题,以及如何将 LLM 与外部数据源连接
|
||||
- 方法/机制:通过对外部文档建立索引 → 根据用户问题检索相关文档 → 将问题和相关文档输入 LLM 生成答案的三阶段管道;使用 Embedding Model 将文本转为向量表示存入 Vector Store
|
||||
- 结论/价值:RAG 是连接 LLM 与外部知识的通用方法,可消除 LLM 幻觉,提升答案准确性;LangChain 和 LlamaIndex 框架可简化 RAG 管道的构建
|
||||
|
||||
## Key Claims(用中文描述)
|
||||
- RAG(检索增强生成)通过将 LLM 与外部数据源连接,允许 LLM 使用私有数据或最新数据生成答案
|
||||
- 基础 RAG 流程包含三个阶段:Indexing(索引)、Retrieval(检索)、Generation(生成)
|
||||
- 文本必须转为 Embedding Vector(嵌入向量)才能实现语义相似度检索
|
||||
- Embedding Model 的 Context Window 有限(512~8192 token),需将文档切分成 Split 后再进行向量化
|
||||
- Vector Store(向量数据库)存储 Embedding Vector 并实现相似度比较
|
||||
- LangChain 和 LlamaIndex 框架可简化检索与生成管道的构建和串联
|
||||
|
||||
## Key Quotes
|
||||
> "RAG(Retrieval Augmented Generation,检索增强生成)是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。" — RAG 定义
|
||||
> "Embedding Vector 通常存储在 Vector Store(向量数据库)中,Vector Store 实现了各种比较 Embedding Vector 之间相似度的方法。" — 向量数据库作用
|
||||
> "LangSmith 是一个用于构建生产级 LLM 应用程序的平台。它允许我们密切监控和评估我们的应用程序,以便我们可以快速、自信地交付。" — LangSmith 定位
|
||||
|
||||
## Key Concepts
|
||||
- [[RAG]]:Retrieval Augmented Generation,检索增强生成 — 连接 LLM 与外部数据源的通用方法
|
||||
- [[Indexing]]:索引阶段 — 对外部文档进行加载、切分、向量化并存入向量数据库
|
||||
- [[Retrieval]]:检索阶段 — 根据问题语义向量检索相关文档块
|
||||
- [[Generation]]:生成阶段 — 将问题与检索到的文档输入 LLM 生成答案
|
||||
- [[Embedding]]:文本到向量表示的转换,使文本可用数学方法计算相似度
|
||||
- [[Vector-Store]]:向量数据库 — 存储嵌入向量并支持相似度检索
|
||||
- [[Split]]:文档切分 — 将长文档切分成适合 Embedding Model Context Window 的小块
|
||||
- [[Token]]:Token 是模型表示文本的基本单位,英文约 3-4 字母/Token,中文约 1 汉字/Token
|
||||
- [[Context-Window]]:上下文窗口 — Embedding Model 能接受的最大 token 数,通常 512~8192
|
||||
|
||||
## Key Entities
|
||||
- [[LangChain]]:Python/LLMs 应用开发框架,提供文档加载器、向量数据库集成、Chain 组合等功能
|
||||
- [[LlamaIndex]]:LLM 数据框架,用于构建 LLM 应用的数据连接层
|
||||
- [[Qwen]]:阿里通义千问大模型,作为示例 LLM 用于 RAG 管道
|
||||
- [[BAAI]]:智谱 AI Embedding 模型(如 BAAI/bge 系列),用于文本向量化
|
||||
- [[Qdrant]]:开源向量数据库,使用 Rust 编写,用于存储和检索 Embedding Vector
|
||||
- [[LangSmith]]:LangChain 的监控和评估平台,用于追踪和调试 LLM 应用管道
|
||||
|
||||
## Connections
|
||||
- [[RAG]] ← depends_on ← [[Vector-Store]]
|
||||
- [[RAG]] ← depends_on ← [[Embedding]]
|
||||
- [[RAG]] ← depends_on ← [[LLM]]
|
||||
- [[RAG]] ← depends_on ← [[LangChain]]
|
||||
- [[Indexing]] ← produces ← [[Vector-Store]]
|
||||
- [[Retrieval]] ← depends_on ← [[Vector-Store]]
|
||||
- [[Retrieval]] ← depends_on ← [[Embedding]]
|
||||
- [[Generation]] ← depends_on ← [[Retrieval]]
|
||||
- [[LangChain]] ← integrates ← [[Qwen]]
|
||||
- [[LangChain]] ← integrates ← [[BAAI]]
|
||||
- [[LangChain]] ← integrates ← [[Qdrant]]
|
||||
|
||||
## Contradictions
|
||||
- 与 [[Personal-Knowledge-Base-RAG]] 关系:本文侧重基础 RAG 概念和流程解析,后者侧重个人知识库场景下的 RAG 实战应用;两者互补,共同构成 RAG 知识体系
|
||||
- 与 [[大模型相关术语和框架总结]] 关系:本文深入展开 RAG 机制,后者将 RAG 列为术语之一(消除幻觉,正确率 60%→90%);本文提供机制详解,后者提供宏观定位
|
||||
- 与 [[llms-rag-ai-agent-三个到底什么区别]] 关系:本文详解 RAG 内部三阶段,后者将 RAG 定义为"随身图书馆助理";本文深入,后者概览,相互印证
|
||||
|
||||
Reference in New Issue
Block a user