Embora o modelo Transformer tenha demonstrado resultados significativos em vários domínios, suas enormes demandas de cálculo e memória limitam sua aplicação, especialmente ao implantá-lo em dispositivos de borda com recursos limitados. A quantização, como um método eficaz de compressão de modelos, pode reduzir significativamente o tempo de execução do Transformer nesses dispositivos. Vale notar que, em comparação com as redes neurais convolucionais (CNN), os valores de ativação do Transformer apresentam outliers mais pronunciados, levando a uma distribuição desigual de características entre canais e tokens. Para abordar esse problema, é proposto um método adaptativo de quantização com correção de outliers (AOCQ), que reduz significativamente os efeitos adversos desses outliers. O AOCQ ajusta as diferenças significativas entre canais e tokens em três níveis: operador; estrutura; perda. Um novo operador é introduzido, capaz de equilibrar de forma equivalente os valores de ativação entre canais, e um estágio adicional é adicionado no nível da estrutura para otimizar o passo de quantização das ativações. Além disso, no nível da perda, o desequilíbrio dos valores de ativação entre tokens e canais é transferido para o processo de otimização dos pesos do modelo. Análises teóricas mostram que o método pode reduzir efetivamente o erro de quantização. A eficácia do método proposto foi validada em vários modelos e tarefas de referência. Após a quantização pós-treinamento em 8 bits, o modelo DeiT-B alcançou uma precisão de 81,57% com perda de apenas 0,28 pontos percentuais, enquanto obteve uma aceleração de inferência 4 vezes maior. Além disso, em várias tarefas, incluindo classificação de imagens e detecção de objetos, os pesos de Swin Transformer e DeiT podem ser quantizados pós-treinamento para 4 bits, com perda de precisão de apenas 2%, enquanto a memória necessária é apenas 1/8 da original.
Keywords
Transformer;compressão e aceleração de modelos;quantização pós-treinamento;outliers