Simple Science

Ciência de ponta explicada de forma simples

# Informática# Aprendizagem de máquinas

Comparando FP8 e INT8 em Aprendizado de Máquina

Uma olhada nos formatos FP8 e INT8 para eficiência em deep learning.

― 7 min ler


FP8 vs INT8 emFP8 vs INT8 emAprendizado de Máquinaformatos FP8 e INT8.Avaliando a eficiência e precisão dos
Índice

No mundo do deep learning, escolher o formato de número certo pode afetar muito o desempenho, principalmente quando se roda modelos em dispositivos com recursos limitados. Recentemente, um novo formato chamado FP8 se destacou. Ele tá sendo explorado pra treinar redes neurais, enquanto o formato mais tradicional INT8 já é popular há tempos pra rodar modelos de forma eficiente em dispositivos de borda. Este artigo vai explorar as diferenças entre FP8 e INT8, focando na eficiência e eficácia deles para a inferência em deep learning.

O que é FP8?

FP8 significa ponto flutuante de 8 bits. É uma maneira de representar números que permite tanto valores muito pequenos quanto muito grandes, o que pode ser útil pra treinar modelos. FP8 usa um certo número de bits pra representar a escala e o valor de um número, tornando-o flexível pra lidar com diferentes faixas. Mas, enquanto FP8 oferece algumas vantagens, ele também tem limitações quando se trata de uso prático, especialmente em inferências.

O que é INT8?

INT8 é um formato inteiro de 8 bits. Diferente do ponto flutuante, que consegue lidar com uma ampla gama de valores, os formatos inteiros são fixos e não representam frações. Essa simplicidade faz do INT8 rápido e eficiente, especialmente ao rodar modelos em dispositivos com poder de processamento limitado. Muitas aplicações, principalmente as que lidam com grandes quantidades de dados ou processamento em tempo real, se beneficiam desse formato.

Treinando Modelos: FP8 vs INT8

A maioria dos modelos de deep learning atualmente é treinada usando FP32, que permite alta Precisão. Alguns também usam FP16, que economiza recursos mantendo um bom nível de precisão. Treinar modelos usando FP8 foi proposto como uma alternativa que poderia acelerar o processo de treinamento. Mas a verdadeira pergunta é como esse treinamento impacta a eficiência de rodar esses modelos depois, especialmente em dispositivos de borda.

A Quantização é o processo de converter um modelo treinado pra um formato de menor precisão como o INT8. Isso é essencial pra implantar modelos em dispositivos com recursos limitados. Embora converter modelos FP32 ou FP16 pra INT8 possa ser desafiador, geralmente vale a pena, pois pode levar a melhorias significativas na eficiência.

Os Desafios de Usar FP8 para Inferência

Embora treinar modelos em FP8 possa parecer atraente, existem vários desafios associados ao uso do FP8 para inferência. Um grande problema é que o FP8 pode ser menos eficiente do que o INT8 em termos de área e consumo de energia. Essa ineficiência significa que os modelos FP8 precisariam ser muito mais precisos do que os modelos INT8 pra justificar seu uso, o que pode não ser sempre o caso.

Ao rodar modelos, cada bit conta. Quanto menor o número de bits usados, menos energia é consumida durante o cálculo. Como o FP8 exige mais recursos em comparação com o INT8 para tarefas equivalentes, ele é menos desejável para rodar modelos eficientemente em dispositivos como smartphones ou sistemas embarcados.

Precisão em Modelos de Deep Learning

Outra preocupação ao comparar FP8 e INT8 é a precisão. Redes neurais podem ser sensíveis à precisão usada durante os cálculos. Embora o FP8 possa representar uma gama mais ampla de valores, ele pode ter dificuldades para manter a precisão devido às suas limitações em representar números menores de forma eficaz. O INT8, por outro lado, fornece representações diretas dos valores, resultando muitas vezes em um desempenho mais confiável na prática.

A capacidade de lidar com valores atípicos-valores incomuns que são significativamente mais altos ou mais baixos que o resto dos dados-é crucial na determinação da precisão de um modelo. O FP8 pode se sair melhor com valores atípicos, mas para muitos conjuntos de dados bem comportados, o INT8 oferece uma precisão superior devido à sua representação eficiente de valores típicos.

Aplicações Práticas e Desempenho

Quando se trata de implantar modelos no mundo real, a eficiência é fundamental. Usar INT8 pode levar a modelos que são de duas a oito vezes mais eficientes do que aqueles que usam formatos FP32. Essa eficiência é especialmente importante para aplicações rodando em dispositivos de borda, onde tanto o poder de processamento quanto a duração da bateria são limitados.

Por outro lado, embora o FP8 possa oferecer algumas vantagens durante o treinamento do modelo, seu desempenho em aplicações práticas não necessariamente o torna uma escolha melhor. As trocas em eficiência e precisão dão ao INT8 uma vantagem mais clara na maioria dos cenários do mundo real.

