知识全景图/ 软件工程与系统/ 人工智能全景图/ Embedding 与向量检索底层图谱

Embedding 与向量检索底层图谱

解释“语义向量到底是什么、为什么能检索、为什么会检错”,补上底层理解线与 RAG 工程之间的机制桥

阅读定位: 这一页聚焦 Embedding、向量空间、相似度、Chunking、检索策略、ANN 索引、Rerank 和评测。 它不展开 tokenizer、词表、Transformer 内部 Attention 计算,也不完整覆盖 RAG 应用系统;文本如何先变成 token id 继续看 Tokenizer / 词表,Attention 计算继续看 Token / Attention / Transformer, 后者继续看 RAG 与知识检索增强
一、从文本到可检索证据
原始文档
PDF / Wiki / DB
解析与切分
Parse / Chunk
Embedding
编码成向量
索引
ANN / BM25
召回与重排
Retrieve / Rerank
上下文证据
Answer / Citation
环节核心问题底层直觉常见风险
解析原文结构能否被保留下来标题、表格、列表、页码和权限都是检索信号表格断裂、层级丢失、旧版本混入
Chunking什么才是最小可检索单元chunk 太大不聚焦,太小会断上下文证据被切碎,引用无法闭环
Embedding文本如何变成可比较的坐标相似文本在向量空间里距离更近相似不等于正确,语义近邻可能答非所问
索引如何在海量向量里快速找近邻用近似搜索换速度和规模近似误差、内存压力、过滤条件失效
Rerank如何从“像”里选出“更该用”召回追求覆盖,重排追求排序质量只召回不重排,模型拿到低质量上下文
二、三种 Embedding 不要混在一起
类型在哪里出现输入 / 输出解决什么问题容易误解的点
Token Embedding Transformer 模型内部 token id → 模型隐藏向量 让离散 token 进入神经网络计算,前提是 tokenizer 已经把文本映射成 token id 它不是完整句意,只是上下文计算的起点
Sentence / Document Embedding 语义搜索、聚类、推荐、去重 句子 / 段落 / 文档 → 固定长度向量 让不同文本可以按语义相似度比较 压缩后的向量会丢细节,尤其是数字、否定和条件
RAG Embedding 知识库索引与查询召回 query 和 chunk → 同一向量空间 把用户问题和候选证据放到同一坐标系里匹配 召回到相关段落不代表答案已经成立

一句话区分

Token embedding 是模型“读入 token”的内部表示,依赖 Tokenizer / 词表 给出的 token id;sentence / document embedding 是把一段文本压缩成可比较的语义坐标;RAG embedding 是把 query 和知识块放到同一个检索空间里做召回。

三、向量空间与相似度的直觉
向量空间
文本被编码成高维坐标后,系统不再直接比较字面内容,而是比较坐标关系。语义、风格、主题、实体和任务意图会被压缩进这些维度的组合里。
余弦相似度
更关心两个向量“方向是否一致”。常用于文本语义匹配,因为它弱化了向量长度差异,直觉上像是在问“这两段话指向的主题像不像”。
内积
同时受方向和长度影响。很多向量库会把向量归一化后用内积近似余弦,也有系统会让向量长度携带置信或强度信息。

相似度不是“正确性打分”

cosine(query, chunk) 高,只说明两段文本在 embedding 模型学到的空间里接近;它不保证 chunk 包含答案、不保证答案时效正确,也不保证能支撑用户问题里的全部约束。

四、Chunking 为什么决定检索上限
策略适合什么优点风险
固定长度切分快速原型、格式较统一的文档简单、稳定、容易批处理标题和表格容易被切断
按标题 / 结构切分产品文档、制度、技术手册语义完整,引用更自然依赖解析质量,结构混乱时效果不稳
滑动窗口需要保留邻近上下文的长文减少边界处信息丢失索引膨胀,重复召回更多
Parent-Child问答、复杂文档、长章节用小块召回,用大块提供上下文实现复杂,需要维护父子关系
语义切分段落主题变化明显的材料更贴近语义单元成本更高,容易受模型和阈值影响
切得太大
  • 一个向量被多个主题污染
  • 召回看似相关,但答案位置很稀薄
  • 上下文预算被无关内容占用
切得太碎
  • 定义、条件、例外和结论被拆开
  • 模型看到片段却看不到完整证据链
  • 引用粒度细,但忠实回答更难
好的 chunk
  • 能独立表达一个可核对事实或段落主题
  • 带有标题路径、来源、时间和权限元数据
  • 既能被召回,也能被引用和审计
五、BM25、向量检索、混合检索与 Rerank
方法匹配依据强项弱点适合场景
BM25词项匹配、词频、逆文档频率精确词、编号、错误码、专有名词,可解释同义表达和自然语言改写能力弱制度编号、SKU、API 名、异常码、标题搜索
向量检索embedding 空间里的近邻同义表达、语义相似、长文本问题容易误召回“像但不对”的内容自然语言问答、知识库语义搜索、相似案例
混合检索关键词 + 向量 + 过滤 + 业务规则兼顾精确召回和语义召回融合权重、去重和排序策略更复杂生产级 RAG、企业知识平台、复杂搜索
Rerankquery 与候选 chunk 的深度相关性判断从候选里重新排优先级,提升 Top-K 质量增加延迟和成本,仍需评测校准召回多但排序不稳、引用质量要求高的场景

