- Umělá inteligence ve smartphonu
- Jak funguje a s čím pomáhá?
- A co nas čeká do budoucna?
Příchod grafických akcelerátorů, jako je Mali, znamenal u chytrých telefonů přelom. Akcelerace umělé inteligence je mnohem nenápadnější a moc se v hardwarových recenzích nerozebírá, ale je stejně důležitá – a pro většinu lidí je možná ještě důležitější, stejně jako je akcelerace dekódování videa pro většinu lidí důležitější než 3D akcelerace u her.
Nepřehlédněte: Otevřené WikiLeaks nám ukazují pravou podstatu světa. Z pekelné knihy hříchů se mnohým zatočí hlava
V mobilních telefonech se používá takzvaná narrow AI, specializovaná umělá inteligence. Zatímco obecná umělá inteligence (general AI) je stále zatím nedosažitelným cílem, už desítky let kolem nás fungují fragmenty specializované umělé inteligence, které slouží pro komplikované, ale jasně definovatelné úlohy. I když se zdá, že jde o triviální věci, jako rozeznávání tvarů a nebo hlasu, ve skutečnosti právě k těmto aplikacím vedla dlouhá cesta a uspokojivě se je podařilo vyřešit až v posledních desetiletích.
Rozeznávání hlasových příkazů (voice recognition) je zdánlivě nejobyčejnější implementace umělé inteligence, ale jak by řekli vývojáři, tohle byl pain in the ass. Vývoj sahá sedmdesát let hluboko – v roce 1952 vznikl v Bell Laboratories první systém Audrey, který dokázal rozeznat vyslovované číslovky, ovšem jen od jedné osoby. Systém Bell Labs pochopitelně mířil k hlasem ovládané automatické ústředně, ale ukázalo se, že je opravdu těžké udělat to tak, aby stroj chápal každého mluvčího. O deset let později IBM vytvořila systém Shoebox, který dokázal rozeznat šestnáct hlasových příkazů.
Rozeznávání hlasu je velmi zákeřné – a to i když jste lidský mluvčí a rozumíte tomu, co ten druhý člověk vyslovuje. Každý má totiž specifickou polohu hlasu, dialekt, řečové vady a ten samý příkaz zní úplně jinak, když ho člověk vyslovuje zřetelně, mumlá a nebo třeba křičí. S tím vším se musí AI poprat, což dělá adaptivním způsobem, tedy detekuje správně rozeznané příkazy a ty opakované. V podstatě se inteligence musela naučit poslouchat systémem pokus-omyl – a dnes je její spolehlivost na dobré úrovni, i když už neodesílá hlasové příkazy superpočítači na druhé straně světa: Výkon AI akcelerace zvládne chápání hlasu docela obstojně i lokálně.
Dnes je možné používat služby jako Amazon Alexa, Google Assistant, Apple Siri i Samsung Bixby docela obstojně. U větších systémů, jako byly mainframy IBM AS/400, bylo možné hlasové ovládání přes telefon už před dvaceti lety, ale díky masovému zapojení hlasového rozeznávání došlo k takovému zlepšení hlasového rozeznávání, že v roce 2010 byla chybovost u rozeznávání mluvené řeči pod 5 %. Dnes jsme na tom ještě lépe právě díky neustálému vylepšování se učení a analýzy chyb.
Digitální zpracování obrazu
Dávno jsou doby, kdy se tvrdilo, že jediné možné focení je na „velké sklo“, tedy na rozměrné digitální zrcadlovky s velkými čipy. Problém se snímači je totiž v tom, že čím menší je plocha světlo detekujícího elementu (buňky), tím nižší je šance, že na něj dopadne foton, takže menší senzor typicky potřebuje osvětlenější scénu. Menší snímací buňky také trpí vyšší mírou náhodného spontánního spínání, čímž vzniká digitální šum.
AI zpracovávající obraz má za úkol hlavně šum detekovat a odstraňovat, odhadovat barevný tón osvětlení scény a podle toho provádět barevnou korekci a také dokáže obraz skládat. Dnešní snímače dosahují rozlišení až 200 Mpx, což je opravdu hodně – ale AI je dokáže využít i při focení v nižším rozlišení, protože sejmutý obraz dokáže sloučit z více buněk a eliminovat tak šum. Přitom využívá další údaje, jako například časovou informaci, takže podle osvětlení a času dokáže odhadnout, že se fotí v noci a použije optimalizovanou verzi odstranění šumu, která eliminuje osamocené pixely s atypicky jasnou barvou. Tím mizí typický barevný šum a „podezřele svítící“ pixel se nahradí interpolovanou barvou.
Míra zpracování obrazu je dnes taková, že se celé oblasti říká výpočetní fotografie (computational photography). Dovede i pokročilejší triky, například slučování obrazu z více snímačů najednou a nebo detekce tváří či objektů v popředí. Díky tomu dokáže simulovat hloubku ostrosti (bokeh) i na optických soustavách, kde to teoreticky není možné: Když správně odhadnete, co je vepředu, můžete pozadí více softwarově rozostřit.
Rozeznávání tvarů (počítačové vidění) je také důležité jak pro vážné aplikace augmentované reality, která dovoluje fotogrammetrii (měření a skenování z fotografií a videa), ale i zábavné aplikace, jako je nasazování animovaných filtrů do videa a jejich korektní trojrozměrné mapování v reálném čase. Nasazení kočičích oušek na vaši hlavu vypadá jako takový fórek, ale je to z hlediska AI docela náročný úkol!
Práce s obrazem je stále taková alchymie – kombinace jednotlivých optických soustav, procesorů s odlišnou hardwarovou akcelerací a různými algoritmy přináší jednou lepší, jindy zase horší výsledky. I zde ale můžeme situaci považovat za velmi dobrou, i když je tu stále velký prostor pro zlepšování.
Behaviorální automatizace
Podobně, jako se vaše zvyky učí vaši domácí mazlíčci, dělají to dnes i telefony. Odvrácenou tváří věci je, že vás váš stroj neustále pozoruje a často hlásí data o vašem chování i na servery výrobce – tomu se říká telemetrie a mimo hledání chyb by to mělo vést k tomu, že výrobce identifikuje často používané aplikace a funkce, které může dále ladit.
Většina automatizace je pro uživatele neviditelná. Aplikace sledují chování a dokážou často používané funkce nabízet jako první – je to takový analog „našeptávání“ u vyhledávače Google. U Applu se setkáváme s integrací mezi mobilními aplikacemi a aplikacemi na chytrých hodinkách: Například aplikace Music sleduje, kterou hudbu posloucháte a při nabíjení hodinek do nich uploaduje nejoblíbenější písničky.
Takže až si ráno vyrazíte zaběhat, možná vás překvapí, že v hodinkách máte svou oblíbenou hudbu, aniž byste cokoliv dělali! Jinou známou automatizací Applu je optimalizované nabíjení, kdy se telefon dobíjí na plný stav těsně před tím, než obvykle vstáváte, aby baterie byla naplno nabita jen minimum času, což prodlužuje její životnost.
V současnosti se rozvíjí hlavně automatizace v souvislosti se smart home a connected car. Základem je právě telefon, díky kterému komponenty ví, kde se nacházíte a přes který si typicky nastavujete svoje scénáře. Ty si můžete nastavovat ručně, ale systém také sleduje vaše chování a je schopen odvodit pravidla pro automatizaci, například jaký je stav mezi teplotou, kterou si nastavujete na topení doma a vnější teplotou. Díky tomu je systém schopen automaticky vytvářet pravidla čistě pozorováním – a když se začnete chovat jinak, automaticky je změní.
Vektory, skaláry a matice
Akcelerace umělé inteligence není žádná záhada. Využívají se k tomu tenzorová jádra (tensor cores), což jsou v podstatě akcelerátory tenzorových výpočtů. Jako tenzor se označuje skupina hodnot, které jsou spolu navzájem spojené, tedy obvykle vektory, matice a trojrozměrné matice. S tenzorům se přidávají i skaláry, tedy osamocené hodnoty, protože se s nimi často počítá také. V podstatě skalár je „nularozměrný“ tenzor, vektor je jednorozměrný tenzor a matice dvourozměrný.
Přestože maticové výpočty vypadají na papíře jednoduše, jejich provádění je výpočetně velmi intenzivní – například pro optimalizaci násobení matic se dnes používá umělá inteligence, která se snaží co nejvíce snížit počet jednotlivých násobení. Sčítání je pro hardware nenáročná operace, násobení je náročná, takže čím více to zoptimalizujeme, tím rychleji budeme moci tenzorové operace provádět a také s menšími nároky na energii.
Tenzorová jádra, tedy ta, která se zaměřují na práci s maticemi, začala Nvidia nasazovat u svých čipů s Volta architekturou, které byly určeny pro profesionální nasazení. Od té doby máme podporu pro akceleraci násobení matic – GEMM (General Matrix Multiplication), která dnes zahrnuje i tak zvané řídké matice (sparse matrix), tedy matice, kde je většina prvků nula a práci s nimi lze tedy ještě více zrychlit.
Matice jsou extrémně důležité – na nich je založena práce s obrazem, práce s neuronovými sítěmi a třeba i raytracing a nebo DLSS (Deep Learning Super Sampling). Dnes máme jejich akceleraci i v mobilních čipech – a protože optimalizují práci s maticemi, můžeme mít pokročilejší umělou inteligenci, aniž by se to podepsalo na baterce – a nebo odepsalo její životnost. I když jde o relativně přehlíženou technologii, její příchod je možná tou největší změnou za posledních deset let!
Další články autora:
Zdroj náhledové fotografie: Omid Armin / Unsplash, zdroj: vlastní (viz autor článku).