19 pontos por GN⁺ 2026-03-26 | 4 comentários | Compartilhar no WhatsApp
  • Um conjunto de algoritmos de quantização que resolve de forma fundamental o problema de overhead de memória em vetores de alta dimensão, aplicável tanto à compressão do cache chave-valor de LLMs quanto à busca vetorial
  • Estrutura de compressão em 2 etapas: primeiro comprime os dados com alta qualidade usando PolarQuant e depois elimina o erro residual com apenas 1 bit por meio do algoritmo QJL
  • Quantiza o cache chave-valor em até 3 bits sem treinamento nem fine-tuning e sem perda de precisão do modelo, alcançando até 8x de ganho de desempenho em GPUs H100
  • Também registra taxas de recall ideais em busca vetorial sem grandes codebooks nem tuning por dataset, superando métodos SOTA existentes
  • Uma contribuição algorítmica fundamental com eficiência comprovável próxima ao limite teórico inferior, com potencial papel central em modelos como Gemini e em infraestrutura de busca semântica em larga escala

Contexto de vetores e quantização

  • Vetores são a forma fundamental pela qual modelos de IA entendem e processam informação, e vetores de alta dimensão representam informações complexas como características de imagem, significado de palavras e atributos de datasets
  • Vetores de alta dimensão consomem muita memória, o que cria gargalos no cache chave-valor (uma folha de referência digital rápida que armazena informações frequentes com rótulos simples para recuperação imediata)
  • Quantização vetorial é uma técnica clássica de compressão de dados para reduzir o tamanho de vetores de alta dimensão, contribuindo para acelerar a busca vetorial e aliviar gargalos no cache chave-valor
  • A quantização vetorial tradicional tem um overhead de memória intrínseco porque precisa calcular e armazenar constantes de quantização com precisão total para cada pequeno bloco de dados, gerando um custo adicional de 1 a 2 bits por número e anulando parcialmente o objetivo da quantização

Como o TurboQuant funciona

  • TurboQuant é um método de compressão que alcança grande redução do tamanho do modelo sem perda de precisão, com suporte tanto para compressão de cache chave-valor quanto para busca vetorial
  • É composto por duas etapas centrais:

Etapa 1: compressão de alta qualidade (método PolarQuant)

  • Faz uma rotação aleatória nos vetores de dados para simplificar a estrutura geométrica dos dados e depois aplica individualmente quantizadores padrão de alta qualidade a cada parte do vetor
  • Nessa etapa, a maior parte dos bits é usada para capturar os principais conceitos e magnitudes do vetor original

Etapa 2: eliminação do erro oculto

  • Aplica o algoritmo QJL ao pequeno erro remanescente da etapa 1 usando apenas 1 bit de capacidade residual de compressão
  • O QJL funciona como um verificador matemático de erros e remove viés, produzindo pontuações de atenção mais precisas

QJL: técnica de 1 bit com overhead zero

  • Utiliza a transformação de Johnson-Lindenstrauss para reduzir dados de alta dimensão preservando as distâncias e relações essenciais entre pontos de dados
  • Reduz cada número do vetor resultante a um único bit de sinal (+1 ou -1), resultando em overhead de memória zero
  • Para manter a precisão, usa um estimador especial que equilibra estrategicamente consultas em alta precisão com dados simplificados em baixa precisão
  • Com isso, calcula com precisão as pontuações de atenção que determinam quais partes da entrada o modelo deve considerar importantes ou pode ignorar

PolarQuant: um novo "ângulo" para compressão

  • Uma abordagem que resolve o problema de overhead de memória de uma forma completamente diferente
  • Em vez de coordenadas padrão (X, Y, Z), converte o vetor em coordenadas polares — semelhante a trocar "3 quarteirões a leste e 4 ao norte" por "5 quarteirões na direção de 37 graus"
  • O resultado da conversão é composto por dois tipos de informação: o raio, que representa a intensidade dos dados centrais, e o ângulo, que representa a direção e o significado dos dados
  • Como o padrão dos ângulos é conhecido e altamente concentrado, ele mapeia os dados em uma grade fixa "circular" com fronteiras já conhecidas, em vez de uma grade "retangular" com fronteiras sempre variáveis, eliminando a etapa cara de normalização de dados
  • Em um vetor de dimensão d, agrupa pares de coordenadas e os mapeia para um sistema polar, reúne os raios em pares e repete transformações polares recursivas até destilar o resultado em um único raio e um conjunto de ângulos descritivos

Experimentos e resultados

Desempenho em benchmarks de contexto longo

  • Avaliado com LLMs open source (Gemma, Mistral) em benchmarks padrão de contexto longo como LongBench, Needle In A Haystack, ZeroSCROLLS, RULER e L-Eval
  • TurboQuant atingiu pontuação ideal tanto em dot product distortion quanto em recall, ao mesmo tempo em que minimizou a pegada de memória do chave-valor
  • No modelo Llama-3.1-8B-Instruct, mostrou desempenho robusto em várias tarefas, como perguntas e respostas, geração de código e sumarização, frente ao baseline KIVI

