Géré par l'optimisation de modèles TensorFlow
Ce document propose une vue d'ensemble de l'élagage de modèles afin de vous aider à déterminer si cette technique est adaptée à votre cas d'utilisation.
- Pour passer directement à un exemple détaillé, consultez la section Élagage avec Keras.
- Pour trouver rapidement les API dont vous avez besoin pour votre cas d'utilisation, consultez le guide complet sur l'élagage.
- Pour découvrir les applications d'élagage pour l'inférence sur l'appareil, consultez l'article Élagage pour l'inférence sur l'appareil avec XNNPACK.
Présentation
L'élagage de pondérations basé sur la magnitude met progressivement à zéro les pondérations du modèle au cours du processus d'entraînement afin de parvenir à la parcimonie du modèle. Les modèles parcimonieux sont plus faciles à compresser et les zéros peuvent être ignorés au cours de l'inférence pour améliorer la latence.
Cette technique apporte des améliorations via la compression de modèles. À l'avenir, la compatibilité du framework avec cette technique permettra d'améliorer la latence. Pour la compression de modèles, nous avons observé des performances multipliées par six avec une perte de justesse minimale.
La technique fait actuellement l'objet d'une évaluation dans diverses applications vocales, comme la reconnaissance vocale et la synthèse vocale. Elle a, en outre, été testée dans différents modèles de vision et de traduction.
Matrice de compatibilité des API
Les utilisateurs peuvent appliquer l'élagage à l'aide des API suivantes :
- Création de modèles :
tf.keras
avec uniquement des modèles séquentiels et fonctionnels - Versions de TensorFlow : TF 1.x pour les versions 1.14+ et 2.x.
tf.compat.v1
avec un package TF 2.X ettf.compat.v2
avec un package TF 1.X ne sont pas compatibles.
- Modes d'exécution de TensorFlow : graphe et eager
- Entraînement distribué :
tf.distribute
avec seulement l'exécution de graphe
L'ajout de la compatibilité est prévu dans les domaines suivants :
- Compatibilité avec le modèle sous-classé minimal
- Compatibilité avec les frameworks pour l'amélioration de la latence
Résultats
Classification d'images
Modèle | Justesse non parcimonieuse (1 % les plus élevés) | Justesse parcimonieuse | Parcimonie |
---|---|---|---|
InceptionV3 | 78,1 % | 78 % | 50 % |
76,1 % | 75 % | ||
74,6 % | 87,5 % | ||
MobilenetV1 224 | 71,04 % | 70,84 % | 50 % |
Les modèles ont été testés sur Imagenet.
Traduction
Modèle | BLEU non parcimonieux | BLEU parcimonieux | Parcimonie |
---|---|---|---|
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 % |
Les modèles utilisent un ensemble de données allemand et anglais WMT16 avec news-test2013 comme ensemble de développement et news-test2015 comme ensemble de test.
Exemples
Consultez les exemples ci-dessous en plus du tutoriel Élagage avec Keras :
- Entraîner un modèle CNN sur la tâche de classification des chiffres manuscrits MNIST avec élagage : code
- Entraîner un réseau LSTM sur la tâche de classification des sentiments IMDB avec élagage : code
Pour en savoir plus, consultez To prune, or not to prune: exploring the efficacy of pruning for model compression (Élaguer ou ne pas élaguer : de l'efficacité de l'élagage pour la compression de modèles) [article].