Otimização de modelos do TensorFlow

O Kit de ferramentas para otimização de modelos do TensorFlow minimiza a complexidade de otimizar a inferência de machine learning.

A eficiência da inferência é uma preocupação crítica ao implantar modelos de machine learning devido à latência, à utilização de memória e, em muitos casos, ao consumo de energia. Especialmente em dispositivos de borda, como dispositivos móveis e de Internet das Coisas (IoT, na sigla em inglês), os recursos são ainda mais restritos, e o tamanho do modelo e a eficiência da computação são uma grande preocupação.

A demanda computacional para treinamento cresce com o número de modelos treinados em diferentes arquiteturas, enquanto a demanda computacional para inferência cresce proporcionalmente ao número de usuários.

Casos de uso

A otimização de modelos serve, entre outras coisas, para:

  • reduzir a latência e o custo de inferência para dispositivos de nuvem e de borda (por exemplo, dispositivos móveis e de IoT);
  • implantar modelos em dispositivos de borda com restrições de processamento, memória e/ou consumo de energia;
  • reduzir o tamanho do payload para atualizações de modelo over-the-air (OTA);
  • ativar a execução em hardware restrito a (ou otimizado para) operações de ponto fixo;
  • otimizar modelos para aceleradores de hardware com fins especiais.

Técnicas de otimização

A área de otimização de modelos pode envolver várias técnicas:

  • Reduzir a contagem de parâmetros com remoção e remoção estruturada.
  • Reduzir a precisão representacional com a quantização.
  • Atualizar a topologia do modelo original para uma mais eficiente com parâmetros reduzidos ou execução mais rápida. Por exemplo, métodos de decomposição de tensores e destilação

Nosso kit de ferramentas é compatível com quantização pós-treinamento, treinamento com reconhecimento de quantização, remoção e clustering. O kit de ferramentas também oferece suporte experimental à otimização colaborativa para a combinação de várias técnicas.

Quantização

Os modelos quantizados são aqueles em que representamos os modelos com menor precisão, como números inteiros de 8 bits, em vez de flutuantes de 32 bits. Uma precisão menor é um requisito para aproveitar determinado hardware.

Esparsidade e remoção

Os modelos esparsos são aqueles em que as conexões entre operadores (ou seja, camadas de rede neural) foram removidas, introduzindo zeros aos tensores de parâmetros.

Cluster

Modelos em cluster são aqueles em que os parâmetros do modelo original são substituídos por um número menor de valores exclusivos.

Otimização colaborativa

O kit de ferramentas oferece suporte experimental à otimização colaborativa. Isso permite combinar várias técnicas de compressão de modelos e simultaneamente alcançar maior precisão pelo treinamento com reconhecimento de quantização.