Ako riešiť výpočtovo náročné trénovanie neurónových sietí?

Trénovanie niektorých algoritmov UI je pomerne výpočtovo náročné, a teda nie je vhodné takéto úkony prevádzkovať na edge zariadeniach s obmedzeným výpočtovým výkonom. Tieto úkony je z tohto dôvodu možné distribuovať medzi edge zariadeniami navzájom alebo pre ich výpočtovú náročnosť využívať cloudové služby poskytujúce dostatok výkonu. Distribúciou medzi edge zariadenia môžeme chápať také správanie sa jednotlivých edge zariadení (uzlov) pri ktorom by trénovaním neboli obmedzené iné procesy prebiehajúce na tomto uzle, t.j. trénovanie by prebiehalo len na uzloch, ktoré disponujú voľným výpočtovým výkonom.

Následne by uzol, na ktorom prebehlo trénovanie, zdieľal svoje výsledky s ostatnými uzlami, resp. edge zariadeniami. V niektorých prípadoch je ale trénovanie natoľko výpočtovo náročné, že nie je možné aby prebehlo na edge zariadeniach. Preto, iným spôsobom ako docieliť efektívne využitie zdrojov by mohlo byť trénovanie modelov na výkonných cloudových serveroch a následne distribúcia natrénovaných modelov na edge zariadenia. V nasledujúcich kapitolách si bližšie popíšeme spomínané princípy distribúcie modelov.

Distribúcia modelov medzi edge zariadeniami a cloudom

Ako bolo zmienené, trénovanie NS je výpočtovo najnáročnejšia fáza, tzv. fáza učenia. Preto, ak sa rozmýšľa nad distribúciou výpočtov, tak fázu učenia by mal riešiť cloud. Po trénovaní a validácii NS musí cloud synchronizovať váhy s edge zariadeniami. Tieto edge zariadenia aplikujú naučené poznatky na riešenie konkrétneho problému, tzv. fáza života. Tento prístup prináša ďalšiu výhodu, edge zariadenia môžu využívať natrénovanú NS a cloud sa môže trénovať na nových trénovacích dátach. Po otestovaní novej konfigurácie siete môže cloud distribuovať váhy jednotlivých neurónov edge zariadeniam a tak synchronizovať novú sieť.

Synchronizácia váh by prebiehala formou vektorov, alebo matíc, ktoré by cloud poslal všetkým zariadeniam pomocou databázy. Na obr. 1 je zobrazená architektúra takéhoto riešenia. V tejto architektúre sú edge zariadenia stále vo fáze života a cloud sa stará o fázu učenia v prípadoch keď je to nutné, alebo keď počet nových anotovaných dát je dostatočný na novú fázu učenia.

Distribúcia modelov medzi edge zariadeniami navzájom

Niektoré edge zariadenia už majú dostatočný výpočtový výkon nato, aby na nich mohla prebiehať aj fáza učenia. Takými zariadeniam môžu byť minipočítače s operačnými systémami (Linux, Windows,…). Takýto systém sa dokáže identifikovať v lokálnej sieti a na základe toho, si dokáže synchronizovať vedomosti NS na základe najnovšieho uzla systému napojeného v lokálnej sieti. Všetky uzly systému sa vedia lokalizovať samé na základe technológie Universal Plug and Play (UPnP) v lokálnej sieti [2], [3]. Takisto si vedia vymieňať informácie na základe požiadaviek ostatných uzlov. Takže ak sa v sieti nájde edge zariadenie s novou maticou váh, ostatné zariadenia sa podľa neho synchronizujú. Synchronizácia podľa systémového času je optimálnou možnosťou. Každé takéto zariadenie zdieľa nastavenie svojich váh a čas kedy došlo k poslednej synchronizácií.

Vlastnosti takéhoto systému by mali byť:

  • modulárnosť – systém rozdelený na moduly, ktoré sa dajú svojvoľne vymieňať a nahrádzať,
  • decentralizovanosť – technológia UPnP, ktorá zabezpečí vyhľadanie a konfiguráciu všetkých zapnutých uzlov systému v lokálnej sieti, takže nie je potrebná konfigurácia pred zapojením systému do lokálnej siete a na chod nie je potrebný centrálny server,
  • prenositeľnosť a nízka previazanosť – systém funguje v rôznych hardvérových a softvérových platformách, implementovaný a funkčný je v čo najširšom spektre prostredí,
  • škálovateľnosť – aby bol zabezpečený ľahký prechod na cloudové služby v budúcnosti.

Pre takýto typ úloh je vhodné využiť programovací jazyk vyššej úrovne, ako napríklad platformovo nezávislá Java. Nakoľko systém funguje na minipočítačoch s operačným systémom, tak použitie takýchto programovacích jazykov nie je problém.

Takýto systém môže mať rôzne architektúry. Jeden z príkladov je znázornený na obr. 2. Klient bude používať viacero modulov NS. Po pripojení uzlov do internej siete sa moduly na sieti nájdu a nakonfigurujú pomocou využitia technológie UPnP.

