数据、检索与 RAG进阶已核验核验于 2026-09-19

嵌入

Embedding (别名:向量嵌入、Embeddings)

把内容变成一串数字向量的表示方法——让「意思接不接近」第一次变成可以算的东西。

本页目录
快速跳转

它是什么

嵌入是把一段内容(文本、图片、声音)映射成一串固定长度的数字的表示方法。它不是把内容压缩成摘要,而是把它放到一个高维空间里的某个坐标上——含义接近的东西,坐标也接近。

所以它是一个表示方法,不是一个检索系统,也不是一个数据库。它的产物是一组浮点数;「能不能找到相似的」是拿这组数去算距离之后的事。

为什么需要它

关键词只能匹配字面。用户写「怎么把买错的东西退掉」,文档里写的是「退货流程」——一个字都不重合,关键词检索会判它们无关。

嵌入把这层障碍拆了:它让系统能算「意思是否接近」,而不只是「字是否相同」。语义搜索、相似内容推荐、聚类、去重,以及今天绝大多数 RAG 检索器,都建在这层表示上。

代价是它换来了模糊性:既然「接近」是连续的量,就会有「差一点」的边界情况——而这些边界情况恰恰是线上出问题的地方。

它如何工作

机制本身很直接:一段内容进编码模型,出固定维度的一组浮点数。之后系统用余弦相似度、点积或欧氏距离比较「查询向量」与「文档向量」,按得分排序取候选。

三个工程细节决定了它好不好用:

  • 嵌入模型是训练出来的,不是算出来的。 它决定了什么东西会被认为「接近」——用通用语料训练的模型,在你行业的术语上往往分不出细微差别。
  • 文本要整段编码,不拆句。 句子级表示的做法(Sentence-BERT 那一类)是把整句编码成一个向量,才能让「查询 ↔ 段落」的比较有意义。
  • 必须用同一个模型编码查询和文档。 两边用不同模型,向量空间不对齐,算出来的距离没有意义——这是一个很常见、又很难从结果上看出来的错误。

必须澄清的误会

嵌入 ≠ 向量数据库。 一个负责「变成可比较的向量」,一个负责「把几百万个向量存下来并快速找出最近的那些」。你可以只用嵌入做聚类、不碰向量数据库;也可以把向量塞进一个普通数据库的字段里慢慢算——只是慢。两件事的失效症状也不同:嵌入选错 → 结果系统性跑偏;库选错 → 结果对但慢。

嵌入 ≠ 关键词检索的替代品。 这两者是互补的。嵌入擅长近义表达、跨语言、口语化提问;关键词擅长精确编号、专有名词、错误码、金额。生产环境的默认做法是两条路一起跑再合并(也就是混合检索)。只上嵌入,会在「查订单号」这类问题上莫名其妙地失败。

相似 ≠ 正确。 这是最需要记住的一条。嵌入只说「这两段话长得像」,它不知道哪一段是真的、哪一段过期了、哪一段属于别的权限范围。语义接近是一个线索,不是结论。

真实例子

用户搜索「怎么把买错的东西退掉」,知识库里的标题是「退货流程」。

两段文字没有共同关键词,但嵌入模型很可能把它们排到很近的位置——这正是这条技术存在的理由。反过来,同一套系统去查「订单号 A12345」,可能给你捞回一堆「订单号 A12346、A12347」——因为在这类模型眼里,那串数字的差别远不如「退」和「退货」的差别大。

同一个模型,在两种查询上表现相反,这不是 bug,是它的工作方式。所以判断该不该用嵌入,要问的是「我的查询里,字面精确和语义近似各占多少」。

什么时候适合与不适合

适合:自然语言表达多样、近义匹配重要的场景——客服问答、文档搜索、内容推荐、去重、聚类。

不适合:必须逐字命中的查询(编号、日期、金额、错误码);也需要配合结构化过滤的场景(按部门、按时间、按权限)。这些场景里嵌入不会「差一点」,而是会给出看似合理、实际全错的结果。

还有一笔常被忽略的账:换嵌入模型等于重建全部索引。 向量维度变了、空间也变了,旧向量全部作废。所以选型时要按「未来一两年的语料规模」来定,而不是只看当前效果——迁移成本是这条链路上最贵的一次性成本。

亲自试一下

准备 10 条短句:其中 3 组是近义表达(比如「退货」和「把买错的退掉」),另外 2 组是看着很像但答案不同的陷阱(比如两条只差一个编号或一个年份的制度条款)。

把它们编码成嵌入,两两算相似度,看最近的几对是谁。

全程约 20 分钟。观察点是它把哪两条你认为是不同意思的句子排在了一起——那一对就是你这套系统最容易出错的地方。如果连陷阱组都被排到最前,说明这个通用嵌入模型在你的领域里不够用,得换领域内训练过的模型,或者把关键词检索叠上去。

接下来学什么

嵌入是第 3 站 给知识 · 怎么让它知道你家的资料 的表示层:它决定「像不像」,链路的其余环节决定「准不准」。

顺着这条链路走:先看 文档切片(决定什么内容成为一个向量——切片比模型更容易出错),再看 向量数据库(这些向量怎么被存下来、怎么被查),然后是 检索 与 重排(怎么从一堆相似里挑出真正有用的)。

如果你已经遇到「查编号查不准」这类问题,直接读 混合检索——那是把嵌入和 关键词检索 合起来的标准解法;想知道嵌入在你的场景里到底够不够用,去第 7 站 给判断 建立评测集。

来源与修订

「把整句编码成一个可比较的向量」的做法参考 Sentence-BERT(arXiv 1908.10084);把查询与段落分别编码、再用向量相似度做稠密检索的做法参考 Dense Passage Retrieval for Open-Domain Question Answering(arXiv 2004.04906)。两篇都是这条技术路线的原始论文,覆盖了「表示」与「检索」两个层面。

一处边界要说明:「换嵌入模型等于重建全部索引」这段是本站的工程判断,不是论文结论——它来自向量空间与维度绑定于具体模型这一事实,值得在选型前就知道,而不是在迁移时才发现。

修订日期 2026-09-19:本条由生成模板改为决策页——补「必须澄清的误会」一节(对向量数据库、对关键词检索),把「同一模型在两类查询上表现相反」写进真实例子,去掉生成期的引用标记,补 boundaries 与 minAction。

Case practice

这个概念出现在哪些案例里

案例中的这些关卡会把概念放进业务约束、证据与取舍里练一遍。

Learning navigation

学习导航

沿认知链路:你现在在第 3 站,下一站是「给手脚 · 怎么让它做事」:先沿主路径补上这一层。

Relation topology

概念关系

本词条在知识拓扑中的连接关系。涵盖前置依赖、组成要素、对比差异与应用场景。

拓扑图谱网络 · 一度关联场

可拖拽节点、滚轮缩放、点击节点探索

Local relation field

嵌入的一层关系

4 个节点 · 6 条直接关系

关系类型
图谱进入视口后加载

交互图谱之外,本页下方保留完整文字关系与词条链接。

Source register

核验来源

  1. Sentence-BERT - Sentence Embeddings using Siamese BERT-NetworksarXiv · 访问于 2026-09-19
  2. Dense Passage Retrieval for Open-Domain Question AnsweringarXiv · 访问于 2026-09-19

发布 2026-07-29 · 更新 2026-09-19 · 核验 2026-09-19