嵌入模型和向量模型的区别

接入与开发

讲清嵌入模型和向量模型到底是不是一回事:它们是同一个东西的两种叫法,区别只在语境,顺带说清各自的相邻概念与落地用法。

写 RAG 的时候,一会儿看到「嵌入模型」,一会儿看到「向量模型」,还有「向量化模型」「embedding model」混着用,很容易怀疑自己少学了一个概念。这篇不绕弯子:先给结论,再拆开这个结论在哪些场合成立、哪些场合不成立,最后给一份判断清单,帮你在选型和看文档时不至于把两件事当成四件事。

写 RAG 的时候,一会儿看到「嵌入模型」,一会儿看到「向量模型」,还有「向量化模型」「embedding model」混着用,很容易怀疑自己是不是漏学了一个概念。这篇不绕弯:先给结论,再拆开这个结论在哪些场合成立、哪些场合不成立,最后给一份判断清单,帮你在选型和看文档时不至于把两件事当成四件事。

结论先放在前面:在绝大多数中文文档和教程里,嵌入模型和向量模型指的是同一个东西,只是两拨人站在不同角度给它起了名字。真正需要你警惕的,是把「向量数据库」「向量检索」这类下游概念也当成模型,那才是容易踩的坑。

先说结论:多半是同一个东西的两套叫法

嵌入模型(embedding model)说的是:把一段文本、一张图转成固定长度数值数组的模型,输出的那串数字叫向量,也叫嵌入向量。向量模型是中文语境里对同一类模型的简称,强调它吐出来的是个向量。一个说动作,一个说结果,指向的是同一批东西。

嵌入模型
从原理视角叫的:它把语义「嵌入」到一个低维空间里,方便计算距离。
向量模型
从检索和存储视角叫的:它产出向量,下游拿去做相似度比较。
向量数据库
不是模型,是存向量、查向量的软件,别和模型混为一谈。
向量检索
不是模型,是用向量算相似度的那套流程。

叫法差异只反映说话人的位置:讲模型原理的人习惯说嵌入,讲检索链路的人习惯说向量。你跟同事沟通时用哪个词都行,只要别把它和后面那几个「向量 XX」的概念混着用。

什么情况下两者不是一回事

有一个场合确实要区分:当对方说的「向量模型」指的是整条检索链路,包括切片、编码、建索引、召回,那它比嵌入模型大一圈。嵌入模型只是这条链路里负责编码的那一环,别的环节它不管。

对方在说什么实际指的你怎么确认
文档里的「向量模型」配置项多半就是嵌入模型看它的输入是文本、输出是数组
「我们的向量模型方案」整条检索链路问清楚含不含切片和索引
多模态场景里的「向量模型」可能是文本侧或图像侧其中之一问是哪一侧的编码器
接向量吐分数的接口重排或检索环节,不是嵌入模型看输入是不是已经有向量
  • 它接一段文本、吐一个数组,那就是嵌入模型,叫法随便。
  • 它接已有向量、吐一个分数,那是重排或检索环节。
  • 它在讲多模态,最好点名是文本侧还是图像侧,别笼统说向量模型。
  • 它在讲整条链路,那「向量模型方案」指的是工程方案,不是单个模型。

选型时真正要确认的几件事

名字理清了,选型才是实际要花时间的地方。下面这几件事,比纠结叫法重要得多。

  • 先看维度:输出向量多长决定存储和计算开销,维度高不等于好,要结合语料规模和召回要求一起看。
  • 再看一致性:入库和查询必须用同一个模型,中途换模型就得全量重跑,不然召回结果会莫名其妙变差。
  • 还要看语言和领域:中文语料、代码、法律或医学术语,实际差异比通用介绍里说的大得多。
  • 最后看接口:返回结构里向量字段在哪一层,很多坑不是模型问题,是字段取错或者取到空值。

这些参数和当前可选型号不要凭记忆做决定,各家更新很快。到 站内嵌入模型页面(/models/embedding) 核对当时的维度和语言支持,再到 向量数据库目录(/tools/vector-db) 看下游能接哪些存储,两边对上再动手。

落地到 RAG 时的最小动作清单

下面这套顺序适合入门阶段,不需要先把理论补完,边做边验证就行。每一步都留了验证动作,避免做完了才发现方向错了。

  1. 定候选模型按语言和领域先圈两三个候选,别一上来就横向比较十几个。圈子越小,验证越快。
  2. 定切片方式切片长度和重叠要先于模型定下来,因为切片一变,同一个模型的表现也会跟着变。
  3. 拿真实问题试召回从你自己的文档里挑几十条真实问题,跑一轮召回,看命中的是不是该命中的。这一步比看介绍快得多。
  4. 定接口字段确认调用返回里向量字段在哪一层,先跑通一条再批量,别在批量阶段才发现字段取错。
  5. 留一组验收对照准备一批「问题—期望命中文档」的对照,换模型或换切片后重跑一次,能提前发现退化。

如果你在选型的同时还要评估中转服务的稳定性,可以把验证顺序和 站内测速工具(/tools/speed-test) 一起用,先确认链路通不通,再谈效果。

纠结叫法的时间,够你跑完一轮真实数据的召回了。

常见问题

嵌入模型和向量模型是两个不同的东西吗?

多数场合是同一个东西的两种叫法,输出都是固定长度的数值向量。唯一要留意的是语境:对方可能用「向量模型」指整条检索链路,而嵌入模型只指其中负责编码的那一环,听到这个词时先确认他在说模型还是在说流程。

我换了嵌入模型,为什么检索结果变差了?

最常见的原因是入库和查询用的不是同一个模型,两个模型的向量空间不可比,算出来的相似度自然没意义。换模型要连带把已有数据重新编码入库,同时重跑一遍你自己的对照问题,确认召回没退化再上线。

做 RAG 必须用专门的嵌入模型吗,通用大模型行不行?

通用对话模型通常不对外提供稳定的向量输出接口,即使能拿内部表示也不保证可比和可复现,不适合当检索底座。除非你的场景极小、对召回要求低,否则还是选专门的嵌入模型,具体哪些可选、各自支持哪些语言,去站内嵌入模型页面看当时的清单。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。