PromptQuorumPromptQuorum
主页/本地LLM/本地RAG 2026:无需云API构建文档问答系统
Advanced Techniques

本地RAG 2026:无需云API构建文档问答系统

·阅读约14分钟·Hans Kuepper 作者 · PromptQuorum创始人,多模型AI调度工具 · PromptQuorum

Retrieval-Augmented Generation(RAG)让你的本地大语言模型能回答你自己文档中的问题。上传PDF和文本文件,系统将其转换为嵌入向量,存储在向量数据库中,在回答问题时检索相关内容。

Retrieval-Augmented Generation(RAG)让你的本地大语言模型能回答你自己文档中的问题。上传PDF和文本文件,系统将其转换为嵌入向量,存储在向量数据库中,在回答问题时检索相关内容。截至2026年4月,本地RAG已可投入生产,完全消除API成本。

关键要点

  • RAG = 上传文档 + 检索 + 本地大语言模型回答。无需训练。
  • 五个步骤:(1)加载文档,(2)分块为500-1000个令牌,(3)生成嵌入,(4)存储到向量DB,(5)查询时检索。
  • 最优嵌入模型:nomic-embed-text(137M,本地运行,768维向量)。
  • 最优向量DB:Chroma(简单,内置)用于<100万文档;Qdrant(分布式)用于生产环境。
  • 截至2026年4月,本地RAG比云API更快更便宜。质量取决于检索准确性和提示工程。

RAG 如何分步骤工作?

  1. 1
    文档导入: 加载PDF、文本文件或网页。
  2. 2
    分块: 将文档分割为500-1000个令牌的片段(重叠20%以防止上下文破裂)。
  3. 3
    嵌入: 使用本地嵌入模型将每个片段转换为向量(768-1536维)。
  4. 4
    存储: 将向量存储在向量数据库(Chroma、Qdrant、Milvus)中,包含元数据(文档名、页码、时间戳)。
  5. 5
    查询时: 将用户问题转换为嵌入,在向量DB中搜索前K个相似片段(k=5-10)。
  6. 6
    上下文组装: 将检索到的片段与大语言模型指令合并为提示。
  7. 7
    生成: 本地大语言模型根据检索到的上下文生成答案。
  8. 8
    归属: 返回答案来自哪些文档。

最优的分块策略是什么?

分块策略决定检索质量。 不良分块 = 相关信息分散在多个片段,检索失败。

语义分块(推荐): 按句子或段落分割,保留含义。示例:每个段落 = 1个片段。

固定大小分块: 每个片段500个令牌,20%重叠。简单但可能分割句子。

递归分块: 先按段落分割,如果太大则按句子分割。保留层次结构。

截至2026年4月,使用500-1000个令牌的语义分块和20%重叠对大多数用例最优。

python
# Python: 语义分块示例
from langchain.text_splitter import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
  chunk_size=1000,
  chunk_overlap=200,  # 20% 重叠
  separators=["\n\n", "\n", ".", " "]  # 按段落、句子分割
)
chunks = splitter.split_documents(documents)
print(f"Created {len(chunks)} chunks")

应该使用哪个向量数据库?

数据库类型容量设置难度最适合
Chroma内置<100万文档pip install原型设计、小规模RAG
Qdrant分布式无限制Docker或云生产环境、可扩展
Milvus分布式无限制复杂企业、大规模
Weaviate图+向量无限制Docker复杂查询、关系
Pinecone(云)托管无限制API密钥无服务器、无维护

应选择哪个嵌入模型?

模型向量维度速度质量推荐
nomic-embed-text(本地)优秀本地RAG最佳
bge-m3(本地)优秀多语言支持
OpenAI text-embedding-3(云)非常快业界最佳混合方案
Cohere(云)优秀生产云RAG

如何优化检索质量?

检索质量 决定RAG成败。好的检索 = 好的答案。差的检索 = 幻觉。

衡量检索质量的三个指标:(1)召回率(recall):找到了多少相关片段的百分比;(2)精准率(precision):找到的片段中有多少是实际相关的;(3)NDCG:排序质量。

优化技巧:

- 调整片段大小: 尝试256-1000个令牌。太小会丢失上下文,太大会增加噪音。

- 调整重叠: 尝试10-50%。