召回和重排是两个目标

第一阶段检索更像“尽量别漏掉可能相关的材料”,第二阶段 rerank 更像“把最可能回答问题的证据排到前面”。只优化召回数量,可能让 LLM 拿到更多噪声;只追求排序精度,又可能漏掉关键证据。

六、ANN 与索引的工程直觉
全量精确搜索
准但慢
近似近邻
ANN
索引结构
HNSW / IVF / PQ
候选召回
Top-K
过滤 / 重排
Metadata / Rerank
工程变量它影响什么直觉典型取舍
Recall关键证据是否被找回来索引越激进越快,但可能漏近邻召回率 vs 延迟
Latency用户等待时间和系统吞吐向量维度、索引参数、过滤条件都会影响查询速度P95 延迟 vs 检索质量
Memory索引成本和扩展能力高维向量、重复 chunk、HNSW 图结构都吃内存内存成本 vs 查询性能
Approximation Error近似搜索带来的漏召回ANN 是用“足够接近”换“足够快”索引参数越保守,越准但越慢
Metadata Filter权限、时间、业务域过滤先过滤还是后过滤会改变结果质量和性能安全边界 vs 搜索空间
实践提醒: 向量库不是一个“存进去就会搜准”的黑盒。索引参数、向量模型、chunk 粒度、过滤顺序、Top-K、rerank 深度,都会共同决定最终答案质量。
七、为什么语义相似不等于答案正确
问题约束被忽略
query 问的是“2026 年企业版退款规则”,召回结果可能是“个人版退款说明”。主题相似,但版本、对象和时间不对。
否定和例外被压缩掉
Embedding 可能把“可以申请退款”和“除非超过 30 天否则可以退款”放得很近,但业务判断恰恰取决于条件和例外。
相似案例不是同一事实
客户 A 的历史工单与客户 B 的问题很像,但合同条款、权限、地区和版本可能不同,不能直接套用。
召回证据不完整
模型拿到一个相关段落,却缺少前置定义、适用范围或后续例外,生成时就可能把局部事实说成全局结论。

更可靠的判断链

生产 RAG 不是只问“检索结果像不像”,而要继续问:它是否覆盖问题约束、是否来自可信来源、是否在有效期内、是否有足够上下文、最终回答是否忠实引用。

八、评测指标:从召回到忠实度
指标看什么怎么理解适合发现的问题
Recall@K前 K 个结果是否包含正确证据关键材料有没有被捞上来漏召回、chunk 太碎、索引参数过激
MRR第一个正确结果排在多靠前用户和下游模型能不能尽快看到关键证据排序差、Top-1 不稳
NDCG多个结果的相关性排序质量越重要的证据越应该靠前多证据问题、排序质量波动
Faithfulness答案是否忠实于给定证据模型有没有基于上下文回答,而不是自己补全幻觉、过度推断、断章取义
引用正确性引用是否真的支撑回答链接、页码、段落和结论是否能互相核对引用错位、来源过期、证据不充分
最小评测闭环: 准备一批真实问题和标准证据,记录 query、召回列表、rerank 排序、最终上下文、模型回答和引用来源;每次改 chunk、embedding、索引、Top-K 或 prompt,都跑回归。
8.1 Embedding / Retrieval 证据包:从向量到可回答证据
证据节点必须记录的字段用来排查什么
查询向量query_id、query_text_hash、embedding_model、embedding_version、vector_norm同一问题为什么召回漂移,是否由模型升级、归一化或改写造成?
语料向量doc_id、chunk_id、chunk_version、chunk_tokens、index_build_id正确材料是否已经入库,chunk 是否过期、过碎或缺少上下文?
检索配置index_type、distance_metric、top_k、filter_policy、hybrid_weight漏召回来自索引参数、权限过滤、BM25 / 向量权重还是 Top-K 太小?
重排与过滤reranker_version、rerank_score、acl_snapshot、dedupe_reason关键证据是否被 rerank、权限或去重规则压掉?
回答连接retrieval_snapshot_id、context_pack_id、citation_ids、faithfulness_result召回到的材料是否真的进入上下文,并支撑最终回答?
九、常见误区
误区:Embedding 越新越好
模型升级可能改变向量空间,历史索引需要重建,评测也要重新跑。真正关键是领域适配、稳定性和回归表现。
误区:向量检索可以替代关键词
编号、术语、错误码、日期和人名常常需要精确匹配。生产系统通常更适合混合检索。
误区:Top-K 调大就会更准
Top-K 变大可能提高召回,也可能把噪声塞进上下文。没有 rerank、压缩和证据选择,更多不一定更好。
误区:检索到了就等于回答对了
LLM 还可能误读、混合多段证据、忽略限定条件或生成不存在的推论。检索评测和生成评测必须分开看。
十、回到 AI 主干
AI 全景 Tokenizer / 词表 Token / Attention Embedding / 向量检索 RAG / 知识检索 Prompt / 上下文 一次请求的一生 LLMOps / 评测观测

这张图在主线里的位置

如果说 Token / Attention 解释模型如何在上下文内部计算, 那么这一页解释外部知识如何被压缩成可检索坐标;再往后,RAG 负责把检索、重排、引用和生成组织成可治理系统。