We zijn verheugd om de open-source release van aan te kondigen GrafiekStorm 0.1, een low-code enterprise graph machine learning (ML)-framework om graph ML-oplossingen te bouwen, trainen en implementeren op complexe enterprise-scale grafieken in dagen in plaats van maanden. Met GraphStorm kunt u oplossingen bouwen die rechtstreeks rekening houden met de structuur van relaties of interacties tussen miljarden entiteiten, die inherent zijn ingebed in de meeste gegevens uit de echte wereld, waaronder fraudedetectiescenario's, aanbevelingen, gemeenschapsdetectie en zoek-/ophaalproblemen.
Tot nu toe was het notoir moeilijk om grafische ML-oplossingen te bouwen, trainen en implementeren voor complexe bedrijfsgrafieken die gemakkelijk miljarden knooppunten, honderden miljarden randen en tientallen attributen hebben - denk maar aan een grafiek die Amazon.com-producten, productkenmerken, klanten en meer vastlegt. Met GraphStorm geven we de tools vrij die Amazon intern gebruikt om grootschalige Graph ML-oplossingen in productie te brengen. GraphStorm vereist niet dat je een expert bent in graph ML en is beschikbaar onder de Apache v2.0-licentie op GitHub. Ga voor meer informatie over GraphStorm naar de GitHub-repository.
In dit bericht geven we een inleiding tot GraphStorm, de architectuur ervan en een voorbeeld van hoe het te gebruiken.
Maak kennis met GraphStorm
Graph-algoritmen en graph ML zijn in opkomst als state-of-the-art oplossingen voor veel belangrijke zakelijke problemen, zoals het voorspellen van transactierisico's, het anticiperen op klantvoorkeuren, het detecteren van indringers, het optimaliseren van toeleveringsketens, analyse van sociale netwerken en verkeersvoorspelling. Bijvoorbeeld, Amazone-wachtdienst, de native AWS-bedreigingsdetectieservice, gebruikt een grafiek met miljarden randen om de dekking en nauwkeurigheid van de bedreigingsinformatie te verbeteren. Hierdoor kan GuardDuty eerder ongeziene domeinen categoriseren als zeer waarschijnlijk kwaadaardig of goedaardig op basis van hun associatie met bekende kwaadwillende domeinen. Door Graph Neural Networks (GNN's) te gebruiken, kan GuardDuty zijn vermogen om klanten te waarschuwen verbeteren.
Het ontwikkelen, lanceren en gebruiken van Graph ML-oplossingen kost echter maanden en vereist Graph ML-expertise. Als eerste stap moet een graaf-ML-wetenschapper een graaf-ML-model bouwen voor een bepaalde use case met behulp van een raamwerk zoals de Deep Graph Library (DGL). Het trainen van dergelijke modellen is een uitdaging vanwege de omvang en complexiteit van grafieken in bedrijfsapplicaties, die routinematig miljarden knooppunten, honderden miljarden randen, verschillende typen knooppunten en randen en honderden knooppunt- en randattributen bereiken. Enterprise-grafieken kunnen terabytes aan geheugenopslag vereisen, waardoor ML-wetenschappers van grafieken complexe trainingspijplijnen moeten bouwen. Ten slotte, nadat een model is getraind, moeten ze worden ingezet voor inferentie, waarvoor inferentiepijplijnen nodig zijn die net zo moeilijk te bouwen zijn als de trainingspijplijnen.
GraphStorm 0.1 is een low-code enterprise graph ML-framework waarmee ML-beoefenaars eenvoudig vooraf gedefinieerde graph ML-modellen kunnen kiezen waarvan bewezen is dat ze effectief zijn, gedistribueerde training kunnen uitvoeren op grafieken met miljarden knooppunten en de modellen in productie kunnen nemen. GraphStorm biedt een verzameling ingebouwde Graph ML-modellen, zoals Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT) en Heterogeneous Graph Transformer (HGT) voor bedrijfstoepassingen met heterogene grafieken, waarmee ML-ingenieurs met weinig Graph ML-expertise verschillende modeloplossingen voor hun taak kunnen uitproberen en snel de juiste kunnen selecteren. End-to-end gedistribueerde trainings- en inferentiepijplijnen, die kunnen worden opgeschaald naar bedrijfsgrafieken op miljarden schaal, maken het eenvoudig om inferentie te trainen, te implementeren en uit te voeren. Als u nieuw bent bij GraphStorm of graph ML in het algemeen, profiteert u van de vooraf gedefinieerde modellen en pijplijnen. Als je een expert bent, heb je alle opties om de trainingspijplijn en modelarchitectuur af te stemmen om de beste prestaties te krijgen. GraphStorm is gebouwd bovenop DGL, een zeer populair raamwerk voor het ontwikkelen van GNN-modellen, en is beschikbaar als open-sourcecode onder de Apache v2.0-licentie.
"GraphStorm is ontworpen om klanten te helpen bij het experimenteren en operationaliseren van graph ML-methoden voor industriële toepassingen om de acceptatie van graph ML te versnellen", zegt George Karypis, Senior Principal Scientist in Amazon AI/ML-onderzoek. "Sinds de release binnen Amazon, heeft GraphStorm de moeite om op grafische ML gebaseerde oplossingen te bouwen tot wel vijf keer verminderd."
"GraphStorm stelt ons team in staat GNN-inbedding op een zelfbegeleide manier te trainen op een grafiek met 288 miljoen knooppunten en 2 miljard randen", zegt Haining Yu, Principal Applied Scientist bij Amazon Measurement, Ad Tech en Data Science. “De vooraf getrainde GNN-inbeddingen laten een verbetering van 24% zien ten opzichte van een voorspellingstaak van shopperactiviteit ten opzichte van een state-of-the-art BERT-gebaseerde basislijn; het overtreft ook benchmarkprestaties in andere advertentietoepassingen.”
"Vóór GraphStorm konden klanten alleen verticaal schalen om grafieken van 500 miljoen randen te verwerken", zegt Brad Bebee, GM voor Amazon Neptune en Amazon Timestream. "GraphStorm stelt klanten in staat GNN-modeltraining te schalen op enorme Amazon Neptune-grafieken met tientallen miljarden randen."
GraphStorm technische architectuur
De volgende afbeelding toont de technische architectuur van GraphStorm.
GraphStorm is bovenop PyTorch gebouwd en kan draaien op een enkele GPU, meerdere GPU's en meerdere GPU-machines. Het bestaat uit drie lagen (gemarkeerd in de gele vakken in de voorgaande afbeelding):
- Onderste laag (Dist GraphEngine) – De onderste laag biedt de basiscomponenten om gedistribueerde grafiek-ML mogelijk te maken, inclusief gedistribueerde grafieken, gedistribueerde tensoren, gedistribueerde inbeddingen en gedistribueerde samplers. GraphStorm biedt efficiënte implementaties van deze componenten om Graph ML-training te schalen naar grafieken met miljard knooppunten.
- Middelste laag (GS-training/inferentiepijplijn) – De middelste laag biedt trainers, beoordelaars en voorspellers om modeltraining en inferentie te vereenvoudigen voor zowel ingebouwde modellen als uw aangepaste modellen. Kortom, door de API van deze laag te gebruiken, kunt u zich concentreren op de modelontwikkeling zonder u zorgen te hoeven maken over hoe u de modeltraining kunt schalen.
- Toplaag (GS algemeen model zoo) – De bovenste laag is een modeldierentuin met populaire GNN- en niet-GNN-modellen voor verschillende grafiektypen. Op het moment van schrijven biedt het RGCN, RGAT en HGT voor heterogene grafieken en BERTGNN voor tekstuele grafieken. In de toekomst zullen we ondersteuning toevoegen voor temporele grafiekmodellen zoals TGAT voor temporele grafieken en TransE en DistMult voor kennisgrafieken.
Hoe GraphStorm te gebruiken
Na het installeren van GraphStor heb je slechts drie stappen nodig om GML-modellen voor je applicatie te bouwen en te trainen.
Eerst verwerk je je gegevens (mogelijk inclusief je custom feature engineering) en zet je deze om in een tabelformaat dat vereist is voor GraphStorm. Voor elk knooppunttype definieert u een tabel met alle knooppunten van dat type en hun kenmerken, met een unieke ID voor elk knooppunt. Voor elk randtype definieert u op dezelfde manier een tabel waarin elke rij de bron- en bestemmingsknooppunt-ID's bevat voor een rand van dat type (voor meer informatie, zie Gebruik uw eigen gegevenshandleiding). Daarnaast levert u een JSON-bestand aan dat de algehele grafiekstructuur beschrijft.
Ten tweede gebruikt u via de opdrachtregelinterface (CLI) de ingebouwde GraphStorm construct_graph
component voor sommige GraphStorm-specifieke gegevensverwerking, die efficiënte gedistribueerde training en inferentie mogelijk maakt.
Ten derde configureer je het model en de training in een YAML-bestand (voorbeeld) en roep, opnieuw met behulp van de CLI, een van de vijf ingebouwde componenten aan (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) als trainingspijplijnen om het model te trainen. Deze stap resulteert in de getrainde modelartefacten. Om gevolgtrekking te doen, moet u de eerste twee stappen herhalen om de gevolgtrekkingsgegevens om te zetten in een grafiek met dezelfde GraphStorm-component (construct_graph
) zoals eerder.
Ten slotte kunt u een van de vijf ingebouwde componenten aanroepen, dezelfde die werd gebruikt voor modeltraining, als een inferentiepijplijn om inbeddingen of voorspellingsresultaten te genereren.
De totale stroom wordt ook weergegeven in de volgende afbeelding.
In het volgende gedeelte geven we een voorbeeld van een use case.
Doe voorspellingen op basis van ruwe OAG-gegevens
Voor dit bericht laten we zien hoe gemakkelijk GraphStor graph ML-training en inferentie op een grote onbewerkte dataset mogelijk maakt. De Academische grafiek openen (OAG) bevat vijf entiteiten (papers, auteurs, locaties, voorkeuren en vakgebied). De ruwe dataset wordt opgeslagen in JSON-bestanden met meer dan 500 GB.
Onze taak is het bouwen van een model om het vakgebied van een paper te voorspellen. Om het studiegebied te voorspellen, kun je het formuleren als een classificatietaak met meerdere labels, maar het is moeilijk om one-hot codering te gebruiken om de labels op te slaan, omdat er honderdduizenden velden zijn. Daarom moet u studiegebiedknooppunten maken en dit probleem formuleren als een linkvoorspellingstaak, waarbij u voorspelt met welk studiegebiedknooppunt een papieren knooppunt verbinding moet maken.
Om deze dataset met een grafiekmethode te modelleren, is de eerste stap het verwerken van de dataset en het extraheren van entiteiten en randen. U kunt vijf soorten randen uit de JSON-bestanden extraheren om een grafiek te definiëren, weergegeven in de volgende afbeelding. U kunt de Jupyter-notebook gebruiken in de GraphStorm voorbeeldcode om de dataset te verwerken en vijf entiteittabellen te genereren voor elk entiteitstype en vijf randtabellen voor elk randtype. Het Jupyter-notebook genereert ook BERT-inbeddingen op de entiteiten met tekstgegevens, zoals papieren.
Na het definiëren van de entiteiten en randen tussen de entiteiten, kunt u creëren mag_bert.json
, die het grafiekschema definieert, en de ingebouwde grafiekconstructiepijplijn aanroepen construct_graph
in GraphStorm om de grafiek te bouwen (zie de volgende code). Hoewel de GraphStorm-grafiekconstructiepijplijn op één enkele machine draait, ondersteunt deze multi-processing om knooppunten en edge-functies parallel te verwerken (--num_processes
) en kan entiteits- en edge-functies opslaan in extern geheugen (--ext-mem-workspace
) om te schalen naar grote datasets.
Om zo'n grote grafiek te verwerken, hebt u een CPU met veel geheugen nodig om de grafiek samen te stellen. U kunt een Amazon Elastic Compute-cloud (Amazon EC2) r6id.32xlarge instantie (128 vCPU en 1 TB RAM) of r6a.48xlarge instanties (192 vCPU en 1.5 TB RAM) om de OAG-grafiek te construeren.
Na het construeren van een grafiek, kunt u gebruiken gs_link_prediction
om een linkvoorspellingsmodel te trainen op vier g5.48xlarge-instanties. Wanneer u de ingebouwde modellen gebruikt, hoeft u slechts één opdrachtregel aan te roepen om de gedistribueerde trainingstaak te starten. Zie de volgende code:
Na de modeltraining wordt het modelartefact opgeslagen in de map /data/mag_lp_model
.
Nu kunt u koppelingsvoorspellingen uitvoeren om GNN-inbeddingen te genereren en de modelprestaties te evalueren. GraphStorm biedt meerdere ingebouwde evaluatiestatistieken om de prestaties van het model te evalueren. Voor problemen met linkvoorspelling geeft GraphStorm bijvoorbeeld automatisch de metric mean reciprocal rank (MRR) weer. MRR is een waardevolle maatstaf voor het evalueren van voorspellingsmodellen voor grafieklinks, omdat het beoordeelt hoe hoog de daadwerkelijke links gerangschikt zijn onder de voorspelde links. Dit legt de kwaliteit van voorspellingen vast en zorgt ervoor dat ons model de juiste prioriteit geeft aan echte verbindingen, wat hier ons doel is.
U kunt inferentie uitvoeren met één opdrachtregel, zoals weergegeven in de volgende code. In dit geval bereikt het model een MRR van 0.31 op de testset van de geconstrueerde grafiek.
Merk op dat de inferentiepijplijn inbeddingen genereert vanuit het linkvoorspellingsmodel. Om het probleem van het vinden van het studiegebied voor een bepaald artikel op te lossen, voert u eenvoudigweg een k-naaste buur-zoekopdracht uit op de inbeddingen.
Conclusie
GraphStorm is een nieuw Graph ML-framework waarmee u eenvoudig Graph ML-modellen kunt bouwen, trainen en implementeren op industriegrafieken. Het pakt enkele belangrijke uitdagingen in graph ML aan, waaronder schaalbaarheid en bruikbaarheid. Het biedt ingebouwde componenten om grafieken op miljarden schaal te verwerken, van onbewerkte invoergegevens tot modeltraining en modeldeductie, en heeft meerdere Amazon-teams in staat gesteld om state-of-the-art graph ML-modellen in verschillende toepassingen te trainen. Bekijk onze GitHub-repository voor meer informatie.
Over de auteurs
Da Zheng is een senior toegepaste wetenschapper bij AWS AI/ML-onderzoek en leidt een team voor het leren van grafische machines om technieken en frameworks te ontwikkelen om het leren van grafische machines in productie te nemen. Da promoveerde in computerwetenschappen aan de Johns Hopkins University.
Florian Saupe is Principal Technical Product Manager bij AWS AI/ML-onderzoek en ondersteunt geavanceerde wetenschappelijke teams zoals de Graph Machine Learning-groep en verbetert producten zoals Amazon DataZone met ML-mogelijkheden. Voordat hij bij AWS kwam, leidde Florian technisch productbeheer voor geautomatiseerd rijden bij Bosch, was hij strategieconsultant bij McKinsey & Company en werkte hij als wetenschapper op het gebied van besturingssystemen/robotica - een vakgebied waarin hij een doctoraat heeft.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- EVM Financiën. Uniforme interface voor gedecentraliseerde financiën. Toegang hier.
- Quantum Media Groep. IR/PR versterkt. Toegang hier.
- PlatoAiStream. Web3 gegevensintelligentie. Kennis versterkt. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- : heeft
- :is
- $UP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- in staat
- Over
- academische
- versnellen
- Account
- nauwkeurigheid
- activiteit
- daadwerkelijk
- Ad
- toevoegen
- toevoeging
- adressen
- Adoptie
- advertenties
- vergevorderd
- voorkeuren
- Na
- weer
- AI / ML
- Alarm
- algoritmen
- Alles
- toelaten
- toestaat
- ook
- Amazone
- Amazon EC2
- Amazone Neptunus
- Amazone-tijdstroom
- Amazon Web Services
- Amazon.com
- onder
- an
- analyse
- en
- aankondigen
- anticiperen
- elke
- apache
- api
- Aanvraag
- toepassingen
- toegepast
- architectuur
- ZIJN
- AS
- Vereniging
- At
- aandacht
- attributen
- auteurs
- geautomatiseerde
- webmaster.
- Beschikbaar
- AWS
- gebaseerde
- Baseline
- basis-
- Eigenlijk
- BE
- omdat
- geweest
- vaardigheden
- criterium
- voordeel
- BEST
- tussen
- Miljard
- miljarden
- zowel
- Onder
- dozen
- brad
- brengen
- bouw
- bebouwd
- ingebouwd
- bedrijfsdeskundigen
- maar
- by
- CAN
- mogelijkheden
- captures
- Het vastleggen
- geval
- ketens
- uitdagingen
- uitdagend
- controle
- classificatie
- code
- Collectie
- COM
- gemeenschap
- afstand
- complex
- ingewikkeldheid
- bestanddeel
- componenten
- Berekenen
- computer
- Computer Science
- Verbinden
- aansluitingen
- bestaat uit
- bouwen
- construeren
- bouw
- consultant
- bevat
- onder controle te houden
- kon
- dekking
- en je merk te creëren
- gewoonte
- klant
- Klanten
- da
- gegevens
- gegevensverwerking
- data science
- datasets
- dagen
- deep
- definieert
- het definiëren van
- tonen
- implementeren
- ingezet
- ontworpen
- bestemming
- Opsporing
- ontwikkelen
- het ontwikkelen van
- Ontwikkeling
- Leuk vinden
- anders
- moeilijk
- direct
- verdeeld
- gedistribueerde training
- do
- Nee
- domeinen
- tientallen
- aandrijving
- twee
- elk
- gemakkelijk
- En het is heel gemakkelijk
- rand
- effectief
- doeltreffend
- inspanning
- ingebed
- inbedding
- opkomende
- in staat stellen
- ingeschakeld
- maakt
- eind tot eind
- Engineering
- Ingenieurs
- verhogen
- Enterprise
- entiteiten
- entiteit
- schatten
- evalueren
- evaluatie
- Zelfs
- voorbeeld
- overschrijdt
- opgewonden
- experiment
- expert
- expertise
- extern
- extract
- Kenmerk
- Voordelen
- veld-
- Velden
- Figuur
- Dien in
- Bestanden
- Tot slot
- het vinden van
- Voornaam*
- stroom
- Focus
- volgend
- Voor
- formaat
- vier
- Achtergrond
- frameworks
- bedrog
- fraude detectie
- oppompen van
- toekomst
- Algemeen
- voortbrengen
- genereert
- George
- krijgen
- GitHub
- gegeven
- GM
- GPU
- GPU's
- diagram
- grafieken
- Groep
- handvat
- Hard
- Hebben
- he
- hulp
- hier
- Hoge
- zeer
- zijn
- houdt
- Hoe
- Hoe hoog
- How To
- http
- HTTPS
- Honderden
- ID
- ids
- if
- belangrijk
- verbeteren
- verbetering
- het verbeteren van
- in
- Anders
- Inclusief
- -industrie
- informatie
- inherent
- invoer
- installeren
- instantie
- verkrijgen in plaats daarvan
- Intelligentie
- interacties
- Interface
- inwendig
- in
- Introductie
- IT
- HAAR
- Jobomschrijving:
- Johns Hopkins University
- aansluiting
- jpg
- json
- voor slechts
- sleutel
- kennis
- bekend
- labels
- Groot
- grootschalig
- lancering
- lancering
- lagen
- Legkippen
- leiden
- leidend
- LEARN
- leren
- Bibliotheek
- Vergunning
- als
- Waarschijnlijk
- Lijn
- LINK
- links
- lijsten
- Elke kleine stap levert grote resultaten op!
- machine
- machine learning
- Machines
- Mei
- maken
- MERKEN
- maken
- management
- manager
- manier
- veel
- gemarkeerd
- massief
- McKinsey
- McKinsey & Company
- gemiddelde
- maat
- Geheugen
- methode
- methoden
- metriek
- Metriek
- Midden
- miljoen
- ML
- model
- modellen
- maanden
- meer
- meest
- meervoudig
- inheemse
- Noodzaak
- Neptunus
- netwerk
- netwerken
- neurale netwerken
- New
- knooppunt
- knooppunten
- notitieboekje
- nu
- doel van de persoon
- of
- Aanbod
- on
- EEN
- Slechts
- open source
- open-sourcecode
- werkzaam
- optimaliseren
- Opties
- or
- Overige
- onze
- uit
- over
- totaal
- het te bezitten.
- Papier
- papieren
- Parallel
- Uitvoeren
- prestatie
- kiezen
- pijpleiding
- Plato
- Plato gegevensintelligentie
- PlatoData
- Populair
- Post
- mogelijk
- voorspellen
- voorspeld
- het voorspellen van
- voorspelling
- Voorspellingen
- voorkeuren
- die eerder
- Principal
- probleem
- problemen
- verwerking
- Product
- product management
- product manager
- productie
- Producten
- bewezen
- zorgen voor
- biedt
- het verstrekken van
- zetten
- pytorch
- kwaliteit
- snel
- RAM
- gerangschikt
- Rauw
- bereiken
- Bereikt
- echte wereld
- aanbevelingen
- Gereduceerd
- Relaties
- los
- herhaling
- vereisen
- nodig
- vereist
- onderzoek
- Resultaten
- rechts
- risico's
- routinematig
- RIJ
- lopen
- dezelfde
- zegt
- Schaalbaarheid
- Scale
- scenario's
- Wetenschap
- Wetenschapper
- wetenschappers
- Ontdek
- sectie
- zien
- senior
- service
- Diensten
- reeks
- moet
- tonen
- getoond
- Shows
- evenzo
- vereenvoudigen
- eenvoudigweg
- single
- Maat
- Social
- sociaal netwerk
- Oplossingen
- OPLOSSEN
- sommige
- bron
- state-of-the-art
- Stap voor
- Stappen
- mediaopslag
- shop
- opgeslagen
- Strategie
- structuur
- Studie
- dergelijk
- leveren
- Supply chains
- ondersteuning
- Ondersteuning
- steunen
- tafel
- Nemen
- neemt
- Taak
- team
- teams
- tech
- Technisch
- technieken
- tienen
- proef
- dat
- De
- De toekomst
- De grafiek
- De Bron
- hun
- Er.
- daarom
- Deze
- ze
- denken
- dit
- toch?
- duizenden kosten
- bedreiging
- drie
- keer
- naar
- tools
- top
- verkeer
- Trainen
- getraind
- Trainingen
- transactie
- Transformeren
- transformator
- waar
- proberen
- twee
- type dan:
- types
- voor
- unieke
- universiteit-
- bruikbaarheid
- .
- use case
- gebruikt
- toepassingen
- gebruik
- waardevol
- divers
- reilen en zeilen
- verticaal
- via
- Bezoek
- was
- Manier..
- we
- web
- webservices
- GOED
- wanneer
- welke
- wijd
- wil
- Met
- zonder
- werkte
- het schrijven van
- YAML
- You
- Your
- zephyrnet
- ZOO