• Sobre Milvus
  • Começar a trabalhar
  • Conceitos
  • Guia do utilizador
    • Colecções
    • Esquema e campos de dados
    • Inserir e apagar
    • Índices
    • Pesquisar
    • Embeddings e Reranking
    • Otimização do armazenamento
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • FAQs
  • API Reference

BIN_IVF_FLAT

O índice BIN_IVF_FLAT é uma variante do índice IVF_FLAT exclusivamente para incrustações binárias. Melhora a eficiência da consulta ao particionar primeiro os dados vectoriais em vários clusters (unidades nlist) e, em seguida, ao comparar o vetor de entrada alvo com o centro de cada cluster. BIN_IVF_FLAT reduz significativamente o tempo de consulta, permitindo aos utilizadores ajustar o equilíbrio entre precisão e velocidade. Para obter mais informações, consulte IVF_FLAT.

Criar índice

Para construir um índice BIN_IVF_FLAT num campo vetorial em Milvus, utilize o método add_index(), especificando os parâmetros index_type, metric_type, e parâmetros adicionais para o índice.

from pymilvus import MilvusClient

# Prepare index building params
index_params = MilvusClient.prepare_index_params()

index_params.add_index(
    field_name="your_binary_vector_field_name", # Name of the vector field to be indexed
    index_type="BIN_IVF_FLAT", # Type of the index to create
    index_name="vector_index", # Name of the index to create
    metric_type="HAMMING", # Metric type used to measure similarity
    params={
        "nlist": 64, # Number of clusters for the index
    } # Index building params
)

Nesta configuração:

  • index_type: O tipo de índice a construir. Neste exemplo, defina o valor para BIN_IVF_FLAT.

  • metric_type: O método utilizado para calcular a distância entre vectores. Os valores suportados para incorporação binária incluem HAMMING (predefinição) e JACCARD. Para obter detalhes, consulte Tipos de métricas.

  • params: Opções de configuração adicionais para criar o índice.

    • nlist: Número de clusters para dividir o conjunto de dados.

    Para saber mais sobre os parâmetros de construção disponíveis para o índice BIN_IVF_FLAT, consulte Parâmetros de construção do índice.

Assim que os parâmetros do índice estiverem configurados, pode criar o índice utilizando diretamente o método create_index() ou passando os parâmetros do índice no método create_collection. Para obter detalhes, consulte Criar coleção.

Pesquisar no índice

Depois de o índice ser criado e as entidades serem inseridas, pode efetuar pesquisas de semelhança no índice.

search_params = {
    "params": {
        "nprobe": 10, # Number of clusters to search
    }
}

res = MilvusClient.search(
    collection_name="your_collection_name", # Collection name
    anns_field="binary_vector_field",  # Binary vector field
    data=[query_binary_vector],  # Query binary vector
    limit=3,  # TopK results to return
    search_params=search_params
)

Nesta configuração:

  • params: Opções de configuração adicionais para pesquisar no índice.

    • nprobe: Número de clusters a serem pesquisados.

    Para saber mais sobre os parâmetros de pesquisa disponíveis para o índice BIN_IVF_FLAT, consulte Parâmetros de pesquisa específicos do índice.

Parâmetros de índice

Esta secção fornece uma visão geral dos parâmetros utilizados para criar um índice e efetuar pesquisas no índice.

Parâmetros de construção do índice

A tabela seguinte lista os parâmetros que podem ser configurados em params ao construir um índice.

Parâmetro

Descrição

Intervalo de valores

Sugestão de ajuste

nlist

O número de clusters a criar utilizando o algoritmo k-means durante a construção do índice. Cada cluster, representado por um centróide, armazena uma lista de vectores. Aumentar este parâmetro reduz o número de vectores em cada cluster, criando partições mais pequenas e mais focadas.

Tipo: Integer Intervalo: [1, 65536]

Valor padrão: 128

Valores maiores nlist melhoram a recuperação, criando clusters mais refinados, mas aumentam o tempo de construção do índice. Optimize com base no tamanho do conjunto de dados e nos recursos disponíveis. Na maioria dos casos, recomendamos que defina um valor dentro deste intervalo: [32, 4096].

Parâmetros de pesquisa específicos do índice

A tabela a seguir lista os parâmetros que podem ser configurados em search_params.params ao pesquisar no índice.

Parâmetro

Descrição

Intervalo de valores

Sugestão de ajuste

nprobe

O número de clusters para pesquisar candidatos. Valores mais altos permitem que mais clusters sejam pesquisados, melhorando a recuperação ao expandir o âmbito da pesquisa, mas ao custo de uma maior latência de consulta.

Tipo: Integer Intervalo: [1, nlist]

Valor padrão: 8

O aumento desse valor melhora a recuperação, mas pode tornar a pesquisa mais lenta. Defina nprobe proporcionalmente a nlist para equilibrar velocidade e precisão.

Na maioria dos casos, recomendamos que defina um valor dentro deste intervalo: [1, nlist].

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?