RAG架构:检索器与重排序策略

article
2026年7月21日1 min read180 words

Updated 2026年7月21日

RAG架构:检索器与重排序策略

检索器优化、向量数据库选型与重排序策略详解

原题:请详细阐述RAG(Retrieval-Augmented Generation)系统的架构设计和关键组件,并讨论提升检索效果的技术方法,包括检索器优化、向量数据库选择、重排序策略等?

重排与优化 · 字节真题

30 秒回答

  1. RAG核心架构三要素(检索器、生成器、融合机制)
  2. 检索器优化方法(Dense vs Sparse、混合检索、查询改写)
  3. 向量数据库选型要点(HNSW索引、量化压缩、分布式能力)
  4. 重排序策略(Cross-Encoder、ColBERT、多阶段漏斗)

回答与解析

答案要点

  • RAG核心架构三要素(检索器、生成器、融合机制)

  • 检索器优化方法(Dense vs Sparse、混合检索、查询改写)

  • 向量数据库选型要点(HNSW索引、量化压缩、分布式能力)

  • 重排序策略(Cross-Encoder、ColBERT、多阶段漏斗)

  • 实际落地中的关键权衡(延迟vs效果、成本vs覆盖)

RAG核心架构

RAG = 检索器(Retriever) + 生成器(Generator) + 融合机制

用户Query → 检索器 → 相关文档Top-K → 拼接Prompt → LLM生成答案

关键设计:检索结果作为**上下文(Context)**注入,而非直接替换模型参数。


关键组件详解

1. 检索器优化

方法 核心思想 适用场景
Dense Retrieval 双塔Embedding(Query/Doc各编码) 语义匹配、长尾Query
Sparse Retrieval BM25、TF-IDF词项匹配 精确匹配、高频术语
混合检索(Hybrid) Dense+Sparse结果融合(RRF/线性加权) 通用场景首选
查询改写 HyDE(生成假设文档)、Query Expansion Query与Doc语义Gap大

Embedding模型选型:MTEB榜单参考,业务域微调(Domain Adaptation)通常比通用模型提升10-20% Recall@K。

2. 向量数据库选择

核心考量维度:

  • 索引算法:HNSW(内存型,延迟低)vs IVF(磁盘型,容量大)

  • 量化压缩:FP32→FP16/INT8,平衡精度与内存

  • 过滤能力:Metadata过滤(权限、时间范围)必须在向量搜索前完成

  • 分布式与实时性:Milvus/Pinecone适合云原生,Faiss适合离线实验

关键参数:ef_construction(建图质量)、M(邻居数)影响召回-延迟权衡。

3. 重排序(Reranking)策略

两阶段漏斗设计:

第一阶段(召回):高Recall,轻量模型,候选池大(如Top-100)
第二阶段(精排):高Precision,重模型,最终Top-K(如Top-5)
  • Cross-Encoder:Query+Doc拼接输入,交互式编码,精度高但延迟大(~100ms/对)

  • ColBERT:Late Interaction,Token级相似度,延迟与精度折中

  • 多任务Reranker:同时优化相关性、时效性、权威性


提升效果的关键技术

问题 解决方案
上下文过长截断 检索结果摘要压缩、层次化检索(先章节后段落)
多跳推理 迭代检索(IRCoT)、知识图谱增强
幻觉与归因 检索结果显式引用、置信度阈值过滤
冷启动/新文档 增量索引、实时向量更新管道

落地权衡

  • 延迟:端到端关键一句:知识库频繁更新时增量索引的工程实践,包括双索引、软删除、异步重建和一致性校验。

面试官还可能这样问

  1. 问法 1 · 场景切入假设你在做一个电商客服助手,用户问‘这个手机多少钱’,系统从文档里找到价格回复了。但如果用户接着问‘那另一个颜色呢?’,这时候光靠生成器可能答不准。你怎么设计一个检索增强的架构,让系统能自己去找对应的商品详情?
  2. 问法 2 · 层层追问RAG系统里检索怎么做的?……如果召回的结果不准,你一般从哪些角度优化?……那检索器、向量库、还有重排序,你觉得哪个环节对效果影响最大?……具体到向量数据库,你怎么选?
  3. 问法 3 · 直球架构给我详细讲讲RAG系统的完整架构,从检索器、向量数据库到重排序,每个组件你怎么选型优化?还有,如果业务要求首条回复在1秒内,你会在哪些地方做取舍?