0Pricing
AI Agents · Aula

Similaridade de cosseno para recuperação

A similaridade de cosseno mede o ângulo entre dois vetores — a métrica de distância padrão para busca semântica.

Similaridade de cosseno para recuperação é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 3 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.

Medindo a similaridade

Quão próximos estão dois vetores? Três métricas de distância comuns:

  • Similaridade de cosseno — ângulo entre os vetores
  • Produto escalar — projeção
  • Distância euclidiana (L2) — distância em linha reta

Para representações vetoriais de texto, o cosseno é o padrão.

Fórmula da similaridade de cosseno

Para os vetores A e B:

cos(A, B) = (A . B) / (|A| * |B|)

O resultado fica entre -1 e 1:

  • 1 = mesma direção
  • 0 = ortogonais (não relacionados)
  • -1 = opostos

Em Python com NumPy

Implementação direta:

import numpy as np

def cosine_similarity(a, b):
    a = np.array(a)
    b = np.array(b)
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

print(cosine_similarity(vec_apple, vec_orange))   # high
print(cosine_similarity(vec_apple, vec_car))      # low

Vetores pré-normalizados

Se suas incorporações já estiverem normalizadas (as da OpenAI estão), cosseno = produto escalar, e você pode ignorar a divisão:

def cosine_normalized(a, b):
    return np.dot(a, b)   # faster

Recuperação dos K melhores

Para encontrar os K documentos mais semelhantes a uma consulta, calcule a semelhança com cada documento e ordene-os:

def topk(query_vec, doc_vecs, k=5):
    scores = [(np.dot(query_vec, v), i) for i, v in enumerate(doc_vecs)]
    scores.sort(reverse=True)
    return scores[:k]

Escalando

A recuperação ingênua dos K melhores é O(N) por consulta — funciona bem para 10 mil documentos, mas é lenta para 10 milhões. Para grandes corpora, use índices aproximados de vizinhos mais próximos (ANN): HNSW, IVF, FAISS.

Por que não a distância euclidiana?

A distância L2 considera o LENGTH do vetor significativo. Para incorporações, a direção importa mais do que a magnitude — por isso o cosseno é melhor.

(Para vetores normalizados, L2 e cosseno produzem a mesma ordenação, portanto isso não faz diferença.)

Produto escalar vs. cosseno

Se os vetores já estiverem normalizados, produto escalar = cosseno e é mais rápido (não há divisão). A maioria dos sistemas de produção usa produto escalar em vetores normalizados.

A Tiny End-to-End Retrieval

docs = ['Python is a programming language', 'Pizza is Italian food', 'The Eiffel Tower is in Paris']
doc_vecs = [embed(d) for d in docs]

query_vec = embed('What is Python?')
scores = [(cosine_similarity(query_vec, v), d) for v, d in zip(doc_vecs, docs)]
scores.sort(reverse=True)
for s, d in scores:
    print(f'{s:.3f}  {d}')
# 0.83  Python is a programming language
# 0.45  Pizza is Italian food
# 0.41  The Eiffel Tower is in Paris

Recuperação híbrida

Combine a semelhança de cosseno com a pesquisa por palavras-chave (BM25) para obter o melhor dos dois métodos — semântica + correspondência exata. A maioria dos sistemas de produção usa recuperação híbrida hoje.

Filtragem por limiar

Descarte os resultados abaixo de um limiar de semelhança para evitar fornecer ao LLM contexto irrelevante:

results = [r for r in retrieved if r.score > 0.7]

Intervalo do cosseno

Qual é o intervalo dos valores de semelhança de cosseno?

Recapitulação

A semelhança de cosseno é a métrica padrão para a recuperação por incorporação. Combine-a com pesquisa híbrida e ANN para uso em escala de produção.

Perguntas Frequentes

A aula “Similaridade de cosseno para recuperação” é grátis?

Sim — o texto completo de “Similaridade de cosseno para recuperação” é 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 “Similaridade de cosseno para recuperação”?

A similaridade de cosseno mede o ângulo entre dois vetores — a métrica de distância padrão para busca semântica. 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 3 de 4.

Quanto tempo leva a aula “Similaridade de cosseno para recuperação”?

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. O que são embeddings (representações vetoriais)
  2. Gerando embeddings com text-embedding-3
  3. Similaridade de cosseno para recuperação
  4. Comparação de modelos de embedding (OpenAI vs. Cohere vs. OSS)
← Voltar para AI Agents