Tarefa Needle-in-Haystack

  • Em testes de encontrar informações específicas em grandes volumes de texto, o TurboQuant alcançou resultados downstream perfeitos em todos os benchmarks
  • Reduziu o tamanho da memória chave-valor em pelo menos 6x
  • O PolarQuant também ficou em nível quase sem perdas nessa tarefa

Desempenho em runtime

  • Quantiza o cache chave-valor em 3 bits sem treinamento nem fine-tuning, sem comprometer a precisão do modelo
  • Alcança runtime mais rápido do que o LLM original, com implementação extremamente eficiente e overhead de runtime desprezível
  • O TurboQuant de 4 bits entregou até 8x de ganho de desempenho no cálculo de logits de atenção em comparação com chaves não quantizadas em 32 bits, em GPU H100, medido contra um baseline otimizado em JAX

Desempenho em busca vetorial

  • Avaliado em busca vetorial de alta dimensão em comparação com métodos SOTA como PQ e RabbiQ
  • Usa a taxa de recall 1@k, que mede com que frequência o algoritmo captura, entre os top-k aproximados, o verdadeiro melhor resultado de produto interno
  • Em comparação com baselines que usam grandes codebooks ineficientes e tuning por dataset, o TurboQuant registrou taxas de recall consistentemente superiores
  • No dataset GloVe (d=200), alcançou a melhor taxa 1@k recall frente a vários baselines modernos de quantização
  • Em modo data-oblivious, fornece taxa de distorção quase ótima, preservando a precisão de modelos muito mais pesados com a eficiência de um sistema de 3 bits

Perspectivas futuras

  • TurboQuant, QJL e PolarQuant não são apenas soluções práticas de engenharia, mas contribuições algorítmicas fundamentais sustentadas por fortes provas teóricas
  • Têm eficiência comprovável e operam próximo ao limite teórico inferior, o que os torna robustos e confiáveis para sistemas críticos em larga escala
  • Além de resolver o gargalo do cache chave-valor em modelos como Gemini, o impacto da quantização vetorial online eficiente pode se estender muito além
  • À medida que a busca moderna evolui de palavras-chave para entendimento de intenção e significado, a busca vetorial se torna essencial para encontrar os itens semanticamente mais similares em bancos com bilhões de vetores
  • O TurboQuant permite construir e consultar índices vetoriais em larga escala com memória mínima, tempo de pré-processamento quase zero e precisão SOTA, tornando a busca semântica em escala Google mais rápida e eficiente

4 comentários

 
crawler 2026-03-26

"Rotação é um poder infinito. Acredite nisso."

 
s0400615 2026-03-27

Presto minha homenagem.

 
ryj0902 2026-03-27

