Código abierto · Compresión vectorial
Semafold: vectores más pequeños, compromisos medibles
Semafold es nuestra biblioteca Python de código abierto para comprimir las representaciones numéricas de los sistemas de IA. Reduce el almacenamiento de embeddings y permite explorar tensores de caché de atención más pequeños, midiendo juntos el espacio ahorrado y el error de reconstrucción.
Medición sintética · informe fuente 0.1.0 del 31 de marzo de 2026 · biblioteca revisada en 0.2.0
Pregunta de investigación
¿Cuánto espacio pueden ahorrar los vectores de IA si se cuenta toda la representación comprimida, incluidos los metadatos?
Método
El informe fuente utiliza datos sintéticos: 128 vectores de 1.536 valores y pares de tensores clave/valor de forma (4, 8, 256, 128). Compara codificaciones vectoriales de 2, 3 y 4 bits con almacenamiento denso float32 y de 16 bits. Los tamaños incluyen datos comprimidos, valores auxiliares y metadatos. La calidad se evalúa mediante errores de reconstrucción y similitud.
Resultados
Con 3 bits, la representación de embeddings pasa de 786.432 a 74.738 bytes: un 90,50 % menos que float32 y un 80,99 % menos que 16 bits. El par clave/valor estudiado pasa de 8.388.608 a 885.734 bytes. Son mediciones de almacenamiento sobre datos sintéticos, no mejoras medidas de velocidad de la aplicación ni de calidad de las respuestas.
Dónde encaja
Los archivos de embeddings, la memoria vectorial de agentes y los sistemas de búsqueda personalizados son puntos de integración posibles. Una API preliminar trata los tensores clave y valor del mecanismo de atención. Semafold comprime números; no resume documentos ni acorta prompts.
Elegir el equilibrio entre tamaño y fidelidad
En la prueba de reconstrucción, la codificación de 2 bits ocupa 50.077 bytes con un error cuadrático medio de 0,1178; la de 3 bits, 74.738 bytes con 0,0348; la de 4 bits, 99.484 bytes con 0,0098. Más bits preservan mejor los valores originales. Estos errores no miden la recuperación de resultados relevantes ni la exactitud de las respuestas.
Una biblioteca Python con límites explícitos
Python 3.10+ y NumPy bastan para el núcleo. La versión 0.2.0 añade aceleración opcional mediante PyTorch (CUDA/MPS) o MLX (Metal). La API raíz documentada ofrece contratos tipados de codificación y decodificación, además del recuento de bytes. Los códecs TurboQuant y la API clave/valor son módulos preliminares sin garantía de compatibilidad. Este informe no mide mejoras de velocidad con GPU.
Limitaciones
La compresión tiene pérdidas. La calidad de búsqueda y el comportamiento del modelo deben evaluarse con los datos previstos. Los bloques de caché muy pequeños pueden superar el tamaño de 16 bits por el coste de los metadatos. Las API de compresión y caché siguen en versión preliminar; las integraciones de inferencia listas para usar quedan fuera de este informe.
Acerca de este informe
Este informe técnico no ha sido revisado por pares. Las cifras proceden del informe de medición 0.1.0 del repositorio; las pruebas no se repitieron para este sitio. El código, los ejemplos, los scripts de medición y la política de estabilidad de las API son públicos bajo Apache-2.0.
- Explorar Semafold en GitHub ↗
- Informe de medición original ↗
- Ejemplos Python ejecutables ↗
- Política de estabilidad de las API ↗
- Apache-2.0 ↗
Notas técnicas y fuentes
Medición sintética · informe fuente 0.1.0 del 31 de marzo de 2026 · biblioteca revisada en 0.2.0
Los nombres de archivo y las huellas SHA-256 identifican las versiones exactas de las fuentes utilizadas para preparar este informe.
- benchmarks/turboquant_benchmark_report.md
SHA-256: ef384c74195d3f0944b36b1d2cf75baa78ca77e6e29009faa1f08ed3d648f1ad - STABILITY.md
SHA-256: f085264ec4f6c0a0b3e962e8cccea470fd6e11fdb501f3492b4b4865ae6885e7 - CHANGELOG.md
SHA-256: b52cccda6dc65f2d5f8de5f31d7c44a634d1250dcd61c5b1cd1c5ebd46b603f6 - pyproject.toml
SHA-256: b5ed5776e2bdde03a2ff6b62176ed687993b9a7bc39e4e74721f49c8763950ce
