37 lines
1020 B
Markdown
37 lines
1020 B
Markdown
---
|
||
tags: [rag, llm, search, embedding]
|
||
---
|
||
|
||
## RAG 检索增强生成
|
||
|
||
RAG(Retrieval-Augmented Generation)是一种将外部知识库与大语言模型结合的技术范式。
|
||
|
||
## RAG 的核心流程
|
||
|
||
### 1. 索引阶段(Indexing)
|
||
- 加载文档(Document Loader)
|
||
- 文本分块(Chunking)
|
||
- 向量化(Embedding)
|
||
- 存入向量数据库(Indexer)
|
||
|
||
### 2. 检索阶段(Retrieval)
|
||
- 用户查询向量化
|
||
- 向量相似度搜索
|
||
- 返回 Top-K 相关文档
|
||
|
||
### 3. 生成阶段(Generation)
|
||
- 将检索结果注入 Prompt
|
||
- LLM 基于上下文生成回答
|
||
|
||
## 混合检索
|
||
|
||
结合语义搜索(向量相似度)和关键词搜索(BM25),取长补短:
|
||
- 语义搜索:理解用户意图,找到表述不同但意思相近的内容
|
||
- 关键词搜索:精确匹配专业术语和专有名词
|
||
|
||
## 向量数据库选型
|
||
|
||
- **Milvus**:分布式,适合大规模生产环境
|
||
- **Chroma**:轻量级,适合原型开发
|
||
- **内存实现**:最简单,适合小规模和个人项目
|