- 更换嵌入模型: 领域特定嵌入可能优于通用模型。

- 调整搜索参数: K值(结果数)、分数阈值、重新排序算法。

最佳实践:在小型测试集(10-20个用例)上测量检索质量,在生产前迭代改进。

评估与优化:如何测试RAG系统

关键指标:

- 答案质量得分(0-10): 人工标注。准确性、完整性、相关性。

- 检索成功率(%): 返回的片段是否足以回答问题?

- 延迟(毫秒): 从用户问题到回答。目标:<2秒。

- 成本($): 本地无API成本;使用云嵌入/重排时的成本。

测试方法:

1. 手工测试集: 10-50个(问题、期望答案、参考文档)组合。

2. 基线测量: 测试当前系统。

3. 调整单个参数: 片段大小、嵌入模型、K值等。

4. 重新测量指标: 改进了吗?

5. 生产验证: 实际用户满意度和反馈。

生产环境RAG的三种模式

模式1:个人RAG(本地、单用户)

- 设置:Ollama + Chroma + nomic-embed-text

- 规模:1-100,000文档

- 成本:免费

- 用例:个人知识库、私密文档

模式2:团队RAG(本地、共享)

- 设置:LM Studio或vLLM + Qdrant + bge-m3

- 规模:100,000-1,000,000文档

- 成本:本地GPU、Qdrant服务器

- 用例:内部文档搜索、知识共享

模式3:企业RAG(混合)

- 设置:vLLM + Milvus + 云嵌入(OpenAI或Cohere)

- 规模:1,000,000+文档

- 成本:Milvus托管 + 嵌入API

- 用例:金融、医疗、法律的合规RAG

常见错误

  • 错误1:随意选择片段大小。 结果:检索失败。 → 解决方案:测试256-1000个令牌,用测试集测量。
  • 错误2:选择最高维度嵌入。 OpenAI 3072维不必要。 → 解决方案:用nomic-embed-text(768维)获得99%质量,速度快10倍。
  • 错误3:嵌入模型领域不匹配。 金融RAG = OpenAI通用嵌入不是最优。 → 解决方案:使用在金融文本上微调的领域特定模型。
  • 错误4:幻觉测试不足。 不检查检索片段是否真实出现在答案中。 → 解决方案:自动评分"这个答案来自这个片段吗?"
  • 错误5:生产前不评估。 本地测试好,实际用户失败。 → 解决方案:生产前测试10-20个真实用例。

常见问题

本地RAG比云RAG(OpenAI、Cohere)快吗?

是。本地RAG没有网络延迟,<1秒完成检索+生成。云RAG需要2-5秒(API调用)。但云嵌入精度更高(3072维),小测试集更合适。

本地RAG和微调大语言模型的区别?

微调 = 重新训练大语言模型本身(重、慢)。RAG = 搜索外部知识传给大语言模型(轻、实时更新)。RAG更容易添加/删除文档,幻觉率更低。

RAG支持多少向量数据库?

几乎所有:Chroma、Qdrant、Milvus、Weaviate、Pinecone、Redis、Faiss。选择取决于规模:<100万文档 = Chroma(简单),生产 = Qdrant(分布),超大规模 = Milvus。

RAG需要GPU吗?

不需要。CPU + Chroma 能运行。但速度慢(嵌入生成需要数分钟)。加GPU(RTX 4070+)速度快5-10倍。

本地RAG能保证隐私吗?

是。所有数据(文档、嵌入、查询、答案)保留在本地,不通过互联网传输。完全符合GDPR、HIPAA等法规。

A Note on Third-Party Facts

This article references third-party AI models, benchmarks, prices, and licenses. The AI landscape changes rapidly. Benchmark scores, license terms, model names, and API prices can shift between the time of writing and the time you read this. Before making deployment or compliance decisions based on this article, verify current figures on each provider's official source: Hugging Face model cards for licenses and benchmarks, provider websites for API pricing, and EUR-Lex for current GDPR and EU AI Act text. This article reflects publicly available information as of May 2026.

使用PromptQuorum将您的本地LLM与25+个云模型同时进行比较。

加入PromptQuorum等待列表 →

← 返回本地LLM

本地RAG 2026完整指南 | PromptQuorum