Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Amazon propose aux développeurs AutoGluon, une boîte à outils open source qui vient automatiser le deep learning
Et les aider à intégrer l'IA dans leurs applications

Le , par Stéphane le calme

9PARTAGES

9  0 
Amazon a créé une boîte à outils open source pour l'apprentissage automatique automatisé, appelée AutoGluon, conçue pour permettre aux développeurs de logiciels de profiter plus facilement des modèles d'apprentissage en profondeur dans leurs applications. AutoGluon est destiné à la fois aux experts en apprentissage automatique et aux débutants, selon la société.

Lancé officiellement le 9 janvier, AutoGluon permet aux développeurs d'exploiter des modèles d'apprentissage automatique avec des images, du texte ou des ensembles de données tabulaires, sans avoir besoin d'expérimenter manuellement. Les développeurs peuvent obtenir des performances prédictives solides dans leurs applications.

Sur le site dédié, Amazon précise :

« AutoGluon permet d'utiliser AutoML en mettant l'accent sur l'apprentissage en profondeur et les applications du monde réel couvrant des images, du texte ou des données tabulaires. Destiné aux débutants et aux experts ML, AutoGluon vous permet de:
  • Prototyper rapidement des solutions d'apprentissage en profondeur pour vos données avec quelques lignes de code.
  • Tirer parti du réglage automatique des hyperparamètres, de la sélection de modèle / recherche d'architecture et du traitement des données.
  • D'utiliser automatiquement des techniques d'apprentissage en profondeur de pointe sans pour autant être un expert.
  • D'améliorer facilement les modèles sur mesure et les pipelines de données existants, ou personnaliser AutoGluon pour votre cas d'utilisation ».

Le kit a été officiellement lancé le 9 janvier. Il permet d’exploiter des modèles d’apprentissage machine avec image, texte, jeux de données de structure tabulaire, sans recourir à une expérimentation manuelle. Par exemple, pour reconnaître le ou les sujets principaux d’une image, pour faire des prédictions à partir du contenu d’un texte ou pour prédire les valeurs dans les colonnes d’une table à partir des valeurs des autres colonnes.

Accessible sur le site du projet ou sur GitHub, AutoGluon automatise un certain nombre de décisions pour les développeurs, ce qui permet de produire un modèle de réseau neuronal avec seulement trois lignes de code. Autre intérêt mis en avant par Amazon, son service tire parti des ressources de calcul disponibles pour trouver le modèle le plus puissant compte tenu du runtime alloué. Il s’utilise avec Python 3.6 ou 3.7 et il est pour l’instant limité à Linux. Les supports de Windows et MacOS sont prévus ultérieurement.

Classification de texte : faire des prédictions en fonction du contenu du texte

Amazon présente la tâche de classification de texte comme exemple courant pour illustrer l’utilisation de base de la capacité NLP d’AutoGluon.

Dans ce didacticiel, nous utilisons l'analyse des sentiments comme exemple de classification de texte. Nous allons charger des phrases et les étiquettes correspondantes (sentiment) dans AutoGluon et utiliser ces données pour obtenir un réseau neuronal qui peut classer de nouvelles phrases. Différent de l'apprentissage automatique traditionnel où nous devons définir manuellement le réseau neuronal et spécifier les hyperparamètres dans le processus de formation, avec un seul appel à la fonction d'ajustement d'AutoGluon, AutoGluon formera automatiquement de nombreux modèles sous des milliers de configurations hyperparamétriques différentes, puis renverra le meilleur modèle.

Nous commençons par spécifier TextClassification comme notre tâche d'intérêt:

Code Python : Sélectionner tout
1
2
import autogluon as ag 
from autogluon import TextClassification as task

Créer un jeu de données AutoGluon

Nous utilisons un sous-ensemble de Stanford Sentiment Treebank (SST). L'ensemble de données d'origine se compose de phrases tirées de critiques de films et d'annotations humaines de leur sentiment. La tâche consiste à classer si une phrase donnée a un sentiment positif ou négatif (classification binaire).

Code Python : Sélectionner tout
dataset = task.Dataset(name='ToySST')

Dans l'appel ci-dessus, nous avons la bonne répartition entrainement / validation / test de l'ensemble de données SST.

Utiliser AutoGluon pour s'adapter aux modèles

Maintenant, nous voulons obtenir un classificateur de réseau neuronal en utilisant AutoGluon. Dans la configuration par défaut, plutôt que d'essayer de former des modèles complexes à partir de zéro en utilisant nos données, AutoGluon affine les réseaux de neurones qui ont déjà été préformés sur un ensemble de données texte à grande échelle comme Wikicorpus. Bien que l'ensemble de données implique un texte entièrement différent, les entités de niveau inférieur capturées dans les représentations du réseau préformé (comme les détecteurs de bord / texture) resteront probablement utiles pour notre propre ensemble de données texte.

Notons que si Amazon s'en tient principalement aux configurations par défaut dans ce didacticiel pour débutant, le didacticiel avancé couvre diverses options que vous pouvez spécifier pour un meilleur contrôle du processus de formation. Avec un seul appel à la fonction d'ajustement d'AutoGluon, AutoGluon formera de nombreux modèles avec différentes configurations d'hyperparamètres et retournera le meilleur modèle.

