Com o rápido avanço da inteligência artificial (IA), os modelos de linguagem de grande escala (LLMs) emergiram como um pilar do processamento de linguagem natural (PLN). Esses modelos demonstram capacidades notáveis na geração e compreensão de linguagem, tornando-se essenciais para aplicações como tradução automática, sistemas conversacionais e geração de texto. No entanto, à medida que o tamanho desses modelos continua a crescer, sua eficiência de inferência e consumo de recursos permanecem gargalos significativos para implantação em larga escala.
Nos últimos anos, pesquisadores propuseram várias técnicas de otimização para aumentar a eficiência da inferência de LLMs. Em nosso trabalho anterior, alcançamos uma aceleração de 1,5x na inferência utilizando compressão dinâmica de cache KV baseada no framework vLLM, estabelecendo uma base sólida para otimizar o desempenho de LLMs.
Este artigo aprofunda duas estratégias de otimização adicionais: a decodificação especulativa e a quantização de baixa precisão. Essas abordagens visam maximizar as capacidades computacionais do hardware convencional, reduzir custos de inferência e melhorar a velocidade. Ao empregar essas técnicas, buscamos fornecer novas perspectivas e soluções práticas para melhorar a eficiência da inferência de LLMs, enfrentando os desafios da implantação escalável de IA.
Decodificação Especulativa
Princípios Técnicos
A decodificação especulativa é uma técnica que acelera a inferência ao introduzir um modelo menor para gerar múltiplos tokens candidatos, que são então validados pelo modelo maior, permitindo decodificação paralela para melhorar a velocidade. A viabilidade dessa abordagem se baseia em dois fatores principais:
Gargalo de Memória
Em hardware GPU moderno, a largura de banda de acesso à memória é frequentemente mais lenta do que a velocidade computacional necessária para a inferência, tornando o processo significativamente limitado por memória. O tráfego de memória GPU durante a etapa de inferência de modelos de linguagem de grande escala é determinado principalmente pelo tamanho do modelo, enquanto as GPUs frequentemente têm capacidade computacional excedente. Ao aproveitar esse excedente através de inferência paralela com um modelo pequeno, a eficiência geral pode ser melhorada.
Precisão de Predição do Modelo Pequeno
Os modelos atuais de geração de linguagem mainstream são tipicamente modelos autorregressivos baseados na arquitetura Transformer. Modelos pequenos apresentam alta precisão na predição de padrões comuns de linguagem (por exemplo, colocações idiomáticas ou expressões padrão). Quando o modelo pequeno prediz com sucesso o próximo token, o modelo grande pode reutilizar diretamente esse resultado, reduzindo significativamente o custo computacional.
Método de Implementação
O método de decodificação especulativa consiste principalmente nas seguintes etapas:
-
Geração de Candidatos em Múltiplas Rodadas
- Use um modelo pequeno especialmente treinado para inferência rápida, gerando múltiplos tokens candidatos de alta qualidade para cada posição.
- Adote inovadoramente um mecanismo de ajuste dinâmico de limiar de probabilidade para controlar adaptativamente o número de candidatos.
- Introduza um mecanismo de cache sensível ao contexto para melhorar a precisão de predição do modelo pequeno durante a geração contínua de texto.
-
Estratégia de Validação Eficiente
- Projete um mecanismo de validação em lote para agrupar múltiplos tokens candidatos e enviá-los ao modelo grande para um único processo de pontuação.
- Implemente uma estratégia de término antecipado para retornar resultados rapidamente quando uma correspondência de alta confiança for encontrada.
- Permita o processamento assíncrono dos resultados de validação para reduzir o tempo ocioso da GPU.
-
Sistema de Escalonamento Inteligente
- Equilibre dinamicamente a alocação de recursos computacionais entre a predição do modelo pequeno e a validação do modelo grande.
- Use predição adaptativa baseada em estatísticas históricas para otimizar as estratégias de geração de tokens candidatos.
- Implemente particionamento e escalonamento de tarefas em granularidade fina para maximizar a utilização do hardware.

Fig.1. Decodificação especulativa com comprimento dinâmico de rascunho
Resultados Experimentais
Com base no framework de inferência vLLM líder do setor, realizamos personalização e desenvolvimento aprofundados, alcançando melhorias significativas de desempenho. Conduzimos experimentos usando o modelo LLaMA-3.1-70B-Instruct em uma GPU H20 e testamos cenários com diferentes comprimentos de contexto. Além disso, comparamos o desempenho com o vLLM sem decodificação especulativa, focando na taxa de transferência sob diferentes tamanhos de lote; os resultados experimentais são mostrados na Figura 2.
-
Melhorias de Desempenho
- Alcançamos uma aceleração geral de inferência de 1,4x, mantendo a qualidade da saída.
- Totalmente compatível com a funcionalidade existente do vLLM, podendo ser integrado perfeitamente aos sistemas atuais.
- Suporta modelos de linguagem de várias escalas, com melhorias particularmente significativas para modelos de grande escala.