Fiz login por causa deste comentário.

 
GN⁺ 2026-03-26
Comentários do Hacker News
  • A pesquisa sobre compressão de cache KV é realmente um avanço interessante
    Ainda assim, é uma pena que faltem citações ao mecanismo matemático central nas pesquisas relacionadas
    A técnica de aplicar rotação geométrica para lidar com geometria de alta dimensão e então realizar quantização extrema foi proposta pela primeira vez no artigo da nossa equipe na NeurIPS 2021, “DRIVE”
    Com essa abordagem baseada em rotação e um mecanismo de correção de viés, alcançamos estimação ótima da média da variância
    Depois, também apresentamos esse conteúdo em um seminário a convite do Google, e considerando a semelhança teórica entre TurboQuant e PolarQuant, espero que versões futuras passem a citar os trabalhos anteriores

    • Quando se fala em rotação, isso no fim quer dizer diagonalização (diagonalization)?
      Ou seja, quero perguntar se é uma forma de comprimir mais armazenando uma matriz diagonal e uma nova base
    • Hoje foi a primeira vez que ouvi falar de Multi-Head Latent Attention (MHLA), e ouvi dizer que isso também é uma forma de comprimir o cache KV
      Gostaria que explicassem qual é a relação entre este estudo e MHLA
    • Na verdade, isso é uma técnica clássica antiga do tipo Johnson–Lindenstrauss
      Ideias assim costumam ser redescobertas a cada poucos anos; por exemplo, já havia uma abordagem semelhante neste artigo de 2017
    • Se realmente faltaram citações, é lamentável
      Mas também é possível que os pesquisadores tenham chegado independentemente a uma ideia parecida quando o trabalho já estava bastante avançado
      Boas ideias tendem a ser alcançadas naturalmente por quem entende profundamente o problema
    • Schmidhuber’d”, numa forma satírica de se referir à omissão de citação de trabalhos anteriores
  • Não entendi a explicação de que “o TurboQuant gira os dados aleatoriamente para simplificar a geometria”
    Não há garantia de que uma rotação sempre produza uma forma mais simples, certo?
    E a parte que diz “reduz dados de alta dimensão com uma transformação Johnson–Lindenstrauss e representa cada vetor com bits de sinal” também não convence, porque é difícil aceitar que um único valor booleano preserve informação relacional

    • Na prática, a distribuição dos valores de ativação em modelos de deep learning não é isotrópica (isotropic)
      Surgem ativações outlier em algumas dimensões, e pelas características do otimizador Adam esse fenômeno se intensifica
      Como artigos relacionados, vale consultar SmoothQuant e Privileged Basis
    • A ideia é que o modelo deva ser sensível não à direção dos dados, mas apenas à distância entre vetores
      Isso reduz o aprendizado de regras desnecessárias e estabiliza a otimização
      Ou seja, evita que o modelo aprenda regras triviais como “se um determinado dígito em certa posição de uma dimensão específica for 5, então é um gato”
    • O objetivo da quantização é colocar os dados em ‘bins’ para comprimi-los
      Ao multiplicar pela matriz de rotação, os dados passam a se distribuir de forma mais uniforme, permitindo uma quantização mais eficiente
      Depois, o algoritmo Lloyd–Max otimiza os limites e os valores de reconstrução, e o viés (bias) restante é corrigido com 1 bit
      Assim, é possível manter alta precisão com poucos bits
    • A rotação apenas move os dados para um sistema de coordenadas de referência diferente para aumentar a eficiência da compressão
      Por exemplo, se você converter valores de ponto flutuante para outra unidade (bel → decibel), eles podem ser representados como valores mais parecidos entre si, o que facilita a compressão
    • Não se trata de rotação aleatória, mas de alinhamento de outliers
      Ou seja, é o processo de trazer dados distantes de volta para perto do centro
      Além disso, como cada dimensão é codificada individualmente, o vetor inteiro não é reduzido a um único booleano
  • Este post de blog é de baixa qualidade
    Os eixos deste gráfico estão rotulados incorretamente, e esta visualização em vídeo também não transmite em nada o conceito de Polar Quantization
    Outro gráfico começa o eixo em 48, exagerando a diferença real
    No geral, a confiabilidade do material visual e a qualidade da comunicação deixam a desejar

  • Alguém já está implementando isso no llama.cpp
    Veja este commit relacionado

    • Em vez do método do artigo, estão tentando uma abordagem mais eficiente, substituindo a rotação O(d²) por Subsampled Randomized Hadamard Transform, melhorando para O(d log d)
      Espera-se que o teorema de Johnson–Lindenstrauss continue valendo, de modo que a quantização independente de cada coordenada permaneça teoricamente válida
    • Surpreende como a implementação é mais simples do que eu esperava
      Não tenho muito conhecimento de domínio, mas a estrutura parece clara
    • A velocidade de desenvolvimento do llama.cpp é muito alta
      Há uma boa chance de isso ser incorporado à branch principal em 4 a 6 semanas
  • Há uma animação que explica o TurboQuant de forma intuitiva

  • Aqui vai um resumo organizado em nível de graduação
    O ponto central é quantizar o cache KV minimizando a perda de informação
    Como a maioria dos vetores se concentra perto do equador de uma esfera de alta dimensão, a rotação uniformiza a distribuição e aumenta a preservação de entropia
    O PolarQuant tentou isso com transformação em coordenadas polares, mas o TurboQuant simplifica a ideia e adiciona a correção de viés do QJL
    No fim, ele alcança compressão altamente eficiente com PolarQuant + QJL + correções práticas
    O post de blog tem muitos erros e é confuso

    • Na prática, é feita uma rotação inversa (un-rotation) para os vetores de consulta futuros
      O codebook de coordenadas hiperpolares do PolarQuant ainda permanece em parte no TurboQuant
  • Este texto está entre os piores já vistos na explicação de componentes de IA
    Quase não há contexto técnico

    • De fato, parece que foi escrito por IA, ou por alguém com pouco entendimento técnico
      Menciona o teorema de Johnson–Lindenstrauss, mas não explica concretamente a ligação
    • Algumas frases estão simplificadas demais
      Por exemplo, explicar “3 quadras a leste, 4 quadras ao norte” como “ande 5 quadras num ângulo de 37 graus” passa uma impressão de analogia de ensino fundamental
    • A frase “TurboQuant, QJL e PolarQuant são inovações algorítmicas teoricamente eficientes e próximas do limite inferior” soa como texto promocional exagerado
  • Uma implementação independente em PyTorch já foi publicada
    turboquant-pytorch

    • Ela oferece uma explicação muito mais clara do que o blog do Google
  • O blog foi publicado recentemente, mas o artigo foi enviado ao arXiv há quase um ano
    Fico curioso se isso já foi aplicado em modelos como o Gemini e, se sim, se também poderá reduzir o custo de RAM em uso pessoal

  • Impressiona a velocidade com que a pesquisa em compressão está virando aplicação prática
    Assim como, em formatos de imagem, AVIF e JPEG XL derivaram de pesquisas em codecs de vídeo, as técnicas de quantização para IA também têm grande chance de chegar em breve a ambientes reais de inferência

    • O JPEG XL se baseia em pesquisa voltada especificamente para imagem, mas, assim como o AVIF, é um caso de adaptação de tecnologia de vídeo para imagens
      Alguns conceitos, como o espaço de cor XYB, são compartilhados, e imagino que nos LLMs também será necessário um tipo semelhante de engenharia sob medida