Vi er glade for at kunne annoncere open source-udgivelsen af GraphStorm 0.1, en low-code enterprise graph machine learning (ML)-ramme til at bygge, træne og implementere graf-ML-løsninger på komplekse grafer i virksomhedsskala på dage i stedet for måneder. Med GraphStorm kan du bygge løsninger, der direkte tager højde for strukturen af relationer eller interaktioner mellem milliarder af entiteter, som i sagens natur er indlejret i de fleste data fra den virkelige verden, herunder scenarier for registrering af svindel, anbefalinger, fællesskabsdetektion og søge-/hentningsproblemer.
Indtil nu har det været notorisk svært at bygge, træne og implementere graf-ML-løsninger til komplekse virksomhedsgrafer, der nemt har milliarder af noder, hundredvis af milliarder af kanter og snesevis af attributter – tænk bare på en graf, der fanger Amazon.com-produkter , produktattributter, kunder og mere. Med GraphStorm frigiver vi de værktøjer, som Amazon bruger internt til at bringe store grafiske ML-løsninger til produktion. GraphStorm kræver ikke, at du er ekspert i graf-ML og er tilgængelig under Apache v2.0-licensen på GitHub. For at lære mere om GraphStorm, besøg GitHub repository.
I dette indlæg giver vi en introduktion til GraphStorm, dets arkitektur og et eksempel på, hvordan man bruger det.
Introduktion til GraphStorm
Grafalgoritmer og graf-ML dukker op som avancerede løsninger til mange vigtige forretningsproblemer som at forudsige transaktionsrisici, forudse kundepræferencer, opdage indtrængen, optimere forsyningskæder, analyser af sociale netværk og trafikforudsigelse. For eksempel, Amazon Guard Duty, den oprindelige AWS-trusselsdetektionstjeneste, bruger en graf med milliarder af kanter til at forbedre dækningen og nøjagtigheden af dens trusselsintelligens. Dette giver GuardDuty mulighed for at kategorisere tidligere usete domæner som højst sandsynligt, at de er ondsindede eller godartede baseret på deres tilknytning til kendte ondsindede domæner. Ved at bruge Graph Neural Networks (GNN'er) er GuardDuty i stand til at forbedre sin evne til at advare kunder.
Udvikling, lancering og drift af graf-ML-løsninger tager dog måneder og kræver graf-ML-ekspertise. Som et første skridt skal en grafisk ML-forsker bygge en grafisk ML-model til en given use case ved hjælp af en ramme som Deep Graph Library (DGL). Træning af sådanne modeller er udfordrende på grund af størrelsen og kompleksiteten af grafer i virksomhedsapplikationer, som rutinemæssigt når milliarder af noder, hundredvis af milliarder af kanter, forskellige node- og kanttyper og hundredvis af node- og kantattributter. Virksomhedsgrafer kan kræve terabyte hukommelseslagring, hvilket kræver, at grafiske ML-forskere bygger komplekse træningspipelines. Endelig, efter at en model er blevet trænet, skal de implementeres til inferens, hvilket kræver inferensrørledninger, der er lige så svære at bygge som træningsrørledningerne.
GraphStorm 0.1 er en lav-kode enterprise graf ML framework, der gør det muligt for ML praktikere nemt at vælge foruddefinerede graf ML modeller, der har vist sig at være effektive, køre distribueret træning på grafer med milliarder af noder og implementere modellerne i produktion. GraphStorm tilbyder en samling af indbyggede graf-ML-modeller, såsom Relational Graph Convolutional Networks (RGCN), Relational Graph Attention Networks (RGAT) og Heterogeneous Graph Transformer (HGT) til virksomhedsapplikationer med heterogene grafer, som tillader ML-ingeniører med lidt graf ML-ekspertise til at afprøve forskellige modelløsninger til deres opgave og hurtigt vælge den rigtige. End-to-end distribuerede trænings- og inferenspipelines, som skaleres til milliardskala virksomhedsgrafer, gør det nemt at træne, implementere og køre inferens. Hvis du er ny til GraphStorm eller graph ML generelt, vil du drage fordel af de foruddefinerede modeller og pipelines. Hvis du er ekspert, har du alle muligheder for at tune træningspipeline og modelarkitektur for at få den bedste ydeevne. GraphStorm er bygget oven på DGL, en meget populær ramme til udvikling af GNN-modeller, og tilgængelig som open source-kode under Apache v2.0-licensen.
"GraphStorm er designet til at hjælpe kunder med at eksperimentere og operationalisere graf-ML-metoder til industriapplikationer for at fremskynde overtagelsen af graf-ML," siger George Karypis, Senior Principal Scientist i Amazon AI/ML-forskning. "Siden den blev udgivet i Amazon, har GraphStorm reduceret indsatsen for at bygge grafiske ML-baserede løsninger med op til fem gange."
"GraphStorm gør det muligt for vores team at træne GNN-indlejring på en selvovervåget måde på en graf med 288 millioner noder og 2 milliarder kanter," siger Haining Yu, Principal Applied Scientist hos Amazon Measurement, Ad Tech og Data Science. "De forudtrænede GNN-indlejringer viser en forbedring på 24 % i forhold til en forudsigelsesopgave for shopperaktivitet i forhold til en avanceret BERT-baseret baseline; det overgår også benchmark-ydeevne i andre annonceapplikationer."
"Før GraphStorm kunne kunderne kun skalere lodret for at håndtere grafer med 500 millioner kanter," siger Brad Bebee, GM for Amazon Neptune og Amazon Timestream. "GraphStorm gør det muligt for kunder at skalere GNN-modeltræning på massive Amazon Neptun-grafer med titusindvis af milliarder af kanter."
GraphStorm teknisk arkitektur
Følgende figur viser den tekniske arkitektur af GraphStorm.
GraphStorm er bygget oven på PyTorch og kan køre på en enkelt GPU, flere GPU'er og flere GPU-maskiner. Den består af tre lag (markeret i de gule felter i den foregående figur):
- Bundlag (Dist GraphEngine) – Det nederste lag giver de grundlæggende komponenter til at aktivere distribueret graf ML, herunder distribuerede grafer, distribuerede tensorer, distribuerede indlejringer og distribuerede samplere. GraphStorm leverer effektive implementeringer af disse komponenter for at skalere graf ML træning til milliard-node grafer.
- Mellemlag (GS trænings-/inferenspipeline) – Mellemlaget giver trænere, evaluatorer og forudsigere til at forenkle modeltræning og konklusioner for både indbyggede modeller og dine tilpassede modeller. Grundlæggende kan du ved at bruge dette lags API fokusere på modeludviklingen uden at bekymre dig om, hvordan du skalerer modeltræningen.
- Toplag (GS generel model zoo) – Det øverste lag er en modelzoo med populære GNN- og ikke-GNN-modeller til forskellige graftyper. Når dette skrives, giver det RGCN, RGAT og HGT for heterogene grafer og BERTGNN for tekstgrafer. I fremtiden vil vi tilføje understøttelse af temporale grafmodeller som TGAT til tidslige grafer samt TransE og DistMult til vidensgrafer.
Sådan bruger du GraphStorm
Efter installation af GraphStorm behøver du kun tre trin for at bygge og træne GML-modeller til din applikation.
Først forbehandler du dine data (potentielt inklusive din tilpassede funktionsteknik) og transformerer dem til et tabelformat, der kræves af GraphStorm. For hver nodetype definerer du en tabel, der viser alle noder af den type og deres funktioner, hvilket giver et unikt ID for hver node. For hver kanttype definerer du på samme måde en tabel, hvor hver række indeholder kilde- og destinationsknude-id'erne for en kant af den type (for mere information, se Brug din egen datavejledning). Derudover giver du en JSON-fil, der beskriver den overordnede grafstruktur.
For det andet, via kommandolinjegrænsefladen (CLI), bruger du GraphStorms indbyggede construct_graph
komponent til noget GraphStorm-specifik databehandling, som muliggør effektiv distribueret træning og inferens.
For det tredje konfigurerer du modellen og træningen i en YAML-fil (eksempel) og igen ved at bruge CLI'en, påkald en af de fem indbyggede komponenter (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
) som træningspipelines til at træne modellen. Dette trin resulterer i de trænede modelartefakter. For at gøre inferens skal du gentage de første to trin for at transformere inferensdataene til en graf ved hjælp af den samme GraphStorm-komponent (construct_graph
) som før.
Endelig kan du kalde en af de fem indbyggede komponenter, den samme som blev brugt til modeltræning, som en inferenspipeline til at generere indlejringer eller forudsigelsesresultater.
Det samlede flow er også afbildet i den følgende figur.
I det følgende afsnit giver vi et eksempel på brug.
Lav forudsigelser på rå OAG-data
Til dette indlæg demonstrerer vi, hvor nemt GraphStorm kan aktivere graf ML træning og inferens på et stort råt datasæt. Det Åben akademisk graf (OAG) indeholder fem enheder (artikler, forfattere, spillesteder, tilknytninger og studieretning). Det rå datasæt er gemt i JSON-filer med over 500 GB.
Vores opgave er at bygge en model til at forudsige studieretningen for et papir. For at forudsige studieretningen kan du formulere det som en multi-label klassificeringsopgave, men det er svært at bruge one-hot-kodning til at gemme etiketterne, fordi der er hundredtusindvis af felter. Derfor bør du oprette studieretningsknudepunkter og formulere dette problem som en linkforudsigelsesopgave, der forudsiger hvilke studieretningsknudepunkter en papirknude skal forbindes til.
For at modellere dette datasæt med en grafmetode er det første trin at behandle datasættet og udtrække entiteter og kanter. Du kan udtrække fem typer kanter fra JSON-filerne for at definere en graf, vist i den følgende figur. Du kan bruge Jupyter-notesbogen i GraphStorm eksempel kode at behandle datasættet og generere fem entitetstabeller for hver enhedstype og fem kanttabeller for hver kanttype. Jupyter-notesbogen genererer også BERT-indlejringer på entiteterne med tekstdata, såsom papirer.
Efter at have defineret entiteterne og kanterne mellem enhederne, kan du oprette mag_bert.json
, som definerer grafskemaet og kalder den indbyggede grafkonstruktionspipeline construct_graph
i GraphStorm for at bygge grafen (se følgende kode). Selvom GraphStorm grafkonstruktionspipeline kører i en enkelt maskine, understøtter den multi-processing for at behandle noder og kantfunktioner parallelt (--num_processes
) og kan gemme entitets- og kantfunktioner på ekstern hukommelse (--ext-mem-workspace
) for at skalere til store datasæt.
For at behandle så stor en graf skal du bruge en CPU-instans med stor hukommelse til at konstruere grafen. Du kan bruge en Amazon Elastic Compute Cloud (Amazon EC2) r6id.32xlarge instans (128 vCPU og 1 TB RAM) eller r6a.48xlarge instanser (192 vCPU og 1.5 TB RAM) for at konstruere OAG-grafen.
Efter at have konstrueret en graf, kan du bruge gs_link_prediction
at træne en link-forudsigelsesmodel på fire g5.48xlarge-forekomster. Når du bruger de indbyggede modeller, kalder du kun én kommandolinje for at starte det distribuerede træningsjob. Se følgende kode:
Efter modeltræningen gemmes modelartefaktet i mappen /data/mag_lp_model
.
Nu kan du køre linkforudsigelsesinferens for at generere GNN-indlejringer og evaluere modellens ydeevne. GraphStorm giver flere indbyggede evalueringsmetrikker til at evaluere modellens ydeevne. For link-forudsigelsesproblemer, for eksempel, udsender GraphStorm automatisk den metriske gennemsnitlige reciprocal rank (MRR). MRR er en værdifuld metrik til evaluering af graflink-forudsigelsesmodeller, fordi den vurderer, hvor højt de faktiske links er rangeret blandt de forudsagte links. Dette fanger kvaliteten af forudsigelser og sikrer, at vores model korrekt prioriterer sande forbindelser, hvilket er vores mål her.
Du kan køre inferens med én kommandolinje, som vist i følgende kode. I dette tilfælde når modellen en MRR på 0.31 på testsættet af den konstruerede graf.
Bemærk, at inferenspipelinen genererer indlejringer fra linkforudsigelsesmodellen. For at løse problemet med at finde studieretningen for et givet papir skal du blot udføre en k-nærmeste nabosøgning på indlejringerne.
Konklusion
GraphStorm er en ny graf-ML-ramme, der gør det nemt at bygge, træne og implementere graf-ML-modeller på industrigrafer. Det løser nogle centrale udfordringer i graf-ML, herunder skalerbarhed og brugervenlighed. Det giver indbyggede komponenter til at behandle milliardskalagrafer fra rå inputdata til modeltræning og modelslutning og har gjort det muligt for flere Amazon-teams at træne state-of-the-art grafiske ML-modeller i forskellige applikationer. Tjek vores GitHub repository for mere information.
Om forfatterne
Da Zheng er en senior anvendt videnskabsmand ved AWS AI/ML research, der leder et grafmaskinlæringsteam til at udvikle teknikker og rammer til at sætte grafmaskinlæring i produktion. Da fik sin PhD i datalogi fra Johns Hopkins University.
Florian Saupe er en Principal Technical Product Manager hos AWS AI/ML-forskning, der understøtter avancerede videnskabsteams som grafmaskinlæringsgruppen og forbedrer produkter som Amazon DataZone med ML-funktioner. Før han kom til AWS, stod Florian i spidsen for teknisk produktledelse til automatiseret kørsel hos Bosch, var strategikonsulent hos McKinsey & Company og arbejdede som kontrolsystem-/robotforsker – et felt, hvor han har en ph.d.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- EVM Finans. Unified Interface for Decentralized Finance. Adgang her.
- Quantum Media Group. IR/PR forstærket. Adgang her.
- PlatoAiStream. Web3 Data Intelligence. Viden forstærket. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :har
- :er
- $OP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- I stand
- Om
- akademisk
- fremskynde
- Konto
- nøjagtighed
- aktivitet
- faktiske
- Ad
- tilføje
- Desuden
- adresser
- Vedtagelse
- annoncer
- fremskreden
- tilknytninger
- Efter
- igen
- AI / ML
- Alert
- algoritmer
- Alle
- tillade
- tillader
- også
- Amazon
- Amazon EC2
- Amazon Neptun
- Amazon Timestream
- Amazon Web Services
- Amazon.com
- blandt
- an
- analyse
- ,
- Annoncere
- foregribe
- enhver
- Apache
- api
- Anvendelse
- applikationer
- anvendt
- arkitektur
- ER
- AS
- Association
- At
- opmærksomhed
- attributter
- forfattere
- Automatiseret
- automatisk
- til rådighed
- AWS
- baseret
- Baseline
- grundlæggende
- I bund og grund
- BE
- fordi
- været
- før
- benchmark
- gavner det dig
- BEDSTE
- mellem
- Billion
- milliarder
- både
- Bund
- kasser
- brad
- bringe
- bygge
- bygget
- indbygget
- virksomhed
- men
- by
- CAN
- kapaciteter
- fanger
- Optagelse
- tilfælde
- kæder
- udfordringer
- udfordrende
- kontrollere
- klassificering
- kode
- samling
- KOM
- samfund
- selskab
- komplekse
- kompleksitet
- komponent
- komponenter
- Compute
- computer
- Datalogi
- Tilslut
- Tilslutninger
- består
- konstruere
- konstruere
- opbygge
- konsulent
- indeholder
- kontrol
- kunne
- dækning
- skabe
- skik
- kunde
- Kunder
- da
- data
- databehandling
- datalogi
- datasæt
- Dage
- dyb
- definerer
- definere
- demonstrere
- indsætte
- indsat
- konstrueret
- destination
- Detektion
- udvikle
- udvikling
- Udvikling
- dgl
- forskellige
- svært
- direkte
- distribueret
- distribueret træning
- do
- Er ikke
- Domæner
- snesevis
- kørsel
- grund
- hver
- nemt
- let
- Edge
- Effektiv
- effektiv
- indsats
- indlejret
- indlejring
- smergel
- muliggøre
- aktiveret
- muliggør
- ende til ende
- Engineering
- Ingeniører
- forbedre
- Enterprise
- enheder
- enhed
- evaluere
- evaluere
- evaluering
- Endog
- eksempel
- overstiger
- ophidset
- eksperiment
- ekspert
- ekspertise
- ekstern
- ekstrakt
- Feature
- Funktionalitet
- felt
- Fields
- Figur
- File (Felt)
- Filer
- Endelig
- finde
- Fornavn
- flow
- Fokus
- efter
- Til
- format
- fire
- Framework
- rammer
- bedrageri
- bedrageri afsløring
- fra
- fremtiden
- Generelt
- generere
- genererer
- George
- få
- GitHub
- given
- GM
- GPU
- GPU'er
- graf
- grafer
- gruppe
- håndtere
- Hård Ost
- Have
- he
- hjælpe
- link.
- Høj
- stærkt
- hans
- besidder
- Hvordan
- Hvor højt
- How To
- http
- HTTPS
- Hundreder
- ID
- id'er
- if
- vigtigt
- Forbedre
- forbedring
- in
- I andre
- Herunder
- industrien
- oplysninger
- sagens natur
- indgang
- installation
- instans
- i stedet
- Intelligens
- interaktioner
- grænseflade
- internt
- ind
- Introduktion
- IT
- ITS
- Job
- Johns Hopkins University
- sammenføjning
- jpg
- json
- lige
- Nøgle
- viden
- kendt
- Etiketter
- stor
- storstilet
- lancere
- lancering
- lag
- lag
- føre
- førende
- LÆR
- læring
- Bibliotek
- Licens
- ligesom
- Sandsynlig
- Line (linje)
- LINK
- links
- Lister
- lidt
- maskine
- machine learning
- Maskiner
- Maj
- lave
- maerker
- Making
- ledelse
- leder
- måde
- mange
- markeret
- massive
- McKinsey
- McKinsey & Company
- betyde
- måling
- Hukommelse
- metode
- metoder
- metrisk
- Metrics
- Mellemøsten
- million
- ML
- model
- modeller
- måned
- mere
- mest
- flere
- indfødte
- Behov
- Neptune
- netværk
- net
- neurale netværk
- Ny
- node
- noder
- notesbog
- nu
- objektiv
- of
- Tilbud
- on
- ONE
- kun
- open source
- open source-kode
- drift
- optimering
- Indstillinger
- or
- Andet
- vores
- ud
- i løbet af
- samlet
- egen
- Papir
- papirer
- Parallel
- Udfør
- ydeevne
- pick
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- Populær
- Indlæg
- potentielt
- forudsige
- forudsagde
- forudsige
- forudsigelse
- Forudsigelser
- præferencer
- tidligere
- Main
- Problem
- problemer
- behandle
- forarbejdning
- Produkt
- produktstyring
- produktchef
- produktion
- Produkter
- gennemprøvet
- give
- giver
- leverer
- sætte
- pytorch
- kvalitet
- hurtigt
- RAM
- rangeret
- Raw
- nå
- når
- virkelige verden
- anbefalinger
- Reduceret
- Relationer
- frigive
- gentag
- kræver
- påkrævet
- Kræver
- forskning
- Resultater
- højre
- risici
- rutinemæssigt
- RÆKKE
- Kør
- samme
- siger
- Skalerbarhed
- Scale
- scenarier
- Videnskab
- Videnskabsmand
- forskere
- Søg
- Sektion
- se
- senior
- tjeneste
- Tjenester
- sæt
- bør
- Vis
- vist
- Shows
- Tilsvarende
- forenkle
- ganske enkelt
- enkelt
- Størrelse
- Social
- sociale netværk
- Løsninger
- SOLVE
- nogle
- Kilde
- state-of-the-art
- Trin
- Steps
- opbevaring
- butik
- opbevaret
- Strategi
- struktur
- Studere
- sådan
- forsyne
- Forsyningskæder
- support
- Støtte
- Understøtter
- bord
- Tag
- tager
- Opgaver
- hold
- hold
- tech
- Teknisk
- teknikker
- tiere
- prøve
- at
- Fremtiden
- Grafen
- The Source
- deres
- Der.
- derfor
- Disse
- de
- tror
- denne
- selvom?
- tusinder
- trussel
- tre
- gange
- til
- værktøjer
- top
- Trafik
- Tog
- uddannet
- Kurser
- transaktion
- Transform
- transformer
- sand
- prøv
- to
- typen
- typer
- under
- enestående
- universitet
- usability
- brug
- brug tilfælde
- anvendte
- bruger
- ved brug af
- Værdifuld
- forskellige
- handelssystemer
- lodret
- via
- Besøg
- var
- Vej..
- we
- web
- webservices
- GODT
- hvornår
- som
- bredt
- vilje
- med
- uden
- arbejdede
- skrivning
- yaml
- Du
- Din
- zephyrnet
- ZOO