Quantização Pós-Treinamento (PTQ) e Treinamento Consciente da Quantização (QAT)

A quantização pós-treinamento é um método usado pra converter modelos treinados em formatos de menor precisão como o INT8. O objetivo aqui é manter o máximo de precisão possível do modelo enquanto se beneficia de uma eficiência melhorada. Esse processo nem sempre é simples, pois requer um ajuste cuidadoso pra garantir que o modelo funcione bem após a quantização.

Por outro lado, o treinamento consciente da quantização envolve treinar o modelo com a quantização em mente. Esse método permite que o modelo aprenda a trabalhar de forma eficaz dentro das limitações do formato de menor precisão, potencialmente levando a um desempenho melhor do que modelos que são simplesmente convertidos depois do treinamento.

Comparando Desempenho de Modelos

Ao comparar modelos treinados e implantados usando FP8 e INT8, fica claro que a escolha do formato tem implicações significativas para o desempenho. Em muitos casos, os modelos INT8 superaram seus equivalentes FP8, especialmente com distribuições de dados bem definidas.

Para redes bem comportadas onde os dados são consistentes, o INT8 tende a entregar melhores resultados. No entanto, para redes que encontram valores atípicos, o FP8 pode oferecer uma leve vantagem. Mesmo assim, várias técnicas podem resolver esses problemas de valores atípicos com INT8, tornando-o uma escolha mais versátil no geral.

Considerações de Hardware

Além dos formatos de número, o hardware desempenha um papel chave na determinação do desempenho do modelo. A arquitetura usada pra implementar modelos pode afetar não só a velocidade, mas também o consumo de energia. Em geral, formatos inteiros como INT8 requerem cálculos menos complexos do que formatos de ponto flutuante como FP8, que podem exigir circuitos e recursos mais elaborados.

Ao avaliar hardware para aplicações específicas, sistemas baseados em INT8 podem ser projetados pra serem mais eficientes e menos exigentes em termos de espaço e energia. Essa vantagem em eficiência pode fazer uma diferença mensurável, especialmente em ambientes com recursos limitados.

Conclusão: INT8 vs FP8

Escolher entre FP8 e INT8 é uma consideração vital na inferência de deep learning. Embora o FP8 tenha potenciais benefícios para treinamento, ele enfrenta desafios na aplicação de forma eficiente para a inferência. Por outro lado, o INT8 continua sendo um formato bem estabelecido que oferece simplicidade, eficiência e confiabilidade, principalmente para dispositivos de borda.

Para desenvolvedores e pesquisadores que procuram otimizar seus modelos pra implantação, ficar com o INT8 costuma ser a melhor abordagem. Seu desempenho consolidado, menores requisitos de recursos e eficiência comprovada fazem do INT8 uma escolha preferida para a inferência em deep learning em aplicações práticas. Conforme o deep learning continua a amadurecer, o foco permanecerá em otimizar modelos para desempenho no mundo real, tornando a escolha do formato de número crucial para o sucesso.

Fonte original

Título: FP8 versus INT8 for efficient deep learning inference

Resumo: Recently, the idea of using FP8 as a number format for neural network training has been floating around the deep learning world. Given that most training is currently conducted with entire networks in FP32, or sometimes FP16 with mixed-precision, the step to having some parts of a network run in FP8 with 8-bit weights is an appealing potential speed-up for the generally costly and time-intensive training procedures in deep learning. A natural question arises regarding what this development means for efficient inference on edge devices. In the efficient inference device world, workloads are frequently executed in INT8. Sometimes going even as low as INT4 when efficiency calls for it. In this whitepaper, we compare the performance for both the FP8 and INT formats for efficient on-device inference. We theoretically show the difference between the INT and FP formats for neural networks and present a plethora of post-training quantization and quantization-aware-training results to show how this theory translates to practice. We also provide a hardware analysis showing that the FP formats are somewhere between 50-180% less efficient in terms of compute in dedicated hardware than the INT format. Based on our research and a read of the research field, we conclude that although the proposed FP8 format could be good for training, the results for inference do not warrant a dedicated implementation of FP8 in favor of INT8 for efficient inference. We show that our results are mostly consistent with previous findings but that important comparisons between the formats have thus far been lacking. Finally, we discuss what happens when FP8-trained networks are converted to INT8 and conclude with a brief discussion on the most efficient way for on-device deployment and an extensive suite of INT8 results for many models.

Autores: Mart van Baalen, Andrey Kuzmin, Suparna S Nair, Yuwei Ren, Eric Mahurin, Chirag Patel, Sundar Subramanian, Sanghyuk Lee, Markus Nagel, Joseph Soriaga, Tijmen Blankevoort

Última atualização: 2023-06-15 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2303.17951

Fonte PDF: https://arxiv.org/pdf/2303.17951

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes