Komerční sdělení: Artificial Intelligence (AI) neboli umělá inteligence se stává čím dál větším fenoménem. Většinu informací však máme z médií na úrovni vědecké popularizace témat nebo dokonce bulváru. Když se člověk pořádně zamyslí nad AI, nebo se jí chce začít věnovat, zjistí, že se v této problematice ztrácí. Netuší, kde začít, jaké dokumenty nastudovat, kterou knihu si zakoupit, jaký kurz absolvovat, jaký programovací jazyk se má naučit nebo jaký hardware koupit. Dokonce ani neví, jak AI popsat a co vše AI je a co už není. Pojďme si tedy trošku AI vysvětlit. Detailně se tímto tématem v článku zabývá David Rusín, datacenter konzultant ze společnosti ALEF.
Začněme tedy citátem, jehož autorem by měl být Pablo Picasso: „Počítače jsou nepoužitelné, protože umí jen odpovídat na otázky, ale neumí je pokládat.“ Pokud máte doma nebo v rodině dítě v předškolním věku, museli jste si všimnout, že tato „malá výpočetní jednotka“ vzbuzuje hodně otázek, ze kterých zůstanete občas zaskočeni. Na druhou stranu váš smartphone, robotický lux nebo počítač vám otázky neklade. Ani asistenti jako je například Siri nedávají otázky sami od sebe. Mají je zpracované ve svých algoritmech, které byly explicitně nakódované. Nebo se sami naučili, kdy mají dávat jaké otázky. Schopnost klást otázky bez vnějších podnětů považuji za jeden ze znaků vyspělosti AI. Všeobecnou inteligenci, která je pro lidské bytosti tak vlastní, musí mít každý systém.
Kromě již použitých pojmů všeobecná inteligence a AI se však v odborné diskuzi objevují i pojmy jako je strojové učení (Machine Learning – ML), hloubkové učení (Deeping Learning – DL) či neuronová síť. Ale také méně známé pojmy jako například umělá všeobecná inteligence (Artificial General Intelligence – AGI) nebo zúžená umělá inteligence (Artificial Narrow Intelligence – ANI). Zkusme proto nejprve tyto pojmy upravit v terminologii navzdory tomu, že oficiálně dohodnutá definice AI neexistuje.
V první řadě není inteligence jako inteligence. To, co je možné označit za AI se dá místo definice pojmu opsat jako vyjmenování charakteristických vlastností inteligence, a to ať lidské nebo stroje. Těmito vlastnostmi jsou autonomie a adaptibilita.
- Autonomie – Schopnost vykonávat úlohy v komplexních prostředích bez neustálého vedení cizí osobou.
- Adaptibilita – Schopnost zlepšit svůj intelektuální výkon učení díky zkušenostem.
Pokud je naším cílem vytvořit všestrannou umělou inteligenci zvládající velké množství různorodých úloh, které se přibližují úrovni schopnosti člověka, označujeme ji jako umělá všeobecná inteligence (AGI). V současnosti je AGI nedosažitelnou metou. Zatím u nás neběhají roboti jako ve filmu. Pokud jsou však úlohy kladeny na AI v menším množství nebo pouze jeden úkol, může AI dosahovat pozoruhodných výsledků. Dokonce některé výsledky dokážou předčit i člověka. Tuto AI nazýváme zúžená umělá inteligence (ANI).
Existuje mnoho věcí, které stroje nezvládnou, i když mají skvělé hardware i software. Postarat se o kočku, aby nezemřela, je těžší, než poznat kočku pomocí umělé inteligence. Definice úlohy nebo cíle je prvním krokem na cestě k využití AI v praxi. Cíl typu „stroj se má chovat téměř jako člověk“ (všeobecná inteligence) je v současnosti přímou cestou k neúspěchu v AI projektu. Správnou cestou je mít jasně definovaný use case, tedy mít jednoznačně nadefinovaný cíl nebo úlohu. Zároveň je důležité vědět, kterou formu AI budeme při plnění těchto cílů využívat.
Typy této technologie:
- Umělá inteligence (AI – Articifial Intelligence)
- Strojové učení (ML – Machine Learning)
- Hloubkové učení (DL – Deep Learning)
Pojem AI se tedy často používá s dvojím výrazem. Prvně jako pojmenování technologie nebo jako typová podskupina technologie se stejným názvem, což může působit matoucím dojmem. V následujícím textu budeme používat označení AI jako typ technologie.
Rozdíly ve zkratce: AI je stroj simulující chování inteligentního člověka. ML je stroj, který se učí dělat rozhodnutí na základě získaných dat. DL je ML na bázi neuronových sítí. Rozdíl mezi ML a DL je v tom, že pokud ML pracuje s jednou úrovní učení, DL používá více úrovní učení. Výstup z jedné úrovně je pak vstupem pro druhou úroveň. DL je tedy schopna řešit komplexnější úlohy než ML.
ML, DL a AI dle využití:
AI je technologie, jenž je sama schopná zanalyzovat zadání, vydefinovat a získat dataset, který je třeba k řešení zadání. Následně dokáže zpracovat dataset pro získání výsledků daného zadání. Dokáže sama sebe vytrénovat pomocí datasetu. AI se k výsledkům dostává zpravidla pomocí opakovaného zpracování dat, které je během procesu schopna sama doplnit, a dokonce i samotný proces zpracování vylepšovat. AI si může během procesu učení vyvinout postupy, pravidla a vzory sloužící k dopracování se ke správnému výsledku. Tyto vzory mohou být nové, a to buď proto, že do teď neexistovaly nebo nebyly objevené. Problém je v tom, že člověk často není schopen zjistit, jakým postupem se AI k výsledku dopracovala. Proto nelze určit, jestli je postup správný nebo chybný. Proto neumí zkorigovat postup AI, umí dát pouze zpětnou vazbu o správnosti výsledku.
ML se z historických dat (dataset) naučí vzory, které následně využívá pro zpracování dat budoucích. Postupy a pravidla do ML vkládá člověk. Na vytrénování je však potřebné obrovské množství kvalifikovaných dat. Technologie učení je realizována cyklicky opakujícím se stejným procesem. Dataset pro aplikaci definuje a připraví vždy člověk. Pokud i algoritmy v ML aplikaci jsou správné a vstupní dataset je chybný nebo nedostačující, ML nejsme schopni vytrénovat tak, aby dával přesné výsledky. Úspěch ML je plně závislý na kvalitě datasetu, jelikož ML není schopna chybný dataset ani rozpoznat ani opravit. U ML známe postup, jak se technologie dostala k výsledkům. Proto, pokud se změní podmínky v algoritmech, musí se dodat ML jako nové vstupy. AI umí na změny reagovat více automaticky na rozdíl od ML. Obě technologie potřebují určitou míru zpětné vazby, kde člověk vyhodnotí správnost výsledků v procese učení. V ML je zpětná vazba více interaktivní a vede aplikaci přímo k očekávanému výsledku.
DL používá určité druhý ML technik, kde jednodušší procesní/výpočetní jednotky jsou zesíťované do jednoho DL systému. Výsledek procesování dat jedné jednotky je vstupem pro jinou jednotku. Jednotky jsou obvykle uspořádané do vrstev. Vstupní informace při procesování DL systémů musí projít více vrstvami procesních jednotek, než DL dospěje k nějakému výsledku. Architektura je inspirována lidským mozkem, proto tyto DL systémy nazýváme neuronovými sítěmi. Každá síť má minimálně vstupní a výstupní vrstvu. Přes vstupní se dostávají vstupní data do sítě a přes výstupní se zpracované výsledky dostávají ven z neuronové sítě. Mezi těmito základními vrstvami jsou běžně vkládané vnitřní vrstvy, které data také zpracovávají do mezivýsledků pro následovnou vrstvu neuronů. Toto technické řešení ML umožňuje DL síti naučit se složitější struktury bez toho, aby vyžadovala nereálně velké množství údajů.
Systém učení je založený na zpětné vazbě. Z toho vyplývá nutnost dělání chyb v procesu učení se. A právě chybovost může být parametrem trénování AI. Je možné definovat kvalitu AI systému na základě početnosti chyb během trénování, když se AI dostane na nějakou předem definovanou úroveň. Například: dítě potřebuje několik desítek vizuálních vjemů, aby se naučilo rozpoznat psa. Chybovost rozpoznání psa dítětem je zanedbatelná při malém počtu předloh. Současné systémy AI potřebují tisíce či dokonce miliony vstupů (obrázků či videí), aby spolehlivě rozlišily psa od jiného systému. Tedy kvalita učení se je u člověka mnohonásobně vyšší než při AI.
Kde začít?
Pojem AI datujeme již z 50. let 20. století. Akorát do teď jsme neměli dostatečný výpočetní výkon a datasety. Současně AI/ML bez výpočeního výkonu, nebo AI/ML bez velkého množství vstupních dat, dnes není AI, respektive ML. Potřebný výpočetní výkon už máme k dispozici, a také obrovské databáze všeho možného. Ovšem oblast AI/ML/DL je stále ve fázi bouřlivého rozvoje. Vyvíjí se hardware a software podpora. Vyvíjejí se AI platformy, které se snaží učení stále více zefektivnit.
Navzdory tomu, že se již v praxi používají aplikace, které jsou funkční a komerčně využívané, pravděpodobně nenajdete aplikaci, která by přesně plnila vaše cíle. I kdybyste našli vhodnou aplikaci, i tak musí být vytrénovaná pro vaše unikátní prostředí. Velmi zjednodušeně: například chatbot aplikace v pizzerii musí znát menu, aby bylo možné si vybírat jídlo, přijmout objednávku a vyřídit. V současnosti projekt AI obvykle začíná úplně od nuly. Z čehož vyplývá, že projekt převážně realizují IT firmy, a to buď jako nový do budoucnosti perspektivní produkt nebo na objednávku třetí firmy.
Prvním krokem při AI/ML projektu je potřeba zjistit, či vůbec potřebujeme tyto technologie k dosažení daných cílů. Potřeba ML může být specifikována jako například:
Jednoduché klasifikační pravidla jsou nedostatečná
Škálovatelnost je problém pro velký počet datasetů
ML nepotřebujeme pokud:
- Výsledek je možné predikovat použitím jednoduchých pravidel a výpočtů
- Můžeme naprogramovat napřed dané kroky bez potřeby jakýchkoli dat pro určení programu
Použití AI/ML na běžnou aplikaci je mrhání zdrojů.
Při Greenfield realizaci AI/ML projektu je nevyhnutelné budovat tým. AI si svou komplexností vyžaduje týmovou práci. Vyplývá to i z procesů vytváření AI, ML či DL aplikace.
Pokud se na úplném začátku do projektu pustí jeden člověk, velmi rychle zjistí, že bez kolaborace není možné pokračovat. Proces budování AI/ML aplikace si totiž žádá různorodé profese.
Ve fázi sbírání dat je důležité data posbírat z různých zdrojů. Mohou to být například streamová data, data z velkého množství IoT zařízení nebo jednoduše data z webových stránek na internetu. Tato data je potřeba následně připravit pro trénování našeho systému. Ne všechna data, která jsme shromáždili, jsou relevantní. Proto je potřeba je protřídit nebo upravit. Zároveň je třeba změnit formát dat tak, aby ho AI/ML systém znal a byl vhodný pro učení. Aby algoritmy byly správně interpretovány a byly bezpečné. Tyto úkony jsou prací datových inženýrů. Musí ovšem spolupracovat s programátory ML algoritmů a ti zase se systémovými inženýry, kteří mají na starosti HW a SW infrastrukturu AI/ML systému. Praxe ukázala, že 80 % celkového času je potřebné věnovat právě sběru a úpravě dat. Zatímco učení a trénování systému již tolik času nevyžaduje.
Nutno říci, že se nesmí zapomenout na HW a SW. Je potřeba dopředu rozhodnout o tom, na jakých HW a SW zdrojích se má aplikace AI/ML vybudovat. To souvisí s definováním cíle projektu – jaké úkoly má aplikace plnit.
ML architektura se blíží tradičnímu computingu. Tedy k sadě serverů připojených vzájemně i k datovým úložištím přes nějakou síť. Je možné na to použít řešení pro Big Data. Neuronové servery DL jsou architektonicky více podobné architektuře lidského mozku, kde je obrovské množství samostatně fungujících malých výpočtových jednotek, jsou vzájemně propojeny a tvoří jeden celek.
Tím, že jsou výpočty pro AI a ML značně paralelyzovány, ukázalo se nasazení grafických karet na tento typ computingu řádově efektivnější než nasazení tradičních x86 procesorů. Společnost Nvidia je jedním z předních hráčů na poli vývoje infrastruktury pro AI. Vyrábí specializované výkonné grafické karty a vyvíjí superpočítače DGX, které propojují větší množství těchto karet pro dosažení co nejvyššího výkonu. Nvidia zajišťuje podporu kompletního SW stacku pro nejpoužívanější AI a ML prostředí TensorFlow, Caffe, Torch, Theano, atd., ale i designuje referenční HW architektury spolu se svými infrastrukturními partnery. Tyto architektury zajišťují bezproblémové nasazení škálovatelné AI infrastruktury s optimálním výkonem. Jedním takovým řešením je ONTAP AI, jedná se o výkonově vyladěnou kombinaci těch nejlepších infrastrukturních komponentů pro AI workloady: Nvidia DGX servery, NetApp NVMe All-Flash FAS disková pole a vše propojují CISCO Nexus switche po 100 Gbps Ethernetu. DGX servery jsou schopné generovat workloady s miliony IOPS při trénování ML tudíž si Nvidia vybrala nejprve ta nejvýkonnější disková pole od NetApp AFF A800, která umožňují škálování v jednotkách milionů IOPS s latencí pod 0.5ms. Pro saturování podobného výkonu by bylo potřeba desítek běžných x86 serverů, ale Nvidia DGX zvládne vytěžit maximální výkon jednoho diskového pole i jen 6 superpočítači. Nvidia poskytuje obecný design těchto superpočítačů i třetím stranám, takže existují například i validované designy s názvem FlexPod AI, tedy řešení založené čistě na CISCO UCS serverech s Nvidia výpočetními kartami, CISCO Nexus switchích a NetApp storage systémech. Tato architektura je vhodná zejména pro zákazníky, kteří ocení jednotnou servisní podporu společnosti CISCO nad celým řešením.
Velké množství organizací uvažující o nasazení AI a ML nemá specializované infrastrukturní specialisty, ale zaměstnává spíše datové vědce, kteří mají tyto projekty na starost a většinou pokusy s AI bývají na začátku spíše malého rozsahu a často začínají v cloudu. NetApp připravil právě pro datové vědce produkt pro kompletní správu dat a AI workflow v hybridním cloudu – NetApp AI Control Plane. Tento nástroj automatizuje většinu infrastrukturních úkonů, jako je klonování a replikace datasetů pro sdílení dat mezi různými lokalitami, projekty atd., zajišťuje automatizovanou správu Kubernetes prostředí a integruje se s nástroji jako Kubeflow. Toto rozhraní pomáhá vědcům soustředit se více na AI a méně na správu infrastruktury, navíc zajišťuje možnost umístit AI workflow do cloudu i do vlastního data centra nebo kombinovaně, unifikuje správu projektů a přináší organizacím velké časové i finanční úspory při realizaci AI projektů.
- Pokud vás téma zaujalo a chcete se o něm dozvědět více, můžete napsat přímo expertům ze společnosti ALEF na mail: cz-netapp@alef.com.