Arraste o ponto de consulta e altere as métricas para ver como os vizinhos mais próximos mudam.
Mede a distância em linha reta entre dois pontos. Os círculos concêntricos mostram zonas equidistantes — todos os pontos no mesmo círculo estão igualmente «distantes» da consulta.
Uma métrica é apenas uma função que recebe dois vetores e devolve um único número que indica o grau de semelhança (ou diferença) entre eles. A pesquisa vetorial consiste, na sua essência, em «encontrar os K vetores com a melhor pontuação métrica em relação à minha consulta». Tudo o resto — índices, clusters, gráficos — é apenas uma questão de gestão para evitar calcular esta pontuação em relação a cada vetor na base de dados.
A métrica que escolher define o que «semelhante» significa para os seus dados. Duas incorporações podem estar «próximas» numa métrica e «distantes» noutra — os mesmos dados, respostas diferentes. É por isso que esta escolha é feita antes mesmo de criar um índice.
Experimente isto: arraste o ponto de consulta para perto da origem e alterne entre «Cosine» e « L2 ». Observe como o «Cosine» se preocupa apenas com a «direção» para a qual a consulta aponta — pontos no lado oposto da origem podem estar «próximos» no « L2 », mas «distantes» no «Cosine». Essa representação visual resume todo o conceito.
Em « Milvus », a métrica é definida por índice através de « metric_type » — L2, IP, ou COSINE para vetores densos — quando cria o índice. Todas as pesquisas nessa coleção utilizam então a mesma função com a qual acabou de trabalhar acima. A regra mais fiável de todas: utilize a métrica com a qual o seu modelo de incorporação foi treinado, que está indicada em praticamente todos os cartões de modelo.
Dois atalhos úteis. A maioria das APIs modernas de incorporação de texto (OpenAI, Cohere, Voyage e a maioria dos transformadores de frases) produz vetores destinados à similaridade cosinusoidal. E se os seus vetores forem normalizados para comprimento unitário, o coseno e o produto escalar devolvem classificações idênticas — por isso, IP em vetores normalizados é uma alternativa comum e ligeiramente mais económica ao COSINE.
Utilize a similaridade cosseno (metric_type COSINE em Milvus). Quase todos os modelos modernos de incorporação de texto — incluindo a família text-embedding-3 de OpenAI — são treinados para a similaridade cosseno. Como as incorporações OpenAI são normalizadas para comprimento unitário, o produto escalar (IP) fornece classificações idênticas e constitui uma boa alternativa.
A semelhança cosseno mede apenas o ângulo entre dois vetores, ignorando os seus comprimentos. O produto interno (produto escalar) valoriza tanto o alinhamento como a magnitude, pelo que um vetor mais longo que aponte na mesma direção obtém uma pontuação mais elevada. Em vetores normalizados por unidade, os dois são matematicamente equivalentes.
Não. A métrica é incorporada no índice no momento da compilação. Para mudar de métrica, deve eliminar o índice e recompilá-lo com um novo «metric_type». As pontuações de métricas diferentes também não são comparáveis entre si, por isso não as misture ao pós-processar os resultados.
A velocidade é essencialmente idêntica — « L2 », « IP » e «cosine» custam todos uma passagem pelo vetor. O recall é que importa: pesquisar com uma métrica diferente daquela para a qual o seu modelo de incorporação foi treinado degrada silenciosamente a qualidade dos resultados, muitas vezes de forma dramática.
Para aprofundar: leia a documentação sobre Métricas de Similaridade para obter a lista completa de métricas que o ` Milvus ` suporta, incluindo Hamming e Jaccard para vetores binários e BM25 para pesquisa de texto completo.
Comparação lado a lado entre a pesquisa de força bruta e a pesquisa agrupada. Ajuste « nprobe » em tempo real.
Veja a pesquisa em grafos multicamadas passo a passo — desde saltos de autoestrada até percursos locais.
Veja como PQ-in-RAM + full-vectors-on-SSD lhe permite pesquisar conjuntos de dados na ordem dos mil milhões num portátil.