Vi är glada över att tillkännage lanseringen av öppen källkod GraphStorm 0.1, ett lågkodat ramverk för företagsgrafmaskininlärning (ML) för att bygga, träna och distribuera grafiska ML-lösningar på komplexa grafer i företagsskala på dagar istället för månader. Med GraphStorm kan du bygga lösningar som direkt tar hänsyn till strukturen av relationer eller interaktioner mellan miljarder enheter, som är inbäddade i de flesta verkliga data, inklusive bedrägeriupptäcktsscenarier, rekommendationer, community-detektion och sök-/hämtningsproblem.
Fram till nu har det varit notoriskt svårt att bygga, träna och distribuera graf-ML-lösningar för komplexa företagsgrafer som enkelt har miljarder noder, hundratals miljarder kanter och dussintals attribut – tänk bara på en graf som fångar Amazon.com-produkter , produktattribut, kunder och mer. Med GraphStorm släpper vi verktygen som Amazon använder internt för att få storskaliga grafiska ML-lösningar till produktion. GraphStorm kräver inte att du är expert på graf-ML och är tillgänglig under Apache v2.0-licensen på GitHub. För att lära dig mer om GraphStorm, besök GitHub repository.
I det här inlägget ger vi en introduktion till GraphStorm, dess arkitektur och ett exempel på hur man använder det.
Vi presenterar GraphStorm
Grafalgoritmer och graf-ML växer fram som toppmoderna lösningar för många viktiga affärsproblem som att förutsäga transaktionsrisker, förutse kundpreferenser, upptäcka intrång, optimera försörjningskedjor, analyser av sociala nätverk och trafikförutsägelser. Till exempel, Amazon Guard Duty, den inhemska AWS-hotdetekteringstjänsten, använder en graf med miljarder kanter för att förbättra täckningen och noggrannheten för sin hotintelligens. Detta tillåter GuardDuty att kategorisera tidigare osynliga domäner som högst sannolikt skadliga eller godartade baserat på deras koppling till kända skadliga domäner. Genom att använda Graph Neural Networks (GNN) kan GuardDuty förbättra sin förmåga att varna kunder.
Att utveckla, lansera och driva graph ML-lösningar tar dock månader och kräver graph ML expertis. Som ett första steg måste en grafisk ML-forskare bygga en grafisk ML-modell för ett givet användningsfall med hjälp av ett ramverk som Deep Graph Library (DGL). Att träna sådana modeller är utmanande på grund av storleken och komplexiteten hos grafer i företagsapplikationer, som rutinmässigt når miljarder noder, hundratals miljarder kanter, olika nod- och kanttyper och hundratals nod- och kantattribut. Företagsgrafer kan kräva terabyte minneslagring, vilket kräver att grafisk ML-forskare bygger komplexa träningspipelines. Slutligen, efter att en modell har tränats, måste de distribueras för slutledning, vilket kräver slutledningsledningar som är lika svåra att bygga som utbildningsledningar.
GraphStorm 0.1 är ett ML-ramverk med låg kod för företagsgrafer som gör det möjligt för ML-utövare att enkelt välja fördefinierade grafiska ML-modeller som har visat sig vara effektiva, köra distribuerad utbildning på grafer med miljarder noder och distribuera modellerna i produktion. GraphStorm erbjuder en samling inbyggda graf-ML-modeller, såsom Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT) och Heterogeneous Graph Transformer (HGT) för företagsapplikationer med heterogena grafer, vilket tillåter ML-ingenjörer med lite graf ML expertis för att prova olika modelllösningar för sin uppgift och snabbt välja rätt. End-to-end distribuerade utbildnings- och slutledningspipelines, som skalas till miljardskaliga företagsdiagram, gör det enkelt att träna, distribuera och köra slutledning. Om du är ny på GraphStorm eller graph ML i allmänhet, kommer du att dra nytta av de fördefinierade modellerna och pipelines. Om du är en expert har du alla möjligheter att justera träningspipeline och modellarkitektur för att få bästa prestanda. GraphStorm är byggt ovanpå DGL, ett mycket populärt ramverk för att utveckla GNN-modeller, och tillgängligt som öppen källkod under Apache v2.0-licensen.
"GraphStorm är utformad för att hjälpa kunder att experimentera och operationalisera grafisk ML-metoder för industriapplikationer för att påskynda införandet av grafisk ML", säger George Karypis, Senior Principal Scientist inom Amazon AI/ML-forskning. "Sedan lanseringen inom Amazon har GraphStorm minskat arbetet med att bygga grafiska ML-baserade lösningar med upp till fem gånger."
"GraphStorm gör det möjligt för vårt team att träna GNN-inbäddning på ett självövervakat sätt på en graf med 288 miljoner noder och 2 miljarder kanter", säger Haining Yu, Principal Applied Scientist på Amazon Measurement, Ad Tech och Data Science. “De förtränade GNN-inbäddningarna visar en förbättring på 24 % jämfört med en förutsägelseuppgift för shopperaktivitet jämfört med en toppmodern BERT-baserad baslinje; det överträffar också riktmärkeprestanda i andra annonsapplikationer."
"Innan GraphStorm kunde kunder bara skala vertikalt för att hantera grafer med 500 miljoner kanter", säger Brad Bebee, GM för Amazon Neptune och Amazon Timestream. "GraphStorm gör det möjligt för kunder att skala GNN-modellträning på massiva Amazon Neptune-grafer med tiotals miljarder kanter."
GraphStorm teknisk arkitektur
Följande figur visar den tekniska arkitekturen för GraphStorm.
GraphStorm är byggd ovanpå PyTorch och kan köras på en enda GPU, flera GPU:er och flera GPU-maskiner. Den består av tre lager (markerade i de gula rutorna i föregående figur):
- Bottenlager (Dist GraphEngine) – Det undre lagret tillhandahåller de grundläggande komponenterna för att möjliggöra distribuerad graf-ML, inklusive distribuerade grafer, distribuerade tensorer, distribuerade inbäddningar och distribuerade samplers. GraphStorm tillhandahåller effektiva implementeringar av dessa komponenter för att skala graf ML-träning till miljardnodsgrafer.
- Mellanskikt (GS-tränings-/inferenspipeline) – Mellanlagret tillhandahåller tränare, utvärderare och prediktorer för att förenkla modellträning och slutledning för både inbyggda modeller och dina anpassade modeller. I grund och botten, genom att använda API:t för det här lagret, kan du fokusera på modellutvecklingen utan att oroa dig för hur du skalar modellträningen.
- Översta lagret (GS allmän modell zoo) – Det översta lagret är en modellzoo med populära GNN- och icke-GNN-modeller för olika graftyper. När detta skrivs tillhandahåller den RGCN, RGAT och HGT för heterogena grafer och BERTGNN för textgrafer. I framtiden kommer vi att lägga till stöd för temporala grafmodeller som TGAT för temporala grafer samt TransE och DistMult för kunskapsgrafer.
Hur man använder GraphStorm
Efter att ha installerat GraphStorm behöver du bara tre steg för att bygga och träna GML-modeller för din applikation.
Först förbearbetar du dina data (potentiellt inklusive din anpassade funktionsteknik) och omvandlar den till ett tabellformat som krävs av GraphStorm. För varje nodtyp definierar du en tabell som listar alla noder av den typen och deras funktioner, vilket ger ett unikt ID för varje nod. För varje kanttyp definierar du på samma sätt en tabell där varje rad innehåller käll- och målnods-ID:n för en kant av den typen (för mer information, se Använd din egen datahandledning). Dessutom tillhandahåller du en JSON-fil som beskriver den övergripande grafstrukturen.
För det andra, via kommandoradsgränssnittet (CLI), använder du GraphStorms inbyggda construct_graph
komponent för viss GraphStorm-specifik databehandling, vilket möjliggör effektiv distribuerad utbildning och slutledning.
För det tredje konfigurerar du modellen och träningen i en YAML-fil (exempel) och återigen använda CLI, anropa en av de fem inbyggda komponenterna (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) som träningspipelines för att träna modellen. Detta steg resulterar i de tränade modellens artefakter. För att göra slutledning måste du upprepa de två första stegen för att omvandla slutledningsdata till en graf med samma GraphStorm-komponent (construct_graph
) som förut.
Slutligen kan du anropa en av de fem inbyggda komponenterna, samma som användes för modellträning, som en inferenspipeline för att generera inbäddningar eller förutsägelseresultat.
Det övergripande flödet visas också i följande figur.
I följande avsnitt ger vi ett exempel på användningsfall.
Gör förutsägelser om rå OAG-data
För det här inlägget visar vi hur enkelt GraphStorm kan möjliggöra grafisk ML-träning och slutledning på en stor rådatauppsättning. De Öppna akademisk graf (OAG) innehåller fem enheter (tidningar, författare, mötesplatser, tillhörigheter och studieområde). Den råa datasetet lagras i JSON-filer med över 500 GB.
Vår uppgift är att bygga en modell för att förutsäga studieområdet för en uppsats. För att förutsäga studieområdet kan du formulera det som en klassificeringsuppgift med flera etiketter, men det är svårt att använda en-hot-kodning för att lagra etiketterna eftersom det finns hundratusentals fält. Därför bör du skapa studieområdesnoder och formulera detta problem som en länkförutsägelseuppgift, förutsäga vilka studieområdesnoder en pappersnod ska ansluta till.
För att modellera denna datauppsättning med en grafmetod är det första steget att bearbeta datauppsättningen och extrahera enheter och kanter. Du kan extrahera fem typer av kanter från JSON-filerna för att definiera en graf, som visas i följande figur. Du kan använda Jupyter-anteckningsboken i GraphStorm exempelkod att bearbeta datasetet och generera fem entitetstabeller för varje entitetstyp och fem kanttabeller för varje kanttyp. Jupyter-anteckningsboken genererar också BERT-inbäddningar på enheterna med textdata, såsom papper.
Efter att ha definierat entiteterna och kanterna mellan entiteterna kan du skapa mag_bert.json
, som definierar grafschemat, och anropar den inbyggda grafkonstruktionspipelinen construct_graph
i GraphStorm för att bygga grafen (se följande kod). Även om GraphStorms grafkonstruktionspipeline körs i en enda maskin, stöder den multibearbetning för att bearbeta noder och kantfunktioner parallellt (--num_processes
) och kan lagra entitets- och kantfunktioner på externt minne (--ext-mem-workspace
) för att skala till stora datamängder.
För att bearbeta en så stor graf behöver du en CPU-instans med stort minne för att konstruera grafen. Du kan använda en Amazon Elastic Compute Cloud (Amazon EC2) r6id.32xlarge-instans (128 vCPU och 1 TB RAM) eller r6a.48xlarge-instanser (192 vCPU och 1.5 TB RAM) för att konstruera OAG-grafen.
Efter att ha konstruerat en graf kan du använda gs_link_prediction
att träna en länkprediktionsmodell på fyra g5.48xlarge-instanser. När du använder de inbyggda modellerna anropar du bara en kommandorad för att starta det distribuerade träningsjobbet. Se följande kod:
Efter modellutbildningen sparas modellartefakten i mappen /data/mag_lp_model
.
Nu kan du köra länkförutsägelseslutledning för att generera GNN-inbäddningar och utvärdera modellens prestanda. GraphStorm tillhandahåller flera inbyggda utvärderingsmått för att utvärdera modellens prestanda. För länkförutsägelseproblem, till exempel, matar GraphStorm automatiskt ut den metriska genomsnittliga reciprokala rankningen (MRR). MRR är ett värdefullt mått för att utvärdera graflänksprediktionsmodeller eftersom det bedömer hur högt de faktiska länkarna rankas bland de förutsagda länkarna. Detta fångar kvaliteten på förutsägelser och ser till att vår modell korrekt prioriterar sanna kopplingar, vilket är vårt mål här.
Du kan köra inferens med en kommandorad, som visas i följande kod. I det här fallet når modellen en MRR på 0.31 på testuppsättningen av den konstruerade grafen.
Observera att slutledningspipelinen genererar inbäddningar från länkprediktionsmodellen. För att lösa problemet med att hitta studieområdet för ett visst papper, gör helt enkelt en k-närmaste grannesökning på inbäddningarna.
Slutsats
GraphStorm är ett nytt graf-ML-ramverk som gör det enkelt att bygga, träna och distribuera graf-ML-modeller på industrigrafer. Den tar upp några viktiga utmaningar i grafisk ML, inklusive skalbarhet och användbarhet. Den tillhandahåller inbyggda komponenter för att bearbeta grafer i miljardskala från rå indata till modellträning och modellinferens och har gjort det möjligt för flera Amazon-team att träna toppmoderna graf-ML-modeller i olika applikationer. Kolla in vår GitHub repository för mer information.
Om författarna
Da Zheng är en senior tillämpad vetenskapsman vid AWS AI/ML research som leder ett grafmaskininlärningsteam för att utveckla tekniker och ramverk för att sätta grafmaskininlärning i produktion. Da tog sin doktorsexamen i datavetenskap från Johns Hopkins University.
Florian Saupe är en huvudteknisk produktchef på AWS AI/ML-forskning som stödjer avancerade vetenskapsteam som grafmaskininlärningsgruppen och förbättrar produkter som Amazon DataZone med ML-funktioner. Innan han började på AWS, ledde Florian teknisk produktledning för automatiserad körning på Bosch, var strategikonsult på McKinsey & Company och arbetade som kontrollsystem/robotforskare – ett område där han har en doktorsexamen.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- EVM Finans. Unified Interface for Decentralized Finance. Tillgång här.
- Quantum Media Group. IR/PR förstärkt. Tillgång här.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- : har
- :är
- $UPP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Able
- Om oss
- akademiska
- accelerera
- Konto
- noggrannhet
- aktivitet
- faktiska
- Ad
- lägga till
- Dessutom
- adresser
- Antagande
- annonser
- avancerat
- anknytningar
- Efter
- igen
- AI / ML
- Varna
- algoritmer
- Alla
- tillåter
- tillåter
- också
- amason
- Amazon EC2
- Amazon Neptunus
- Amazon Timestream
- Amazon Web Services
- Amazon.com
- bland
- an
- analys
- och
- Meddela
- förutse
- vilken som helst
- Apache
- api
- Ansökan
- tillämpningar
- tillämpas
- arkitektur
- ÄR
- AS
- Förening
- At
- uppmärksamhet
- attribut
- Författarna
- Automatiserad
- automatiskt
- tillgänglig
- AWS
- baserat
- Baslinje
- grundläggande
- I grund och botten
- BE
- därför att
- varit
- innan
- riktmärke
- fördel
- BÄST
- mellan
- Miljarder
- miljarder
- båda
- Botten
- boxar
- brad
- föra
- SLUTRESULTAT
- byggt
- inbyggd
- företag
- men
- by
- KAN
- kapacitet
- fångar
- Fångande
- Vid
- kedjor
- utmaningar
- utmanande
- ta
- klassificering
- koda
- samling
- COM
- samfundet
- företag
- komplex
- Komplexiteten
- komponent
- komponenter
- Compute
- dator
- Datavetenskap
- Kontakta
- Anslutningar
- består
- konstruera
- konstruera
- konstruktion
- konsult
- innehåller
- kontroll
- kunde
- täckning
- skapa
- beställnings
- kund
- Kunder
- da
- datum
- databehandling
- datavetenskap
- datauppsättningar
- Dagar
- djup
- definierar
- definierande
- demonstrera
- distribuera
- utplacerade
- utformade
- destination
- Detektering
- utveckla
- utveckla
- Utveckling
- dgl
- olika
- svårt
- direkt
- distribueras
- distribuerad utbildning
- do
- inte
- domäner
- dussintals
- drivande
- grund
- varje
- lätt
- lätt
- kant
- Effektiv
- effektiv
- ansträngning
- inbäddade
- inbäddning
- smärgel
- möjliggöra
- aktiverad
- möjliggör
- början till slut
- Teknik
- Ingenjörer
- förbättra
- Företag
- enheter
- enhet
- utvärdera
- utvärdering
- utvärdering
- Även
- exempel
- överstiger
- exciterade
- experimentera
- expert
- expertis
- extern
- extrahera
- Leverans
- Funktioner
- fält
- Fält
- Figur
- Fil
- Filer
- Slutligen
- finna
- Förnamn
- flöda
- Fokus
- efter
- För
- format
- fyra
- Ramverk
- ramar
- bedrägeri
- spårning av bedrägerier
- från
- framtida
- Allmänt
- generera
- genererar
- George
- skaffa sig
- GitHub
- ges
- GM
- GPU
- GPUs
- diagram
- grafer
- Grupp
- hantera
- Hård
- Har
- he
- hjälpa
- här.
- Hög
- höggradigt
- hans
- innehar
- Hur ser din drömresa ut
- Hur hög
- How To
- http
- HTTPS
- Hundratals
- ID
- ids
- if
- med Esport
- förbättra
- förbättring
- förbättra
- in
- I andra
- Inklusive
- industrin
- informationen
- inneboende
- ingång
- installera
- exempel
- istället
- Intelligens
- interaktioner
- Gränssnitt
- invändigt
- in
- Beskrivning
- IT
- DESS
- Jobb
- Johns Hopkins University
- sammanfogning
- jpg
- json
- bara
- Nyckel
- kunskap
- känd
- Etiketter
- Large
- storskalig
- lansera
- lansera
- lager
- skikt
- leda
- ledande
- LÄRA SIG
- inlärning
- Bibliotek
- Licens
- tycka om
- sannolikt
- linje
- LINK
- länkar
- listor
- liten
- Maskinen
- maskininlärning
- Maskiner
- Maj
- göra
- GÖR
- Framställning
- ledning
- chef
- sätt
- många
- markant
- massiv
- McKinsey
- McKinsey & Company
- betyda
- mätning
- Minne
- metod
- metoder
- metriska
- Metrics
- Mitten
- miljon
- ML
- modell
- modeller
- månader
- mer
- mest
- multipel
- nativ
- Behöver
- Neptune
- nät
- nätverk
- neurala nätverk
- Nya
- nod
- noder
- anteckningsbok
- nu
- mål
- of
- Erbjudanden
- on
- ONE
- endast
- öppen källkod
- öppen källkod
- drift
- optimera
- Tillbehör
- or
- Övriga
- vår
- ut
- över
- övergripande
- egen
- Papper
- papper
- Parallell
- Utföra
- prestanda
- plocka
- rörledning
- plato
- Platon Data Intelligence
- PlatonData
- Populära
- Inlägg
- potentiellt
- förutse
- förutsagda
- förutsäga
- förutsägelse
- Förutsägelser
- preferenser
- tidigare
- Principal
- Problem
- problem
- process
- bearbetning
- Produkt
- produktledning
- produktchef
- Produktion
- Produkter
- beprövade
- ge
- ger
- tillhandahålla
- sätta
- pytorch
- kvalitet
- snabbt
- RAM
- rankad
- Raw
- nå
- når
- verkliga världen
- rekommendationer
- Minskad
- Förhållanden
- frigöra
- upprepa
- kräver
- Obligatorisk
- Kräver
- forskning
- Resultat
- höger
- risker
- rutinmässigt
- RAD
- Körning
- Samma
- säger
- skalbarhet
- Skala
- scenarier
- Vetenskap
- Forskare
- vetenskapsmän
- Sök
- §
- se
- senior
- service
- Tjänster
- in
- skall
- show
- visas
- Visar
- Liknande
- förenkla
- helt enkelt
- enda
- Storlek
- Social hållbarhet
- sociala nätverk
- Lösningar
- LÖSA
- några
- Källa
- state-of-the-art
- Steg
- Steg
- förvaring
- lagra
- lagras
- Strategi
- struktur
- Läsa på
- sådana
- leverera
- Försörjningskedjor
- stödja
- Stödjande
- Stöder
- bord
- Ta
- tar
- uppgift
- grupp
- lag
- tech
- Teknisk
- tekniker
- tiotals
- testa
- den där
- Smakämnen
- Framtiden
- Grafen
- källan
- deras
- Där.
- därför
- Dessa
- de
- tror
- detta
- fastän?
- tusentals
- hot
- tre
- gånger
- till
- verktyg
- topp
- trafik
- Tåg
- tränad
- Utbildning
- transaktion
- Förvandla
- transformator
- sann
- prova
- två
- Typ
- typer
- under
- unika
- universitet
- användbarhet
- användning
- användningsfall
- Begagnade
- användningar
- med hjälp av
- Värdefulla
- olika
- arenor
- vertikalt
- via
- Besök
- var
- Sätt..
- we
- webb
- webbservice
- VÄL
- när
- som
- brett
- kommer
- med
- utan
- arbetade
- skrivning
- jaml
- Om er
- Din
- zephyrnet
- ZOO