Calculadora de tamaño de embeddings: cuánto disco o RAM ocupan tus vectores
Calcula cuánto disco o memoria RAM necesitan tus embeddings según el número de vectores, las dimensiones y la precisión, incluido el espacio extra del índice.
Cómo funciona
Bytes sin índice = vectores × dimensiones × bytes por dimensión · Total = sin índice × (1 + % extra del índice)
Un embedding no es más que una lista de números, así que lo que ocupa se reduce a vectores × dimensiones × los bytes de cada número. En float32 cada dimensión usa 4 bytes; cuantizar a float16 o int8 reduce el espacio a la mitad o a la cuarta parte con una pérdida de precisión pequeña, y es la palanca más grande para ahorrar almacenamiento. Encima de los vectores, un índice de vecinos más cercanos aproximados (HNSW, IVF) agrega enlaces del grafo y metadatos, a menudo entre 10% y 50% más. Tenlo en cuenta al planear la RAM, porque la latencia de búsqueda depende de mantener el índice en memoria.
Ejemplo resuelto
Diego quiere indexar un millón de fragmentos con embeddings de 1536 dimensiones en float32: 1,000,000 × 1536 × 4 = 6.14 GB sin índice. Cada vector ocupa 1536 × 4 = 6,144 bytes, es decir, 6.00 KB. Con un 20% extra por el índice HNSW, el total llega a unos 7.37 GB.
Preguntas frecuentes
¿Guardo los embeddings en float32 o los cuantizo?
float32 es la opción segura, pero cuantizar a int8 reduce el almacenamiento 4 veces con una caída de recall típica de 1% a 3%, un intercambio muy bueno en colecciones grandes. Mide el recall con tus propias consultas antes de cuantizar de forma agresiva.
¿De verdad el índice ocupa tanto espacio extra?
Los índices basados en grafos como HNSW guardan varios enlaces a vecinos por cada vector, lo que puede sumar entre 10% y 50% sobre los datos. Un índice plano (fuerza bruta) casi no agrega nada, pero se vuelve lento a gran escala. Pon el porcentaje que corresponda a tu tipo de índice.
¿Esto es espacio en disco o en RAM?
Para búsquedas de similitud rápidas, el índice y los vectores suelen tener que estar en RAM, así que trata el total como tu presupuesto de memoria. Algunas bases de datos vectoriales dejan los vectores en disco y solo el índice en RAM, lo que cambia el reparto.
¿Cuánto ocupa un embedding de 768 dimensiones?
En float32 son 768 × 4 = 3,072 bytes, o sea 3.00 KB por vector. Un millón de ellos ocupa unos 3.07 GB sin contar el índice.
Calculadoras relacionadas
Estimación con fines educativos: el espacio real depende de tu base de datos, el tipo de índice y la configuración. Compáralo con mediciones propias antes de dimensionar servidores.