Umělá inteligence přemýšlí jinak než lidé i jinak než počítače řízené dnešními programy. Proto Google vyvinul jednotku Tensor Processing Unit, optimalizované hardwarové zařízení pro UI.
Umělá inteligence, zkráceně UI, je již dlouho součástí našeho každodenního života. Její přítomnosti si většinou ani nevšímáme, málokdo například ví, jak důležitou roli hraje v algoritmech pro vylepšení kvality komprimovaných fotografií. Uvědomujeme si ji snad jen v případech, kdy slouží jako podpora rozpoznání hlasových příkazů chytrých telefonů nebo jako mozek chytrých reproduktorů připojených k internetu. Bez strojového učení (které je důležitou součástí umělé inteligence) se ale neobejde ani nejpoužívanější současná internetová služba, tedy vyhledávání v Googlu.
Již minimálně dva roky slouží pro třídění vyhledaných odkazů technologie zvaná RankBrain. Cca 15 procent všech denních dotazů do Googlu představují nová slovní spojení, která předtím do vyhledávače nikdo nikdy nezadal. Algoritmy technologie RankBrain vyhledávají vzorky neznámých vyhledávacích dotazů a sémanticky je propojují s podobnými termíny. Cílem je, aby se samotný vyhledávací engine Googlu naučil nabízet odpovídající odpovědi pro doposud neznámé a nikdy předtím nezadané dotazy. Ve svých výpočetních střediscích používá Google pro tento účel vlastní speciálně vyvinuté procesory zvané TPU (Tensor Processing Unit).
Nadlidská inteligence
TPU procesory, které Google oficiálně představil poprvé v roce 2016, získaly své jméno podle firemní softwarové knihovny TensorFlow. Hlavním úkolem procesorů TPU je akcelerace algoritmů umělé inteligence, které jsou založeny na open-source knihovně. Procesory TPU zažily první úspěch po zapojení do hardwarové platformy AlphaGo, na níž byla založena umělá inteligence, která dokázala jako první porazit nejlepší lidské šampiony hry Go. Na rozdíl od šachových programů byl dlouhá léta vznik aplikace, která by byla schopna porazit nejlepší světové hráče Go, považován za nemožný.
Technologie AlphaGo Zero se ale dokázala tuto hru naučit a dovést její znalost k dokonalosti sama, jen pomocí základních pravidel hry. Tři dny po spuštění začala dosahovat profesionálních výsledků a za další tři týdny byla stejně dobrá jako předchozí generace AlphaGo, která získala své schopnosti analýzou milionů profesionálních partií. Ukázalo se, že předcházející generaci této umělé inteligence limitovala jediná věc, a to že se učila pouze z předchozích tahů omezených lidskou myslí.
Po šesti týdnech se stala umělá inteligence AlphaGo neporazitelnou. Tato umělá inteligence společnosti Google běží na nenápadných hardwarových komponentech TPU, které mají podobu přídavných karet instalovaných do serveru. Tyto karty přenáší data po sběrnici PCI Express a interně používají paměťové moduly typu DDR3. Každá z těchto přídavných karet obsahuje čtyři procesory TPU. Google je po stovkách instaluje do serverových racků, v jejichž rámci spolu komunikují přes sběrnici SATA.
Akcelerátor neurálních sítí
Na rozdíl od CPU jsou TPU procesory optimalizované pro aplikace umělých neurálních sítí. Skládají se z množství vzájemně propojených matematických funkcí a parametrů, které emulují činnost lidského mozku, jeho neuronů a synapsí. Stejně tak jako náš mozek, i neurální síť potřebuje vhodné podněty. Jejich prostřednictvím ji lze naprogramovat tak, aby rozpoznávala jazyky, snímky nebo například pravidla hry Go.
Umělé neurální sítě se skládají z různých vrstev neuronů. Každý neuron pracuje s určeným počtem výstupních hodnot propojených neuronů předcházející vrstvy. Správný počet těchto hodnot je klíčem k úspěchu strojového učení, ovšem jeho určení není snadné a je k němu třeba zjednodušeně řečeno vykonat mnoho operací s plovoucí desetinnou čárkou. V tomto ohledu jsou nejlepší volbou grafické procesory. Pro správné vyhledání odpovědí na dotazy vyhledávacího enginu nebo pro předvídání dalších kroků protihráče už ale neurální síť nepotřebuje vysokou přesnost výpočtů s plovoucí čárkou. Při tomto procesu si UI vystačí s násobením a sčítáním celých čísel. TPU od Googlu (viz obrázek vpravo) je v zásadě založen na matici skládající se z 256 x 256 výpočetních jednotek. Tato jádra pracují s osmibitovými celými čísly a dosahují výpočetního výkonu 92 miliard operací za sekundu, jejichž výsledky ukládají do paměti. Na schématu čipu je vidět, že tato matice zabírá pouze přibližně čtvrtinu z plochy procesoru. Zbývající komponenty se starají o nepřetržitý přísun dat. Procesory TPU se samy o sobě nestarají o přísun příkazů, které přichází z připojeného serveru (hostitele) přes sběrnici PCI Express. Přes tuto sběrnici posílají do systému i výsledky výpočtů. Paměťový modul typu FIFO (First-In-First-Out) dodává neuronové síti správný počet hodnot požadovaných pro výpočet přímo do výpočetní jednotky. Vzhledem k tomu, že pro různé specifické aplikace se jejich počet prakticky nemění, stačí pro jejich přenos propustnost pamětí typu DDR3.
45x rychlejší než CPU
Instrukční sada CISC (Complex Instruction Set Computer) TPU procesorů dokáže zpracovat pouze přibližně dvanáct složitých příkazů. Pro většinu požadovaných operací ale stačí pouze pět příkazů, do nichž patří například zpracování výsledků násobení matricí nebo výpočet aktivačních funkcí. Díky optimalizaci kalkulací určených pro UI mohou TPU procesory pracovat až 45x rychleji než CPU nebo 17x rychleji než GPU. V určitých případech dokonce pracují i úsporněji. Google navíc může v nejbližší budoucnosti výrazně a relativně levně zvýšit výkon těchto procesorů. V prvním kroku bude stačit zaměnit pomalou DDR3 RAM paměť za mnohem rychlejší moduly typu GDDR5, což by samo o sobě přineslo okamžité ztrojnásobení výkonu TPU.
***
Porovnání spotřeby
Výhody procesorů TPU ukazuje i porovnání relativního výkonu CPU, GPU a TPU na spotřebovaný watt.
Výpočetní výkon/watt
CPU 1
GPU 2,9
TPU 83
Porovnání rychlosti s CPU a GPU
TPU dokáže neurální síti zpracovat 225 000 předpokladů za sekundu. CPU i GPU ve stejných úlohách zaostávají.
Predikce za sekundu
CPU 5 482
GPU 13 194
TPU 225 000
Foto popis| Tensor Procesor Unit (TPU) Úspěch umělé inteligence společnosti Google je doslova spektakulární. Jeho základem je speciální hardware vyvinutý Googlem, který dokáže akcelerovat neurální sítě mnohem efektivněji než CPU nebo GPU procesory. Zásadní výhodou TPU je i fakt, že částečně využívají běžné součásti PC technologie. TPU čipy jsou osazeny na přídavných SATA kartách, které s ostatními TPU jednotkami komunikují prostřednictvím sběrnice PCI Express.
Foto popis| Procesory TPU ve výpočetním centru Googlu Od roku 2016 Google používá ve svých výpočetních centrech vzájemně propojené TPU procesory (vlevo). Jednotlivé výpočetní jednotky se většinou používají v konfiguraci po čtyřech.
Foto popis| Struktura TPU Nejsilnější stránkou TPU procesorů je rychlé sčítání a násobení. Neurální sítě pracují stejně jako jádra procesoru nejefektivněji s maticemi. Výpočetní jádro zabírá zhruba čtvrtinu plochy celého procesoru. Zbývající prostor je využit pro rychlý přísun vstupních dat. Ta přicházejí prostřednictvím PCI Express sběrnice a směřují do paměti typu DDR3. Výsledky výpočtů jsou přes PCI Express sběrnici odesílány zpátky do serveru.
Foto popis| „Naše UI nepotřebuje lidský vstup.“ Prof. David Silver hlavní programátor umělé inteligence Google AlphaGo Zero
O autorovi| JÖRG GEIGER, autor@chip.cz