Apare pesos insignificantes

Este documento fornece uma visão geral sobre a remoção de modelos para ajudá-lo a determinar como ela se ajusta ao seu caso de uso.

Visão geral

A poda de peso baseada na magnitude zera gradualmente os pesos do modelo durante o processo de treinamento para atingir a dispersão do modelo. Modelos esparsos são mais fáceis de compactar e podemos pular os zeros durante a inferência para melhorar a latência.

Essa técnica traz melhorias por meio da compactação do modelo. No futuro, o suporte da estrutura para esta técnica proporcionará melhorias na latência. Vimos melhorias de até 6x na compactação do modelo com perda mínima de precisão.

A técnica está sendo avaliada em diversas aplicações de fala, como reconhecimento de fala e conversão de texto em fala, e foi experimentada em vários modelos de visão e tradução.

Matriz de compatibilidade de API

Os usuários podem aplicar a remoção com as seguintes APIs:

  • Construção de modelo: keras apenas com modelos sequenciais e funcionais
  • Versões do TensorFlow: TF 1.x para versões 1.14+ e 2.x.
    • tf.compat.v1 com um pacote TF 2.X e tf.compat.v2 com um pacote TF 1.X não são suportados.
  • Modo de execução do TensorFlow: gráfico e ansioso
  • Treinamento distribuído: tf.distribute apenas com execução de gráfico

Está em nosso roteiro adicionar suporte nas seguintes áreas:

Resultados

Classificação de imagens

Modelo Precisão Top-1 não esparsa Precisão aleatória esparsa Esparsidade Aleatória Precisão esparsa estruturada Esparsidade Estruturada
InícioV3 78,1% 78,0% 50% 75,8% 2 por 4
76,1% 75%
74,6% 87,5%
Rede MóvelV1 224 71,04% 70,84% 50% 67,35% 2 por 4
Rede MóvelV2 224 71,77% 69,64% 50% 66,75% 2 por 4

Os modelos foram testados no Imagenet.

Tradução

Modelo BLEU não esparso AZUL esparso Esparsidade
GNMT EN-DE 26,77 26,86 80%
26,52 85%
26.19 90%
GNMT DE-EN 29h47 29h50 80%
29.24 85%
28,81 90%

Os modelos usam o conjunto de dados WMT16 em alemão e inglês com news-test2013 como conjunto de desenvolvimento e news-test2015 como conjunto de teste.

Modelo de identificação de palavras-chave

DS-CNN-L é um modelo de localização de palavras-chave criado para dispositivos de ponta. Ele pode ser encontrado no repositório de exemplos do software ARM.

Modelo Precisão não escassa Precisão esparsa estruturada (padrão 2 por 4) Precisão aleatória esparsa (escassez alvo 50%)
DS-CNN-L 95,23 94,33 94,84

Exemplos

Além do tutorial Prune with Keras , veja os seguintes exemplos:

  • Treine um modelo CNN na tarefa de classificação de dígitos manuscritos MNIST com poda: código
  • Treine um LSTM na tarefa de classificação de sentimento do IMDB com poda: código

Para obter informações básicas, consulte Podar ou não podar: explorando a eficácia da poda para compactação de modelo [ papel ].