Fig.2. Diagrama da taxa de aceleração da decodificação especulativa.
-
Vantagens Técnicas
- Estratégia de amostragem dinâmica baseada em probabilidade para elaboração e validação eficiente de tokens.
- Mecanismo de escalonamento inteligente estável que garante efeitos de aceleração consistentes.
- Custo-benefício com baixa sobrecarga de recursos.
Quantização de Baixa Precisão
Princípios Técnicos
- Visão Geral da Quantização
A quantização é uma técnica amplamente adotada que reduz os custos computacionais e de memória de modelos de linguagem de grande escala (LLMs) convertendo os pesos e ativações do modelo de representações de alta largura de bits para representações de menor largura de bits. Especificamente, muitos métodos envolvem a quantização de tensores FP16 em tensores inteiros de baixo bit, como mostrado abaixo:

- Quantização Pós-Treinamento (PTQ)
A PTQ quantiza modelos pré-treinados sem exigir retreinamento, evitando assim altos custos de retreinamento. No entanto, aplicar métodos tradicionais de quantização a LLMs introduz desafios únicos:
-
- LLMs exibem uma frequência mais alta de outliers nos pesos e ativações, bem como faixas de distribuição mais amplas, em comparação com modelos menores.
- Portanto, a quantização eficaz de LLMs exige técnicas de otimização especializadas para minimizar a perda de precisão enquanto mantém a eficiência.
Método de Implementação
- Otimização de Outliers
A presença de outliers nos pesos e ativações de modelos de linguagem de grande escala apresenta um desafio significativo durante o processo de quantização. Métodos tradicionais geralmente lidam com outliers por meio de recorte ou escalonamento simples, que podem funcionar bem para modelos menores, mas frequentemente afetam significativamente o desempenho dos LLMs.
Nossa abordagem melhora o processo de tratamento de outliers por meio de análise detalhada e estratégias de otimização. Ela não apenas refina o cálculo dos outliers, mas também otimiza as estruturas de dados associadas, garantindo que o modelo retenha poder computacional eficiente enquanto minimiza a perda de precisão. Por exemplo, adotamos uma estratégia de distribuição de faixa dinâmica mais flexível para processar outliers hierarquicamente, capturando as características do modelo com mais precisão.
- Operadores Melhorados e Fusão de Camadas
Projetamos uma série de operadores melhorados que podem processar mais eficientemente estruturas de dados quantizadas. Por exemplo, através de técnicas de fusão de camadas, combinamos múltiplos operadores consecutivos em um único operador durante a computação direta para reduzir a sobrecarga computacional e a transferência intermediária de dados.
Além disso, para operações comuns, como multiplicação de matrizes combinada com funções de ativação, projetamos operadores eficientes de baixo bit para acelerar a inferência do modelo. Essa melhoria não apenas reduz significativamente as demandas de largura de banda no nível de hardware, mas também aumenta ainda mais a eficiência computacional geral.
- Esquema Único de Quantização FP8
Enquanto os métodos de quantização mainstream no setor geralmente usam conversão de FP16 para INT8, essa abordagem pode não ser adequada para cenários que exigem menor precisão. Nosso esquema de quantização FP8 introduz um fator de escala adaptativo para reduzir ainda mais a largura de bits, mantendo a expressividade numérica do modelo. Na implementação, ajustamos a proporção do expoente e da mantissa no FP8 para melhor se adaptar às características de distribuição dos LLMs, garantindo que o modelo mantenha a precisão mesmo com larguras de bits muito baixas.
- Quantização de KVCache
Em cenários que suportam inferência em larga escala, a eficiência de armazenamento e acesso do KVCache é crucial. Métodos tradicionais frequentemente aplicam técnicas de quantização padrão sem otimizar para as características específicas das estruturas de armazenamento do KVCache.
Propomos uma técnica de quantização especializada para KVCache que minimiza os requisitos de recursos computacionais aplicando estratégias de quantização específicas a consultas e pares chave-valor. Especificamente, otimizamos as atualizações dinâmicas e a densidade de armazenamento do KVCache, combinando métodos de quantização por partes e armazenamento de matriz esparsa para melhorar significativamente a utilização do cache durante o processo de inferência.
- Otimização do Processo de Inferência
Os pesos do modelo em FP16 são quantizados para o formato FP8 para inferência. Tokens de entrada passam pela camada de embedding e pelo módulo Transformer, incluindo mecanismos de atenção e redes feed-forward.
Usando FP8 TensorCore e KVCache otimizado, o sistema armazena e atualiza eficientemente os pares chave-valor.
Transformações lineares e a camada Softmax geram a distribuição de probabilidade de saída, produzindo o token final.
Essa abordagem aproveita a eficiência computacional do FP8 TensorCore para fornecer inferência mais rápida com custos computacionais mais baixos. Na Figura 3, os pesos do modelo, originalmente no formato FP16, são quantizados para FP8 para inferência, reduzindo significativamente a sobrecarga de acesso a dados e melhorando a velocidade. Durante o processo de inferência do LLM, operações como projeção QKV, flash attention e camadas feed-forward realizam multiplicação de matrizes no formato FP8. Esses cálculos são acelerados usando Tensor Cores, levando a um aumento substancial na velocidade de inferência. Para mitigar a perda de precisão, uma pequena quantidade de dados adicionais é usada para PTQ, garantindo que a precisão da inferência do modelo permaneça intacta. Em cenários de texto longo, a sobrecarga associada ao acesso de dados KV pode diminuir a velocidade de inferência. Para lidar com isso, os dados KV também são quantizados para FP8, otimizando ainda mais o desempenho de inferência do modelo.

