Optimisation de modèles TensorFlow

Le kit d'optimisation de modèle TensorFlow simplifie l'optimisation de l'inférence pour le machine learning.

L'efficacité de l'inférence constitue une problématique majeure lors du déploiement de modèles de machine learning en raison de la latence, de l'utilisation de la mémoire et, dans de nombreux cas, de la consommation d'énergie. C'est notamment le cas sur les appareils de périphérie, tels que les appareils mobiles et IoT, où les ressources sont limitées, et où la taille des modèles et l'efficacité du calcul constituent un sujet de préoccupation majeur.

La demande de calcul associée à l'entraînement augmente parallèlement au nombre de modèles entraînés sur différentes architectures, alors que pour l'inférence, elle augmente proportionnellement au nombre d'utilisateurs.

Cas d'utilisation

L'optimisation de modèles est une technique qui offre un éventail d'avantages :

  • Réduction du temps de latence et des coûts d'inférence pour les appareils cloud ou de périphérie (par exemple, les appareils mobiles ou IoT)
  • Déploiement de modèles sur des appareils de périphérie en limitant le traitement, la mémoire et/ou la consommation d'énergie
  • Réduction de la taille de la charge utile pour les mises à jour de modèles Over The Air
  • Exécution possible sur du matériel limité aux opérations à virgule fixe ou optimisé pour ces opérations
  • Optimisation de modèles pour des accélérateurs matériels spéciaux

Techniques d'optimisation

L'optimisation de modèles peut impliquer diverses techniques :

  • Réduire le nombre de paramètres grâce à l'élagage et à l'élagage structuré.
  • Réduire la précision de la représentation grâce à la quantification.
  • Mettre à jour la topologie d'origine du modèle vers une version plus efficace avec un nombre réduit de paramètres ou pour une exécution plus rapide. Les méthodes de distillation et de décomposition des Tensors en sont deux exemples.

Notre boîte à outils est compatible avec la quantification post-entraînement, l'entraînement utilisant la quantification, l'élagage et le clustering. Elle fournit également une compatibilité expérimentale pour l'optimisation collaborative afin de combiner diverses techniques.

Quantification

Les modèles quantifiés sont des modèles représentés avec une précision plus faible ; des nombres entiers codés sur 8 bits au lieu de nombres à virgule flottante sur 32 bits, par exemple. Une précision inférieure est nécessaire pour tirer parti de certains équipements.

Parcimonie et élagage

Dans les modèles parcimonieux, les connexions entre les opérateurs (c'est-à-dire les couches de réseau de neurones) ont été élaguées, en introduisant des zéros dans les Tensors de paramètres.

Clustering

Les modèles en cluster sont ceux dont les paramètres du modèle d'origine sont remplacés par un plus petit nombre de valeurs uniques.

Optimisation collaborative

La boîte à outils fournit une compatibilité expérimentale pour l'optimisation collaborative. Grâce à celle-ci, vous pouvez combiner plusieurs techniques de compression de modèles tout en améliorant la justesse par le biais de l'entraînement utilisant le quantification.