Porque é que o SINQ importa para a implementação diária de LLM
Os grandes modelos linguísticos consomem muita memória. Essa é uma das razões pela qual a execução de modelos avançados frequentemente exige GPUs de data center premium e nós de cloud dispendiosos. O Laboratório de Sistemas de Computação da Huawei, em Zurique, apresentou o SINQ, um novo método de quantização que visa alterar essa equação. A abordagem, denominada Sinkhorn Normalized Quantization (Quantização Normalizada por Sinkhorn), visa reduzir o uso de memória com a menor perda possível de qualidade de saída, e é disponibilizada como código aberto sob a licença Apache 2.0. A equipa posiciona o SINQ como rápido, sem calibração e simples de integrar nos fluxos de trabalho existentes de modelos.
Índice
- Porque é que o SINQ importa para a implementação diária de LLM
- Como o SINQ difere das quantizações anteriores
- Poupança de memória, velocidade e qualidade nos testes
- Impacto no hardware e nos custos de cloud
- O que os programadores podem utilizar hoje
- Destaques técnicos explicados
- Escala de eixo duplo
- Normalização Sinkhorn-Knopp
- Design sem calibração
- Limites e considerações práticas
- Porque é que importa para além de uma única empresa
- Pontos-Chave
A quantização reduz o número de bits utilizados para representar os pesos do modelo. A passagem de floats de 16 bits ou 8 bits para inteiros de 4 bits pode cortar a memória em mais de metade. Essa poupança é difícil de alcançar sem um impacto na precisão, especialmente abaixo de 8 bits. O argumento central do SINQ é que mantém uma qualidade elevada em baixa precisão, mesmo a 4 bits e, em alguns casos, a 3 bits, ao mesmo tempo que é mais rápido de aplicar do que muitos métodos conhecidos.
Nos modelos e arquiteturas testados pelos autores, o SINQ reduz o uso de memória em cerca de 60 a 70 por cento. Essa escala de redução coloca muitos modelos ao alcance de uma única GPU para consumidores, por exemplo uma Nvidia GeForce RTX 4090 com 24 GB de memória, em vez de exigir GPUs empresariais como a A100 ou a H100. Para cargas de trabalho na cloud, instâncias mais baratas podem lidar com trabalhos de inferência de longa duração, o que pode traduzir-se em milhares de dólares de poupança ao longo do tempo. Para laboratórios, startups e entusiastas locais, a barreira para executar modelos competentes numa estação de trabalho encolhe.
Como o SINQ difere das quantizações anteriores
A maioria da quantização de LLM em circulação é apenas de pesos. Os pesos são os parâmetros aprendidos em cada camada e dominam o tamanho do modelo. A quantização de ativações também é possível, mas frequentemente adiciona complexidade e pode afetar o tempo de execução. Muitas abordagens amplamente utilizadas trocam tempo de computação numa fase de configuração, chamada calibração, para procurar fatores de escala que minimizem o erro introduzido pela quantização. Essa calibração utiliza uma amostra de dados e passagens adicionais sobre o modelo. Pode ajudar na qualidade, mas consome tempo, exige uma seleção cuidadosa de prompts e complica os pipelines.
O SINQ segue uma rota diferente. Introduz duas ideias ligadas que visam manter a distribuição dos pesos bem comportada antes de os arredondar para baixa precisão. Primeiro, a escala de eixo duplo aplica vetores de escala separados ao longo das linhas e das colunas de uma matriz de pesos. Isso oferece um controlo mais fino do que uma única escala por tensor ou por canal. Distribui o erro de forma a reduzir o impacto de valores atípicos e desequilíbrios locais.
Segundo, o SINQ utiliza um procedimento inspirado na normalização Sinkhorn-Knopp. O algoritmo alterna normalizações simples para equilibrar estatísticas de linhas e colunas. No SINQ, o método normaliza o desvio padrão das linhas e das colunas de forma a que nenhuma parte da matriz de pesos domine. Este passo de equilíbrio melhora a forma como os pesos reagem à quantização e reduz o erro global sem dados de calibração dispendiosos por camada.
Poupança de memória, velocidade e qualidade nos testes
Os autores apresentam poupanças de memória consistentes na ordem dos 60 a 70 por cento em comparação com pesos de precisão total, com uma precisão que acompanha de perto o modelo original em diversas arquiteturas. Na prática, isso pode permitir que um modelo que necessitava de mais de 60 GB de memória desça para cerca de 20 GB. Em GPUs comerciais, essa alteração pode determinar se um modelo cabe em memória ou se é transferido para a memória host lenta.
A velocidade de quantização importa tanto na investigação como na produção. O SINQ quantiza modelos cerca de duas vezes mais depressa do que o HQQ e mais de 30 vezes mais depressa do que o AWQ nos testes reportados. Para equipas que iteram sobre modelos, essa diferença de tempo pode transformar uma pré-processagem de várias horas num passo mais rápido que se integra num ciclo de desenvolvimento.
A qualidade é acompanhada com métricas como a perplexidade e a taxa de inversão (flip rate). A perplexidade mede a previsão de texto de um modelo linguístico. A taxa de inversão conta a frequência com que os tokens principais mudam após a quantização. Em diversos benchmarks, o SINQ reduz a perplexidade em comparação com outras linhas de base sem calibração e reduz a taxa de inversão, o que aponta para saídas mais estáveis. O método funciona também com esquemas de quantização não uniformes e pode ser combinado com calibração caso um projeto queira aumentar ainda mais a precisão.
Impacto no hardware e nos custos de cloud
O preço da inferência escala com a memória. Um modelo que cabe num único GPU evita configurações dispendiosas de paralelismo de modelos e sobrecarga de rede. As reduções do SINQ colocam muitos modelos de médio a grande porte ao alcance de uma única placa de consumidor de alta memória. Para operadores que anteriormente dependiam de nós A100 ou H100, a capacidade de servir em GPUs mais acessíveis pode reduzir as faturas mensais e libertar hardware de topo para treino.
Os utilizadores de cloud podem selecionar instâncias de GPU mais pequenas ou executar mais modelos concorrentes por nó. Para trabalhos de longa duração, como assistentes de chat ou serviços de geração aumentada por recuperação, a execução em GPUs de menor custo pode poupar milhares de dólares ao longo de semanas e meses. Clusters locais mais pequenos também se tornam viáveis para equipas que preferem manter os dados internamente.
Existe um benefício secundário na latência e na energia. Menos dispositivos, menos chamadas entre nós e menos tráfego de memória entre host e dispositivo podem reduzir o tempo de resposta e o consumo de energia. O efeito cumulativo é uma pilha de serviço mais enxuta com menos componentes em movimento.
O que os programadores podem utilizar hoje
O SINQ está disponível como código aberto sob a licença Apache 2.0. A versão inclui código de implementação, instruções para quantizar modelos a partir de hubs populares e utilitários para guardar e recarregar pesos quantizados. O pacote fornece ganchos de avaliação para que as equipas possam medir a perplexidade e a taxa de inversão antes da implementação. Expõe também parâmetros para que os profissionais ajustem a execução a diferentes hardwares e objetivos de precisão.
Os autores afirmam que planeiam disponibilizar modelos pré-quantizados e pretendem integrar com o ecossistema Hugging Face Transformers. Isso simplificaria a adoção, permitindo que os programadores carreguem um checkpoint quantizado com APIs familiares. Equipas que gerem as suas próprias pilhas de inferência podem começar por quantizar os pesos e depois ligar os resultados a kernels que suportam formatos de armazenamento de 4 bits ou 3 bits no seu runtime escolhido.
Destaques técnicos explicados
O SINQ é concebido como um passo plug and play num pipeline de preparação de modelos. O objetivo é moldar as matrizes de pesos de forma a que uma representação de baixa preservar a estrutura que importa para a inferência e, depois, mapear esses pesos moldados para formatos inteiros compactos.
Escala de eixo duplo
A escala tradicional por tensor ou por canal aplica um único fator numa única direção. A escala de eixo duplo aplica um vetor ao longo das linhas e um vetor ao longo das colunas de cada matriz de pesos. Esta separação ajuda quando algumas linhas contêm valores atípicos ou quando certas colunas apresentam maior variância. Ao normalizar ambas as direções, o método distribui o erro de quantização de forma mais uniforme pela matriz. O resultado são menos picos acentuados de erro e uma melhor preservação das magnitudes relativas dos pesos.
Normalização Sinkhorn-Knopp
A Sinkhorn-Knopp é um clássico procedimento iterativo que alterna normalizações simples para alcançar um estado equilibrado. No SINQ, o objetivo não é uma matriz duplamente estocástica, mas um equilíbrio dos desvios padrão entre linhas e colunas. O algoritmo redescala repetidamente linhas e colunas para alinhar os seus desvios padrão com valores-alvo. Uma vez que a matriz está equilibrada neste sentido, a quantização opera sobre uma distribuição de pesos com menos extremos, o que reduz o erro de arredondamento. O procedimento é rápido, acrescenta pouca sobrecarga em comparação com passagens de calibração mais longas e evita a necessidade de um conjunto de dados de calibração.
Design sem calibração
As fases de calibração exigem a escolha de um conjunto de prompts, a execução do modelo para recolher estatísticas e, depois, o cálculo das escalas. Isso acrescenta atrito e pode enviesar os resultados se o conjunto de calibração não corresponder ao uso em produção. O SINQ ignora esse passo trabalhando diretamente sobre as estatísticas dos pesos. Para muitas equipas, eliminar a calibração simplifica a automação e a repetibilidade. Se um projeto ainda quiser calibração, o modelamento do SINQ pode ser combinado com uma pesquisa de calibração adicional, oferecendo outro caminho para atingir a precisão máxima.
Limites e considerações práticas
A maioria dos ganhos reportados provém da quantização apenas de pesos. As ativações e o cache de chave-valor continuam a consumir memória durante a geração, especialmente para prompts longos e saídas longas. Alguns runtimes oferecem quantização de ativações e compressão do cache KV, mas estes passos trazem os seus próprios compromissos. As equipas devem medir a memória e a latência de ponta a ponta, e não apenas o tamanho do modelo em disco.
O suporte do runtime é importante. Para ver ganhos de velocidade no momento da inferência, os kernels têm de ler eficientemente pesos compactados de 4 bits ou 3 bits. Motores populares como o llama.cpp, TensorRT LLM, vLLM e outros evoluem depressa, contudo nem toda a combinação de precisão, kernel de atenção e arquitetura de GPU está igualmente madura. Antes de levar um serviço para produção, teste o throughput, a latência e a estabilidade com a configuração exata, incluindo o tamanho do lote e o comprimento do contexto.
A precisão muito baixa pode pressionar certas tarefas. A geração de código, a utilização de ferramentas e as saídas estruturadas podem ser mais sensíveis do que uma conversa informal. Métricas como a perplexidade são úteis, mas os testes de produção devem incluir a precisão das tarefas, o estilo de resposta e verificações de segurança. Se um caso de uso ultrapassar os limites, a precisão mista ou uma precisão seletivamente mais elevada em camadas sensíveis pode preservar a qualidade mantendo grande parte da poupança de memória.
Porque é que importa para além de uma única empresa
A quantização tornou-se uma base para a implementação prática de LLM. Um método de código aberto que é rápido, sem calibração e eficaz em baixa precisão beneficia o ecossistema como um todo. Menores pegadas de memória alargam o acesso a modelos competentes para a educação, projetos cívicos e pequenas empresas. A abordagem também reduz a pressão sobre GPUs avançadas escassas, libertando capacidade para treino e investigação.
A concorrência na ferramenta de inferência está a acelerar. Métodos como o SINQ podem combinarse com kernels de atenção eficientes, caches KV paginados e agendadores otimizados para fornecer mais tokens por segundo por dólar. O resultado não é apenas um serviço mais barato. É também um conjunto mais alargado de opções para equipas que se preocupam com privacidade, localidade e controlo sobre a sua pilha.
Pontos-Chave
- O SINQ da Huawei é um método de quantização de código aberto para pesos de LLM, disponibilizado sob Apache 2.0
- O SINQ reporta uma redução de memória de 60 a 70 por cento com qualidade elevada a 4 bits e, em alguns casos, a 3 bits
- O método é sem calibração e visa ser simples de integrar nos fluxos de trabalho existentes
- O SINQ usa escala de eixo duplo e normalização do estilo Sinkhorn-Knopp para equilibrar matrizes de pesos
- A velocidade de quantização é cerca de 2 vezes superior à do HQQ e mais de 30 vezes superior à do AWQ nos testes reportados
- As métricas de qualidade melhoram em relação aos métodos base sem calibração, com perplexidade e taxa de inversão mais baixas
- Modelos que antes necessitavam de mais de 60 GB podem funcionar com cerca de 20 GB, permitindo implementação num único GPU em hardware para consumidores como a RTX 4090
- As atualizações planeadas incluem a integração com o Hugging Face Transformers e lançamentos de modelos pré-quantizados






