0Pricing
AI Agents · Lección

Similitud coseno para la recuperación

La similitud coseno mide el ángulo entre dos vectores: la métrica de distancia estándar para la búsqueda semántica.

Similitud coseno para la recuperación es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Medir la similitud

¿Qué tan cercanos son dos vectores? Tres métricas de distancia habituales:

  • Similitud coseno — ángulo entre vectores
  • Producto escalar — proyección
  • Distancia euclídea (L2) — distancia en línea recta

Para los embeddings de texto, el coseno es la opción predeterminada.

Fórmula de similitud coseno

Para los vectores A y B:

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

El resultado está entre -1 y 1:

  • 1 = dirección idéntica
  • 0 = ortogonales (sin relación)
  • -1 = opuestos

En Python con NumPy

Una implementación sencilla:

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

Vectores pre-normalizados

Si sus embeddings ya están normalizados (los de OpenAI lo están), el coseno equivale al producto escalar y puede omitir la división:

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

Recuperación Top-K

Para encontrar los K documentos más similares a una consulta, calcule la similitud con todos los documentos y ordénelos:

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]

Escalar

El top-K ingenuo es O(N) por consulta: adecuado para 10k documentos, pero lento con 10M. Para corpus grandes, use índices de vecinos más cercanos aproximados (ANN): HNSW, IVF, FAISS.

¿Por qué no euclídea?

La distancia L2 considera significativa la LONGITUD del vector. En los embeddings, importa más la dirección que la magnitud; por eso gana el coseno.

(Para vectores normalizados, L2 y el coseno producen la misma clasificación, así que no importa cuál use.)

Producto escalar frente a coseno

Si los vectores ya están normalizados, el producto escalar equivale al coseno y es más rápido (no requiere división). La mayoría de los sistemas en producción usan el producto escalar sobre vectores 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

Recuperación híbrida

Combine la similitud del coseno con la búsqueda por palabras clave (BM25) para obtener lo mejor de ambos enfoques: búsqueda semántica y coincidencia exacta. Actualmente, la mayoría de los sistemas en producción utilizan la recuperación híbrida.

Filtrado por umbral

Descartе los resultados que estén por debajo de un umbral de similitud para evitar proporcionar al LLM un contexto irrelevante:

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

Rango del coseno

¿Cuál es el rango de valores de la similitud del coseno?

Resumen

La similitud del coseno es la métrica estándar para la recuperación de embeddings. Combínela con la búsqueda híbrida y ANN para trabajar a escala de producción.

Preguntas frecuentes

¿La lección «Similitud coseno para la recuperación» es gratis?

Sí — el texto completo de «Similitud coseno para la recuperación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Similitud coseno para la recuperación»?

La similitud coseno mide el ángulo entre dos vectores: la métrica de distancia estándar para la búsqueda semántica. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Similitud coseno para la recuperación»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué son los embeddings (representaciones vectoriales)
  2. Generar embeddings con text-embedding-3
  3. Similitud coseno para la recuperación
  4. Comparación de modelos de embeddings (OpenAI frente a Cohere y OSS)
← Volver a AI Agents