Ir al contenido principal

Introducción a las bases de datos vectoriales para machine learning: guía práctica con ejemplos

Explora las bases de datos vectoriales en ML con nuestra guía. Aprende a implementar embeddings vectoriales y aplicaciones prácticas.
Actualizado 17 sept 2026  · 8 min leer

Explorar con IA

ChatGPTClaudePerplexity

¿Qué son las bases de datos vectoriales?

En esencia, una base de datos vectorial es un sistema diseñado específicamente para almacenar y recuperar datos en forma de vectores. En este contexto, un vector es un conjunto ordenado de valores numéricos que puede representar desde coordenadas espaciales hasta atributos de características, como ocurre en machine learning y ciencia de datos, donde los vectores suelen representar las características de los objetos. La base de datos vectorial puede almacenar y recuperar estos vectores de características de forma eficiente.

Imagen de Gary Alway

Embeddings vectoriales

Un embedding vectorial es el proceso de representar objetos, como palabras, frases o entidades, como vectores en un espacio continuo. Esta técnica se usa habitualmente para convertir datos de alta dimensionalidad y categóricos en vectores continuos de menor dimensión, que los algoritmos de machine learning pueden aprovechar con mayor eficacia. Los embeddings vectoriales son especialmente populares en procesamiento del lenguaje natural (NLP), donde se emplean para representar palabras o expresiones.

La idea principal detrás de los embeddings es capturar las relaciones semánticas entre objetos. En el caso de los word embeddings, por ejemplo, las palabras con significados similares se representan con vectores más cercanos entre sí en el espacio vectorial. Esto permite que los modelos de machine learning comprendan mejor las relaciones contextuales y semánticas entre palabras.

Partiendo del concepto de embeddings, los Large Language Models (LLMs) aprovechan estas representaciones numéricas para abordar tareas complejas de comprensión y generación de lenguaje.

LLMs y embeddings vectoriales

Como ejemplo concreto, la arquitectura subyacente del modelo de chat GPT utiliza vectores. El modelo procesa entradas, como texto, convirtiéndolas en vectores numéricos.

Estos vectores capturan la información semántica y contextual de la entrada, lo que permite al modelo entender y generar respuestas coherentes y relevantes. La arquitectura Transformer, sobre la que se construye GPT-3.5, utiliza mecanismos de self-attention para ponderar la importancia de diferentes palabras en una secuencia, mejorando aún más la capacidad del modelo para captar relaciones y contexto.

Self-attention hace referencia a la capacidad del modelo para asignar distintos grados de importancia a las palabras dentro de la secuencia de entrada.

En resumen, el modelo GPT-3.5 opera sobre representaciones vectorizadas del lenguaje para realizar diversas tareas de comprensión y generación. Este enfoque basado en vectores es una de las claves de su éxito en un amplio abanico de aplicaciones relacionadas con el lenguaje.

PG Vector es una búsqueda de similitud vectorial de código abierto para Postgres. Vamos al grano y creemos una base de datos con Docker. Crea un archivo llamado docker-compose.yml y, en la línea de comandos, ejecuta: docker-compose up -d

services:
 db:
   hostname: db
   image: ankane/pgvector
   ports:
     - 5432:5432
   restart: always
   environment:
     - POSTGRES_DB=vectordb
     - POSTGRES_USER=testuser
     - POSTGRES_PASSWORD=testpwd
     - POSTGRES_HOST_AUTH_METHOD=trust

El siguiente paso es crear una tabla; en este ejemplo, vamos a catalogar recursos de aprendizaje de DataCamp: cursos, blogs, tutoriales, pódcasts, chuletas, code alongs y certificaciones.

CREATE TABLE resource (
   id serial CONSTRAINT "PK_resource" PRIMARY KEY,
   name varchar NOT NULL,
   content text NOT NULL,
   slug varchar NOT NULL,
   type varchar NOT NULL,
   embedding vector,
   CONSTRAINT "UQ_resource" UNIQUE (name, type)
);

La columna embedding se generará a partir de un objeto JSON en forma de cadena que representa los atributos del recurso { name, content, slug, type }. Para crear este embedding vectorial, usaremos un modelo de embedding.

Uno de los modelos disponibles en AWS Bedrock es amazon.titan-embed-text-v1. La configuración de Bedrock no se trata en este artículo; es solo un ejemplo entre muchos modelos de embedding capaces de lograr resultados similares. El objetivo principal es tomar una entrada de texto, usar un modelo de embedding para generar embeddings vectoriales y almacenarlos en la columna embedding.

// typescript
const client = new BedrockRuntimeClient({ region: process.env.AWS_REGION });
const response = await client.send(
 new InvokeModelCommand({
   modelId: "amazon.titan-embed-text-v1",
   contentType: "application/json",
   accept: "application/json",
   body: JSON.stringify({
     inputText: JSON.stringify(resource),
   }),
 })
);

