Pitch: Publiquei minha primeira biblioteca open-source: implementação em TypeScript do TurboQuant do Google
Criei a turboquant-js, uma implementação em TypeScript puro do algoritmo TurboQuant do Google para quantização vetorial.
O que é: Uma biblioteca que comprime vector embeddings ~20x (de float64 para 2-4 bits por coordenada) sem precisar de dados de treinamento, com scores de similaridade matematicamente não-enviesados.
O problema: Embeddings são caros. Um embedding de 384 dimensões = 3 KB. 1M de docs = 3 GB. No browser, inviável. O turboquant-js traz pra ~150 MB.
Como funciona:
- Rotaciona aleatoriamente o vetor (Randomized Hadamard Transform)
- Quantiza cada coordenada com codebook ótimo de Lloyd-Max (sem treino)
- Aplica correção QJL de 1 bit para scores não-enviesados
Números:
- 384 dimensões, 3-bit: compressão de 20.8x, MSE de 7.4e-4
- Bundle de ~15 KB, zero dependências
- Duas APIs:
VectorIndex(busca) eKVCacheCompressor(cache KV de LLMs) - 196 testes incluindo z-tests estatísticos
Demo (semantic search inteiramente no browser): https://danilodevhub.github.io/turboquant-js-examples/
Paper: https://arxiv.org/abs/2504.19874
Artigo completo sobre a jornada: https://danilooliveira.com/articles/turboquant