Vue d'ensemble du jardin modèle

Le TensorFlow Model Garden fournit des implémentations de nombreux modèles d'apprentissage automatique (ML) de pointe pour la vision et le traitement du langage naturel (NLP), ainsi que des outils de workflow pour vous permettre de configurer et d'exécuter rapidement ces modèles sur des ensembles de données standard. Que vous cherchiez à comparer les performances d'un modèle bien connu, à vérifier les résultats de recherches récemment publiées ou à étendre des modèles existants, Model Garden peut vous aider à faire avancer vos recherches et applications ML.

Le Model Garden comprend les ressources suivantes pour les développeurs de machine learning :

Ces ressources sont conçues pour être utilisées avec le framework TensorFlow Core et s'intègrent à vos projets de développement TensorFlow existants. Les ressources Model Garden sont également fournies sous une licence open source , ce qui vous permet d'étendre et de distribuer librement les modèles et les outils.

Les modèles ML pratiques nécessitent beaucoup de calculs pour s'entraîner et s'exécuter, et peuvent nécessiter des accélérateurs tels que des unités de traitement graphique (GPU) et des unités de traitement de tenseur (TPU). La plupart des modèles de Model Garden ont été formés sur de grands ensembles de données à l'aide de TPU. Cependant, vous pouvez également former et exécuter ces modèles sur des processeurs GPU et CPU.

Modèles de jardins modèles

Les modèles d'apprentissage automatique dans Model Garden incluent un code complet afin que vous puissiez les tester, les former ou les recycler pour la recherche et l'expérimentation. Le Model Garden comprend deux grandes catégories de modèles : les modèles officiels et les modèles de recherche .

Modèles officiels

Le référentiel de modèles officiels est une collection de modèles de pointe, axés sur la vision et le traitement du langage naturel (NLP). Ces modèles sont mis en œuvre à l'aide des API de haut niveau TensorFlow 2.x actuelles. Les bibliothèques de modèles de ce référentiel sont optimisées pour des performances rapides et activement entretenues par les ingénieurs de Google. Les modèles officiels incluent des métadonnées supplémentaires que vous pouvez utiliser pour configurer rapidement des expériences à l'aide du cadre d'expérience de formation Model Garden .

Modèles de recherche

Le référentiel de modèles de recherche est une collection de modèles publiés en tant que ressources de code pour les articles de recherche. Ces modèles sont mis en œuvre à l'aide de TensorFlow 1.x et 2.x. Les bibliothèques de modèles du dossier de recherche sont prises en charge par les propriétaires du code et la communauté de recherche.

Cadre d'expérimentation de la formation

Le cadre d'expérience de formation Model Garden vous permet d'assembler et d'exécuter rapidement des expériences de formation à l'aide de ses modèles officiels et de ses ensembles de données standard. Le cadre de formation utilise des métadonnées supplémentaires incluses avec les modèles officiels de Model Garden pour vous permettre de configurer rapidement des modèles à l'aide d'un modèle de programmation déclaratif. Vous pouvez définir une expérience d'entraînement à l'aide de commandes Python dans la bibliothèque de modèles TensorFlow ou configurer l'entraînement à l'aide d'un fichier de configuration YAML, comme dans cet exemple .

Le cadre de formation utilise tfm.core.base_trainer.ExperimentConfig comme objet de configuration, qui contient les objets de configuration de niveau supérieur suivants :

  • runtime : définit le matériel de traitement, la stratégie de distribution et d'autres optimisations de performances
  • task : définit le modèle, les données d'entraînement, les pertes et l'initialisation
  • trainer : définit l'optimiseur, les boucles de formation, les boucles d'évaluation, les résumés et les points de contrôle

Pour un exemple complet utilisant le cadre d'expérience de formation Model Garden, consultez le didacticiel Classification d'images avec Model Garden . Pour plus d'informations sur l'infrastructure d'expérimentation d'entraînement, consultez la documentation de l'API TensorFlow Models . Si vous recherchez une solution pour gérer les boucles de formation pour vos expériences de formation de modèles, consultez Orbit .

Opérations ML spécialisées

Le Model Garden contient de nombreuses opérations de vision et de NLP spécialement conçues pour exécuter des modèles de pointe qui s'exécutent efficacement sur les GPU et les TPU. Consultez la documentation de l'API de la bibliothèque TensorFlow Models Vision pour obtenir la liste des opérations de vision spécialisées . Consultez les documents de l'API de la bibliothèque TensorFlow Models NLP pour obtenir la liste des opérations NLP . Ces bibliothèques incluent également des fonctions utilitaires supplémentaires utilisées pour la vision et le traitement des données NLP, la formation et l'exécution de modèles.

Boucles d'entraînement avec Orbit

L'outil Orbit est une bibliothèque flexible et légère conçue pour faciliter l'écriture de boucles d'entraînement personnalisées dans TensorFlow 2.x, et fonctionne bien avec le cadre d'expérience d'entraînement Model Garden . Orbit gère les tâches courantes de formation de modèles telles que l'enregistrement de points de contrôle, l'exécution d'évaluations de modèles et la configuration de la rédaction de résumés. Il s'intègre de manière transparente à tf.distribute et prend en charge l'exécution sur différents types d'appareils, y compris le matériel CPU, GPU et TPU. L'outil Orbit est également open source , vous pouvez donc l'étendre et l'adapter à vos besoins de formation de modèles.

En règle générale, vous entraînez des modèles TensorFlow en écrivant une boucle d'entraînement personnalisée ou en utilisant la fonction Keras Model.fit de haut niveau. Pour les modèles simples, vous pouvez définir et gérer une boucle d'entraînement personnalisée avec des méthodes TensorFlow de bas niveau telles que tf.GradientTape ou tf.function . Alternativement, vous pouvez utiliser le Keras Model.fit de haut niveau.

Cependant, si votre modèle est complexe et que votre boucle d'entraînement nécessite un contrôle ou une personnalisation plus flexible, vous devez utiliser Orbit. Vous pouvez définir la majeure partie de votre boucle d'entraînement par la classe orbit.AbstractTrainer ou orbit.StandardTrainer . En savoir plus sur l'outil Orbit dans la documentation de l'API Orbit .