AI 大模型 RAG 技术分享

0 阅读4分钟

系统讲解 RAG 的原理、与微调的区别,以及生产环境中的最佳实践。

一、大模型为什么需要 RAG?

1.1 大语言模型的三个典型局限

大语言模型(LLM)如 GPT-4、Claude、通义千问等,通过海量文本训练,学会了「像人一样读写」。但它们存在三个根本性局限:


1.2 RAG 解决的核心问题

RAG = 让大模型在回答前,先去「查资料」,再基于查到的资料回答。

这样可以把最新、私有、可溯源的知识注入生成过程,而不是全部塞进模型参数里。

出处:NVIDIA 对 RAG 概念的官方解读。

二、RAG 是什么?

2.1 正式定义

RAG(Retrieval-Augmented Generation,检索增强生成)  是一种将外部非参数化记忆(如文档库、向量索引)与预训练语言模型结合的技术框架,在生成答案前先检索相关文本,再让模型基于检索结果生成回答。

出处:Lewis et al., 2020 — 论文标题即 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,发表于 NeurIPS 2020。

2.2 两个「记忆」的类比

Prompt(提示词)  = 发给模型的完整指令,里面包含检索到的资料 + 用户问题。RAG 的核心就是「把对的资料塞进 Prompt」。

2.3 RAG 与「微调」的区别

最佳实践:两者可组合使用——RAG 负责知识,微调负责语气与输出格式

三、RAG 的工作流程(R-A-G)

RAG 典型流程分为三个阶段:

1. Retrieve(检索)
用户问题 → 向量化 → 在向量数据库中进行相似度搜索 → 返回 Top-K 相关片段。

2. Augment(增强)
把检索到的片段 + 原始问题 + 系统指令拼接成完整的 Prompt。

3. Generate(生成)
把增强后的 Prompt 送给 LLM,生成有据可查的答案。

关键设计点

● Top-K 的选择(通常 3~8)

● Prompt 模板的设计(系统指令 + 参考资料 + 用户问题)

● 是否加入来源标注

四、生产级 RAG 实践

4.1 Demo 与生产环境技术栈对比

总结:Demo 阶段轻量快速验证;生产阶段核心升级方向是可扩展性、质量控制与可观测性

4.2 Embedding 搭建使用方式

快速选型建议

● 快速验证 → 云端 API(Doubao / OpenAI)

● 企业内网 / 强隐私 → 本地部署或 TEI

● 高并发生产 → TEI / vLLM

● 多模态 RAG → Doubao Vision / CLIP

4.3 向量数据库(Vector DB)使用方式

4.4 分块策略(Chunking)

生产环境中固定长度分块容易切断语义,推荐以下三种策略:

实现要点

● Overlap 始终设置 10–20%(50–150 字符)

● 中文使用 。!? 分句

● 先测试 chunk_size 200/400/800 对 recall 的影响

● 结合标题/列表做结构感知分块

● 优先使用 LangChain / LlamaIndex 的 TextSplitter

4.5 重排序(Rerank)

是什么?
重排序是向量召回后的精排步骤,对候选片段进行更精细的相关性打分,过滤噪声后再交给 LLM。

作用:显著提升答案质量(通常 +5~15% 相关性),降低幻觉风险。

推荐方案

实现要点

1. 位置:放在向量检索(Top-K=2050)之后、LLM 生成之前,通常重排到 Top-58。

2. 性能:Cross-Encoder 推理较慢,建议对 20~50 条候选做重排;可加缓存或异步处理。

3. 中文场景:优先 bge-reranker-v2-m3 或 Cohere 多语言版。

4. 集成方式:LangChain 提供 CohereRerank、CrossEncoderReranker 等组件,可一键插入 RAG 链。

4.6 评估与监控

作用:回答「RAG 系统到底好不好用?」并持续发现问题。

生产推荐工具

核心区别

实现方式

RAGAS:最推荐起步,离线跑测试集即可得到各指标分数。

LangSmith:生产最推荐,设置环境变量后自动全链路追踪。

Arize Phoenix:适合需要实时监控和根因定位的场景。

最小可行路径:RAGAS 建立 baseline → LangSmith 在线追踪 → Phoenix 根因分析。

五、总结与建议

Demo 阶段:轻量、快速验证、成本低,适合技术分享和原型验证。

生产阶段:核心升级方向是可扩展性、稳定性、质量控制和可观测性

● 向量库从本地 Chroma 升级到托管/分布式向量数据库

● 增加 Rerank + 更强的文档解析 + 语义分块

● 引入 LangChain/LlamaIndex + 完整评估监控体系

● 前端和部署走工程化路线

一句话总结

RAG 的本质是「把知识从模型参数里解放出来」,让大模型真正成为「会查资料的助手」。