首页/AI/RAG 与向量库速查/向量归一化与度量等价
Embedding 与检索50 条

向量归一化与度量等价

向量归一化为单位长度后,内积与余弦相似度等价;部分数据库在 COSINE 度量下内部自动归一化。归一化处理不一致会造成分数漂移与排序错乱。

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

归一化验证

归一化验证
import numpy as np

v = np.array([0.3, 0.4, 0.5], dtype="float32")
q = np.array([0.1, 0.9, 0.2], dtype="float32")
vn, qn = v / np.linalg.norm(v), q / np.linalg.norm(q)

print(float(qn @ vn))                                  # 归一化后内积
print(float(q @ v / (np.linalg.norm(q)*np.linalg.norm(v))))  # 余弦相似度
保持三处一致:入库向量、查询向量、索引库的度量配置(COSINE 或 IP)。

易错点

  • 部分数据归一化、部分没有,距离排序会错乱
  • 切换 COSINE 度量但库内仍有未归一化存量向量时,要统一预处理或重建

数据来源与参考

  • FAISS wiki(相似度与归一化)
  • Sentence-Transformers 官方文档(normalize_embeddings)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