Cependant, la formation au réseau de neurones peut être assez coûteuse en temps. Pour garantir des temps d'exécution rapides, nous demandons à AutoGluon d'obéir à des limites strictes: num_training_epochs spécifie combien d'efforts de calcul peuvent être consacrés à la formation d'un réseau unique, tandis que time_limits en secondes spécifie combien de temps il faut pour renvoyer un modèle. À des fins de démonstration, nous spécifions uniquement de petites valeurs pour time_limits, num_training_epochs:

predictor = task.fit(dataset, epochs=1)
Code Python : Sélectionner tout
1
2
3
Starting Experiments 
Num of Finished Tasks is 0 
Num of Pending Tasks is 2
Code Python : Sélectionner tout
1
2
3
4
5
scheduler: FIFOScheduler( 
DistributedResourceManager{ 
(Remote: Remote REMOTE_ID: 0, 
    <Remote: 'inproc://172.31.41.232/14587/1' processes=1 threads=8, memory=33.24 GB>, Resource: NodeResourceManager(8 CPUs, 1 GPUs)) 
})
Code Python : Sélectionner tout
HBox(children=(FloatProgress(value=0.0, max=2.0), HTML(value='')))
Code x : Sélectionner tout
1
2
3
4
5
Using gradient accumulation. Effective batch size = batch_size * accumulate = 32 
[Epoch 0] loss=0.6859, lr=0.0000032, metrics:accuracy:0.5383: 100%|██████████| 426/426 [05:43<00:00,  1.24it/s] 
100%|██████████| 6/6 [00:01<00:00,  3.31it/s] 
validation metrics:accuracy:0.5287 
Finished Task with config: {'lr': 6.32456e-05, 'net.choice': 0, 'pretrained_dataset.choice': 0} and reward: 0.5287356321839081
Code x : Sélectionner tout
1
2
3
4
5
6
7
8
9
Using gradient accumulation. Effective batch size = batch_size * accumulate = 32 
[Epoch 0] loss=0.6912, lr=0.0000064, metrics:accuracy:0.5350: 100%|██████████| 426/426 [05:51<00:00,  1.21it/s] 
100%|██████████| 6/6 [00:01<00:00,  3.30it/s] 
validation metrics:accuracy:0.5287 
Finished Task with config: {'lr': 0.00012693257529892082, 'net.choice': 0, 'pretrained_dataset.choice': 0} and reward: 0.5287356321839081 
Using gradient accumulation. Effective batch size = batch_size * accumulate = 32 
[Epoch 0] loss=0.6859, lr=0.0000032, metrics:accuracy:0.5383: 100%|██████████| 426/426 [05:51<00:00,  1.21it/s] 
100%|██████████| 6/6 [00:01<00:00,  3.32it/s] 
validation metrics:accuracy:0.5287

Au sein de fit, le modèle avec la meilleure configuration d'hyperparamètre est sélectionné en fonction de sa précision de validation après avoir été formé sur les données de la division d'apprentissage.

La meilleure précision Top-1 obtenue sur l'ensemble de validation est:

print('Top-1 val acc: %.3f' % predictor.results['best_reward'])Top-1 val acc: 0.529

Étant donné un exemple de phrase, nous pouvons facilement utiliser le modèle final pour prédire l'étiquette (et la probabilité de classe conditionnelle):

Code Python : Sélectionner tout
1
2
3
sentence = 'I feel this is awesome!' 
ind = predictor.predict(sentence) 
print('The input sentence sentiment is classified as [%d].' % ind.asscalar())

The input sentence sentiment is classified as [1].

L'objet results renvoyé par fit contient des résumés décrivant divers aspects du processus de formation. Par exemple, nous pouvons inspecter la meilleure configuration d'hyperparamètre correspondant au modèle final qui a obtenu les (meilleurs) résultats ci-dessus:

print('The best configuration is:')
print(predictor.results['best_config'])


The best configuration is:
{'lr': 6.32456e-05, 'net.choice': 0, 'pretrained_dataset.choice': 0}


Conclusion

En somme, AutoGluon permet de prototyper des solutions de deep learning pour un jeu de données avec peu de lignes de code. Le service met en œuvre l’optimisation hyperparamétrique (consistant à choisir les paramètres optimaux pour contrôler le processus d’apprentissage) ainsi que la sélection du modèle, la recherche de l’architecture et le traitement des données. Il peut aussi servir à améliorer les modèles de réseaux neuronaux existants et les pipelines de données. Bien entendu, il s’appuie sur les API pour améliorer les performances prédictives dans les applications sans faire intervenir d’expertise humaine.

D'ordinaire, le déploiement de modèles de deep learning qui requiert une grande précision d’inférence nécessite l’intervention d’un expert et l’entraînement de ces modèles exige des développeurs beaucoup de temps et d’efforts. Malgré les avancées apportées par certains outils, tels que la bibliothèque Keras, pour spécifier plus facilement les paramètres et les couches dans ces modèles, les développeurs continuent à se débattre avec des problèmes complexes en particulier sur le prétraitement des données et l’optimisation hyperparamétrique. Avec AutoGluon, Amazon prétend rendre le deep learning plus accessible à davantage de développeurs.

Source : AutoGluon (site du projet, GitHub)

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de alf2010
Membre à l'essai https://www.developpez.com
Le 15/01/2020 à 18:26
Merci pour cette présentation détaillée
1  0