Suntem încântați să anunțăm lansarea open-source a GraphStorm 0.1, un cadru de învățare automată a graficelor de întreprindere (ML) cu cod redus pentru a construi, antrena și implementa soluții de ML pentru grafice pe grafice complexe la scară de întreprindere în zile și nu în luni. Cu GraphStorm, puteți construi soluții care iau în considerare în mod direct structura relațiilor sau interacțiunilor dintre miliarde de entități, care sunt încorporate în mod inerent în majoritatea datelor din lumea reală, inclusiv scenarii de detectare a fraudei, recomandări, detectarea comunității și problemele de căutare/recuperare.
Până acum, a fost notoriu de greu să construiești, să antrenezi și să implementezi soluții de ML pentru grafice pentru grafice complexe de întreprindere care au cu ușurință miliarde de noduri, sute de miliarde de margini și zeci de atribute - doar gândește-te la un grafic care captează produsele Amazon.com , atributele produsului, clienții și multe altele. Cu GraphStorm, lansăm instrumentele pe care Amazon le folosește intern pentru a aduce în producție soluții ML pentru grafice la scară largă. GraphStorm nu necesită să fii un expert în graficul ML și este disponibil sub licența Apache v2.0 pe GitHub. Pentru a afla mai multe despre GraphStorm, vizitați GitHub depozit.
În această postare, oferim o introducere în GraphStorm, arhitectura sa și un exemplu de caz de utilizare al modului de utilizare.
Vă prezentăm GraphStorm
Algoritmii grafici și ML grafic apar ca soluții de ultimă generație pentru multe probleme importante de afaceri, cum ar fi predicția riscurilor tranzacțiilor, anticiparea preferințelor clienților, detectarea intruziunilor, optimizarea lanțurilor de aprovizionare, analiza rețelelor sociale și predicția traficului. De exemplu, Serviciul de gardă Amazon, serviciul nativ de detectare a amenințărilor AWS, folosește un grafic cu miliarde de margini pentru a îmbunătăți acoperirea și acuratețea informațiilor sale despre amenințări. Acest lucru permite GuardDuty să clasifice domeniile nevăzute anterior ca fiind foarte probabil să fie rău intenționate sau benigne, pe baza asocierii lor cu domeniile rău intenționate cunoscute. Prin utilizarea rețelelor neuronale grafice (GNN), GuardDuty își poate îmbunătăți capacitatea de a alerta clienții.
Cu toate acestea, dezvoltarea, lansarea și operarea soluțiilor graph ML durează luni și necesită experiență graph ML. Ca prim pas, un om de știință ML grafic trebuie să construiască un model ML grafic pentru un anumit caz de utilizare folosind un cadru precum Biblioteca Deep Graph (DGL). Antrenarea unor astfel de modele este o provocare din cauza dimensiunii și complexității graficelor din aplicațiile de întreprindere, care ajung în mod obișnuit la miliarde de noduri, sute de miliarde de muchii, diferite tipuri de noduri și margini și sute de atribute de noduri și margini. Graficele de întreprindere pot necesita terabytes de memorie de stocare, necesitând oamenilor de știință ML graph să construiască conducte complexe de antrenament. În cele din urmă, după ce un model a fost antrenat, ele trebuie să fie implementate pentru inferență, ceea ce necesită conducte de inferență care sunt la fel de greu de construit ca și conductele de antrenament.
GraphStorm 0.1 este un cadru ML pentru grafice de întreprindere low-code care permite practicienilor ML să aleagă cu ușurință modele ML grafice predefinite care s-au dovedit a fi eficiente, să efectueze instruire distribuită pe grafice cu miliarde de noduri și să implementeze modelele în producție. GraphStorm oferă o colecție de modele ML de grafice încorporate, cum ar fi rețelele convoluționale de grafice relaționale (RGCN), rețelele de atenție grafice relaționale (RGAT) și transformatorul grafic eterogene (HGT) pentru aplicații de întreprindere cu grafice eterogene, care permit inginerilor ML cu puține graficați expertiza ML pentru a încerca diferite soluții de model pentru sarcina lor și pentru a o selecta rapid pe cea potrivită. Conductele de instruire și inferențe distribuite de la capăt la capăt, care se scalează la grafice de întreprindere la scară de miliarde, facilitează antrenarea, implementarea și executarea inferenței. Dacă sunteți nou la GraphStorm sau la graph ML în general, veți beneficia de modelele și conductele predefinite. Dacă sunteți un expert, aveți toate opțiunile pentru a regla conducta de antrenament și arhitectura modelului pentru a obține cea mai bună performanță. GraphStorm este construit pe baza DGL, un cadru foarte popular pentru dezvoltarea modelelor GNN și disponibil ca cod open-source sub licența Apache v2.0.
„GraphStorm este conceput pentru a ajuta clienții să experimenteze și să operaționalizeze metodele ML graph pentru aplicațiile din industrie pentru a accelera adoptarea ML graph”, spune George Karypis, cercetător principal principal în cercetarea Amazon AI/ML. „De la lansarea sa în Amazon, GraphStorm a redus efortul de a construi soluții bazate pe grafice ML de până la cinci ori.”
„GraphStorm permite echipei noastre să antreneze încorporarea GNN într-o manieră auto-supravegheată pe un grafic cu 288 de milioane de noduri și 2 miliarde de margini”, spune Haining Yu, cercetător principal aplicat la Amazon Measurement, Ad Tech și Data Science. „Înglobările GNN pre-antrenate arată o îmbunătățire cu 24% a sarcinii de predicție a activității cumpărătorilor față de o linie de bază de ultimă generație bazată pe BERT; depășește, de asemenea, performanța de referință în alte aplicații publicitare.”
„Înainte de GraphStorm, clienții puteau scala doar vertical pentru a gestiona grafice cu 500 de milioane de margini”, spune Brad Bebee, director general pentru Amazon Neptune și Amazon Timestream. „GraphStorm le permite clienților să scaleze antrenamentul modelului GNN pe grafice masive Amazon Neptune cu zeci de miliarde de margini.”
Arhitectura tehnică GraphStorm
Următoarea figură prezintă arhitectura tehnică a GraphStorm.
GraphStorm este construit pe PyTorch și poate rula pe un singur GPU, mai multe GPU-uri și mai multe mașini GPU. Este format din trei straturi (marcate în casetele galbene din figura anterioară):
- Stratul inferior (Dist GraphEngine) – Stratul inferior oferă componentele de bază pentru a activa graficul distribuit ML, inclusiv grafice distribuite, tensori distribuiți, înglobări distribuite și eșantionare distribuite. GraphStorm oferă implementări eficiente ale acestor componente pentru a scala antrenamentul ML pentru grafice la grafice cu miliarde de noduri.
- Stratul mijlociu (conducta de antrenament/inferență GS) – Stratul de mijloc oferă formatori, evaluatori și predictori pentru a simplifica antrenamentul și inferența modelului atât pentru modelele încorporate, cât și pentru modelele dvs. personalizate. Practic, folosind API-ul acestui strat, vă puteți concentra asupra dezvoltării modelului fără să vă faceți griji despre cum să scalați antrenamentul modelului.
- Strat superior (GS general model zoo) – Stratul superior este un model de grădină zoologică cu modele populare GNN și non-GNN pentru diferite tipuri de grafice. În momentul scrierii acestui articol, oferă RGCN, RGAT și HGT pentru graficele eterogene și BERTGNN pentru graficele textuale. În viitor, vom adăuga suport pentru modelele de grafice temporale, cum ar fi TGAT pentru graficele temporale, precum și TransE și DistMult pentru graficele de cunoștințe.
Cum se utilizează GraphStorm
După instalarea GraphStorm, aveți nevoie doar de trei pași pentru a construi și a antrena modele GML pentru aplicația dvs.
În primul rând, vă preprocesați datele (incluzând potențial caracteristicile personalizate) și le transformați într-un format de tabel cerut de GraphStorm. Pentru fiecare tip de nod, definiți un tabel care listează toate nodurile de acel tip și caracteristicile acestora, oferind un ID unic pentru fiecare nod. Pentru fiecare tip de margine, definiți în mod similar un tabel în care fiecare rând conține ID-urile nodului sursă și destinație pentru o margine de acel tip (pentru mai multe informații, consultați Utilizați propriul dvs. tutorial de date). În plus, furnizați un fișier JSON care descrie structura generală a graficului.
În al doilea rând, prin interfața de linie de comandă (CLI), utilizați GraphStorm încorporat construct_graph
componentă pentru unele procesări de date specifice GraphStorm, care permite instruire și inferență distribuite eficiente.
În al treilea rând, configurați modelul și antrenamentul într-un fișier YAML (exemplu) și, folosind din nou CLI, invocați una dintre cele cinci componente încorporate (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) ca conducte de antrenament pentru a antrena modelul. Acest pas are ca rezultat artefactele modelului antrenate. Pentru a face inferență, trebuie să repetați primii doi pași pentru a transforma datele de inferență într-un grafic folosind aceeași componentă GraphStorm (construct_graph
) Ca înainte.
În cele din urmă, puteți invoca una dintre cele cinci componente încorporate, aceeași care a fost folosită pentru antrenamentul modelului, ca o conductă de inferență pentru a genera încorporare sau rezultate de predicție.
Debitul general este, de asemenea, descris în figura următoare.
În secțiunea următoare, oferim un exemplu de caz de utilizare.
Faceți predicții cu privire la datele brute OAG
Pentru această postare, demonstrăm cât de ușor poate GraphStorm să activeze antrenamentul grafic ML și inferența pe un set mare de date brute. The Deschide graficul academic (OAG) conține cinci entități (lucrări, autori, locații, afilieri și domeniu de studiu). Setul de date brute este stocat în fișiere JSON cu peste 500 GB.
Sarcina noastră este să construim un model care să prezică domeniul de studiu al unei lucrări. Pentru a prezice domeniul de studiu, îl puteți formula ca o sarcină de clasificare cu mai multe etichete, dar este dificil să utilizați codificarea one-hot pentru a stoca etichetele, deoarece există sute de mii de câmpuri. Prin urmare, ar trebui să creați noduri de câmp de studiu și să formulați această problemă ca o sarcină de predicție a legăturii, prezicând la ce noduri de domeniu ar trebui să se conecteze un nod de hârtie.
Pentru a modela acest set de date cu o metodă grafică, primul pas este procesarea setului de date și extragerea entităților și marginilor. Puteți extrage cinci tipuri de margini din fișierele JSON pentru a defini un grafic, prezentat în figura următoare. Puteți utiliza caietul Jupyter în GraphStorm exemplu de cod pentru a procesa setul de date și a genera cinci tabele de entități pentru fiecare tip de entitate și cinci tabele de margine pentru fiecare tip de margine. Notebook-ul Jupyter generează, de asemenea, înglobări BERT pe entitățile cu date text, cum ar fi lucrările.
După ce definiți entitățile și marginile dintre entități, puteți crea mag_bert.json
, care definește schema graficului și invocă conducta de construcție a graficului încorporată construct_graph
în GraphStorm pentru a construi graficul (vezi următorul cod). Chiar dacă conducta de construcție a graficului GraphStorm rulează într-o singură mașină, acceptă procesarea multiplă pentru a procesa nodurile și caracteristicile de margine în paralel (--num_processes
) și poate stoca caracteristici de entitate și margine pe memoria externă (--ext-mem-workspace
) pentru a scala la seturi de date mari.
Pentru a procesa un grafic atât de mare, aveți nevoie de o instanță CPU cu memorie mare pentru a construi graficul. Puteți folosi un Cloud Elastic de calcul Amazon (Amazon EC2) r6id.32xlarge instance (128 vCPU și 1 TB RAM) sau r6a.48xlarge instanță (192 vCPU și 1.5 TB RAM) pentru a construi graficul OAG.
După construirea unui grafic, puteți utiliza gs_link_prediction
pentru a antrena un model de predicție a legăturii pe patru instanțe g5.48xlarge. Când utilizați modelele încorporate, invocați o singură linie de comandă pentru a lansa jobul de instruire distribuit. Vezi următorul cod:
După antrenamentul modelului, artefactul modelului este salvat în folder /data/mag_lp_model
.
Acum puteți rula inferența de predicție a legăturilor pentru a genera încorporare GNN și pentru a evalua performanța modelului. GraphStorm oferă mai multe valori de evaluare încorporate pentru a evalua performanța modelului. Pentru probleme de predicție a legăturilor, de exemplu, GraphStorm emite automat rangul reciproc mediu al metricii (MRR). MRR este o măsură valoroasă pentru evaluarea modelelor de predicție a legăturilor grafice, deoarece evaluează cât de sus sunt clasate legăturile reale între legăturile prezise. Aceasta surprinde calitatea predicțiilor, asigurându-ne că modelul nostru prioritizează corect conexiunile adevărate, care este obiectivul nostru aici.
Puteți rula inferențe cu o singură linie de comandă, așa cum se arată în codul următor. În acest caz, modelul atinge un MRR de 0.31 pe setul de testare al graficului construit.
Rețineți că conducta de inferență generează înglobări din modelul de predicție a legăturii. Pentru a rezolva problema găsirii domeniului de studiu pentru orice lucrare dată, pur și simplu efectuați o căutare de k-cel mai apropiat vecin pe înglobări.
Concluzie
GraphStorm este un nou cadru ML graph care facilitează construirea, instruirea și implementarea modelelor ML graph pe graficele din industrie. Acesta abordează unele provocări cheie în graficul ML, inclusiv scalabilitatea și gradul de utilizare. Furnizează componente încorporate pentru a procesa grafice la scară de miliarde de la date brute de intrare până la antrenamentul modelului și inferența modelului și a permis mai multor echipe Amazon să antreneze modele ML de grafice de ultimă generație în diverse aplicații. Consultați-ne GitHub depozit pentru mai multe informatii.
Despre Autori
Da Zheng este un om de știință aplicat la AWS AI/ML Research, care conduce o echipă de învățare automată a graficelor pentru a dezvolta tehnici și cadre pentru a pune în producție învățarea automată a graficelor. Da și-a luat doctoratul în informatică la Universitatea Johns Hopkins.
Florian Saupe este Manager Tehnic Principal de Produs la AWS AI/ML Research, sprijinind echipele științifice avansate, cum ar fi grupul de învățare automată a graficelor și îmbunătățirea produselor precum Amazon DataZone cu capabilități ML. Înainte de a se alătura AWS, Florian conduce managementul tehnic al produselor pentru conducere automată la Bosch, a fost consultant de strategie la McKinsey & Company și a lucrat ca om de știință în sisteme de control/robotică – domeniu în care deține un doctorat.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- EVM Finance. Interfață unificată pentru finanțare descentralizată. Accesați Aici.
- Grupul Quantum Media. IR/PR amplificat. Accesați Aici.
- PlatoAiStream. Web3 Data Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :are
- :este
- $UP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Capabil
- Despre Noi
- academic
- accelera
- Cont
- precizie
- activitate
- curent
- Ad
- adăuga
- plus
- adrese
- Adoptare
- Anunţuri
- avansat
- afilieri
- După
- din nou
- AI / ML
- Alerta
- algoritmi
- TOATE
- permite
- permite
- de asemenea
- Amazon
- Amazon EC2
- Amazon Neptun
- Amazon Timestream
- Amazon Web Services
- Amazon.com
- printre
- an
- analiză
- și
- anunța
- anticipând
- Orice
- Apache
- api
- aplicație
- aplicatii
- aplicat
- arhitectură
- SUNT
- AS
- Asociație
- At
- atenţie
- atribute
- Autorii
- Automata
- în mod automat
- disponibil
- AWS
- bazat
- De bază
- de bază
- Pe scurt
- BE
- deoarece
- fost
- înainte
- Benchmark
- beneficia
- CEL MAI BUN
- între
- Miliard
- miliarde
- atât
- De jos
- Dulapuri
- cui fără floare
- aduce
- construi
- construit
- construit-in
- afaceri
- dar
- by
- CAN
- capacități
- capturi
- capturarea
- caz
- lanţuri
- provocări
- provocare
- verifica
- clasificare
- cod
- colectare
- COM
- comunitate
- companie
- complex
- complexitate
- component
- componente
- Calcula
- calculator
- Informatică
- Conectați
- Conexiuni
- constă
- construi
- construirea
- construcţie
- consultant
- conține
- Control
- ar putea
- acoperire
- crea
- personalizat
- client
- clienţii care
- da
- de date
- de prelucrare a datelor
- știința datelor
- seturi de date
- Zi
- adânc
- defineste
- definire
- demonstra
- implementa
- dislocate
- proiectat
- destinație
- Detectare
- dezvolta
- în curs de dezvoltare
- Dezvoltare
- dgl
- diferit
- dificil
- direct
- distribuite
- instruire distribuită
- do
- Nu
- domenii
- zeci
- conducere
- două
- fiecare
- cu ușurință
- uşor
- Margine
- Eficace
- eficient
- efort
- încorporat
- Încorporarea
- șmirghel
- permite
- activat
- permite
- un capăt la altul
- Inginerie
- inginerii
- spori
- Afacere
- entități
- entitate
- evalua
- evaluarea
- evaluare
- Chiar
- exemplu
- depășește
- excitat
- experiment
- expert
- expertiză
- extern
- extrage
- Caracteristică
- DESCRIERE
- camp
- Domenii
- Figura
- Fișier
- Fişiere
- În cele din urmă
- descoperire
- First
- debit
- Concentra
- următor
- Pentru
- format
- patru
- Cadru
- cadre
- fraudă
- detectarea fraudei
- din
- viitor
- General
- genera
- generează
- George
- obține
- GitHub
- dat
- GM
- GPU
- unități de procesare grafică
- grafic
- grafice
- grup
- manipula
- Greu
- Avea
- he
- ajutor
- aici
- Înalt
- extrem de
- lui
- deține
- Cum
- Cat de sus
- Cum Pentru a
- http
- HTTPS
- sute
- ID
- ID-uri
- if
- important
- îmbunătăţi
- îmbunătățire
- îmbunătățirea
- in
- În altele
- Inclusiv
- industrie
- informații
- în mod inerent
- intrare
- Instalarea
- instanță
- in schimb
- Inteligență
- interacţiuni
- interfaţă
- intern
- în
- Introducere
- IT
- ESTE
- Loc de munca
- Universitatea Johns Hopkins
- aderarea
- jpg
- JSON
- doar
- Cheie
- cunoştinţe
- cunoscut
- etichete
- mare
- pe scară largă
- lansa
- lansare
- strat
- straturi
- conduce
- conducere
- AFLAȚI
- învăţare
- Bibliotecă
- Licență
- ca
- Probabil
- Linie
- LINK
- Link-uri
- liste
- mic
- maşină
- masina de învățare
- Masini
- Stomac
- face
- FACE
- Efectuarea
- administrare
- manager
- manieră
- multe
- marcat
- masiv
- McKinsey
- McKinsey & Company
- însemna
- măsurare
- Memorie
- metodă
- Metode
- metric
- Metrici
- De mijloc
- milion
- ML
- model
- Modele
- luni
- mai mult
- cele mai multe
- multiplu
- nativ
- Nevoie
- Neptun
- reţea
- rețele
- rețele neuronale
- Nou
- nod
- noduri
- caiet
- acum
- obiectiv
- of
- promoții
- on
- ONE
- afară
- open-source
- cod open-source
- de operare
- optimizarea
- Opţiuni
- or
- Altele
- al nostru
- afară
- peste
- global
- propriu
- Hârtie
- lucrări
- Paralel
- Efectua
- performanță
- alege
- conducte
- Plato
- Informații despre date Platon
- PlatoData
- Popular
- Post
- potenţial
- prezice
- a prezis
- estimarea
- prezicere
- Predictii
- preferinţele
- în prealabil
- Principal
- Problemă
- probleme
- proces
- prelucrare
- Produs
- management de produs
- manager de produs
- producere
- Produse
- dovedit
- furniza
- furnizează
- furnizarea
- pune
- pirtorh
- calitate
- repede
- RAM
- clasat
- Crud
- ajunge
- aTINGE
- lumea reală
- Recomandări
- Redus
- Relaţii
- eliberaţi
- repeta
- necesita
- necesar
- Necesită
- cercetare
- REZULTATE
- dreapta
- Riscurile
- în mod obișnuit
- RÂND
- Alerga
- acelaşi
- spune
- scalabilitate
- Scară
- scenarii
- Ştiinţă
- Om de stiinta
- oamenii de stiinta
- Caută
- Secțiune
- vedea
- senior
- serviciu
- Servicii
- set
- să
- Arăta
- indicat
- Emisiuni
- asemănător
- simplifica
- pur şi simplu
- singur
- Mărimea
- Social
- reţea socială
- soluţii
- REZOLVAREA
- unele
- Sursă
- de ultimă oră
- Pas
- paşi
- depozitare
- stoca
- stocate
- Strategie
- structura
- Studiu
- astfel de
- livra
- Lanțurile de aprovizionare
- a sustine
- De sprijin
- Sprijină
- tabel
- Lua
- ia
- Sarcină
- echipă
- echipe
- tech
- Tehnic
- tehnici de
- zeci
- test
- acea
- Viitorul
- Graficul
- Sursa
- lor
- Acolo.
- prin urmare
- Acestea
- ei
- crede
- acest
- deşi?
- mii
- amenințare
- trei
- ori
- la
- Unelte
- top
- trafic
- Tren
- dresat
- Pregătire
- tranzacție
- Transforma
- transformator
- adevărat
- încerca
- Două
- tip
- Tipuri
- în
- unic
- universitate
- uzabilitate
- utilizare
- carcasa de utilizare
- utilizat
- utilizări
- folosind
- Valoros
- diverse
- locuri
- vertical
- de
- Vizita
- a fost
- Cale..
- we
- web
- servicii web
- BINE
- cand
- care
- pe larg
- voi
- cu
- fără
- a lucrat
- scris
- yaml
- Tu
- Ta
- zephyrnet
- GRĂDINĂ ZOOLOGICĂ