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
- Pinecone, Weaviate, Qdrant: comparação
- Filtragem de metadados para busca híbrida
- Atualizando e excluindo vetores
- Escolhendo métricas de distância (cosseno, L2, produto escalar)