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 :
- Modèles officiels pour la vision et la PNL, gérés par les ingénieurs de Google
- Modèles de recherche publiés dans le cadre d'articles de recherche sur le ML
- Cadre d'expérience de formation pour une configuration de formation rapide et déclarative de modèles officiels
- Opérations ML spécialisées pour la vision et le traitement du langage naturel (NLP)
- Gestion des boucles de formation de modèles avec Orbit
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
Il existe deux options par défaut pour l'entraînement des modèles TensorFlow :
- Utilisez la fonction Keras Model.fit de haut niveau. Si votre modèle et votre procédure de formation correspondent aux hypothèses de la
Model.fit
de Keras (descente de gradient incrémentielle sur des lots de données), cela peut être très pratique. - Écrivez une boucle d'entraînement personnalisée avec keras ou sans . Vous pouvez écrire une boucle d'entraînement personnalisée avec des méthodes TensorFlow de bas niveau telles que
tf.GradientTape
outf.function
. Cependant, cette approche nécessite beaucoup de code passe-partout et ne fait rien pour simplifier la formation distribuée.
Orbit essaie de fournir une troisième option entre ces deux extrêmes.
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.
Le guide Orbit est disponible ici .