Moduly si následne vymenia parametre siete, ak sa našli 2 topologicky zhodné moduly. To znamená, že NS použité v moduloch majú rovnakú topológiu a popis siete, ktorý sme predom zvolili. Pod parametrami rozumieme váhy naučených NS. Moduly stále prehľadávajú lokálnu sieť, aby mohli objaviť novo napojený modul. Po napojení nového modulu sa zistí aktuálnosť jeho váh a na základe systémového času sa stiahnu nové váhy od novopripojeného modulu na ostatné moduly, alebo sa tomuto modulu poskytnú aktuálne váhy od už pripojených zariadení s rovnakou topológiou.

Pri výmene znalostí sa zapíše dátum výmeny znalostí a uzol od ktorého sa nadobudli novšie znalosti. To predíde učeniu od staršieho alebo toho istého modulu. Po inicializovaní a nastavení všetkých váh od viacerých modulov dá modul echo užívateľovi (klientovi) vo všeobecnej forme ako napríklad informáciou na termináli alebo diódou pripojenou k zariadeniu (uzlu). Užívateľ zistí, že daný modul je vhodný na používanie na základe informácie, ktorú mu modul poskytne. Modul pred vypnutím odošle správu pre ostatné moduly zapojené v lokálnej sieti s informáciou o jeho vypnutí, aby sa predišlo kontaktovaniu, respektíve hľadaniu už vypnutého modulu. Užívateľ môže moduly využiť napríklad na rozpoznávanie objektov, vecí alebo osôb v miestnosti, prípadne riadenie inteligentnej domácnosti. [4]

Existujú aj iné architektúry využitia edge distribúcie uzlov NS. Napríklad architektúra, kde je možné učenie NS aj počas jej fázy života. V tomto prípade by uzlom mohlo byť napríklad svietidlo. Po zapojení do lokálnej siete spotrebič pomocou popisovaného UPnP algoritmu identifikuje ďalšie zariadenia (luxmeter, hodiny, teplomer,…). Počas používania spotrebič rozpozná vzory správania sa používateľa a korelácie napríklad medzi aktuálnym časom a úrovňou osvetlenia. Následne podľa daných vzorov začína spotrebič fungovat samočinne. Svoje akcie koriguje ďalšími vstupmi od klienta. Takýto príklad učenia počas fázy života NS nie je výpočtovo náročný. V tomto prípade by v diagrame na obr. 2 pribudlo ďalšie pozorovanie a to medzi uzlom NS a klientom.

Záver

Podľa výpočtovej náročnosti UI riešení je možné využiť rôzne metódy distribúcie váh NS. Pri výpočtovo náročných algoritmoch trénovania NS je vhodné využiť cloudové služby. V tejto architektúre sú edge zariadenia stále vo fáze života a cloud sa stará o fázu učenia v prípadoch keď je to nutné, alebo keď počet nových dát je dostatočný na novú fázu učenia. Výpočtovo menej náročné systémy nemusia využívať cloud, pre fázu učenia aj života postačujú edge zariadenia. Takto navrhnutý systém sa dokáže úspešne zaregistrovať v lokálnej sieti a na základe toho si dokáže vyhľadať už registrované uzly v tejto sieti. Na základe registrácie si uzol zistí, ktoré zariadenie systému má najaktuálnejšie váhy NS pre špecifickú topológiu. Ak systém zistí, že iný uzol ma novšie váhy NS, daný uzol kontaktuje aktuálnejší a stiahne a aplikuje všetky jeho váhy do svojej NS. V nasledujúcej časti seriálu sa budeme venovať návrhu výberu kritérií pre návrh a hodnotenie edge riešení.

Poďakovanie

Publikácia bola podporená projektom VEGA 1/0663/17 Inteligentné kyber-fyzikálne systémy v heterogénnom prostredí s podporou IoE a cloudových služieb.

Referencie

[1] Čupková, D. – Kajáti, E. – Vaščák, J. – Papcun, P. (2019). Smart/Intelligent edge – umelá inteligencia v dátovej analytike na hrane siete. In: ATP Journal, roč. 26, č. 3, s. 54 – 55. ISSN 1335-2237.
[2] Obiltschnig, G. (2006). Automatic configuration and service discovery for networked smart devices. In Electronica Embedded Conference Munich.
[3] Steinberg, D. H., – Cheshire, S. (2005). Zero Configuration Networking: The Definitive Guide: The Definitive Guide. O'Reilly Media, Inc.
[4] Vereš, D. (2018). Synchronizácia vektorov neurónových sietí v sieťovom prostredí. Diplomová práca. KKUI, FEI, TUKE.

Ing. Erik Kajáti
Ing. Dominika Čupková
Ing. Peter Papcun, PhD.
prof. Ing. Iveta Zolotová, CSc.

Technická univerzita v Košiciach, FEI
Katedra kybernetiky a umelej inteligencie
Centrum inteligentných kybernetických systémov
http://ics.fei.tuke.sk