Nous sommes ravis d'annoncer la sortie open-source de GraphStorm 0.1, un cadre d'apprentissage automatique de graphes d'entreprise (ML) low-code pour créer, former et déployer des solutions de ML de graphes sur des graphes complexes à l'échelle de l'entreprise en quelques jours au lieu de plusieurs mois. Avec GraphStorm, vous pouvez créer des solutions qui prennent directement en compte la structure des relations ou des interactions entre des milliards d'entités, qui sont intrinsèquement intégrées dans la plupart des données du monde réel, y compris les scénarios de détection de fraude, les recommandations, la détection de communauté et les problèmes de recherche/récupération.
Jusqu'à présent, il était notoirement difficile de créer, d'entraîner et de déployer des solutions de graph ML pour les graphiques d'entreprise complexes qui ont facilement des milliards de nœuds, des centaines de milliards d'arêtes et des dizaines d'attributs. Il suffit de penser à un graphique capturant les produits Amazon.com. , les attributs des produits, les clients, etc. Avec GraphStorm, nous publions les outils qu'Amazon utilise en interne pour mettre en production des solutions de ML de graphes à grande échelle. GraphStorm ne nécessite pas que vous soyez un expert en ML graphique et est disponible sous la licence Apache v2.0 sur GitHub. Pour en savoir plus sur GraphStorm, visitez le GitHub référentiel.
Dans cet article, nous fournissons une introduction à GraphStorm, son architecture et un exemple de cas d'utilisation de la façon de l'utiliser.
Présentation de GraphStorm
Les algorithmes de graphes et le graph ML apparaissent comme des solutions de pointe pour de nombreux problèmes commerciaux importants tels que la prévision des risques de transaction, l'anticipation des préférences des clients, la détection des intrusions, l'optimisation des chaînes d'approvisionnement, l'analyse des réseaux sociaux et la prévision du trafic. Par exemple, Service de garde Amazon, le service de détection des menaces AWS natif, utilise un graphique avec des milliards d'arêtes pour améliorer la couverture et la précision de ses informations sur les menaces. Cela permet à GuardDuty de classer les domaines auparavant inconnus comme hautement susceptibles d'être malveillants ou bénins en fonction de leur association à des domaines malveillants connus. En utilisant les réseaux de neurones graphiques (GNN), GuardDuty est en mesure d'améliorer sa capacité à alerter les clients.
Cependant, le développement, le lancement et l'exploitation de solutions de graph ML prennent des mois et nécessitent une expertise en graph ML. Dans un premier temps, un scientifique de graphes ML doit créer un modèle de graphes ML pour un cas d'utilisation donné à l'aide d'un cadre tel que la bibliothèque de graphes profonds (DGL). La formation de tels modèles est difficile en raison de la taille et de la complexité des graphes dans les applications d'entreprise, qui atteignent régulièrement des milliards de nœuds, des centaines de milliards d'arêtes, différents types de nœuds et d'arêtes et des centaines d'attributs de nœuds et d'arêtes. Les graphes d'entreprise peuvent nécessiter des téraoctets de stockage de mémoire, obligeant les scientifiques du ML à créer des pipelines de formation complexes. Enfin, une fois qu'un modèle a été formé, il doit être déployé pour l'inférence, ce qui nécessite des pipelines d'inférence tout aussi difficiles à construire que les pipelines de formation.
GraphStorm 0.1 est une infrastructure de ML de graphes d'entreprise low-code qui permet aux praticiens de ML de choisir facilement des modèles de ML de graphes prédéfinis qui se sont avérés efficaces, d'exécuter une formation distribuée sur des graphes avec des milliards de nœuds et de déployer les modèles en production. GraphStorm propose une collection de modèles ML de graphes intégrés, tels que les réseaux convolutifs de graphes relationnels (RGCN), les réseaux d'attention de graphes relationnels (RGAT) et les transformateurs de graphes hétérogènes (HGT) pour les applications d'entreprise avec des graphes hétérogènes, qui permettent aux ingénieurs ML avec peu graph ML expertise pour essayer différentes solutions modèles pour leur tâche et sélectionner rapidement la bonne. Des pipelines de formation et d'inférence distribués de bout en bout, qui s'adaptent à des graphes d'entreprise à l'échelle d'un milliard, facilitent la formation, le déploiement et l'exécution de l'inférence. Si vous débutez avec GraphStorm ou graph ML en général, vous bénéficierez des modèles et pipelines prédéfinis. Si vous êtes un expert, vous disposez de toutes les options pour ajuster le pipeline de formation et l'architecture du modèle afin d'obtenir les meilleures performances. GraphStorm est construit sur le DGL, un cadre très populaire pour le développement de modèles GNN, et disponible sous forme de code open-source sous la licence Apache v2.0.
« GraphStorm est conçu pour aider les clients à expérimenter et à opérationnaliser les méthodes de graph ML pour les applications industrielles afin d'accélérer l'adoption du graph ML », déclare George Karypis, scientifique principal principal de la recherche Amazon AI/ML. "Depuis sa sortie au sein d'Amazon, GraphStorm a réduit jusqu'à cinq fois l'effort de création de solutions basées sur le graph ML."
« GraphStorm permet à notre équipe de former l'intégration GNN de manière auto-supervisée sur un graphique avec 288 millions de nœuds et 2 milliards d'arêtes », déclare Haining Yu, scientifique appliqué principal chez Amazon Measurement, Ad Tech et Data Science. « Les intégrations GNN pré-entraînées montrent une amélioration de 24 % sur une tâche de prédiction d'activité d'acheteur par rapport à une base de référence basée sur le BERT à la pointe de la technologie ; il dépasse également les performances de référence dans d'autres applications publicitaires.
"Avant GraphStorm, les clients ne pouvaient évoluer verticalement que pour gérer des graphiques de 500 millions d'arêtes", explique Brad Bebee, directeur général d'Amazon Neptune et d'Amazon Timestream. "GraphStorm permet aux clients de mettre à l'échelle la formation du modèle GNN sur des graphiques Amazon Neptune massifs avec des dizaines de milliards d'arêtes."
Architecture technique de GraphStorm
La figure suivante montre l'architecture technique de GraphStorm.
GraphStorm est construit sur PyTorch et peut fonctionner sur un seul GPU, plusieurs GPU et plusieurs machines GPU. Il se compose de trois couches (marquées dans les cases jaunes de la figure précédente) :
- Couche inférieure (Dist GraphEngine) – La couche inférieure fournit les composants de base pour activer le ML de graphes distribués, y compris les graphes distribués, les tenseurs distribués, les intégrations distribuées et les échantillonneurs distribués. GraphStorm fournit des implémentations efficaces de ces composants pour mettre à l'échelle la formation ML de graphes sur des graphes à un milliard de nœuds.
- Couche intermédiaire (formation GS/pipeline d'inférence) – La couche intermédiaire fournit des formateurs, des évaluateurs et des prédicteurs pour simplifier la formation et l'inférence des modèles pour les modèles intégrés et vos modèles personnalisés. Fondamentalement, en utilisant l'API de cette couche, vous pouvez vous concentrer sur le développement du modèle sans vous soucier de la mise à l'échelle de la formation du modèle.
- Couche supérieure (zoo modèle général GS) – La couche supérieure est un zoo modèle avec des modèles GNN et non GNN populaires pour différents types de graphiques. Au moment d'écrire ces lignes, il fournit RGCN, RGAT et HGT pour les graphes hétérogènes et BERTGNN pour les graphes textuels. À l'avenir, nous ajouterons la prise en charge des modèles de graphes temporels tels que TGAT pour les graphes temporels ainsi que TransE et DistMult pour les graphes de connaissances.
Comment utiliser GraphStorm
Après avoir installé GraphStorm, vous n'avez besoin que de trois étapes pour créer et former des modèles GML pour votre application.
Tout d'abord, vous prétraitez vos données (y compris éventuellement votre ingénierie de fonctionnalités personnalisées) et les transformez en un format de tableau requis par GraphStorm. Pour chaque type de nœud, vous définissez un tableau qui répertorie tous les nœuds de ce type et leurs fonctionnalités, en fournissant un ID unique pour chaque nœud. Pour chaque type de tronçon, vous définissez de la même manière une table dans laquelle chaque ligne contient les ID de nœud source et de destination pour un tronçon de ce type (pour plus d'informations, voir Utiliser vos propres données Tutoriel). De plus, vous fournissez un fichier JSON qui décrit la structure globale du graphique.
Deuxièmement, via l'interface de ligne de commande (CLI), vous utilisez la fonction intégrée de GraphStorm construct_graph
composant pour certains traitements de données spécifiques à GraphStorm, qui permet une formation et une inférence distribuées efficaces.
Troisièmement, vous configurez le modèle et la formation dans un fichier YAML (exemple) et, toujours à l'aide de la CLI, appelez l'un des cinq composants intégrés (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) en tant que pipelines de formation pour former le modèle. Cette étape aboutit aux artefacts de modèle entraînés. Pour faire de l'inférence, vous devez répéter les deux premières étapes pour transformer les données d'inférence en un graphique en utilisant le même composant GraphStorm (construct_graph
) comme avant.
Enfin, vous pouvez appeler l'un des cinq composants intégrés, le même que celui utilisé pour la formation du modèle, en tant que pipeline d'inférence pour générer des représentations vectorielles continues ou des résultats de prédiction.
Le flux global est également représenté dans la figure suivante.
Dans la section suivante, nous fournissons un exemple de cas d'utilisation.
Faire des prédictions sur les données brutes de l'OAG
Pour cet article, nous montrons avec quelle facilité GraphStorm peut activer la formation et l'inférence de graphe ML sur un grand ensemble de données brutes. Le Graphique académique ouvert (OAG) contient cinq entités (articles, auteurs, lieux, affiliations et domaine d'étude). L'ensemble de données brutes est stocké dans des fichiers JSON de plus de 500 Go.
Notre tâche est de construire un modèle pour prédire le domaine d'étude d'un article. Pour prédire le domaine d'étude, vous pouvez le formuler comme une tâche de classification multi-étiquettes, mais il est difficile d'utiliser un codage à chaud pour stocker les étiquettes car il existe des centaines de milliers de champs. Par conséquent, vous devez créer des nœuds de domaine d'étude et formuler ce problème sous la forme d'une tâche de prédiction de lien, en prédisant à quel domaine d'étude les nœuds un nœud papier doit se connecter.
Pour modéliser cet ensemble de données avec une méthode graphique, la première étape consiste à traiter l'ensemble de données et à extraire les entités et les arêtes. Vous pouvez extraire cinq types d'arêtes des fichiers JSON pour définir un graphique, illustré dans la figure suivante. Vous pouvez utiliser le notebook Jupyter dans GraphStorm exemple de code pour traiter l'ensemble de données et générer cinq tables d'entités pour chaque type d'entité et cinq tables d'arêtes pour chaque type d'arête. Le bloc-notes Jupyter génère également des intégrations BERT sur les entités avec des données textuelles, telles que des papiers.
Après avoir défini les entités et les arêtes entre les entités, vous pouvez créer mag_bert.json
, qui définit le schéma de graphe, et appelle le pipeline de construction de graphe intégré construct_graph
dans GraphStorm pour construire le graphe (voir le code suivant). Même si le pipeline de construction de graphes GraphStorm s'exécute sur une seule machine, il prend en charge le multitraitement pour traiter les nœuds et les fonctionnalités de bord en parallèle (--num_processes
) et peut stocker des caractéristiques d'entité et de bord sur une mémoire externe (--ext-mem-workspace
) pour s'adapter à de grands ensembles de données.
Pour traiter un graphe aussi volumineux, vous avez besoin d'une instance de CPU à grande mémoire pour construire le graphe. Vous pouvez utiliser un Cloud de calcul élastique Amazon (Amazon EC2) instance r6id.32xlarge (128 vCPU et 1 To de RAM) ou instances r6a.48xlarge (192 vCPU et 1.5 To de RAM) pour construire le graphique OAG.
Après avoir construit un graphique, vous pouvez utiliser gs_link_prediction
pour former un modèle de prédiction de lien sur quatre instances g5.48xlarge. Lorsque vous utilisez les modèles intégrés, vous n'invoquez qu'une seule ligne de commande pour lancer la tâche de formation distribuée. Voir le code suivant :
Après la formation du modèle, l'artefact du modèle est enregistré dans le dossier /data/mag_lp_model
.
Vous pouvez maintenant exécuter l'inférence de prédiction de lien pour générer des représentations incorporées GNN et évaluer les performances du modèle. GraphStorm fournit plusieurs métriques d'évaluation intégrées pour évaluer les performances du modèle. Pour les problèmes de prédiction de lien, par exemple, GraphStorm génère automatiquement le rang réciproque moyen de la métrique (MRR). Le MRR est une mesure précieuse pour évaluer les modèles de prédiction de liens de graphe, car il évalue à quel point les liens réels sont classés parmi les liens prédits. Cela capture la qualité des prédictions, en s'assurant que notre modèle priorise correctement les vraies connexions, ce qui est notre objectif ici.
Vous pouvez exécuter l'inférence avec une seule ligne de commande, comme illustré dans le code suivant. Dans ce cas, le modèle atteint un MRR de 0.31 sur l'ensemble de test du graphe construit.
Notez que le pipeline d'inférence génère des représentations vectorielles continues à partir du modèle de prédiction de lien. Pour résoudre le problème de trouver le domaine d'étude pour un article donné, il suffit d'effectuer une recherche des k plus proches voisins sur les plongements.
Conclusion
GraphStorm est une nouvelle infrastructure de ML de graphes qui facilite la création, l'entraînement et le déploiement de modèles de ML de graphes sur des graphes industriels. Il répond à certains défis clés du graph ML, notamment l'évolutivité et la convivialité. Il fournit des composants intégrés pour traiter des graphes à l'échelle d'un milliard, des données d'entrée brutes à la formation de modèles et à l'inférence de modèles, et a permis à plusieurs équipes Amazon de former des modèles ML de graphes à la pointe de la technologie dans diverses applications. Découvrez notre GitHub référentiel pour plus d'information.
À propos des auteurs
Da Zheng est un scientifique appliqué senior chez AWS AI/ML research qui dirige une équipe d'apprentissage automatique de graphes pour développer des techniques et des cadres pour mettre l'apprentissage automatique de graphes en production. Da a obtenu son doctorat en informatique de l'Université Johns Hopkins.
Florian Saupé est chef de produit technique principal chez AWS AI/ML research, soutenant des équipes scientifiques avancées comme le groupe d'apprentissage automatique des graphes et améliorant des produits comme Amazon DataZone avec des capacités ML. Avant de rejoindre AWS, Florian a dirigé la gestion technique des produits pour la conduite automatisée chez Bosch, a été consultant en stratégie chez McKinsey & Company et a travaillé comme scientifique en systèmes de contrôle/robotique - un domaine dans lequel il est titulaire d'un doctorat.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- Financement EVM. Interface unifiée pour la finance décentralisée. Accéder ici.
- Groupe de médias quantiques. IR/PR amplifié. Accéder ici.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- La source: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :possède
- :est
- $UP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Capable
- A Propos
- académique
- accélérer
- Compte
- précision
- activité
- présenter
- Ad
- ajouter
- ajout
- adresses
- Adoption
- annonces
- Avancée
- affiliations
- Après
- encore
- AI / ML
- Alerte
- algorithmes
- Tous
- permettre
- permet
- aussi
- Amazon
- Amazon EC2
- Amazone Neptune
- Flux temporel d'Amazon
- Amazon Web Services
- -
- parmi
- an
- selon une analyse de l’Université de Princeton
- ainsi que
- Annoncer
- anticipant
- tous
- Apache
- api
- Application
- applications
- appliqué
- architecture
- SONT
- AS
- Association
- At
- précaution
- attributs
- auteurs
- Automatisation
- automatiquement
- disponibles
- AWS
- basé
- Baseline
- Essentiel
- En gros
- BE
- car
- était
- before
- référence
- profiter
- LES MEILLEURS
- jusqu'à XNUMX fois
- Milliards
- milliards
- tous les deux
- Bas et Leggings
- boîtes
- brad
- apporter
- construire
- construit
- intégré
- la performance des entreprises
- mais
- by
- CAN
- capacités
- captures
- Capturer
- maisons
- Chaînes
- globaux
- difficile
- vérifier
- classification
- code
- collection
- COM
- Communautés
- Société
- complexe
- complexité
- composant
- composants électriques
- calcul
- ordinateur
- Informatique
- NOUS CONTACTER
- Connexions
- consiste
- construire
- la construction
- construction
- consultant
- contient
- des bactéries
- pourriez
- couverture
- engendrent
- Customiser
- des clients
- Clients
- da
- données
- informatique
- science des données
- ensembles de données
- jours
- profond
- Définit
- définir
- démontrer
- déployer
- déployé
- un
- destination
- Détection
- développer
- développement
- Développement
- aimer
- différent
- difficile
- directement
- distribué
- formation distribuée
- do
- Ne fait pas
- domaines
- des dizaines
- conduite
- deux
- chacun
- même
- Easy
- Edge
- Efficace
- efficace
- effort
- intégré
- enrobage
- économies émergentes.
- permettre
- activé
- permet
- end-to-end
- ENGINEERING
- Les ingénieurs
- de renforcer
- Entreprise
- entités
- entité
- évaluer
- évaluer
- évaluation
- Pourtant, la
- exemple
- dépasse
- excité
- expérience
- expert
- nous a permis de concevoir
- externe
- extrait
- Fonctionnalité
- Fonctionnalités:
- champ
- Des champs
- Figure
- Déposez votre dernière attestation
- Fichiers
- finalement
- trouver
- Prénom
- flux
- Focus
- Abonnement
- Pour
- le format
- quatre
- Framework
- cadres
- fraude
- détection de fraude
- De
- avenir
- Général
- générer
- génère
- George
- obtenez
- GitHub
- donné
- GM
- GPU
- GPU
- graphique
- graphiques
- Réservation de groupe
- manipuler
- Dur
- Vous avez
- he
- vous aider
- ici
- Haute
- très
- sa
- détient
- Comment
- How High
- How To
- http
- HTTPS
- Des centaines
- ID
- ids
- if
- important
- améliorer
- amélioration
- l'amélioration de
- in
- Dans d'autres
- Y compris
- industrie
- d'information
- intrinsèquement
- contribution
- installer
- instance
- plutôt ;
- Intelligence
- interactions
- Interfaces
- intérieurement
- développement
- Introduction
- IT
- SES
- Emploi
- Johns Hopkins University
- joindre
- jpg
- json
- juste
- ACTIVITES
- spécialisées
- connu
- Etiquettes
- gros
- grande échelle
- lancer
- lancement
- couche
- poules pondeuses
- conduire
- conduisant
- APPRENTISSAGE
- apprentissage
- Bibliothèque
- Licence
- comme
- Probable
- Gamme
- LINK
- Gauche
- Liste
- peu
- click
- machine learning
- Les machines
- Mai
- a prendre une
- FAIT DU
- Fabrication
- gestion
- manager
- manière
- de nombreuses
- marqué
- massif
- McKinsey
- McKinsey & Compagnie
- signifier
- mesures
- Mémoire
- méthode
- méthodes
- métrique
- Métrique
- Milieu
- million
- ML
- modèle
- numériques jumeaux (digital twin models)
- mois
- PLUS
- (en fait, presque toutes)
- plusieurs
- indigène
- Besoin
- Neptune
- réseau et
- réseaux
- les réseaux de neurones
- Nouveauté
- nœud
- nœuds
- cahier
- maintenant
- objectif
- of
- Offres Speciales
- on
- ONE
- uniquement
- open source
- code open-source
- d'exploitation
- l'optimisation
- Options
- or
- Autre
- nos
- ande
- plus de
- global
- propre
- Papier
- papiers
- Parallèle
- Effectuer
- performant
- en particulier pendant la préparation
- pipeline
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Populaire
- Post
- l'éventualité
- prévoir
- prédit
- prévoir
- prédiction
- Prédictions
- préférences
- précédemment
- Directeur
- Problème
- d'ouvrabilité
- processus
- traitement
- Produit
- gestion des produits
- chef de produit
- Vidéo
- Produits
- proven
- fournir
- fournit
- aportando
- mettre
- pytorch
- qualité
- vite.
- RAM
- classé
- raw
- nous joindre
- atteint
- monde réel
- recommandations
- Prix Réduit
- Les relations
- libérer
- répéter
- exigent
- conditions
- a besoin
- un article
- Résultats
- bon
- risques
- régulièrement
- RANGÉE
- Courir
- même
- dit
- Évolutivité
- Escaliers intérieurs
- scénarios
- Sciences
- Scientifique
- scientifiques
- Rechercher
- Section
- sur le lien
- supérieur
- service
- Services
- set
- devrait
- montrer
- montré
- Spectacles
- De même
- simplifier
- simplement
- unique
- Taille
- Réseaux sociaux
- réseaux sociaux
- Solutions
- RÉSOUDRE
- quelques
- Identifier
- state-of-the-art
- étapes
- Étapes
- storage
- Boutique
- stockée
- de Marketing
- structure
- Étude
- tel
- la quantité
- Des chaînes d'approvisionnement
- Support
- Appuyer
- Les soutiens
- table
- Prenez
- prend
- Tâche
- équipe
- équipes
- technologie
- Technique
- techniques
- dizaines
- tester
- qui
- La
- El futuro
- Le graphique
- La Source
- leur
- Là.
- donc
- Ces
- l'ont
- penser
- this
- bien que?
- milliers
- menace
- trois
- fois
- à
- les outils
- top
- circulation
- Train
- qualifié
- Formation
- transaction
- Transformer
- transformateur
- oui
- Essai
- deux
- type
- types
- sous
- expérience unique et authentique
- université
- convivialité
- utilisé
- cas d'utilisation
- d'utiliser
- Usages
- en utilisant
- Précieux
- divers
- lieux
- verticalement
- via
- Visiter
- était
- Façon..
- we
- web
- services Web
- WELL
- quand
- qui
- largement
- sera
- comprenant
- sans
- travaillé
- écriture
- yaml
- Vous n'avez
- Votre
- zéphyrnet
- ZOO