Executando verificação de segurança...
5

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:

  1. Rotaciona aleatoriamente o vetor (Randomized Hadamard Transform)
  2. Quantiza cada coordenada com codebook ótimo de Lloyd-Max (sem treino)
  3. 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) e KVCacheCompressor (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

Carregando publicação patrocinada...
1
1

Parabéns pelo artigo, que leitura maravilhosa!
Eu tinha visto o vídeo do Montano e realmente não vi ngm falar disso até hoje...

Agradeço pelo compartilhamento!

Consigo usar no claude code, opencode, GSD-2?

2

Muito obrigado @samukarb por dedicar um tempo pra ler o artigo e enviar esse feedback!

Sobre usar no Claude Code, OpenCode ou GSD-2... estou supondo que queira usar com essas ferramentas para otimizar contexto e uso de memória, certo?

A turboquant-js é uma biblioteca npm pra usar em aplicações que esteja desenvolvendo, não um plugin pra essas ferramentas diretamente. Se estiver construindo algo que indexa embeddings (pra busca semântica ou RAG), a turboquant-js pode comprimir esses índices e reduzir o consumo de memória.

A demo mostra isso funcionando no browser.