解释 Milvus 中的 metric_type 参数 “L2”

metric_type: “L2” 是 Milvus 向量数据库中用于指定向量相似度计算方式的参数,它决定了如何衡量两个向量之间的距离或相似度。

L2 距离(欧几里得距离)详解

L2 距离(又称欧几里得距离)是最常用的距离度量方式之一,计算两个向量在欧几里得空间中的直线距离。数学表达式为:

L2距离 = √(Σ(x_i - y_i)²)

其中 x_i 和 y_i 分别是两个向量在第 i 维上的值。

特点:

  1. 值越小越相似:L2距离越小,表示两个向量越相似
  2. 考虑所有维度:计算时考虑了向量所有维度的差异
  3. 几何直观:就是我们常说的"直线距离"

与其他 metric_type 对比

Milvus 支持多种 metric_type:

  • L2:欧几里得距离
  • IP:内积(适合某些特定场景)
  • COSINE:余弦相似度(适合文本相似度)
  • JACCARD:杰卡德相似度(适合集合)
  • HAMMING:汉明距离(适合二进制数据)

实际例子

假设我们有两个二维向量:

  • 向量A: [1, 2]
  • 向量B: [4, 6]

计算它们的L2距离:

√((1-4)² + (2-6)²) = √(9 + 16) = √25 = 5

在 Milvus 中使用时,当您设置 "metric_type": "L2",系统就会使用这种计算方式来比较向量相似度。

适用场景

L2距离特别适合:

  • 图像检索(像素或特征向量的直接比较)
  • 物理空间中的距离计算
  • 当向量的绝对值大小有意义时

在 Milvus 中的配置

在您的代码中,L2与IVF_FLAT索引配合使用:

index_params={
    "metric_type": "L2",  # 使用L2距离
    "index_type": "IVF_FLAT",  # 使用倒排文件索引
    "params": {"nlist": 1024}  # 聚类中心数量
}

这意味着Milvus会先使用IVF_FLAT索引结构组织数据,然后在搜索时使用L2距离来计算相似度。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