首页/AI/RAG 与向量库速查/Embedding 向量化基础
Embedding 与检索50 条

Embedding 向量化基础

Embedding 把文本映射为定长实数向量,语义相近的文本在向量空间里距离更近;RAG 中索引侧与查询侧必须使用同一模型同一版本,度量与归一化也要一致。

RAG 与向量库速查AI更新于 2026-10-13

Embedding 是什么

Embedding 把文本映射为定长实数向量,语义相近的文本在这个空间里距离更近。RAG 中它承担两件事:离线把每个切片编码后写入向量库,在线把用户问题编码后做相似度检索。索引侧与查询侧必须使用同一模型、同一版本,度量与归一化方式也要一致,否则相似度数值失去意义。

基本信息

维度由模型决定,常见 768 / 1024 / 1536
距离度量余弦、内积、欧氏,随模型与数据库而定
一致性要求同模型同版本、同归一化处理、同度量配置
输入上限多数中文检索模型在 512 token 量级,需按此控制切片长度

最小示例

最小示例
vec = embed("如何配置超时")     # list[float],长度 = 模型维度
print(len(vec), vec[:3])

需要记住的性质

  • 向量不是哈希:模型升级后同一段文本的向量会整体改变,旧索引必须重算
  • 维度可压缩但不可混用:缩短维度的向量与全维度向量不能在同一个索引列里共存
  • 归一化与否影响度量选择:已归一化的向量用内积与余弦等价,可省一次除法
  • 相似度绝对值不可跨语料比较:余弦值常集中在 0.6 至 0.95 的窄区间,阈值要在自有数据上校准
  • 输入长度有限:超出上限的部分会被截断,长切片尾部的内容实际没有被编码

常见模型量级

类型维度示例典型输入上限
中文检索型(BGE 小/中/大)512 / 768 / 1024512 token 量级
多语言多粒度(BGE-M3)10248192 token(模型卡标注)
托管 API(text-embedding-3 系列)1536 / 3072,可缩短按官方文档为准
轻量本地模型384 至 768通常 512 token 以内
召回质量由模型与语料的匹配度决定:榜单分数只是参考,最终要用自有问题集与标准答案测召回率。
升级 embedding 模型时必须全量重建向量,并在新旧索引之间用同一评测集对比;混用两个版本的向量不会报错,只会让检索悄悄变差。

易错点

  • 索引与查询使用不同模型或版本,向量空间不一致,相似度比较失去意义
  • 把 embedding 当稳定哈希,模型升级后仍复用旧向量
  • 切片长度超过模型输入上限,尾部内容被截断且无任何提示
  • 用固定阈值(如余弦 0.8)判断相关性,未在自有数据上校准,导致大量正确答案被判为不相关

数据来源与参考

  • Reimers & Gurevych, Sentence-BERT, EMNLP 2019
  • OpenAI 官方文档(Embeddings 概念)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