Siamo lieti di annunciare il rilascio open source di GraphStorm 0.1, un framework di apprendimento automatico (ML) grafico aziendale a basso codice per creare, addestrare e distribuire soluzioni ML grafico su grafici complessi su scala aziendale in giorni anziché mesi. Con GraphStorm, puoi creare soluzioni che tengono direttamente conto della struttura delle relazioni o delle interazioni tra miliardi di entità, che sono intrinsecamente incorporate nella maggior parte dei dati del mondo reale, inclusi scenari di rilevamento delle frodi, raccomandazioni, rilevamento della comunità e problemi di ricerca/recupero.
Fino ad ora, è stato notoriamente difficile creare, addestrare e distribuire soluzioni di ML grafico per grafici aziendali complessi che hanno facilmente miliardi di nodi, centinaia di miliardi di bordi e dozzine di attributi: basti pensare a un grafico che cattura i prodotti Amazon.com , attributi del prodotto, clienti e altro ancora. Con GraphStorm, rilasciamo gli strumenti che Amazon utilizza internamente per portare in produzione soluzioni di ML grafico su larga scala. GraphStorm non richiede che tu sia un esperto di graph ML ed è disponibile con licenza Apache v2.0 su GitHub. Per saperne di più su GraphStorm, visita il Repository GitHub.
In questo post, forniamo un'introduzione a GraphStorm, alla sua architettura e un caso d'uso di esempio su come usarlo.
Ti presentiamo GraphStorm
Gli algoritmi e il graph ML stanno emergendo come soluzioni all'avanguardia per molti importanti problemi aziendali come la previsione dei rischi delle transazioni, l'anticipazione delle preferenze dei clienti, il rilevamento delle intrusioni, l'ottimizzazione delle supply chain, l'analisi dei social network e la previsione del traffico. Per esempio, Amazon Guard Duty, il servizio di rilevamento delle minacce nativo di AWS, utilizza un grafico con miliardi di bordi per migliorare la copertura e l'accuratezza della sua intelligence sulle minacce. Ciò consente a GuardDuty di classificare domini mai visti prima come molto probabilmente dannosi o benigni in base alla loro associazione a domini dannosi noti. Utilizzando Graph Neural Networks (GNN), GuardDuty è in grado di migliorare la sua capacità di avvisare i clienti.
Tuttavia, lo sviluppo, il lancio e il funzionamento di soluzioni di graph ML richiedono mesi e richiedono competenze di graph ML. Come primo passo, uno scienziato di ML grafico deve costruire un modello di ML grafico per un determinato caso d'uso utilizzando un framework come Deep Graph Library (DGL). L'addestramento di tali modelli è impegnativo a causa delle dimensioni e della complessità dei grafici nelle applicazioni aziendali, che raggiungono regolarmente miliardi di nodi, centinaia di miliardi di bordi, diversi tipi di nodi e bordi e centinaia di attributi di nodi e bordi. I grafici aziendali possono richiedere terabyte di storage di memoria, richiedendo agli scienziati di ML grafico di creare pipeline di addestramento complesse. Infine, dopo che un modello è stato addestrato, devono essere distribuiti per l'inferenza, il che richiede pipeline di inferenza altrettanto difficili da costruire quanto le pipeline di addestramento.
GraphStorm 0.1 è un framework ML aziendale a basso codice che consente ai professionisti ML di scegliere facilmente modelli ML grafici predefiniti che si sono dimostrati efficaci, eseguire training distribuito su grafici con miliardi di nodi e distribuire i modelli in produzione. GraphStorm offre una raccolta di modelli ML di grafici integrati, come Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT) e Heterogeneous Graph Transformer (HGT) per applicazioni aziendali con grafi eterogenei, che consentono agli ingegneri ML con poco sfrutta l'esperienza di ML per provare diverse soluzioni modello per il loro compito e selezionare rapidamente quella giusta. Le pipeline di formazione e inferenza distribuite end-to-end, che si adattano a grafici aziendali su scala miliardaria, semplificano l'addestramento, la distribuzione e l'esecuzione dell'inferenza. Se sei un principiante di GraphStorm o di Graph ML in generale, beneficerai dei modelli e delle pipeline predefiniti. Se sei un esperto, hai tutte le opzioni per ottimizzare la pipeline di addestramento e l'architettura del modello per ottenere le migliori prestazioni. GraphStorm è basato su DGL, un framework molto popolare per lo sviluppo di modelli GNN e disponibile come codice open source con licenza Apache v2.0.
"GraphStorm è progettato per aiutare i clienti a sperimentare e rendere operativi i metodi di ML grafico per le applicazioni del settore per accelerare l'adozione del ML grafico", afferma George Karypis, Senior Principal Scientist nella ricerca Amazon AI/ML. "Dal suo rilascio all'interno di Amazon, GraphStorm ha ridotto fino a cinque volte lo sforzo per creare soluzioni basate su Graph ML."
"GraphStorm consente al nostro team di addestrare l'incorporamento GNN in modo auto-supervisionato su un grafico con 288 milioni di nodi e 2 miliardi di bordi", afferma Haining Yu, Principal Applied Scientist presso Amazon Measurement, Ad Tech e Data Science. “Gli incorporamenti GNN pre-addestrati mostrano un miglioramento del 24% su un'attività di previsione dell'attività dell'acquirente rispetto a una linea di base basata su BERT allo stato dell'arte; supera anche le prestazioni del benchmark in altre applicazioni pubblicitarie.
"Prima di GraphStorm, i clienti potevano scalare solo verticalmente per gestire grafici di 500 milioni di bordi", afferma Brad Bebee, GM di Amazon Neptune e Amazon Timestream. "GraphStorm consente ai clienti di ridimensionare l'addestramento del modello GNN su enormi grafici di Amazon Neptune con decine di miliardi di bordi".
Architettura tecnica GraphStorm
La figura seguente mostra l'architettura tecnica di GraphStorm.
GraphStorm è basato su PyTorch e può essere eseguito su una singola GPU, più GPU e più macchine GPU. Consiste di tre strati (contrassegnati nelle caselle gialle nella figura precedente):
- Livello inferiore (Dist GraphEngine) – Il livello inferiore fornisce i componenti di base per abilitare il machine learning a grafi distribuiti, inclusi grafi distribuiti, tensori distribuiti, incorporamenti distribuiti e campionatori distribuiti. GraphStorm fornisce implementazioni efficienti di questi componenti per ridimensionare l'addestramento di ML su grafici a grafici con miliardi di nodi.
- Livello intermedio (pipeline di addestramento/inferenza GS) – Il livello intermedio fornisce trainer, valutatori e predittori per semplificare l'addestramento e l'inferenza del modello sia per i modelli integrati che per i modelli personalizzati. Fondamentalmente, utilizzando l'API di questo livello, puoi concentrarti sullo sviluppo del modello senza preoccuparti di come ridimensionare l'addestramento del modello.
- Strato superiore (zoo modello generale GS) – Il livello superiore è uno zoo modello con modelli GNN e non GNN popolari per diversi tipi di grafici. Al momento della stesura di questo documento, fornisce RGCN, RGAT e HGT per i grafici eterogenei e BERTGNN per i grafici testuali. In futuro, aggiungeremo il supporto per i modelli di grafi temporali come TGAT per i grafi temporali e TransE e DistMult per i grafi della conoscenza.
Come usare GraphStorm
Dopo aver installato GraphStorm, sono necessari solo tre passaggi per creare e addestrare modelli GML per la tua applicazione.
Innanzitutto, preelabori i tuoi dati (potenzialmente includendo la progettazione delle funzionalità personalizzate) e li trasformi in un formato di tabella richiesto da GraphStorm. Per ogni tipo di nodo, definisci una tabella che elenca tutti i nodi di quel tipo e le loro caratteristiche, fornendo un ID univoco per ogni nodo. Per ogni tipo di bordo, si definisce in modo simile una tabella in cui ogni riga contiene gli ID del nodo di origine e di destinazione per un bordo di quel tipo (per ulteriori informazioni, vedere Usa il tuo tutorial sui dati). Inoltre, fornisci un file JSON che descrive la struttura complessiva del grafico.
In secondo luogo, tramite l'interfaccia della riga di comando (CLI), si utilizza il built-in di GraphStorm construct_graph
componente per l'elaborazione dei dati specifici di GraphStorm, che consente un addestramento e un'inferenza distribuiti efficienti.
In terzo luogo, si configura il modello e l'addestramento in un file YAML (esempio) e, sempre utilizzando la CLI, richiamare uno dei cinque componenti integrati (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) come pipeline di training per addestrare il modello. Questo passaggio determina gli artefatti del modello addestrato. Per eseguire l'inferenza, è necessario ripetere i primi due passaggi per trasformare i dati dell'inferenza in un grafico utilizzando lo stesso componente GraphStorm (construct_graph
) come prima.
Infine, puoi richiamare uno dei cinque componenti predefiniti, lo stesso utilizzato per l'addestramento del modello, come pipeline di inferenza per generare incorporamenti o risultati di previsione.
Il flusso complessivo è illustrato anche nella figura seguente.
Nella sezione seguente, forniamo un esempio di caso d'uso.
Fai previsioni su dati grezzi OAG
Per questo post, dimostriamo con quanta facilità GraphStorm può abilitare l'addestramento e l'inferenza di graph ML su un grande set di dati non elaborati. IL Grafico accademico aperto (OAG) contiene cinque entità (articoli, autori, sedi, affiliazioni e campo di studio). Il set di dati non elaborato viene archiviato in file JSON con oltre 500 GB.
Il nostro compito è costruire un modello per prevedere il campo di studio di un articolo. Per prevedere il campo di studio, puoi formularlo come un'attività di classificazione multi-etichetta, ma è difficile utilizzare la codifica one-hot per archiviare le etichette perché ci sono centinaia di migliaia di campi. Pertanto, è necessario creare nodi del campo di studio e formulare questo problema come un'attività di previsione del collegamento, prevedendo a quali nodi del campo di studio dovrebbe connettersi un nodo cartaceo.
Per modellare questo set di dati con un metodo grafico, il primo passo è elaborare il set di dati ed estrarre entità e bordi. È possibile estrarre cinque tipi di spigoli dai file JSON per definire un grafico, mostrato nella figura seguente. Puoi utilizzare il notebook Jupyter in GraphStorm codice di esempio per elaborare il set di dati e generare cinque tabelle entità per ogni tipo di entità e cinque tabelle edge per ogni tipo edge. Il notebook Jupyter genera anche incorporamenti BERT sulle entità con dati di testo, come i documenti.
Dopo aver definito le entità e i bordi tra le entità, puoi creare mag_bert.json
, che definisce lo schema del grafico e richiama la pipeline di costruzione del grafico incorporata construct_graph
in GraphStorm per creare il grafico (vedere il codice seguente). Anche se la pipeline di costruzione di grafici GraphStorm viene eseguita su un'unica macchina, supporta l'elaborazione multipla per elaborare in parallelo nodi e feature edge (--num_processes
) e può archiviare le entità e le caratteristiche del bordo su una memoria esterna (--ext-mem-workspace
) per adattarsi a set di dati di grandi dimensioni.
Per elaborare un grafico così grande, è necessaria un'istanza CPU con memoria di grandi dimensioni per costruire il grafico. Puoi usare un Cloud di calcolo elastico di Amazon (Amazon EC2) r6id.32xlarge (128 vCPU e 1 TB di RAM) o istanze r6a.48xlarge (192 vCPU e 1.5 TB di RAM) per costruire il grafico OAG.
Dopo aver costruito un grafico, puoi usare gs_link_prediction
per addestrare un modello di previsione dei collegamenti su quattro istanze g5.48xlarge. Quando si utilizzano i modelli integrati, si richiama solo una riga di comando per avviare il processo di formazione distribuito. Vedere il seguente codice:
Dopo l'addestramento del modello, l'artefatto del modello viene salvato nella cartella /data/mag_lp_model
.
Ora puoi eseguire l'inferenza della previsione dei collegamenti per generare incorporamenti GNN e valutare le prestazioni del modello. GraphStorm fornisce più metriche di valutazione integrate per valutare le prestazioni del modello. Per i problemi di previsione dei collegamenti, ad esempio, GraphStorm restituisce automaticamente il rango reciproco medio della metrica (MRR). L'MRR è una metrica preziosa per la valutazione dei modelli di previsione dei collegamenti grafici perché valuta quanto in alto i collegamenti effettivi sono classificati tra i collegamenti previsti. Questo cattura la qualità delle previsioni, assicurandosi che il nostro modello dia correttamente la priorità alle connessioni reali, che è il nostro obiettivo qui.
È possibile eseguire l'inferenza con una riga di comando, come illustrato nel codice seguente. In questo caso, il modello raggiunge un MRR di 0.31 sul set di test del grafo costruito.
Si noti che la pipeline di inferenza genera incorporamenti dal modello di previsione del collegamento. Per risolvere il problema di trovare il campo di studio per un dato articolo, è sufficiente eseguire una ricerca k-vicino più vicino sugli incorporamenti.
Conclusione
GraphStorm è un nuovo framework di Graph ML che semplifica la creazione, il training e la distribuzione di modelli di Graph ML su grafici di settore. Affronta alcune sfide chiave nel graph ML, tra cui scalabilità e usabilità. Fornisce componenti integrati per elaborare grafici su scala miliardaria dai dati di input grezzi all'addestramento del modello e all'inferenza del modello e ha consentito a più team Amazon di addestrare modelli ML di grafici all'avanguardia in varie applicazioni. Dai un'occhiata al nostro Repository GitHub per maggiori informazioni.
Informazioni sugli autori
DaZheng è uno scienziato applicato senior presso la ricerca AI/ML di AWS che guida un team di machine learning grafico per sviluppare tecniche e framework per mettere in produzione l'apprendimento automatico grafico. Da ha conseguito il dottorato in informatica presso la Johns Hopkins University.
Florian Saupe è Principal Technical Product Manager presso la ricerca AI/ML di AWS che supporta team scientifici avanzati come il gruppo di apprendimento automatico grafico e migliora prodotti come Amazon DataZone con funzionalità ML. Prima di entrare in AWS, Florian è stato responsabile della gestione tecnica dei prodotti per la guida automatizzata presso Bosch, è stato consulente strategico presso McKinsey & Company e ha lavorato come scienziato di sistemi di controllo/robotica, un campo in cui detiene un dottorato di ricerca.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- EVM Finance. Interfaccia unificata per la finanza decentralizzata. Accedi qui.
- Quantum Media Group. IR/PR amplificato. Accedi qui.
- PlatoAiStream. Intelligenza dei dati Web3. Conoscenza amplificata. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :ha
- :È
- $ SU
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- capace
- WRI
- accademico
- accelerare
- Il mio account
- precisione
- attività
- presenti
- Ad
- aggiungere
- aggiunta
- indirizzi
- Adozione
- Ads - Annunci
- Avanzate
- affiliazioni
- Dopo shavasana, sedersi in silenzio; saluti;
- ancora
- AI / ML
- Mettere in guardia
- Algoritmi
- Tutti
- consentire
- consente
- anche
- Amazon
- Amazon EC2
- Amazon Nettuno
- Amazon Timestream
- Amazon Web Services
- Amazon.com
- tra
- an
- .
- ed
- Annunciare
- anticipando
- in qualsiasi
- Apache
- api
- Applicazioni
- applicazioni
- applicato
- architettura
- SONO
- AS
- Associazione
- At
- attenzione
- gli attributi
- gli autori
- Automatizzata
- automaticamente
- disponibile
- AWS
- basato
- Linea di base
- basic
- fondamentalmente
- BE
- perché
- stato
- prima
- Segno di riferimento
- beneficio
- MIGLIORE
- fra
- Miliardo
- miliardi
- entrambi
- Parte inferiore
- scatole
- brad
- portare
- costruire
- costruito
- incassato
- affari
- ma
- by
- Materiale
- funzionalità
- cattura
- Catturare
- Custodie
- Catene
- sfide
- impegnativo
- dai un'occhiata
- classificazione
- codice
- collezione
- COM
- comunità
- azienda
- complesso
- complessità
- componente
- componenti
- Calcolare
- computer
- Informatica
- Connettiti
- Connessioni
- consiste
- costruire
- costruire
- costruzione
- consulente
- contiene
- di controllo
- potuto
- copertura
- creare
- costume
- cliente
- Clienti
- da
- dati
- elaborazione dati
- scienza dei dati
- dataset
- Giorni
- deep
- definisce
- definizione
- dimostrare
- schierare
- schierato
- progettato
- destinazione
- rivelazione
- sviluppare
- in via di sviluppo
- Mercato
- Piace
- diverso
- difficile
- direttamente
- distribuito
- formazione distribuita
- do
- non
- domini
- decine
- guida
- dovuto
- ogni
- facilmente
- facile
- bordo
- Efficace
- efficiente
- sforzo
- incorporato
- incorporamento
- emergenti del mondo
- enable
- abilitato
- Abilita
- da un capo all'altro
- Ingegneria
- Ingegneri
- accrescere
- Impresa
- entità
- entità
- valutare
- la valutazione
- valutazione
- Anche
- esempio
- supera
- eccitato
- esperimento
- esperto
- competenza
- esterno
- estratto
- caratteristica
- Caratteristiche
- campo
- campi
- figura
- Compila il
- File
- Infine
- ricerca
- Nome
- flusso
- Focus
- i seguenti
- Nel
- formato
- quattro
- Contesto
- quadri
- frode
- rilevazione di frodi
- da
- futuro
- Generale
- generare
- genera
- George
- ottenere
- GitHub
- dato
- GM
- GPU
- GPU
- grafico
- grafici
- Gruppo
- maniglia
- Hard
- Avere
- he
- Aiuto
- qui
- Alta
- vivamente
- il suo
- detiene
- Come
- Quanto alto
- Tutorial
- http
- HTTPS
- centinaia
- ID
- ids
- if
- importante
- competenze
- miglioramento
- miglioramento
- in
- In altre
- Compreso
- industria
- informazioni
- intrinsecamente
- ingresso
- installazione
- esempio
- invece
- Intelligence
- interazioni
- Interfaccia
- internamente
- ai miglioramenti
- Introduzione
- IT
- SUO
- Lavoro
- Johns Hopkins University
- accoppiamento
- jpg
- json
- ad appena
- Le
- conoscenze
- conosciuto
- per il tuo brand
- grandi
- larga scala
- lanciare
- lancio
- strato
- galline ovaiole
- portare
- principale
- IMPARARE
- apprendimento
- Biblioteca
- Licenza
- piace
- probabile
- linea
- LINK
- Collegamento
- elenchi
- piccolo
- macchina
- machine learning
- macchine
- Mag
- make
- FA
- Fare
- gestione
- direttore
- modo
- molti
- segnato
- massiccio
- McKinsey
- McKinsey & Company
- significare
- Memorie
- metodo
- metodi
- metrico
- Metrica
- In mezzo
- milione
- ML
- modello
- modelli
- mese
- Scopri di più
- maggior parte
- multiplo
- nativo
- Bisogno
- Nettuno
- Rete
- reti
- reti neurali
- New
- nodo
- nodi
- taccuino
- adesso
- obiettivo
- of
- Offerte
- on
- ONE
- esclusivamente
- open source
- codice open source
- operativo
- ottimizzazione
- Opzioni
- or
- Altro
- nostro
- su
- ancora
- complessivo
- proprio
- Carta
- documenti
- Parallel
- Eseguire
- performance
- scegliere
- conduttura
- Platone
- Platone Data Intelligence
- PlatoneDati
- Popolare
- Post
- potenzialmente
- predire
- previsto
- previsione
- predizione
- Previsioni
- preferenze
- in precedenza
- Direttore
- Problema
- problemi
- processi
- lavorazione
- Prodotto
- gestione del prodotto
- product manager
- Produzione
- Prodotti
- comprovata
- fornire
- fornisce
- fornitura
- metti
- pytorch
- qualità
- rapidamente
- RAM
- classificato
- Crudo
- raggiungere
- raggiunge
- mondo reale
- raccomandazioni
- Ridotto
- Relazioni
- rilasciare
- ripetere
- richiedere
- necessario
- richiede
- riparazioni
- Risultati
- destra
- rischi
- di routine
- RIGA
- Correre
- stesso
- dice
- Scalabilità
- Scala
- Scenari
- Scienze
- Scienziato
- scienziati
- Cerca
- Sezione
- vedere
- anziano
- servizio
- Servizi
- set
- dovrebbero
- mostrare attraverso le sue creazioni
- mostrato
- Spettacoli
- Allo stesso modo
- semplificare
- semplicemente
- singolo
- Taglia
- Social
- social network
- Soluzioni
- RISOLVERE
- alcuni
- Fonte
- state-of-the-art
- step
- Passi
- conservazione
- Tornare al suo account
- memorizzati
- Strategia
- La struttura
- Studio
- tale
- fornire
- Catene di fornitura
- supporto
- Supporto
- supporti
- tavolo
- Fai
- prende
- Task
- team
- le squadre
- Tech
- Consulenza
- tecniche
- decine
- test
- che
- Il
- Il futuro
- Il grafo
- L’ORIGINE
- loro
- Là.
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- di
- think
- questo
- anche se?
- migliaia
- minaccia
- tre
- volte
- a
- strumenti
- top
- traffico
- Treni
- allenato
- Training
- delle transazioni
- Trasformare
- trasformatore
- vero
- prova
- seconda
- Digitare
- Tipi di
- per
- unico
- Università
- usabilità
- uso
- caso d'uso
- utilizzato
- usa
- utilizzando
- Prezioso
- vario
- sedi
- verticalmente
- via
- Visita
- Prima
- Modo..
- we
- sito web
- servizi web
- WELL
- quando
- quale
- ampiamente
- volere
- con
- senza
- lavorato
- scrittura
- YAML
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro
- ZOO