提示信息

milvus 中的 metric_type="COSINE"

浓情 已关注

在 Milvus 中,metric_type 指定用于向量相似性搜索的距离度量算法。COSINE 是其中一种常用的距离度量标准。

COSINE Metric

  • 含义: 余弦相似性(Cosine Similarity)用于衡量两个向量之间的相似度,其值范围在 [-1, 1] 之间。余弦相似度主要关注两个向量在向量空间上的方向而不是长度。

  • 公式: 余弦相似性计算公式为:

    [
    \text{Cosine Similarity} = \frac{A \cdot B}{|A| \times |B|}
    ]

    其中 ( A ) 和 ( B ) 是两个向量,"(\cdot)" 符号表示向量点积,"(||)" 符号表示向量的范数(或长度)。

  • 应用: 余弦相似性特别适用于衡量文本数据和高维稀疏向量的相似性,例如自然语言处理中的文本相似性计算。由于它对向量的大小不敏感,因此对归一化数据效果很好。

在 Milvus 中使用 COSINE

当在 Milvus 中创建集合或者在搜索中指定 metric_type="COSINE" 时,Milvus 将使用余弦相似性来进行最近邻搜索。以下是一个基本设置示例:

  1. from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection
  2. # 连接到 Milvus
  3. connections.connect("default", host="localhost", port="19530")
  4. # 定义字段
  5. field1 = FieldSchema(name='id', dtype=DataType.INT64, is_primary=True, auto_id=True)
  6. field2 = FieldSchema(name='embedding', dtype=DataType.FLOAT_VECTOR, dim=128)
  7. # 设置集合模式
  8. schema = CollectionSchema(fields=[field1, field2], description="Example collection with COSINE metric")
  9. # 创建集合
  10. collection = Collection(name="example_collection", schema=schema)
  11. # 索引参数
  12. index_params = {
  13. "metric_type": "COSINE", # 指定使用余弦相似性
  14. "index_type": "IVF_FLAT",
  15. "params": {"nlist": 128}
  16. }
  17. # 创建索引
  18. collection.create_index(field_name="embedding", index_params=index_params)
  19. print("Collection and index created with COSINE similarity.")

注意事项

  • 归一化: 在使用余弦相似性作为度量标准时,确保向量已经过归一化处理(即向量长度变为 1),以便余弦相似性能够准确地反映向量间的角度关系。
  • 性能: 根据数据规模和实际应用场景,选择合适的索引类型如 IVF_FLATIVF_SQ8 等,以优化搜索性能和资源使用。

通过使用余弦相似性,Milvus 可以在高维空间中有效地计算向量间的相似度,从而为各种数据分析任务提供支持。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
浓情 关注 已关注

最近一次登录:2025-01-16 11:26:06   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图