跳转至

第八章:最佳实践

数据建模

向量维度选择

向量维度选择:
- OpenAI text-embedding-3-small: 1536
- OpenAI text-embedding-3-large: 3072
- Cohere embed-v3: 1024
- 开源模型: 通常 768 或 1024

权衡:
- 维度越高,精度越好,但存储和计算成本越高
- 建议根据实际需求选择

元数据设计

# 推荐的元数据字段
fields = [
    FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
    FieldSchema(name="doc_id", dtype=DataType.VARCHAR, max_length=64),
    FieldSchema(name="title", dtype=DataType.VARCHAR, max_length=512),
    FieldSchema(name="content", dtype=DataType.VARCHAR, max_length=65535),
    FieldSchema(name="category", dtype=DataType.VARCHAR, max_length=64),
    FieldSchema(name="created_at", dtype=DataType.INT64),
    FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=768)
]

索引选择

def choose_index(data_size):
    """根据数据量选择索引"""
    if data_size < 100000:
        return {"index_type": "FLAT"}  # 小数据量用 FLAT
    elif data_size < 10000000:
        return {"index_type": "IVF_FLAT", "params": {"nlist": 1024}}
    else:
        return {"index_type": "HNSW", "params": {"M": 16, "efConstruction": 256}}

监控指标

# 关键监控指标
metrics = {
    "latency_p99": "搜索延迟 P99",
    "qps": "每秒查询数",
    "recall": "召回率",
    "memory_usage": "内存使用",
    "index_size": "索引大小"
}

小结

最佳实践要点:

  • 数据建模:维度选择、元数据设计
  • 索引选择:根据数据量选择
  • 监控指标:延迟、QPS、召回率

完成本教程后,你应该能够设计和优化向量数据库应用。