0Pricing
AI Agents · Aula

Escolhendo métricas de distância (cosseno, L2, produto escalar)

Saiba quando escolher a distância de cosseno, L2 (euclidiana) ou de produto escalar — e por que a maioria dos modelos de embedding prefere o cosseno.

Escolhendo métricas de distância (cosseno, L2, produto escalar) é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Três métricas comuns

Os bancos de dados vetoriais permitem escolher uma métrica de distância. As três que o senhor verá com mais frequência:

  • Similaridade de cosseno — ângulo entre vetores
  • Produto escalar — projeção de um vetor sobre o outro
  • Euclidiana (L2) — distância em linha reta

Cosseno

Intervalo: -1 a 1. Maior = mais semelhante.

import numpy as np
def cosine(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

Produto escalar

Intervalo: -infinito a +infinito. Maior = mais semelhante.

def dot(a, b):
    return np.dot(a, b)

# Equivalent to cosine when both vectors are unit-normalized.

Euclidiana (L2)

Intervalo: 0 a +infinito. Menor = mais semelhante.

def l2(a, b):
    return np.linalg.norm(np.array(a) - np.array(b))

Qual o senhor deve usar?

Para incorporações de texto, a convenção é:

  • OpenAI text-embedding-3 — cosseno (os vetores são pré-normalizados)
  • Cohere — cosseno
  • Sentence Transformers / BGE — geralmente cosseno; consulte a ficha do modelo

Quando estiver em dúvida, use cosseno.

Produto escalar equivale ao cosseno quando normalizado

Se |a| = |b| = 1, então cos(a,b) = a . b. O produto escalar é mais rápido (não há divisão) — sistemas de produção geralmente usam o produto escalar em vetores pré-normalizados.

Quando L2 é usado

Alguns modelos de pesquisa (variantes mais antigas do Sentence-BERT e incorporações de imagens) são treinados com distância L2 e têm melhor desempenho com ela. Consulte ALWAYS a ficha do modelo.

Por que isso importa para o índice

A estrutura do índice (HNSW, IVF, FAISS) é criada para uma métrica SPECIFIC. Alterar a métrica depois da indexação geralmente significa reconstruir o índice do zero.

Setting Metric in Pinecone

from pinecone import ServerlessSpec
pc.create_index(
    name='docs',
    dimension=1536,
    metric='cosine',   # or 'dotproduct' or 'euclidean'
    spec=ServerlessSpec(cloud='aws', region='us-east-1')
)

Setting Metric in Qdrant

from qdrant_client.models import VectorParams, Distance
client.create_collection(
    collection_name='docs',
    vectors_config=VectorParams(size=1536, distance=Distance.COSINE)
)

Métrica inconsistente entre sistemas

Se o senhor reordenar os resultados com um codificador cruzado mais tarde, ele terá sua própria escala de pontuação. Não combine métricas em um único valor composto sem normalizá-las primeiro.

Visualizando a diferença

Para dois vetores unitários:

  • cosseno = 1, L2 = 0 -> idênticos
  • cosseno = 0.5, L2 ~ 1 -> relacionados
  • cosseno = 0, L2 ~ sqrt(2) -> ortogonais
  • cosseno = -1, L2 = 2 -> opostos

Normalize previamente uma vez

Normalizar durante a ingestão é barato (uma divisão). Isso garante compatibilidade com cosseno e produto escalar e evita a normalização por consulta posteriormente.

vec = vec / np.linalg.norm(vec)

Métrica padrão

Para incorporações de texto da OpenAI, qual é a métrica de distância padrão?

Recapitulação

Cosseno para texto. Normalize previamente uma vez e use o produto escalar para obter velocidade. Defina a métrica durante a criação do índice — alterá-la depois significa reconstruí-lo.

Perguntas Frequentes

A aula “Escolhendo métricas de distância (cosseno, L2, produto escalar)” é grátis?

Sim — o texto completo de “Escolhendo métricas de distância (cosseno, L2, produto escalar)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.

O que vou aprender em “Escolhendo métricas de distância (cosseno, L2, produto escalar)”?

Saiba quando escolher a distância de cosseno, L2 (euclidiana) ou de produto escalar — e por que a maioria dos modelos de embedding prefere o cosseno. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar AI Agents?

Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Escolhendo métricas de distância (cosseno, L2, produto escalar)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de AI Agents?

Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Pinecone, Weaviate, Qdrant: comparação
  2. Filtragem de metadados para busca híbrida
  3. Atualizando e excluindo vetores
  4. Escolhendo métricas de distância (cosseno, L2, produto escalar)
← Voltar para AI Agents