infokommunikációs technológiák III.6. MAP REDUCE ELVŰ ELOSZTOTT FELDOLGOZÁSI ALGORITMUSOK ÉS TESZTKÖRNYEZET KIDOLGOZÁSA ADATBÁNYÁSZATI FELADATOK VÉGREHAJTÁSÁHOZ KECSKEMÉTI ANNA KUN JEROMOS KÜRT Zrt.
KUTATÁSI TERÜLET BEMUTATÁSA A kutatási projekt során adatbányászati algoritmusok elosztott megvalósításait vizsgáltuk. Felépítettünk egy általános célú klasztert, ahol vizsgálni lehet elosztott algoritmusokat. Többféle algoritmus osztályból vizsgáltunk algoritmusokat, melyek elosztott implementáció szempontjából különböző kihívásokat jelentenek. I/O intenzív algoritmusok skálázódása elosztott rendszereken Deep learning algoritmusok vizsgálata elosztott környezetben 2
KUTATÁSBAN RÉSZT VEVŐ SZEMÉLYEK, SZEREPKÖRÖK Név Pálvölgyi János Balogh György Balázs László Tilesch Ferenc Katona Tamás Darabos Edvárd Salamon Zsolt Mátyus Milán Kecskeméti Anna Pappné Takács Krisztina Botos Ádám Szerepkör Témavezető Kutató Fiatal kutató Szoftverfejlesztési felelős Műszaki dokumentátor, tesztelő 3
A TÉMA ELŐREHALADÁSA 2014. JÚNIUS - AUGUSZTUS 4
KLASZTER KIALAKÍTÁS Cél: Elosztott adatbányászati algoritmusok futtatása 5 gép (Teljes kapacitás: 40 CPU mag, 20x500GB disk, 160GB RAM, dedikált hálózat) Hadoop ökoszisztéma: HDFS, Map-Reduce, és Appache Spark Eredménytermékek: Fizikai klaszterek fejlődéstörténetének ismertetése, (irodalmi, és technológiai áttekintés) Klaszter specifikáció (dokumentum). A megvalósult klaszter pontos specifikációja. Szoftver, hardver komponensek, konfiguráció. Klaszter telepítési útmutató (dokumentum). A klaszter reprodukáláshoz szükséges információk rögzítése. Klaszter optimalizáció (dokumentum). Klaszter építés elemzése. Milyen szempontokat kell figyelembe venni, milyen optimalizációs lehetőségek vannak. Klaszter teszt (dokumentum). A klaszter fizikai paramétereinek mérési adatai (Lokális diszk sebesség, hálózati sebesség, HDFS sebesség teszt Replikációs szám változtatása, blokkméret változtatása). 5
I/O INTENZÍV ALGORITMUSOK I/O limitált algoritmus osztály skálázódásának vizsgálata elosztott környezetben Környezet: HDFS, Map-Reduce, Appache Spark-ot. Algoritmus: log normalizáló Egy domain specifikus nyelven megfogalmazott szabályhalmaz segítségével félig strukturált adatokat strukturált táblázatos formára hoz. Vizsgálatok: Log olvasás Log normalizálás egy gép - egy szál, egy gép - több szál, batch mód - elosztott feldolgozás 6
I/O INTENZÍV ALGORITMUSOK TAPASZTALATOK log file olvasása HW függvényében: Az SSD sebességbeli fölénye a normál HDD-vel szemben. Log normalizálás: A HW összes magját kihasználva jelentős sebesség javulás értünk el. A hardware-k közötti IO sebesség eltérés eltűnt, mivel a számítások több időt igényelnek, mint maga az IO művelet. Számítások párhuzamosítása addig releváns, amíg nem érjük el az IO sebességét. Ha a számítás sebessége azonos az IO művelettel,, akkor további sebességnövekedést már csak az együttes párhuzamosítással érhető el (IO és CPU) Batch módú feldolgozás 6,83 szoros gyorsulást hozott 7
DEEP LEARNING ALGORITMUS OSZTÁLY SKÁLÁZÓDÁSÁNAK VIZSGÁLATA ELOSZTOTT KÖRNYEZETBEN Nehézségek ezen hálózatok tanításával: Jobb kezdeti paraméter beállítási technikák jobb modelleket eredményeznek, hatékony és hatásos kezdeti paraméter beállítás szakértői és domén specifikus tudást igényel, a felügyelt gépi tanítási algoritmusok hajlamosak túlzottan "memorizálni" a betanításra használt adathalmazt (túltanulás). a hálózat tanítása rendkívül időigényes. A mély és széles neurális hálózatok nagy számítási kapacitást vesznek igénybe a tanítási folyamat során. Alapmodell: egy gép egy mag dropout eljárás alapján készített implementáció. Egy multilayer (feed-forward) perceptron hálózat, melynek tanítása során stochastic gradient descend (SGD) technikát alkalmaztak. A dropout eljárást alkalmazva a hálózat egyes véletlenszerűen választott részeit tanítjuk. A modellnek több adathalmazon is jelentősen sikerült javítania az eddigi modellek felismerési pontosságát. Eredmények: A teszthalmazon mért legkisebb hiba 95 volt. 8
DEEP LEARNING ALAPMODELL Alapmodell hibája az MNIST adathalmazon. A teszthalmazon mért minimum: 95. 9
DEEP LEARNING PÁRHUZAMOSÍTÁSI LEHETŐSÉGEK VIZSGÁLATA Az MLP-k tanítását tanítási szakaszokra bontjuk és ezen szakaszokat párhuzamosan hajtjuk végre, majd a legígéretesebbnek tűnőket megtartjuk (jóság) és tovább képezzük, a többit elhagyjuk. Keretrendszer célja: Központi" gondolkodással rendelkező tanítási meta-paraméter együttes megtalálása Ismeri az eddigi tanítási szakaszok eredményeit és a folyamatban lévő tanítási szakaszokat és ezek alapján dönt a következő megvizsgálandó meta-paraméter együttesről. A keretrendszer tulajdonságai: Több számítógép, illetve processzor párhuzamos kihasználása. Központi keresési állapot konzisztenciájának megőrzése. Egy-egy gép vagy számítási szál rendes leállíthatósága. A számítási kapacitás ad-hoc bővíthetősége. Felesleges munkák elkerülése. Azaz, több gép ne számolja véletlenül ugyanazt. Egy-egy gép váratlan kiesésnek kézi kezelhetősége. A lehetséges tanítási paraméterek közül a legoptimálisabbat megpróbáljuk megkeresni egy felettes logikával. 10
DEEP LEARNING REFERENCIA MODELL Referencia modell: hálózatok átlagolása A keretrendszer ismertetésénél említett felettes logikából több is lehet. Felettes logikák (amennyiben több van) hatékonyságának vizsgálata egy referencia alapján. Több tanított hálózat Több lehetséges válasz Eredmény átlagolás Az egyes hálózatok külön-külön tanulnak, majd a klasszifikációk átlagolása történik. 11
DEEP LEARNING REFERENCIA MODELL Az ilyen párhuzamosítás az alapmodellekhez viszonyított hibát képes csökkenteni. Hiba mértékének csökkenése jelentősen függ attól, hogy a rendszer mennyire van messze az optimális tanulástól Amennyiben viszonylag messze van (még sokkal több epoch kellene), akkor ezen javulás jelentős tud lenni. Ha azonban az egyes hálózatokat hagyjuk az optimálishoz közeli szintig tanulni, akkor az eltévesztett klasszifikációk számának javulásában nem érhető el jelentős csökkenés. 12
ELOSZTOTT METAPARAMÉTER OPTIMALIZÁCIÓ MONTE CARLO MÓDSZERREL Cél: Hálózat tanítási paraméterek optimumának megtalálása bolyongással A paramétertér véletlenül kiválasztott kezdőpontjából (párhuzamosan több ilyen keresést is indítunk) indulva tovább lépünk egy másik véletlenül választott nem túl távoli pont irányába, amennyiben ott jobb a tanítás eredménye (kevesebb a hiba). 13
PILLANATKÉP AZ ELOSZTOTTAN INDÍTOTT KERESÉSEKRŐL Az ilyen keresés nem hatékony, mert a kezdeti pont környezetéről semmit nem tudunk és az erről szerzett tudást (a későbbi lépésekben) nem is használjuk fel. Emiatt elképzelhetőek olyan szerencsés választások, melyek ugyannyi lépés alatt lényegesen többet tudnak javítani a metaparaméterekben, mint egy másik helyről indított keresések. Így a keresésbe fektett erőfeszítés nem azonos módon térül meg. 14
ELOSZTOTT METAPARAMÉTER OPTIMALIZÁCIÓ BAYES MÓDSZERREL A paramétertér néhány véletlen helyén kiszámítjuk a függvény értékét (lefuttatjuk a tanítási folyamatot és vesszük a teszt halmazon mért hibát), majd a későbbiek során ezen eredmények inputjai lesznek egy keresésnek. A módszerrel becslés adható a függvényérték javításának valószínűségére (expected improvement) a függvényérték kiszámításánál lényegesen olcsóbban A kiválasztás Monte Carlo módszerrel történik, ott végrehajtunk egy tanítást, és ennek eredményét hozzáadjuk a Bayes adataihoz. Tehát a cél a keresés során olyan helyeket "tippelni", melyeknél a kiinduló hibához képest "jobb hely" található. 15
A HIBA IDŐBELI FEJLŐDÉSE EGY BAYES KERESÉS SORÁN 16
TANÍTÁSI IDŐBEN TÖRTÉNŐ KÖLTSÉGCSÖKKENTÉS KÍSÉRLETE 17
infokommunikációs technológiák KÖSZÖNJÜK A FIGYELMET!