一、从朴素RAG到高级RAG:架构演进三阶段
检索增强生成(Retrieval-Augmented Generation)自2020年Lewis等人论文提出以来,经历了从朴素向量查找到多阶段检索优化的三次重大架构演进。朴素RAG阶段直接将用户Query向量化后在全量知识库中做Top-K相似度检索,再将检索结果拼接进Prompt送入LLM生成。这种方式虽然简单,但召回精度低、长文本被截断、上下文噪声大等问题突出。
高级RAG(Advanced RAG)引入了预检索(Pre-Retrieval)和后检索(Post-Retrieval)两个阶段。预检索阶段包括Query扩展、Query重写、Query路由等策略,后检索阶段引入Re-Ranker重排序、上下文压缩、滑动窗口检索等手段,显著提升了检索质量。模块化RAG(Modular RAG)则进一步将检索、路由、处理各步骤拆解为可插拔模块,通过执行流水线动态组合,适配不同业务场景。
二、分块策略:语义完整性与检索粒度的平衡
文档分块是RAG系统的第一个性能瓶颈。固定长度分块实现简单但容易切断语义单元;递归字符分块按段落、句子、词语逐级回退,平衡了 blockSize 与语义完整性。但真正解决长尾问题的方案是语义分块(Semantic Chunking)——利用嵌入模型的相似度矩阵,在语义断点处切割,确保每个 Chunk 内部语义内聚。
另一个关键技巧是父子文档结构(Parent-Child Documents):检索时用小块(200-500 tokens)保证匹配精度,命中后回查对应的父文档(2000-4000 tokens)注入完整上下文。这种设计兼顾了检索精准度与上下文丰富度,被LlamaIndex的Node-Parser模块原生支持。
三、嵌入模型选型:从通用到领域适配
嵌入模型直接决定了向量空间的语义区分度。通用嵌入模型如 OpenAI text-embedding-3-large(3076维)、Cohere embed-v3(1024维)在通用语料上表现良好,但在垂直领域(医疗、法律、金融)存在语义塌陷问题。
领域微调嵌入可采用對比学习框架(如 Sentence-Transformers),用领域内正负样本对微调通用模型,通常能提升15%-30%的 Recall@K。更前沿的做法是学习适应性嵌入(Learnable Adapter),在预訓練模型输出后接入 LoRA 輕量微調層,既保留通用语料能力又适应业务语义。
四、向量检索引擎:Faiss、Milvus、pgvector 工程对决
向量检索的三大工程路线各有优劣。Facebook AI 的 Faiss 专注单机性能,支持IVF-PQ、HNSW、DiskANN等索引,Milvus 作为分布式服务支持万亿级向量的水平扩展与混合过滤查询;pgvector 则利用 PostgreSQL 生态优势,适合中小规模场景与关系型数据联合查询。
索引选择的关键权衡在于精度、内存与延迟的三角困境:Flat索引精度100%但O(n)延迟;HNSW索引(图搜索)召回率高但内存占用在1.5-2倍原始向量大小;IVF-PQ 通过产品量化压缩将内存降低10倍以上但损失3%-8%召回。生产环境通常采用多级过滤策略:先用 IVF 快速召回候选集,再用 HNSW 做精排,超时则回退全表扫描保证可用性。
五、重排序与检索结果精炼
向量检索仅衡量Query与文档的语义相似度,存在对关键词匹配的盲区。交叉编码器重排序(Cross-Encoder Reranker)将Query和文档共同编码,通过深层注意力捕捉精确匹配信号,代价是计算开销随候选数线性增长。
BGE-reranker-v2-m3 是目前开源表现优秀的多语言重排序模型,支持110种语言和最长8K输入。工程上采用两阶段检索 + 重排:第一阶段用向量检索召回Top-100,第二阶段用重排取Top-5注入查询上下文。Cohere Rerank、Jina Reranker等商业API在MIRACL基准上Rerank质量领先,适合对精度要求极高的付费场景。
六、查询理解与多跳推理
复杂问题往往需要多跳推理(Multi-Hop Reasoning),单个Query无法命中完整答案所需的所有文档。解决方案包括查询分解(将"2024年Q3营收增长最快的产品是什么"拆解为"找出所有产品Q3营收"→"计算环比增长"→"取最大值")、迭代检索(Chain-of-Note, CoN 方法逐轮修正检索方向)、以及基于图的子图扩展。
HyDE(Hypothetical Document Embeddings)是另一种巧妙的思路:让LLM先生成一段假设性答案,用该答案的向量去检索真实文档,绕过了Query与文档之间的"词汇鸿沟",实验证明在开放域问答上能提升5%-10%的召回率。
七、评估指标:从准确率到生成质量
RAG系统评估需同时覆盖检索和生成两个环节。检索侧常用的 Recall@K、MRR@K、NDCG@K 衡量文档召回质量;生成侧的 Faithfulness、Answer Relevance、Context Precision 则评估LLM输出与检索上下文的一致性。
RAGAS、TruLens 等框架提供了端到端自动化评估流水线,通过LLM-as-Judge对输出打分,结合人工标注的Golden Dataset持续监控线上效果。在生产系统中,建议建立A/B测试基础设施,对新增的检索策略或重排模型在真实流量分桶验证,避免离线指标与用户体验脱节。

发表评论 取消回复