Entraîner un réseau graphique profond - Amazon SageMaker

Entraîner un réseau graphique profond

Dans cette présentation, vous apprendrez comment démarrer avec un réseau graphique profond à l'aide de l'un des conteneurs DGL dans Amazon Elastic Container Registry (Amazon ECR). Vous pouvez également voir des liens vers des exemples pratiques pour les réseaux graphiques profonds.

Qu'est-ce qu'un réseau graphique profond ?

Les réseaux graphiques profonds font référence à un type de réseau de neurones entraîné pour résoudre des problèmes graphiques. Un réseau graphique profond utilise un cadre deep learning sous-jacent comme PyTorch ou MXNet. Le potentiel des réseaux graphiques dans les applications d'IA pratiques est mis en évidence dans les didacticiels Amazon SageMaker pour la Deep Graph Library (DGL). Parmi les exemples de modèles d'entraînement sur des ensembles de données graphiques, mentionnons les réseaux sociaux, les bases de connaissances, la biologie et la chimie.


          The DGL ecosystem.

Figure 1. L'écosystème DGL

Plusieurs exemples sont fournis à l'aide des conteneurs deep learning d'Amazon SageMaker qui sont préconfigurés avec DGL. Si vous avez des modules spéciaux que vous souhaitez utiliser avec DGL, vous pouvez également construire votre propre conteneur. Les exemples concernent des hétérographes, qui sont des graphiques avec plusieurs types de nœuds et de bords, et qui s'appuient sur une variété d'applications dans des domaines scientifiques différents, tels que la bioinformatique et l'analyse des réseaux sociaux. DGL fournit un large éventail de mise en œuvres de réseaux de neurones graphiques pour différents modèles de types.https://docs.dgl.ai/tutorials/models/index.html Voici quelques-uns des éléments principaux :

  • Réseau graphique convolutif (GCN)

  • Réseau convolutif graphique relationnel (R-GCN)

  • Réseau d'attention graphique (GAT)

  • Modèles génératifs profonds de graphiques (DGMG)

  • Réseau neuronal en arbre de jonction (JTNN)

Mise en route

DGL est disponible en tant que conteneur deep learning dans Amazon ECR. Vous pouvez sélectionner des conteneurs deep learning lorsque vous écrivez votre fonction d'estimateur dans un bloc-notes Amazon SageMaker. Vous pouvez également créer votre propre conteneur personnalisé avec la DGL en suivant le guide Bring Your Own Container (Importer son propre conteneur). La façon la plus simple de démarrer avec un réseau graphique profond est d'utiliser l'un des conteneurs DGL dans Amazon ECR. 

Note

La prise en charge du cadre backend est limitée à PyTorch et MXNet.

Setup

Si vous utilisez Amazon SageMaker Studio, vous devez d'abord cloner le référentiel d'exemples. Si vous utilisez une instance de bloc-notes, vous trouverez les exemples en choisissant l'icône SageMaker en bas de la barre d'outils gauche.

Pour cloner le kit SDK Amazon SageMaker et le référentiel d'exemples de bloc-notes

  1. Dans la vue Jupyter Lab d'Amazon SageMaker, accédez au Navigateur de fichiers en haut de la barre d'outils gauche. Dans le panneau du navigateur de fichiers, vous pouvez voir une nouvelle navigation en haut du panneau.

  2. Choisissez l'icône la plus à droite pour cloner un référentiel Git.

  3. Ajouter l'URL du référentiel : https://github.com/awslabs/amazon-sagemaker-examples.githttps://github.com/awslabs/amazon-sagemaker-examples.git

  4. Parcourez le dossier nouvellement ajouté et son contenu. Les exemples de DGL sont stockés dans le dossier sagemaker-python-sdk.

Exemple d'entraînement d'un réseau graphique

Pour entraîner un réseau graphique profond

  1. Dans la vue Jupyter Lab d'Amazon SageMaker, parcourez les exemples de blocs-notes et recherchez les dossiers DGL. Plusieurs fichiers peuvent être inclus pour prendre en charge un exemple. Examinez le fichier README pour les conditions préalables.

  2. Exécutez l'exemple de bloc-notes .ipynb. 

  3. Recherchez la fonction estimateur et notez la ligne où elle utilise un conteneur Amazon ECR pour DGL et un type d'instance spécifique. Vous pouvez mettre ce point à jour pour utiliser un conteneur dans votre région préférée.

  4. Exécutez la fonction pour lancer l'instance et utilisez le conteneur DGL pour entraîner un réseau graphique. Des frais sont encourus pour le lancement de cette instance. L'instance se termine automatiquement lorsque l'entraînement est terminée.

Examples

Un exemple d'intégration de graphiques de connaissances (KGE) est fourni. Il utilise le jeu de données Freebase, une base de connaissances de faits généraux. Un exemple de cas d'utilisation serait de tracer les relations des personnes et de prédire leur nationalité. 

Un exemple de mise en œuvre d'un réseau graphique convolutif (GCN) montre comment vous pouvez entraîner un réseau graphique pour prédire la toxicité. Un ensemble de données physiologiques, Tox21, fournit des mesures de toxicité pour déterminer comment les substances affectent les réponses biologiques. 

Un autre exemple de GCN vous montre comment entraîner un réseau de graphiques sur un ensemble de données bibliographiques de publications scientifiques, connu sous le nom de Cora. Vous pouvez l'utiliser pour rechercher les relations entre les auteurs, les rubriques et les conférences.

Le dernier exemple est un système de recommandation pour les critiques de films. Il utilise un réseau GCMC (Graph Convolutional Matrix Completion) entraîné sur les ensembles de données MovieLens. Ces ensembles de données sont constitués de titres, de genres et d'évaluations de films par les utilisateurs.

Utiliser un conteneur Deep Learning avec DGL

L'exemple suivant utilise des conteneurs de deep learning préconfigurés. Ce sont les plus faciles à essayer, car ils sont prêts à l'emploi sur Amazon SageMaker.

Apportez votre propre conteneur avec DGL

Les exemples suivants vous permettent d'apporter votre propre conteneur (BYOC). Lisez le guide BYOC et familiarisez-vous avec ce processus avant de les essayer.https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html La configuration est requise.