Örömmel jelentjük be a nyílt forráskódú megjelenést GraphStorm 0.1, egy alacsony kódú vállalati gráfgépi tanulási (ML) keretrendszer, amellyel hónapok helyett napok alatt készíthet, betaníthat és telepíthet gráf ML megoldásokat összetett vállalati méretű grafikonokon. A GraphStorm segítségével olyan megoldásokat építhet, amelyek közvetlenül figyelembe veszik az entitások milliárdjai közötti kapcsolatok vagy interakciók szerkezetét, amelyek eleve be vannak ágyazva a legtöbb valós adatba, beleértve a csalásészlelési forgatókönyveket, ajánlásokat, a közösségi észlelést és a keresési/visszakeresési problémákat.
Eddig köztudottan nehéz volt graph ML megoldásokat felépíteni, betanítani és telepíteni olyan összetett vállalati gráfokhoz, amelyek könnyen tartalmazhatnak több milliárd csomópontot, több százmilliárd élt és tucatnyi attribútumot – gondoljunk csak az Amazon.com termékeket rögzítő gráfra. , termékjellemzők, vásárlók és még sok más. A GraphStormmal kiadjuk azokat az eszközöket, amelyeket az Amazon belsőleg használ a nagyszabású gráf ML-megoldások termelésbe hozásához. A GraphStorm nem követeli meg, hogy a graph ML szakértője legyen, és az Apache v2.0 licenc alatt érhető el a GitHubon. Ha többet szeretne megtudni a GraphStormról, látogassa meg a GitHub tárház.
Ebben a bejegyzésben bemutatjuk a GraphStorm-ot, annak architektúráját, és egy példát mutatunk be a használatára.
Bemutatkozik a GraphStorm
A grafikonalgoritmusok és a graph ML korszerű megoldásokként jelennek meg számos fontos üzleti problémára, mint például a tranzakciós kockázatok előrejelzésére, az ügyfelek preferenciáinak előrejelzésére, a behatolások észlelésére, az ellátási láncok optimalizálására, a közösségi hálózatok elemzésére és a forgalom előrejelzésére. Például, Amazon Guard Duty, a natív AWS fenyegetésészlelési szolgáltatás, több milliárd élű grafikont használ a fenyegetésintelligencia lefedettségének és pontosságának javítására. Ez lehetővé teszi a GuardDuty számára, hogy a korábban nem látott domaineket nagy valószínűséggel rosszindulatúnak vagy jóindulatúnak minősítse az ismert rosszindulatú tartományokhoz való társításuk alapján. A Graph Neural Networks (GNN-ek) használatával a GuardDuty képes javítani az ügyfelek figyelmeztetésére való képességét.
A graph ML megoldások fejlesztése, elindítása és működtetése azonban hónapokig tart, és gráf ML szakértelmet igényel. Első lépésként egy gráf ML-tudósnak fel kell építenie egy gráf ML-modellt egy adott használati esethez egy olyan keretrendszer segítségével, mint a Deep Graph Library (DGL). Az ilyen modellek betanítása kihívást jelent a vállalati alkalmazások gráfjainak mérete és összetettsége miatt, amelyek rutinszerűen több milliárd csomópontot, több százmilliárd élt, különböző csomópont- és éltípusokat, valamint több száz csomópont- és élattribútumot érnek el. A vállalati gráfok terabájtnyi memória tárterületet igényelhetnek, így a gráf ML-tudósoknak bonyolult képzési folyamatokat kell készíteniük. Végül, miután egy modellt betanítottak, be kell őket vezetni a következtetéshez, amihez olyan következtetési csővezetékekre van szükség, amelyeket ugyanolyan nehéz megépíteni, mint a tanító csővezetékeket.
A GraphStorm 0.1 egy alacsony kódú vállalati gráf ML keretrendszer, amely lehetővé teszi az ML szakemberek számára, hogy könnyen kiválaszthassanak előre definiált gráf ML modelleket, amelyek bizonyítottan hatékonyak, elosztott képzést hajtsanak végre több milliárd csomópontot tartalmazó gráfokon, és üzembe helyezzék a modelleket a termelésben. A GraphStorm a beépített gráf ML modellek gyűjteményét kínálja, mint például a Relational Graph Convolutional Networks (RGCN), a Relational Graph Attention Networks (RGAT) és a Heterogeneous Graph Transformer (HGT) a heterogén gráfokat tartalmazó vállalati alkalmazásokhoz, amelyek lehetővé teszik az ML mérnökök számára, hogy kevés pénzzel dolgozzanak. graph ML szakértelem, hogy kipróbálhassák a feladatukra különböző modellmegoldásokat, és gyorsan kiválaszthassák a megfelelőt. A végpontokig elosztott képzési és következtetési folyamatok, amelyek milliárdos méretű vállalati grafikonokra skálázódnak, megkönnyítik a következtetések betanítását, telepítését és futtatását. Ha még nem ismeri a GraphStormot vagy általában a graph ML-t, akkor az előre meghatározott modellek és folyamatok előnyeit élvezheti. Ha Ön szakértő, minden lehetősége megvan a képzési folyamat és a modellarchitektúra hangolására a legjobb teljesítmény elérése érdekében. A GraphStorm a DGL-re épül, amely egy széles körben népszerű GNN-modellek fejlesztési keretrendszer, és nyílt forráskódként érhető el az Apache v2.0 licenc alatt.
„A GraphStorm célja, hogy segítse az ügyfeleket a gráf ML módszerek kísérletezésében és operacionalizálásában az ipari alkalmazások számára, hogy felgyorsítsa a gráf ML alkalmazását” – mondja George Karypis, az Amazon AI/ML kutatás vezető tudósa. „Az Amazonon belüli megjelenése óta a GraphStorm akár ötszörösére csökkentette a gráf ML-alapú megoldások létrehozására fordított erőfeszítést.”
"A GraphStorm lehetővé teszi csapatunk számára, hogy önfelügyelt módon tanítsa a GNN-beágyazást egy 288 millió csomópontból és 2 milliárd élből álló gráfon" - mondja Haining Yu, az Amazon Measurement, Ad Tech és Data Science vezető alkalmazott tudósa. „Az előre betanított GNN-beágyazások 24%-os javulást mutatnak a vásárlói aktivitás előrejelzési feladatában a legmodernebb BERT-alapú alapállapothoz képest; más hirdetési alkalmazásokban is meghaladja az összehasonlító teljesítményt.”
„A GraphStorm előtt az ügyfelek csak függőlegesen skálázhattak, hogy kezeljék az 500 millió éles grafikont” – mondja Brad Bebee, az Amazon Neptune és az Amazon Timestream GM-je. "A GraphStorm lehetővé teszi az ügyfelek számára, hogy a GNN-modell képzését masszív Amazon Neptune gráfokon méretezzék, több tízmilliárd éllel."
GraphStorm műszaki architektúra
A következő ábra a GraphStorm műszaki architektúráját mutatja be.
A GraphStorm a PyTorch tetejére épül, és egyetlen GPU-n, több GPU-n és több GPU-n is futhat. Három rétegből áll (az előző ábrán a sárga négyzetekkel jelölve):
- Alsó réteg (Dist GraphEngine) – Az alsó réteg tartalmazza az elosztott gráf ML engedélyezéséhez szükséges alapvető összetevőket, beleértve az elosztott gráfokat, az elosztott tenzorokat, az elosztott beágyazásokat és az elosztott mintavevőket. A GraphStorm ezeknek a komponenseknek a hatékony megvalósítását biztosítja a grafikon ML képzésének milliárdos csomópontos gráfokra való méretezéséhez.
- Középső réteg (GS képzési/következtetési folyamat) – A középső réteg oktatókat, értékelőket és előrejelzőket biztosít, hogy leegyszerűsítsék a modellképzést és a következtetéseket mind a beépített, mind az egyéni modelleknél. Alapvetően ennek a rétegnek az API-jának használatával a modellfejlesztésre összpontosíthat anélkül, hogy aggódnia kellene a modellképzés méretezése miatt.
- Felső réteg (GS általános állatkert modell) – A felső réteg egy modell állatkert, népszerű GNN és nem GNN modellekkel a különböző grafikontípusokhoz. Jelen pillanatban a heterogén gráfokhoz RGCN, RGAT és HGT, a szöveges gráfokhoz pedig BERTGNN-t biztosít. A jövőben támogatni fogjuk az időbeli gráfmodelleket, mint például a TGAT az időbeli gráfokhoz, valamint a TransE és a DistMult a tudásgráfokhoz.
A GraphStorm használata
A GraphStorm telepítése után mindössze három lépésre van szüksége a GML-modellek létrehozásához és betanításához az alkalmazáshoz.
Először is elő kell feldolgoznia az adatait (potenciálisan beleértve az egyéni szolgáltatástervezést is), és átalakítja azokat a GraphStorm által megkövetelt táblázatformátumba. Minden csomóponttípushoz meg kell határozni egy táblázatot, amely felsorolja az adott típusú összes csomópontot és azok jellemzőit, és minden csomóponthoz egyedi azonosítót biztosít. Minden éltípushoz hasonlóan definiál egy táblázatot, amelyben minden sor tartalmazza az adott típusú él forrás- és célcsomópont-azonosítóit (további információért lásd: Saját adatok oktatóanyag használata). Ezenkívül biztosít egy JSON-fájlt, amely leírja a diagram általános szerkezetét.
Másodszor, a parancssori felületen (CLI) keresztül használja a GraphStorm beépített szoftverét construct_graph
komponens néhány GraphStorm-specifikus adatfeldolgozáshoz, amely hatékony elosztott betanítást és következtetést tesz lehetővé.
Harmadszor konfigurálja a modellt és a képzést egy YAML fájlban (példa), és ismét a CLI használatával hívja meg az öt beépített összetevő egyikét (gs_node_classification
, gs_node_regression
, gs_edge_classification
, gs_edge_regression
, gs_link_prediction
). Ez a lépés a betanított modellműtermékeket eredményezi. Következtetés végrehajtásához meg kell ismételnie az első két lépést, hogy a következtetési adatokat grafikonná alakítsa át ugyanazzal a GraphStorm komponenssel (construct_graph
) mint azelőtt.
Végül meghívhatja az öt beépített összetevő egyikét, ugyanazt, amelyet a modelltanításhoz használtak, mint következtetési folyamatot a beágyazások vagy előrejelzési eredmények generálásához.
A teljes áramlást a következő ábra is bemutatja.
A következő részben egy használati esetet mutatunk be.
Készítsen előrejelzéseket a nyers OAG adatok alapján
Ebben a bejegyzésben bemutatjuk, hogy a GraphStorm milyen könnyen képes engedélyezni a gráf ML képzését és következtetéseit egy nagy nyers adatkészleten. A Nyissa meg az akadémiai grafikont (OAG) öt entitást tartalmaz (dolgozatok, szerzők, helyszínek, hovatartozások és tanulmányi terület). A nyers adatkészlet több mint 500 GB-os JSON-fájlokban tárolódik.
Feladatunk egy olyan modell felépítése, amely megjósolja egy dolgozat tudományterületét. A vizsgált terület előrejelzéséhez több címkéből álló osztályozási feladatként is megfogalmazható, de nehéz a one-hot kódolást használni a címkék tárolására, mert több százezer mező van. Ezért létre kell hoznia a vizsgálati terület csomópontjait, és ezt a problémát hivatkozás-előrejelzési feladatként kell megfogalmaznia, megjósolva, hogy egy papírcsomópont melyik tanulmányi terület csomópontjához csatlakozzon.
Ennek az adatkészletnek a gráfmódszerrel történő modellezéséhez az első lépés az adatkészlet feldolgozása, valamint az entitások és élek kinyerése. A következő ábrán látható módon ötféle élt bonthat ki a JSON-fájlokból egy grafikon meghatározásához. Használhatja a Jupyter notebookot a GraphStormban példakód az adatkészlet feldolgozásához és öt entitástáblázat létrehozásához minden entitástípushoz és öt éltáblázathoz minden éltípushoz. A Jupyter notebook BERT-beágyazásokat is generál a szöveges adatokat, például papírokat tartalmazó entitásokon.
Az entitások és az entitások közötti élek meghatározása után létrehozhat mag_bert.json
, amely meghatározza a gráfsémát, és meghívja a beépített gráfépítési folyamatot construct_graph
a GraphStormban a grafikon felépítéséhez (lásd a következő kódot). Annak ellenére, hogy a GraphStorm gráfépítési folyamat egyetlen gépen fut, támogatja a több feldolgozást a csomópontok és élfunkciók párhuzamos feldolgozásához (--num_processes
), és entitás- és éljellemzőket tárolhat külső memórián (--ext-mem-workspace
) nagy adathalmazokra méretezéshez.
Egy ilyen nagy grafikon feldolgozásához nagy memóriájú CPU-példányra van szükség a grafikon felépítéséhez. Használhat egy Amazon rugalmas számítási felhő (Amazon EC2) r6id.32xlarge példány (128 vCPU és 1 TB RAM) vagy r6a.48xlarge példány (192 vCPU és 1.5 TB RAM) az OAG gráf létrehozásához.
A grafikon elkészítése után használhatja gs_link_prediction
link-előrejelzési modell betanítására négy g5.48xlarge példányon. A beépített modellek használatakor csak egy parancssort hív meg az elosztott betanítási feladat elindításához. Lásd a következő kódot:
A modell betanítása után a modell műtermék a mappába kerül /data/mag_lp_model
.
Most már futtathat hivatkozás-előrejelzési következtetést a GNN-beágyazások generálásához és a modell teljesítményének kiértékeléséhez. A GraphStorm több beépített kiértékelési mérőszámot biztosít a modell teljesítményének értékeléséhez. Hivatkozás-előrejelzési problémák esetén például a GraphStorm automatikusan kiadja a metrikus átlagos kölcsönösségi rangot (MRR). Az MRR értékes mérőszám a grafikonhivatkozás-előrejelzési modellek értékeléséhez, mivel felméri, hogy a tényleges hivatkozások milyen magasan helyezkednek el az előre jelzett hivatkozások között. Ez rögzíti az előrejelzések minőségét, biztosítva, hogy modellünk megfelelően priorizálja a valódi kapcsolatokat, ami itt a célunk.
A következtetést egy parancssorból futtathatja, amint az a következő kódban látható. Ebben az esetben a modell 0.31-es MRR-t ér el a felépített gráf teszthalmazán.
Vegye figyelembe, hogy a következtetési folyamat beágyazásokat hoz létre a hivatkozás-előrejelzési modellből. Egy adott papír tanulmányi területének megtalálásának problémájának megoldásához egyszerűen hajtson végre egy k-os legközelebbi szomszéd keresést a beágyazásokon.
Következtetés
A GraphStorm egy új gráf ML keretrendszer, amely megkönnyíti a gráf ML modellek építését, betanítását és üzembe helyezését iparági grafikonokon. Megfelel néhány kulcsfontosságú kihívásra a graph ML területén, beleértve a méretezhetőséget és a használhatóságot. Beépített komponenseket biztosít milliárd léptékű grafikonok feldolgozásához a nyers bemeneti adatoktól a modelltanításig és a modellkövetkeztetésig, és lehetővé tette több Amazon csapat számára, hogy a legkorszerűbb gráf ML modelleket tanítsák különféle alkalmazásokban. Nézze meg a mi GitHub tárház további információért.
A szerzőkről
Da Zheng az AWS AI/ML kutatás vezető alkalmazott tudósa, egy gráfgépi tanulási csapatot vezet, hogy olyan technikákat és keretrendszereket dolgozzanak ki, amelyekkel a gráfgépi tanulást termelésbe helyezik. Da a Johns Hopkins Egyetemen szerzett PhD fokozatot számítástechnikából.
Flórián Saupe az AWS AI/ML kutatás fő műszaki termékmenedzsere, aki olyan fejlett tudományos csapatokat támogat, mint a gráfgépi tanulási csoport, és olyan termékeket fejleszt, mint az Amazon DataZone ML képességekkel. Mielőtt csatlakozott volna az AWS-hez, Florian az automatizált vezetés műszaki termékmenedzsmentjét vezette a Boschnál, stratégiai tanácsadó volt a McKinsey & Company-nál, és vezérlőrendszer-/robotikai tudósként dolgozott – ezen a területen doktori fokozatot szerzett.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- EVM Finance. Egységes felület a decentralizált pénzügyekhez. Hozzáférés itt.
- Quantum Media Group. IR/PR erősített. Hozzáférés itt.
- PlatoAiStream. Web3 adatintelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/fast-track-graph-ml-with-graphstorm-a-new-way-to-solve-problems-on-enterprise-scale-graphs/
- :van
- :is
- $ UP
- 1
- 1 TB
- 100
- 16
- 31
- 500
- 7
- 8
- 9
- a
- Képes
- Rólunk
- egyetemi
- gyorsul
- Fiók
- pontosság
- tevékenység
- tényleges
- Ad
- hozzá
- mellett
- címek
- Örökbefogadás
- hirdetések
- fejlett
- hovatartozás
- Után
- újra
- AI / ML
- Éber
- algoritmusok
- Minden termék
- lehetővé
- lehetővé teszi, hogy
- Is
- amazon
- Amazon EC2
- Amazon Neptun
- Amazon Timestream
- Az Amazon Web Services
- Amazon.com
- között
- an
- elemzés
- és a
- bejelent
- felkészülés
- bármilyen
- Apache
- api
- Alkalmazás
- alkalmazások
- alkalmazott
- építészet
- VANNAK
- AS
- Egyesület
- At
- figyelem
- attribútumok
- szerzők
- Automatizált
- automatikusan
- elérhető
- AWS
- alapján
- kiindulási
- alapvető
- Alapvetően
- BE
- mert
- óta
- előtt
- benchmark
- haszon
- BEST
- között
- Billió
- milliárd
- mindkét
- Alsó
- dobozok
- fejnélküli
- hoz
- épít
- épült
- beépített
- üzleti
- de
- by
- TUD
- képességek
- fogások
- Rögzítése
- eset
- láncok
- kihívások
- kihívást
- ellenőrizze
- besorolás
- kód
- gyűjtemény
- COM
- közösség
- vállalat
- bonyolult
- bonyolultság
- összetevő
- alkatrészek
- Kiszámít
- számítógép
- Computer Science
- Csatlakozás
- kapcsolatok
- áll
- konstrukció
- építése
- építés
- szaktanácsadó
- tartalmaz
- ellenőrzés
- tudott
- lefedettség
- teremt
- szokás
- vevő
- Ügyfelek
- da
- dátum
- adatfeldolgozás
- adat-tudomány
- adatkészletek
- Nap
- mély
- Annak meghatározása,
- meghatározó
- bizonyítani
- telepíteni
- telepített
- tervezett
- rendeltetési hely
- Érzékelés
- Fejleszt
- fejlesztése
- Fejlesztés
- dgl
- különböző
- nehéz
- közvetlenül
- megosztott
- elosztott képzés
- do
- Nem
- domainek
- tucat
- vezetés
- két
- minden
- könnyen
- könnyű
- él
- Hatékony
- hatékony
- erőfeszítés
- beágyazott
- beágyazás
- csiszolókő
- lehetővé
- engedélyezve
- lehetővé teszi
- végtől végig
- Mérnöki
- Mérnökök
- növelése
- Vállalkozás
- Szervezetek
- egység
- értékelni
- értékelő
- értékelés
- Még
- példa
- meghaladja
- izgatott
- kísérlet
- szakértő
- szakvélemény
- külső
- kivonat
- Funkció
- Jellemzők
- mező
- Fields
- Ábra
- filé
- Fájlok
- Végül
- megtalálása
- vezetéknév
- áramlási
- Összpontosít
- következő
- A
- formátum
- négy
- Keretrendszer
- keretek
- csalás
- csalások felderítése
- ból ből
- jövő
- általános
- generál
- generál
- György
- kap
- GitHub
- adott
- GM
- GPU
- GPU
- grafikon
- grafikonok
- Csoport
- fogantyú
- Kemény
- Legyen
- he
- segít
- itt
- Magas
- nagyon
- övé
- tart
- Hogyan
- Milyen magas
- How To
- http
- HTTPS
- Több száz
- ID
- ids
- if
- fontos
- javul
- javulás
- javuló
- in
- Más
- Beleértve
- ipar
- információ
- eredendően
- bemenet
- telepítése
- példa
- helyette
- Intelligencia
- kölcsönhatások
- Felület
- belsőleg
- bele
- Bevezetés
- IT
- ITS
- Munka
- Johns Hopkins University
- csatlakozott
- jpg
- json
- éppen
- Kulcs
- tudás
- ismert
- Címkék
- nagy
- nagyarányú
- indít
- indítás
- réteg
- tojók
- vezet
- vezető
- TANUL
- tanulás
- könyvtár
- Engedély
- mint
- Valószínű
- vonal
- LINK
- linkek
- listák
- kis
- gép
- gépi tanulás
- gép
- Május
- csinál
- KÉSZÍT
- Gyártás
- vezetés
- menedzser
- mód
- sok
- megjelölt
- tömeges
- McKinsey
- McKinsey & Company
- jelent
- mérés
- Memory design
- módszer
- mód
- metrikus
- Metrics
- Középső
- millió
- ML
- modell
- modellek
- hónap
- több
- a legtöbb
- többszörös
- bennszülött
- Szükség
- Neptun
- hálózat
- hálózatok
- neurális hálózatok
- Új
- csomópont
- csomópontok
- jegyzetfüzet
- Most
- célkitűzés
- of
- Ajánlatok
- on
- ONE
- csak
- nyílt forráskódú
- nyílt forráskód
- üzemeltetési
- optimalizálása
- Opciók
- or
- Más
- mi
- ki
- felett
- átfogó
- saját
- Papír
- papírok
- Párhuzamos
- Teljesít
- teljesítmény
- vedd
- csővezeték
- Plató
- Platón adatintelligencia
- PlatoData
- Népszerű
- állás
- potenciálisan
- előre
- jósolt
- előrejelzésére
- előrejelzés
- Tippek
- preferenciák
- korábban
- Fő
- Probléma
- problémák
- folyamat
- feldolgozás
- Termékek
- termékmenedzsment
- termék menedzser
- Termelés
- Termékek
- igazolt
- ad
- biztosít
- amely
- tesz
- pytorch
- világítás
- gyorsan
- RAM
- rangsorolt
- Nyers
- el
- Elér
- való Világ
- ajánlások
- Csökkent
- Kapcsolatok
- engedje
- ismétlés
- szükség
- kötelező
- megköveteli,
- kutatás
- Eredmények
- jobb
- kockázatok
- rutinszerűen
- SOR
- futás
- azonos
- azt mondja,
- skálázhatóság
- Skála
- forgatókönyvek
- Tudomány
- Tudós
- tudósok
- Keresés
- Rész
- lát
- idősebb
- szolgáltatás
- Szolgáltatások
- készlet
- kellene
- előadás
- mutatott
- Műsorok
- Hasonlóképpen
- egyszerűsítése
- egyszerűen
- egyetlen
- Méret
- Közösség
- szociális háló
- Megoldások
- SOLVE
- néhány
- forrás
- csúcs-
- Lépés
- Lépései
- tárolás
- tárolni
- memorizált
- Stratégia
- struktúra
- Tanulmány
- ilyen
- kínálat
- Ellátási láncok
- támogatás
- Támogató
- Támogatja
- táblázat
- Vesz
- tart
- Feladat
- csapat
- csapat
- tech
- Műszaki
- technikák
- tíz
- teszt
- hogy
- A
- A jövő
- A grafikon
- The Source
- azok
- Ott.
- ebből adódóan
- Ezek
- ők
- Szerintem
- ezt
- bár?
- ezer
- fenyegetés
- három
- alkalommal
- nak nek
- szerszámok
- felső
- forgalom
- Vonat
- kiképzett
- Képzések
- tranzakció
- Átalakítás
- transzformátor
- igaz
- megpróbál
- kettő
- típus
- típusok
- alatt
- egyedi
- egyetemi
- használhatóság
- használ
- használati eset
- használt
- használ
- segítségével
- Értékes
- különféle
- helyszínek
- függőlegesen
- keresztül
- Látogat
- volt
- Út..
- we
- háló
- webes szolgáltatások
- JÓL
- amikor
- ami
- széles körben
- lesz
- val vel
- nélkül
- dolgozott
- írás
- yaml
- te
- A te
- zephyrnet
- ZOO