Quantizando um modelo de PNL de humor do DistilBERT
A quantização é uma técnica de compressão de modelo que ajuda a reduzir o tempo de inferência. A quantização do tipo ponto flutuante de 32 bits (FP32) para número inteiro de 8 bits (INT8) melhora o desempenho com apenas uma ligeira queda na precisão. Geralmente, o tamanho do modelo pode diminuir de 4 a 5 vezes e o tempo de inferência pode ser reduzido em mais de 3 vezes ( source ).
Devemos primeiro importar mais algumas bibliotecas para quantização, incluindo neural_compressore optimum.intel:
Estou configurando o torchdispositivo para cpu:
Agora podemos aplicar a quantização. Dê uma olhada nos exemplos de classificação de texto no optimum.intel repositório do GitHub para saber mais. Vamos carregar um modelo previamente treinado:
Eu configurei o treinador para usar o IncTrainerou a classe Intel® Neural Compressor Trainer:
Tudo está pronto para executar a quantização. Observe que estou usando um arquivo de configuração chamado quantization.yml baixado do repositório optimum.intel GitHub . Você pode alterar os parâmetros de configuração neste arquivo para ajustar como o modelo é quantizado. Aqui, estou aplicando a quantização dinâmica pós-treinamento, uma técnica que não requer retreinamento, mas geralmente sacrifica um pouco de precisão:
Podemos então prosseguir e executar a quantização com optimizer.fit():
Agora que temos um modelo otimizado, podemos compará-lo com o modelo de linha de base:
Podemos salvar o modelo quantizado em disco e ter disponíveis tanto o FP32 quanto o modelo INT8 recém-quantizado:
Executando a avaliação com o modelo FP32, obtemos:
E para INT8:
A precisão é praticamente a mesma, mas o modelo INT8 é 1,5x mais rápido que o modelo FP32. O código completo pode ser encontrado no GitHub aqui .
Você pode instalar o Intel Neural Compressor autônomo ou como parte do Intel AI Analytics Toolkit . Para saber mais sobre as soluções de hardware e software de IA da Intel, visite aqui .





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)