Skip to main content

turboquant_llm

Implementação de referência em NumPy do fluxo estilo TurboQuant: rotação ortogonal → quantização escalar → estágio QJL (sinais 1-bit da projeção JL do resíduo). Serve para experimentos, testes e desenho de API; não substitui kernels CUDA/Triton em produção.

No PyPI o nome do pacote é turboquant-llm (hífen); em código use import turboquant_llm. Código-fonte: github.com/PestanaRobson/turboquant_llm.

Os nomes turboquant e turboquant-kv já existem no PyPI como outros projetos.

Por que TurboQuant importa (o ganho real)

Em LLMs com contexto longo, o cache KV (chaves e valores guardados por token para não recalcular atenção) domina memória e largura de banda entre HBM e compute — é um gargalo clássico de servir modelo grande com muitos tokens.

O método TurboQuant (paper, blog Google Research) foi desenhado para comprimir vetores de alta dimensão usados nesse caminho (em especial K/V e produtos internos em atenção) com quantização online e sem calibração em dataset (“data-oblivious”): não exige coletar estatísticas do seu domínio para treinar codebooks.

Resultados reportados pelo Google (ambiente e modelo nos artigos; números indicativos, não garantidos para o seu hardware ou checkpoint):

Eixo O que se ganha (ordem de grandeza)
Memória do KV Redução da ordem de ~6× no footprint do cache KV em relação a representações densas não comprimidas nos experimentos citados.
Velocidade da atenção Até ~8× de aceleração no cálculo de logits de atenção vs. chaves em precisão total (ex.: FP32), em GPU H100 e implementação otimizada (baseline JAX no blog).
Qualidade No paper: ~3,5 bits por canal com neutralidade de qualidade forte; ~2,5 com degradação marginal. No blog: quantização do KV na ordem de ~3 bits mantendo desempenho em benchmarks longos (LongBench, needle-in-haystack, etc.).
Overhead de quantização Evita o custo de armazenar constantes de quantização completas por bloco como em muitos esquemas clássicos — parte central do argumento de eficiência do TurboQuant.

O que esta biblioteca faz: reproduz a lógica (rotação + quantização + estágio tipo QJL) para pesquisa e integração futura. Não reproduz sozinha os números de H100 nem a memória real do servidor — isso exige kernels GPU e encaixe no motor de inferência (vLLM, TensorRT-LLM, etc.). Os ganhos acima são o alvo do algoritmo publicado; o caminho até lá é integração nativa no stack de KV.

Instalação

pip install turboquant-llm

Opcional (integrações futuras com modelos):

pip install turboquant-llm[torch]

Uso rápido

import numpy as np
from turboquant_llm import TurboQuantCompressor, TurboQuantConfig

dim = 128
x = np.random.default_rng(0).standard_normal((10, dim))

comp = TurboQuantCompressor(
    dim,
    TurboQuantConfig(bits_main=4, qjl_projection_dim=64, seed=0),
)
batch = comp.compress(x)
x_hat = comp.reconstruct_first_stage(batch)  # ignora o estágio QJL no resíduo

Publicar no PyPI

Repositório: PestanaRobson/turboquant_llm. Envie o conteúdo deste diretório para o branch principal (git push).

  1. Com API token do PyPI:
python -m pip install build twine
python -m build
python -m twine upload dist/*

Teste antes no TestPyPI.

Gemma 4 e Qwen 3.x: melhor caminho com este tipo de quantização

TurboQuant (no paper e no blog do Google Research) ataca sobretudo memória e custo do cache KV e produtos internos em atenção — não é só “exportar pesos em INT4”.

  1. Hoje (ecossistema Hugging Face / vLLM)
    Integração “de verdade” costuma exigir suporte no motor de inferência (vLLM, SGLang, TensorRT-LLM, etc.) ou um módulo de atenção customizado que, a cada passo, comprima/descomprima K/V por cabeça com a mesma rotação e parâmetros fixos por modelo/camada.

  2. Gemma (ex. Gemma 3 / família Gemma no Hub) e Qwen3

    • Confirme hidden_size, GQA (num_key_value_heads), head_dim no config.json do checkpoint.
    • A lib aqui opera em vetores de tamanho dim (= head_dim por cabeça, ou blocos que vocês definirem).
    • Caminho pragmático: usar este pacote para benchmark offline (distorsão, memória simulada); em seguida portar o núcleo para PyTorch custom op ou Triton no caminho de escrita/leitura do KV.
  3. Ordem sugerida

    • Prototipar com esta API em uma camada ou tensor KV sintético.
    • Medir qualidade (long context / needle) com bits_main ~3–4 como no material de referência.
    • Só então acoplar ao servidor (vLLM plugin / patch) para latência real.

Licença

Apache-2.0

Referências

Metadata

Release files for turboquant-llm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for turboquant-llm 0.1.0
File Size Uploaded Provenance Actions
turboquant_llm-0.1.0.tar.gz 6.4 kB Without provenance Details for turboquant_llm-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for turboquant-llm 0.1.0
File Interpreter ABI Platform Actions
turboquant_llm-0.1.0-py3-none-any.whl Python 3 none any Details for turboquant_llm-0.1.0-py3-none-any.whl

Total release size: 14.4 kB

Release files / turboquant_llm-0.1.0.tar.gz

Download URL turboquant_llm-0.1.0.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
457a31d147a359108ee1f0294fc93c1161fdf8dfbd0ce560937711f72635d73d
BLAKE2b-256 checksum
How to use checksums
826fecbb3cc07de109b08e5d53b587a1fed7af39af2a6ff9b5fc83cd87878de3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / turboquant_llm-0.1.0-py3-none-any.whl

Download URL turboquant_llm-0.1.0-py3-none-any.whl
Size 8.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
353bd14480bff7ee4849354c03bc7e4f6dca81e54c8349165bba9519c41b23f4
BLAKE2b-256 checksum
How to use checksums
66f93919120f2d744211e5f3816cbc118fcd06884491fa35396a6fb8267d8ea2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for turboquant-llm 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page