Fig.3. Visão geral do pipeline de quantização de precisão FP8.
Resultados Experimentais
- A Figura 4 mostra a taxa de aceleração após aplicar quantização de baixa precisão ao Llama3-8B-BF16, com diferentes comprimentos de entrada-saída (10000-1000, 5000-500, 2000-200) e tamanhos de lote (Batch Size). Quanto maior o comprimento de entrada-saída, mais significativo é o efeito de aceleração, especialmente durante inferência em lote grande. Em uma única GPU 4090 executando Llama3-8B-FP8-KV8, com ttft (tempo para o primeiro token) limitado a menos de 2 segundos, o tamanho do lote é em torno de 4, e a taxa de aceleração é de 1,4x.

Fig.4. Taxa de aceleração pela quantização FP8.
- Nosso método reduz significativamente o impacto de outliers ao lidar com comprimentos de entrada-saída maiores e aumenta a eficiência computacional e de transferência por meio de otimizações como fusão de camadas. Métodos tradicionais da indústria de PTQ frequentemente enfrentam dificuldades ao lidar com grandes comprimentos de entrada-saída em modelos de grande escala, mas nossa solução é projetada especificamente para resolver esse problema, garantindo desempenho estável do modelo.
- Experimentos mostram que, em uma GPU 4090, nosso método demonstra aceleração superior ao processar entrada-saída de grande comprimento e tamanhos de lote médios, mantendo uma latência de inferência (ttft) abaixo de 2 segundos, atendendo aos requisitos de inferência em tempo real.
Avaliação de Qualidade
Para testar diferentes APIs de modelo (como openrouter.ai) no conjunto de testes mmlu_pro (5-shot) usando a ferramenta lm-evaluation-harness, siga estas etapas para inferência com a configuração padrão da ferramenta. Os resultados são mostrados na Figura 5.

Fig.5. Comparação das taxas de correspondência exata entre Meta-Liama-3.1-8B-Instruct-FP8 e Meta-Liama-3.1-8B-Instruct.
Conclusão
Este artigo apresentou a decodificação especulativa e a quantização de baixa precisão como técnicas complementares com o objetivo de aumentar a eficiência da inferência de modelos de linguagem de grande escala (LLMs). A decodificação especulativa acelera o processo de inferência ao utilizar um modelo menor para gerar tokens candidatos, que são subsequentemente validados pelo modelo maior em paralelo, resultando em uma aceleração de 1,4x.
Em contraste, a quantização de baixa precisão mitiga as sobrecargas computacionais e de memória ao transformar os pesos do modelo em representações de menor largura de bits, mantendo o desempenho do modelo. Coletivamente, essas metodologias fornecem novas percepções e soluções práticas para alcançar inferência de alta eficiência, complementando técnicas existentes como a compressão dinâmica de cache KV.
Publicado originalmente em Novita AI
Novita AI é uma plataforma de nuvem de IA que oferece aos desenvolvedores uma maneira fácil de implantar modelos de IA usando nossa API simples, além de fornecer a nuvem GPU acessível e confiável para construir e escalar.
Leitura Recomendada
