首页/AI/RAG 与向量库速查/向量维度与存储成本
Embedding 与检索50 条

向量维度与存储成本

维度越高表达能力越强、存储与计算越贵;可用短向量(Matryoshka 截断或换小模型)控制成本,取舍以检索评测结果为准。

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

维度决定了什么

向量维度是每段文本被表示成多少个浮点数:维度越高能承载的语义细微差别越多,但存储与计算成本按维数线性上涨。100 万条 768 维向量用 float32 存约占 2.9 GiB,换成 1024 维就接近 3.8 GiB,再乘副本数就是内存下限。压缩手段有 Matryoshka 截断(训练时即支持截短的模型)、半精度与 int8、二值量化,用哪种要以评测结果说话。

基本信息

float32 存储N × dim × 4 字节
100 万 × 768 维约 2.9 GiB
100 万 × 1024 维约 3.8 GiB
压缩手段Matryoshka 截断、半精度、int8 与二值量化
选型依据自有评测集上的召回结果,而不是维度数字

典型使用场景

  • 容量规划:按向量条数与维度估算内存,再决定机器规格与副本数
  • 成本优化:把 1024 维降到 512 维观察召回变化,判断差价值不值
  • 模型选型:同语料下比较不同维度的模型,兼顾精度与延迟
  • 混合检索:稀疏向量与稠密向量并存时,稠密侧维度直接影响融合开销
  • 缓存与快照:索引体积决定备份与迁移的耗时,维度是最直接的影响项

存储估算

存储估算
def fp32_gib(n, dim):
    return n * dim * 4 / (1024 ** 3)      # 每条 dim 个 float32

print(round(fp32_gib(1_000_000, 768), 2))    # 约 2.86 GiB
print(round(fp32_gib(1_000_000, 1024), 2))   # 约 3.81 GiB
# 实际部署还要加:副本倍数、索引结构开销、payload 与倒排表

维度区间与取舍

维度档位特点适用
128 到 256存储最省,语义粒度较粗海量粗筛或内存受限环境
384 左右轻量档常见值原型验证与中小语料
768 到 1024表达力与成本的平衡点通用知识库主力配置
1536 及以上细节区分力最强高价值小语料,精度优先
量化能显著压缩存储但有精度损失,上线前用评测集对比量化前后的召回变化;多数库支持先量化粗筛、再按原始向量精排。
Matryoshka 模型可以把长向量截短到前若干维继续使用(如 1024 截到 512),但截短前需重新归一化,且非此类模型不支持这种截断。
维度还影响检索延迟:向量越大,距离计算与量化索引的构建时间越长。高并发场景下低维度模型往往能换来更高的每秒查询数,值得纳入选型对比。

易错点

  • 直接截断非 Matryoshka 模型的向量会让效果明显变差
  • 只按维度高低判断模型优劣:训练数据与目标语言更关键
  • 估算内存时漏掉副本与索引结构开销,实际占用远超预算
  • 截短向量后未重新归一化,与库中配置的度量方式不一致

数据来源与参考

  • OpenAI 官方文档(新 embedding 模型与维度)
  • Qdrant 官方文档(量化说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