const { embedding } = JSON.parse(new TextDecoder().decode(response.body));
# python
client = boto3.client("bedrock-runtime", region_name=region)
response = client.invoke_endpoint(
    EndpointName="amazon.titan-embed-text-v1",
    ContentType="application/json",
    Accept="application/json",
    Body=json.dumps({"inputText": json.dumps(resource)})
)
embedding = json.loads(response["Body"].read().decode("utf-8"))["embedding"]

Operaciones y búsquedas vectoriales

Al poder almacenar datos junto con sus embeddings vectoriales, desbloqueamos todo el potencial de las bases de datos vectoriales: podemos interactuar con la base de datos en lenguaje natural y recuperar resultados con sentido sin esfuerzo.

Formula cualquier pregunta que quieras «hacerle a tus datos» y aplica el mismo embedding a ese texto. La consulta SQL sería así:

SELECT
  name,
  content,
  type,
  slug,
  1 - (embedding <=> $1) AS similarity
FROM
  resource
WHERE
  1 - (embedding <=> $1) > $2
ORDER BY
  similarity DESC;

Esta consulta emplea una búsqueda por similitud coseno. El parámetro $1 representa el embedding del texto de tu pregunta, mientras que el parámetro $2 actúa como umbral de similitud y conviene ajustarlo mediante pruebas. Su valor óptimo depende del tamaño de tu dataset y del nivel de relevancia que busques, lo que determina la granularidad de la información recuperada.

Con todo esto en marcha, crear una interfaz de chat es bastante directo. Los detalles de implementación quedan fuera del alcance de este artículo, pero aquí tienes algunos ejemplos usando mi dataset de DataCamp, que incluye más de 600 registros:

Conclusión y lecturas recomendadas

En este artículo hemos explorado el potente mundo de las bases de datos vectoriales, aprovechando PG Vector para mejorar nuestras capacidades de almacenamiento y recuperación. Si te animas a profundizar en los embeddings vectoriales, todavía hay mucho por descubrir. Para saber más sobre PG Vector, consulta su readme, que entra en detalle e incluye enlaces a clientes para tu lenguaje de programación favorito.

Una evolución natural tras entender los embeddings es la Retrieval Augmented Generation (RAG). Consiste en inyectar datos contextuales en los LLMs. Al hacerlo, RAG aporta al modelo conocimiento externo a sus datos de entrenamiento, permitiendo respuestas más informadas y relevantes al contexto.

También encontrarás una variedad de recursos de DataCamp que cubren otros aspectos de las bases de datos vectoriales, entre ellos:

¡Feliz programación y que tus proyectos basados en vectores sean tan reveladores como gratificantes!


Gary Alway's photo
Author
Gary Alway
LinkedIn

¡Soy un Ingeniero de Software Full stack y Arquitecto de Soluciones apasionado por el aprendizaje y los datos!

Temas
Aprendizaje automático

¡Sigue hoy con tu viaje vectorial!

Curso

Creación de aplicaciones de IA con Pinecone

3 h
11.6K
Descubre cómo la base de datos vectorial Pinecone está revolucionando el desarrollo de aplicaciones de IA.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

blog

Las 7 mejores bases de datos vectoriales en 2026

Una guía completa sobre las mejores bases de datos vectoriales. Domina el almacenamiento de datos de alta dimensión, descifra información no estructurada y aprovecha las incrustaciones vectoriales para aplicaciones de IA.
Moez Ali's photo

Moez Ali

14 min

blog

¿Qué es una base de datos de grafos? Guía para principiantes

Explora el intrincado mundo de las bases de datos de grafos con nuestra guía para principiantes. Comprende las relaciones entre datos, profundiza en la comparación entre bases de datos de grafos y relacionales, y explora casos prácticos de uso.
Kurtis Pykes 's photo

Kurtis Pykes

11 min

blog

Clasificación en machine learning: Introducción

Aprende sobre la clasificación en machine learning viendo qué es, cómo se utiliza y algunos ejemplos de algoritmos de clasificación.
Zoumana Keita 's photo

Zoumana Keita

14 min

Tutorial

Tutorial de pgvector: Integrar la búsqueda vectorial en PostgreSQL

Descubre cómo mejorar PostgreSQL con capacidades de búsqueda vectorial utilizando pgvector. Este tutorial te guía a través de la instalación, las operaciones básicas y la integración con herramientas de IA.
Moez Ali's photo

Moez Ali

10 min

Tutorial

Tutorial sobre máquinas de vectores de soporte con Scikit-learn

En este tutorial, aprenderás sobre las máquinas de vectores de soporte, uno de los algoritmos de machine learning supervisado más populares y utilizados.
Avinash Navlani's photo

Avinash Navlani

15 min

Tutorial

Introducción al aprendizaje automático estadístico

Descubra la potente fusión de estadística y aprendizaje automático. Explore cómo las técnicas estadísticas sustentan los modelos de aprendizaje automático, permitiendo la toma de decisiones basada en datos.
Joanne Xiong's photo

Joanne Xiong

11 min

Ver MásVer Más