¿Qué es exactamente un vector?#
Al escuchar la palabra «vector» por primera vez, muchas personas no tienen una idea clara de su significado. Quienes cursaron ramas científicas en secundaria tal vez lo recuerden vagamente de clases de matemáticas (álgebra y geometría), pero para perfiles humanísticos puede resultar un concepto lejano. La manera más intuitiva de entender un vector es pensar en un mapa.
Imagine que tiene un mapa delante y traza una línea recta desde la estación de Tokio hasta la de Ikebukuro. En esencia, ese es el concepto fundamental de un vector. Si lo expresamos numéricamente, es una flecha diagonal dibujada en un rectángulo de 3 cm de ancho por 5 cm de alto. Un vector representa «dirección y magnitud (longitud)» de un punto a otro. En un mapa es bidimensional (horizontal y vertical), pero al añadir la altura se vuelve tridimensional, un concepto ampliamente utilizado en física para calcular desplazamientos.
El bolsillo mágico de Doraemon se basa probablemente en 4 ejes: ancho, alto, profundidad y tiempo (según Einstein el cuarto eje es el tiempo). Al almacenar múltiples valores más allá de dos o tres dimensiones, podemos representar vectores multidimensionales. El espacio 3D es fácil de entender por ser nuestro entorno real, pero al fijar 1024, 1536 o 4096 dimensiones como estándar de granularidad, el vector se vuelve extraordinariamente preciso. Es mejor concebir estas altas dimensiones como una herramienta matemática. Solo recuerde que describe «dirección y cantidad».
Uso en modelos de lenguaje modernos (LLM)#
Uno de los mayores avances en la inteligencia artificial moderna fue la vectorización de textos. Convertir oraciones en vectores facilita el cálculo matemático para predecir las siguientes palabras, base de los modelos de lenguaje (LLM). En la búsqueda vectorial, gestionar el significado semántico de las frases como vectores mejora notablemente la precisión de búsqueda.
Esto aplica a la IA de texto; la generación de imágenes se basa en modelos de difusión con fundamentos totalmente distintos.
Especificaciones actuales e implementación#
El entorno de desarrollo de Kurousagi está montado en la infraestructura de Cloudflare, empleando la base de datos D1 (basada en SQLite) para la gestión de especificaciones. Al principio, los documentos se almacenaban como archivos Markdown o HTML en los repositorios, pero al desarrollar múltiples productos en paralelo, los documentos quedaban dispersos, desactualizados o duplicados.
Por ello, adoptamos una estructura Monorepo y construimos una plataforma interna de desarrollo. La edición y creación de especificaciones mediante API y navegador facilitó la gestión centralizada y la aplicación de filtros avanzados.
Sin embargo, en flujos de desarrollo asistidos por IA, hacer que el modelo busque en cada documento individual desperdicia tokens. Para resolverlo, incorporamos búsqueda vectorial de texto completo para elevar la eficiencia.
Mecanismo fundamental#
Los textos de especificaciones residen en la base D1. A esto añadimos Cloudflare Vectorize, una base de datos vectorial especializada. Extraemos los textos de D1, los procesamos mediante Cloudflare Workers AI y almacenamos los embeddings en Cloudflare Vectorize (CF Vectorize).
Cuota gratuita de Cloudflare Workers AI
- 10.000 Neurons gratis por día por cuenta en todo Workers AI
- Facturación por uso para consumos excedentes
- Reinicio diario a las 00:00 UTC (09:00 hora de Japón)
- Compartido entre todos los modelos de Workers AI de la cuenta
Utilizamos el modelo de incrustación @cf/baai/bge-m3. Al ser un modelo multilingüe, las especificaciones y las consultas de búsqueda se posicionan en el mismo espacio vectorial numérico.
Cuota gratuita de Cloudflare Vectorize
- Almacenamiento: 5 millones de dimensiones vectoriales
- Consultas: 30 millones de dimensiones vectoriales al mes
- Cargos por exceso: Sin cobro por exceso (requiere plan de pago para continuar tras superar el límite)
- Egress, CPU y mantenimiento de índices: Sin costos adicionales
Dado que nuestra cuenta es de pago, encaja en el límite de 10 millones de dimensiones, pero superaría la cuota gratuita básica. El flujo es simple: un cron extrae especificaciones actualizadas de D1 mediante Workers AI, las vectoriza y las guarda en Vectorize. Al buscar, la consulta se vectoriza con Workers AI, se buscan coincidencias en Vectorize y se recuperan las especificaciones desde D1.
Experiencia y conclusiones#
Nuestra impresión tras implementar la búsqueda vectorial: ¡súper útil! Antes se requerían palabras clave como «dispositivo» o «pérdida», mientras que ahora consultas como «gestión de cuentas ante extravío de dispositivo» devuelven directamente la especificación adecuada. No obstante, debido a los límites de la cuota gratuita, volúmenes grandes requerirán un plan de pago.
Esta captura muestra el panel de administración de búsqueda vectorial, donde se aprecia la superación de la cuota gratuita. Mientras que Workers AI se reinicia a diario, el almacenamiento vectorial es permanente.
Es una solución sumamente potente para usuarios de planes de pago de Cloudflare. ¡Esperamos que esta experiencia les sea de utilidad!