0Pricing
Learn AI with Python · Lección

Introducción a las bases de datos vectoriales

Por qué existen las bases de datos vectoriales, FAISS para búsquedas locales de similitud y almacenamiento de embeddings para recuperación de IA.

Introducción a las bases de datos vectoriales es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 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 Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Más allá de las coincidencias exactas

Las bases de datos tradicionales buscan filas mediante valores exactos (WHERE name = "x"). Sin embargo, la IA trabaja con embeddings: vectores que capturan el significado; a menudo, lo que desea son los elementos más similares a una consulta, no coincidencias exactas.

Las bases de datos vectoriales existen para agilizar este tipo de búsqueda por similitud.

¿Qué es un embedding?

Un embedding es una lista de números (un vector) que representa texto, una imagen o audio, de modo que los elementos similares quedan próximos entre sí en el espacio vectorial.

La búsqueda semántica, los sistemas de recomendación y la generación aumentada mediante recuperación (RAG) se basan en embeddings.

import numpy as np

# A toy 4-dim embedding for a sentence
vec = np.array([0.12, -0.43, 0.88, 0.05], dtype="float32")
print(vec.shape)   # (4,)

¿Por qué no una base de datos convencional?

Comparar una consulta con millones de vectores mediante un bucle de fuerza bruta es lento. Las bases de datos vectoriales utilizan índices especializados y cálculos de distancia para devolver los vecinos más cercanos en milisegundos.

También permiten escalar, conservar los datos y gestionar metadatos junto con los vectores.

Medición de la similitud

La cercanía se mide con una métrica de distancia:

  • L2 (euclídea) — distancia en línea recta; cuanto menor sea, mayor es la cercanía
  • Coseno — ángulo entre vectores; es adecuada para texto

FAISS admite varias métricas; utilizaremos L2.

Introducción a FAISS

FAISS (Facebook AI Similarity Search) es una biblioteca rápida y gratuita para realizar búsquedas vectoriales. Se ejecuta localmente, sin servidor, por lo que es ideal para aprender y crear prototipos.

import faiss
import numpy as np
# pip install faiss-cpu

Creación de un índice con IndexFlatL2

IndexFlatL2(dim) crea un índice plano (de fuerza bruta y exacto) mediante la distancia L2. Debe indicarle la dimensión de los vectores.

«Flat» significa que los resultados son exactos, lo que resulta perfecto para colecciones pequeñas o medianas.

import faiss

dim = 4
index = faiss.IndexFlatL2(dim)
print(index.is_trained)   # True (flat index needs no training)

Adición de vectores con index.add

Proporcione sus embeddings como una matriz NumPy 2D de tipo float32 y forma (n, dim). index.add los almacena y index.ntotal informa del número total.

import numpy as np

embeddings = np.random.random((100, dim)).astype("float32")
index.add(embeddings)
print(index.ntotal)   # 100

Búsqueda con index.search

index.search(query, k) devuelve los k vectores más cercanos. Devuelve dos matrices: las distancias D y los índices I (las posiciones según el orden en que añadió los vectores).

query = np.random.random((1, dim)).astype("float32")
D, I = index.search(query, k=5)
print("nearest ids:", I[0])
print("distances:", D[0])

De los índices a los elementos

FAISS devuelve posiciones, no sus datos originales. Mantenga una lista paralela (o una base de datos) que asocie la posición del índice con el elemento real para poder consultar los resultados.

docs = ["doc about cats", "doc about dogs", "doc about cars"]
# after search:
for pos in I[0]:
    print(docs[pos])   # map id -> original document

Un pequeño pipeline de búsqueda semántica

El patrón completo es el siguiente: genere embeddings de sus documentos, añádalos a un índice, genere el embedding de la consulta, realice la búsqueda y devuelva los documentos coincidentes. (Los modelos de embeddings, como sentence-transformers, producen los vectores).

import faiss, numpy as np

# doc_vectors: (n, dim) from an embedding model
index = faiss.IndexFlatL2(doc_vectors.shape[1])
index.add(doc_vectors)

# query_vec: (1, dim) embedding of the user query
D, I = index.search(query_vec, k=3)
results = [docs[i] for i in I[0]]
print(results)

Cuándo recurrir a una base de datos vectorial

Utilice una base de datos vectorial cuando necesite:

  • Búsqueda semántica sobre texto o imágenes
  • Recomendaciones basadas en similitud
  • RAG: recuperar contexto relevante para un LLM

FAISS es excelente para trabajar localmente; las opciones gestionadas (Pinecone, Weaviate, pgvector) añaden persistencia y escalabilidad.

Comprobación rápida: búsqueda con FAISS

Realiza una llamada a index.search(query, k=5) en un índice de FAISS.

Repaso: bases de datos vectoriales

Ha aprendido los fundamentos de la búsqueda por similitud:

  • Los embeddings sitúan los elementos similares cerca unos de otros en el espacio vectorial
  • Las bases de datos vectoriales agilizan la búsqueda de vecinos más cercanos a gran escala
  • FAISS IndexFlatL2(dim) crea un índice L2 exacto
  • index.add(embeddings) almacena vectores; index.search(query, k) devuelve distancias e índices
  • Asocie los índices devueltos con sus elementos originales

Con esto termina el tema de las bases de datos. Siguiente: estructurar proyectos de IA con Git.

Preguntas frecuentes

¿La lección «Introducción a las bases de datos vectoriales» es gratis?

Sí — el texto completo de «Introducción a las bases de datos vectoriales» 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 Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Introducción a las bases de datos vectoriales»?

Por qué existen las bases de datos vectoriales, FAISS para búsquedas locales de similitud y almacenamiento de embeddings para recuperación de IA. Practicas Learn AI with Python 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 Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python 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 4 de 4.

¿Cuánto tiempo toma la lección «Introducción a las bases de datos vectoriales»?

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 Learn AI with Python?

Sí. Cada lección de Learn AI with Python 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. SQLite con el módulo sqlite3 de Python
  2. Integración de Pandas y SQL
  3. Almacenamiento y consulta de resultados de machine learning
  4. Introducción a las bases de datos vectoriales
← Volver a Learn AI with Python