HPC Portré-Gyires-Tóth Bálint
2007 óta foglalkozik elméleti és alkalmazott gépi tanulással. 2008-ban elsőként hozott létre magyar nyelvű rejtett Markov-modell alapú szövegfelolvasó eljárást. 2014 óta a deep learning az elsődleges kutatási területe. Az elméleti deep learning mellett hangsúlyt fektet az olyan gyakorlati alkalmazásokra, mint a sokdimenziós idősormodellezés és predikció, továbbá kép- és audióklasszifikáció és klaszterezés, illetve a természetes nyelvfeldolgozás. 2017-ben elnyerte a NVIDIA Deep Learning Institute (DLI) Certified Instructor és University Ambassador címet, 2022-től a KIFÜ HPC Kompetencia Központ és a Nemzeti Adó- és Vámhivatal külső szakértője.
Hogyan ismerte meg a szuperszámítástechnikát?
A doktori képzés során a gépi tanulás alapú gépi beszédkeltés volt a témám, akkor még CPU-n dolgoztunk. 2013-ban, a doktori védésem idején kaptak újra jelentős figyelmet a gépi tanuláson belül a mély neurális hálózatok, melyeket egyre gyakrabban GPU-n futtattak. A doktorimban egy „korábbi” gépi tanulási eljárással foglalkoztam, viszont 2013-ban már nagyon közel volt egy újabb robbanás. A védésem után mély neuronhálók kutatásával kezdtem foglalkozni, ekkor kerültem kapcsolatba a szuperszámítástechnikával.
Mi volt az első szuperszámítógépes munkája, élménye?
Elkezdtem mély neuronhálózatokkal foglalkozni, szöveg-beszéd átalakítás, tehát gépi szövegfelolvasás témában. Azokat az algoritmusokat, amiket a korábbi módszerrel dolgoztam ki, adaptáltam mély neuronhálózatokra. Nagyjából ugyanekkor vettem részt egy képfelismeréses versenyen is, ahol szintén sok tapasztalatot szereztem.
Ön mire használja a szuperszámítógépet?
Azóta viszonylag sok témával foglalkoztam, elsősorban kutatás-fejlesztési irányból. Egyrészt vannak alapkutatáshoz kapcsolódó témák, illetve vannak alkalmazott kutatások és vállalati fejlesztések. A nagy teljesítményű számításra két esetben van szükség, az egyik, ha nagyon nagy adatbázisokkal dolgozunk, illetve, amikor nincs nagyon sok adatunk, de nagyszámú kísérlet segítségével meg akarjuk találni a legjobb modellt. Főállásban a BME-n dolgozom, ahol lehetőségem nyílik számos hazai és nemzetközi kutatási projektben is részt venni. Sok esetben nem követelmény a HPC-környezet, de a nagyobb kapacitás több és gyorsabb kísérletet tesz lehetővé. A végeredmény pedig egy jobb modell lesz, ami sikeresebben ismer fel egy képet vagy beszédet, jobb minőségű hangot tudunk generálni, vagy, ha vállalati adatokkal dolgozunk egy adott témakörben, pontosabb előrejelzést tudunk adni. Fontos megjegyezni azt, hogy a mélytanuló megoldások jól skálázhatóak. Ha adott idő alatt érünk el 10 GPU-n egy megoldáshoz, akkor 20 GPU-n – ha nem is fele annyi idő alatt – de jó esetben sokkal gyorsabban lehet a számításokat elvégezni. Ez akkor nagyon fontos, amikor nagy számú kísérletet kell elvégeznünk, ilyenkor nem mindegy, hogy harminc napot várunk az eredményre, vagy hármat, esetleg pár órát. Ezekben az esetekben válik különösen fontossá, hogy HPC-n dolgozzunk. Amikor az első kísérleteket futtatjuk, általában csak az elejét várjuk meg a tanításoknak, működik, nem működik – ez a legfontosabb kérdés. Utána figyeljük a tanítások konvergenciáját különböző beállítások, úgynevezett hiperparaméterek mellett. Ilyenkor sem mindegy, mennyit várunk az első, nagyon kezdetleges eredményekre, egy percet vagy húszat, ezért ezekben a projektekben a HPC nagy segítséget jelent. Végül, amikor már egy jól működő mélytanuló keretrendszerünk van, akkor a legnagyobb, több tíz, akár százmilliárd szabad paraméterrel rendelkező modelleket van, hogy hetekig, vagy hónapokig is tanítjuk a legjobb eredmények eléréséhez.
Hogyan hasznosíthatóak az Ön eredményei?
A mélytanulás, gépi tanulás esetén nagyon sokszor az alapkutatás is egy alkalmazott kutatási témakörben teljesedik ki. Ez a tudományterület jelenleg nem úgy működik, mint például a matematika, ahol egy-egy feltevést bizonyítás útján lehet igazolni. A mélytanulásban jellemzően empirikus úton, gyakorlati példákon keresztül tudjuk megmutatni, hogy a kidolgozott algoritmus konzekvensen jobban teljesít, mint a korábbiak. Tehát már az alapkutatásnál is sokszor van eredmény, például, ha idősor modellezésre dolgozunk ki egy új eljárást, annak demonstrálása sok esetben valós idősorokon történik. Ipari felhasználás esetén az adott alkalmazási területre szabjuk a megoldást. Gyakori téma ilyenkor az anomáliadetekció, akár egy gyártási folyamat, akár egy távközlési vagy WiFi-hálózat vonatkozásában; például meghibásodásokat, abnormális működést próbálunk azonosítani. Emellett a mélytanulás talán legnagyobb három témaköre a gépi látás, a természetes nyelvfeldolgozás (Natural Language Processing, NLP) és a beszédtechnológiák. A képfelismerés nagyon sokrétű lehet.
Van olyan projektje, eredménye, ami megvalósítható lett volna szuperszámítógép nélkül?
Kérdéses, hogy hol a határ, mit nevezünk szuperszámítógépnek. Erőforrás hiányában sokszor rá vagyunk kényszerítve, hogy más megoldást keressünk, azonban nemzetközi szintű eredményeket sok esetben rendkívül nehéz volna szuperszámítógép nélkül elkérni. Az érkező Komondor hatalmas lehetőség a hazai kutatói és fejlesztői közösségnek. Ha hozzáférést kapnak 20-50 vagy még több GPU-hoz, már ténylegesen szuperszámítógépes felhasználásról lehet beszélni. Összehasonlításképp, már 16 db modern GPU együttes használata is óriási számítási kapacitást jelent. Ekkora erőforrás egészen más szintre emeli a mélytanulás kutatását. Viszont nem feltétlenül lesz egy kutatás attól jobb, hogy sok GPU-t kap.
Van alternatívája a szuperszámítógépnek az Ön szakterületén? Megoldhatóak a feladatai másképp?
Ez is attól függ, hogyan definiáljuk a HPC-t. Ha például minimum 100 GPU a limit, akkor van. Ha egy modern 4-16 GPU-s rendszert is ebbe a kategóriába sorolunk, akkor nincs. Az első esetben az elsődleges alternatíva az, hogy a kutatócsoportok sokszor publikálják az eredményeiket, és nemcsak egy cikket írnak róla, hanem magát a sokszáz GPU órán keresztül betanított modellt is közzé teszik. Ezt mi a saját céljainknak megfelelően tovább tudjuk hangolni. Tehát egy általános képfelismerő modellt mi specializálni tudunk például orvosi képfeldolgozásra, úgy, hogy az előtanított modell tudását örökli. A tapasztalat azt mutatja, hogy jobb eredményeket tudunk elérni így, hogy nem teljesen a nulláról indulunk el. Meg kell tudnunk oldani a feladatainkat több száz GPU nélkül. Viszont sok tématerületen számos előtanított háló érhető el, és vannak különböző módszerek arra, hogyan tanítsuk tovább. Nagyon sok tanítást le kell így is ahhoz futtatni, hogy a legjobb modellt megtaláljuk. Ha a rendelkezésünkre áll egy sok GPU-s környezet, akkor várhatóan gyorsabban, jobb eredményt tudunk elérni. Ha nincs elég kapacitásunk, elérünk valamilyen eredményt és azt hisszük, ez a limit, ennél jobbat nem tudunk. Viszont, ha van elég kapacitásunk, jó eséllyel lépjük át azt a küszöböt, hogy a proof-of-concept kísérletekből gyakorlatban is jól használható mélytanulás alapú megoldást kapjunk. Pár éve a fordítóprogramok kevésbé voltak jók, de fejlődött a gépi tanulás, egyre nagyobb adatbázisokat tettek az egyre fejlődő algoritmusok alá, volt megfelelő számítási kapacitás, így sikerült átlépni azt a szintet, hogy most már mindenki használ ilyet, aki fordítani szeretne.
Okozott Önnek bármilyen meglepetést a szuperszámítógép?
Igen. Amikor először kaptam hozzáférést nagyobb számú, ráadásul high-end GPU-hoz, meglepett, hogy mennyire nehéz ezeket hatékonyan és jól kihasználni. Használni tudjuk, az nem gond, de nagyon nehéz meghajtani sok jó minőségű GPU-t úgy, hogy értelmesen csináljuk, és ne egy „ágyúval verébre” jellegű megoldást kezdjünk el kidolgozni.
Mennyire tartja kihívásnak a szuperszámítógép használatát?
Nem a kihívás az első szó, ami az eszembe jut, hanem a lehetőség. Méghozzá óriási lehetőség. Az, hogy jön a Komondor 216 GPU-val világviszonylatban nem áttörés, de Magyarország szintjén, ha együtt tudunk dolgozni azokkal kutatókkal, mérnökökkel, akikben megvan a szándék és tudás, hogy ezt hatékonyan kihasználják, akkor ez óriási lehetőség. Többek között arra is, hogy stabilabb legyen a helyünk a gépi tanulás nemzetközi térképén. A működtetése mindenképp kihívás, ezért segítenünk kell a felhasználókat abban, hogy céljaikat leginkább támogassa a rendszer. Azt, amin egyesével túlestünk, szervezett módon, oktatással kell áthidalni. Nincs kész recept, az is kizárt, hogy egy témakörre kidolgozzuk a metódust, és az mindenhol működni fog. Vannak természetesen elérhető megoldások, amiket egy-egy tématerület esetén viszonylag gyorsan be lehet állítani, de ha egy speciális feladatunk van, és legtöbb esetben erről van szó, akkor ennek megoldása közel sem triviális. Nagyon sok olyan feladat előjön, ami nem feltétlenül a konkrét célt szolgálja – adatgyűjtés, -előkészítés, adatbázis-építés, -tisztítás, megoldás tesztelése, modellek továbbtanítása – és másképp működik HPC környezetben.
Milyen gyorsan lehet megszerezni a HPC használatához szükséges ismereteket?
Tématerülettől függ. Van, ahol elő van készítve, például képfelismerésnél vagy természetes nyelvfeldolgozásnál sok ilyen megoldás érhető el, sőt van olyan is, ahol egy egész GPU klaszter konfigurálására megvannak a scriptek meg a config fájlok. Ezek elvileg minimális módosítással azonnal használhatóak, de hogy mit kell módosítani, az az igazán értékes szakértői tudás. Ezt a szintet, amit egy általános témához közeli feladat megoldásához kell, nem olyan vészes elérni. De ha azt szeretnénk, hogy a felhasználó ne csak egy adott sémában tudjon dolgozni, hosszabb képzés kell, amiben az éles projekteken való gyakorlat is jelentősen segít. Igazából, amikor saját magának rakja össze az első szuperszámítógépes projektjét az ember, akkor tanulja meg igazán a buktatókat. Mi is jártunk úgy, hogy például amikor átmentünk 32 GPU-ra 4-ről, nemhogy gyorsabb, hanem lassabb lett először.
Kinek ajánlaná a szuperszámítógép használatát?
Aki foglalkozott már nagyobb adatbázisokkal, érdemes legalább egyszer kipróbálnia, hogy lássa, hogyan működik a HPC – már csak azért is, hogy az eszköztárában benne legyen. Ha valaki gépi tanulással foglalkozik, és már kellett napokat várnia egy-egy tanítás során, annak mindenképp ajánlanám. De az olyanoknak is, akik még nem kezdtek semmit az adataikkal, vagy el sem kezdték rögzíteni azokat. Nekik elsősorban nem is a HPC-t ajánlanám, hanem összességében az adatvezérelt modellezést, tehát a gépi tanulást. Próbálják meg azonosítani azokat az adatokat, amiket már vagy rögzítenek, vagy rögzíthetnének, és ha nem is sok GPU-val, de kezdjenek neki a modellezésnek. Csak így tudnak elég tapasztalatot gyűjteni ahhoz, hogy kiderüljön, kell-e nekik nagyobb számítási kapacitás. De az is egy nagyon nagy felelőssége ennek a szakmának, hogy ha valakinek nincs szüksége gépi tanulásra és/vagy HPC-re egy adott feladat megoldásához, akkor azt is azonosítsuk.
Mi kell ahhoz, hogy valaki hatékony szuperszámítógép-felhasználó legyen?
Leginkább projekttapasztalat. Nyilván kell alapoktatás, ahogy a lexikális tudás és a programozási gyakorlat is, de ennek elsajátítása nem olyan vészes.Miért jelentkezett Kompetencia Központ szakértői gárdájába?
Nagyon közel áll hozzám a gépi tanulás, a deep learning és az adatvezérelt világ, annak örülök a legjobban, ha ezzel foglalkozhatok. Engem ez feltölt. Az is lelkesítő, hogy most Magyarországon épül egy új szuperszámítógép, és 2022 végéig segíthetek a felhasználás hatékonnyá tételében. A személyes inspirációm pedig nagyapám példája, egész életében tanított, kutatott, és többek között a programozó matematikus képzést is ő vezette be. (Gyires Béla professzorról 2010-ben szuperszámítógépet is elneveztek. a szerk.) Sokat segíthet, hogy sok kutatóval, kutatócsoporttal van kapcsolatom, látom, mire van szükség – illetve magam is több témában kutatok. Szeretném, hogy a Komondor egy jól használható és jól használt szuperszámítógép legyen. Egy olyan rendszer kialakításában szeretnék közreműködni, ahol, ha valakinek megvan a tudása a hatékony felhasználáshoz, akkor kapjon hozzáférést és támogatást.
Ön szerint mi a Kompetencia Központ legfontosabb feladata?
A kutatáshoz biztosított számítási kapacitáson túl az első talán az oktatás. Biztosítani kell azokat az eszközöket, persze több szinten, amikkel hatékonyan lehet használni a Komondort. Ezt támogatja egy megfelelő szoftverinfrastruktúra létrehozása, könnyű legyen beállítani a paramétereket, álljanak rendelkezésre előkészített konfigurációk, hogy minél kevesebb mérnökóra menjen el arra, hogy valaki egy ilyen rendszert létre akarjon hozni. A harmadik pedig az, hogy ha valaki elakad, segítsünk neki. Itt inkább a felhasználó és a tanácsadó összekötése az, amit a HPC Kompetencia Központ felvállalhat, elég, ha megmondja, hogy kit érdemes megkeresni.
Mennyire érzékeli a szuperszámítógépek fejlődését?
Nagyon-nagyon. A számítási kapacitás a deep learning területén nagyon szorosan összefügg az eredmények minőségével. Folyamatosan nő a GPU-kártyák teljesítménye, fejlődik a hardverkörnyezet, nő az átviteli sebesség gépen belül, gépek között. A deep learningben egyelőre az a trend, hogy a nagyobb modellek, a nagyobb adatbázisok és a gyorsabb gép jobb eredményt ad. Paradigmaváltásokat hoz. A mi tudományterületünket a számítási kapacitás és az adatmennyiség hajtja. Az adat sokszor nagyon drága, nem is minden esetben érhető el, nincs lehetőségünk például egy ritka betegségről több tízezer adatpontot gyűjteni, mert azt már világszinten kellene. A számítási kapacitást viszont „csak” meg kell venni.
Hogyan látja a szuperszámítástechnika jövőjét?
Ha nagyjából az történik, mint az elmúlt években, tehát nem jön paradigmaváltás a gépi számítások területén és „csak” így haladunk tovább, Moore törvénye szerint, ami ugye kétévente duplázódást jelent, az is döbbenetes. A CPU-knál ettől már kezdtünk lemaradni ettől, a GPU-knál viszont picit gyorsabb is a fejlődés. Ez azt jelenti, hogy ha megnézzük a számítástechnika múltját, hogy honnan indultunk és ezt a duplázódást tartjuk, akkor a számítási kapacitás annyit fog nőni 2024-ig, mint az elmúlt 70 évben. Ha semmi újdonság nem lesz a gépi tanulásban, nem jön semmi technológiai újdonság – ami elég valószínűtlen –, akkor is a nagyobb adatbázisaink és sokkal nagyobb számítási kapacitásaink lesznek. Az is biztos, hogy a HPC különböző új alkalmazási területeken meghökkentő eredményeket fog hozni. A gépi tanulás is egyre több alkalmazási területre jut el, sokkal szélesebb kör használja majd, szükségük lesz kapacitásokra. Ráadásul nem is kell annyira mély tudás egy alkalmazásszintű használathoz, a kisebb szoftverfejlesztő cégek eszköztárában is ott lesz, mint egy lehetőség. Ez rengeteg területen nyit új lehetőségeket, például jog, mezőgazdaság, múzeumok. Olyan alkalmazási területekre megyünk, ahol, ha csak negyedakkora fejlődés megy végbe, mint ami a techszektorban a deep learningnek köszönhetően, akkor is nagyon nagy újdonságok várhatóak.