Éliminer les pondérations insignifiantes

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.

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 et tf.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 :

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 22471,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,5285 %
26,1990 %
GNMT DE-EN 29,47 29,50 80 %
29,2485 %
28,8190 %

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].