Ruflo
Coste de embeddings Ruflo: 384 dimensiones, 400 bytes y 543 caracteres
Sigue formato y aritmética de cuantización; distingue reducción de representación, relevancia, arranque y coste por tarea aceptada.
Qué aprenderás
- Cuenta la representación almacenada
- Examina lo que conserva la cuantización
- Mide el coste completo con denominador
Antes de empezar
- Conceptos básicos de Node.js, Git y terminal
- Repositorio propio y límites de tarea y permisos definidos
Explica el código del capítulo y reproduce su prueba acotada sin confundir un ayudante con todo el runtime.
Conclusiones clave
- 384 dimensiones ocupan 400 bytes brutos y 543 caracteres inline en este formato.
- Clasificar el prefijo no valida la decodificación.
- Mide calidad y coste de tareas aparte de la aritmética.
Cuenta la representación almacenada
El codificador utiliza una cabecera de 16 bytes y un byte cuantizado sin signo por dimensión. Para 384 dimensiones son 400 bytes brutos. Base64 produce 536 caracteres; inline: añade siete, totalizando 543. La ejecución aislada confirmó esos tamaños en lugar de repetir una reducción genérica de cuatro veces.
encodedByteSize resulta fácil de malinterpretar: aunque un comentario habla de coste bruto, devuelve longitud Base64 más prefijo. Para 384 devuelve 543, no 400. Ningún número incluye filas de base de datos, índices, representaciones duplicadas o memoria del modelo de embeddings.
Examina lo que conserva la cuantización
El codificador emplea mínimo y máximo globales del vector y mapea valores a 0–255. Un vector constante sigue una rama especial y se recupera como el mínimo almacenado. Los límites de cabecera son float32 y los valores generales pierden precisión. Conservar extremos de un ejemplo no prueba estabilidad de vecinos próximos en un corpus real.
El decodificador comprueba prefijo, identificador, dimensiones entre uno y 8192 y longitud suficiente. El clasificador de nivel solo mira prefijos: inline:bad pertenece al nivel inline aunque al decodificar resulte null. Clasificación de formato, validez y calidad de recuperación son comprobaciones distintas.
Mide el coste completo con denominador
La ruta rápida de versión evita importaciones pesadas, pero los comandos reales pueden cargar dependencias nativas o modelos. Los hooks pueden ejecutar llamadas síncronas con timeout y las alternativas de resolución pueden acceder a red. Se inspeccionaron esas rutas, sin medir una carga desplegada ni afirmar una mejora de arranque o velocidad.
El ejemplo es contabilidad reproducible de representación, no un benchmark. Para adoptar, mide latencia, relevancia, memoria, cargos externos y corrección humana por tarea aceptada con configuración fija. Publica corpus, versiones y fallos. Más agentes o un campo comprimido no garantizan menor coste total.
Pasos de implementación
- 1
Cuenta cabecera, datos, Base64 y prefijo por separado.
- 2
Prueba constantes, formatos inválidos y dimensiones excesivas.
- 3
Compara rankings en un corpus fijo.
- 4
Publica tiempos y costes después de ejecuciones controladas.
Ejemplo para copiar
const dimensions = 384;
const rawBytes = 16 + dimensions;
const inlineCharacters = 7 + 4 * Math.ceil(rawBytes / 3);
console.log({ float32PayloadBytes: 4 * dimensions, rawBytes, inlineCharacters });Preguntas frecuentes
¿400 bytes representan toda la fila almacenada?
No. Son el vector codificado bruto, antes de Base64, prefijo y sobrecarga de base de datos.
¿Se midieron velocidad y calidad de recuperación?
No. Se verificaron codificación y aritmética, no rankings reales ni latencia de tareas.
Fuentes
- ruflo/bin/ruflo.jsFuente verificada 2026-09-08
- plugins/ruflo-core/scripts/ruflo-hook.cjsFuente verificada 2026-09-08
- v3/@claude-flow/cli/src/memory/embedding-quantization.tsFuente verificada 2026-09-08