Mantido pela otimização de modelos do TensorFlow
Este documento fornece uma visão geral sobre a remoção em modelos para ajudar você a determinar como isso se adapta ao seu caso de uso.
- Para ver mais detalhes em um exemplo completo, consulte Remoção com a Keras.
- Para encontrar rapidamente as APIs necessárias para seu caso de uso, consulte o guia completo sobre poda.
- Se quiser, veja também este artigo sobre a aplicação da poda para inferências no dispositivo com XNNPACK.
Visão geral
A remoção de peso baseada em magnitude exclui gradualmente os pesos do modelo durante o processo de treinamento para atingir a escassez do modelo. Os modelos esparsos são mais fáceis de compactar e podemos ignorar 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, a compatibilidade com frameworks para essa técnica melhorará ainda mais a latência. Vimos melhorias de até seis vezes na compactação de modelos com perda mínima de acurácia.
A técnica está sendo avaliada em vários aplicativos de fala, como reconhecimento de fala e conversão de texto em voz, e foi testada em vários modelos de visão e tradução.
Matriz de compatibilidade da API
Os usuários podem aplicar a remoção com as seguintes APIs:
- Criação de modelos:
tf.keras
apenas com modelos sequenciais e funcionais - Versões do TensorFlow: TF 1.x para as versões 1.14 ou mais recentes e 2.x
tf.compat.v1
com um pacote TF 2.x etf.compat.v2
com um pacote TF 1.x não são compatíveis.
- Modo de execução do TensorFlow: grafo e rápido
- Treinamento distribuído:
tf.distribute
apenas com execução de grafo
Nosso roteiro prevê incluir compatibilidade nas seguintes áreas:
- Compatibilidade mínima com modelos de subclasses
- Compatibilidade do framework para melhorias na latência
Resultados
Classificação de imagens
Modelo | Acurácia de primeiro nível não esparsa | Acurácia escassa | Esparsidade |
---|---|---|---|
InceptionV3 | 78,1% | 78,0% | 50% |
76,1% | 75% | ||
74,6% | 87,5% | ||
MobilenetV1 224 | 71,04% | 70,84% | 50% |
Os modelos foram testados no ImageNet.
Tradução
Modelo | BLEU não esparso | BLEU esparso | Esparsidade |
---|---|---|---|
GNMT EN-DE | 26.77 | 26.86 | 80% |
26.52 | 85% | ||
26.19 | 90% | ||
GNMT DE-EN | 29.47 | 29.50 | 80% |
29.24 | 85% | ||
28.81 | 90% |
Os modelos usam o conjunto de dados WMT16 alemão e inglês, com news-test2013 como o conjunto de desenvolvimento e news-test2015 como o conjunto de testes.
Exemplos
Além do tutorial de remoção com a Keras, veja os exemplos a seguir:
- Treine um modelo de CNN na tarefa de classificação de dígitos manuscritos MNIST com remoção: código.
- Treine um LSTM na tarefa de classificação de sentimento do IMDB com remoção: código.
Para mais informações, consulte como explorar a eficácia da remoção para compactação de modelo [artigo em inglês].