GM Štěpán Žilka: 4×4 aneb s Leelou do terénu
Velmistr Štěpán Žilka připravil pro šachuj.cz seriál článků, kterými Vás nechá nahlédnout pod pokličku myšlení šachových enginů. Ve druhém díle se podíváme na jeho oblíbence Leela Chess Zero. První díl o AlphaZero naleznete zde.
DeepMind zveřejnil postupy, jakými byl AlphaZero naprogramován. Z jejich strany se jednalo hlavně o prezentaci schopností umělé inteligence. Stejně jako u Deep Blue nebo u Hydry se ani zde nikdy neplánovalo, že by se mělo jednat o dlouhodobě udržovaný šachový projekt pro širší veřejnost.
Leela Chess Zero, Lc0
Stejně jako spousta klasických enginů začíná zkopírováním myšlenek Fruita/Stockfishe, což jsou oba projekty s veřejně známým kódem, tak se i autoři prvního AI enginu měli, díky sdílnosti londýnské pobočky Googlu, o co opřít. Ze začátku to ale Leela neměla vůbec snadné a až s růstem komunity a výpočetních kapacit pro trénink začala skutečně sílit.
Teraflopy a gigahertze
Hodně se mluvilo o tom, že AlphaZero hrál na výrazně silnějším hardwaru oproti svému soupeři. Zatímco špičkový procesor zvládne 125 GFLOPS, špičková grafická karta udělá 125 TFLOPS, tedy tisíckrát tolik. Jenže pozor, jejich tržní cena je v podstatě stejná.
Rozdíl mezi CPU a GPU / TPU
Představte si, že máte na výběr buď 8 špičkových vědců s nejprestižnějším vzděláním a nebo 4500 pomalých, mentálně retardovaných jedinců, kteří si samostatně nedokáží ani odskočit na záchod. Kdo bude efektivnější? Ve výzkumu povedou inženýři, to je jasné. Ale u výkopu určitě ne! Když dáte každému hlupákovi lopatu a několik metrů, naplánujete jim synchronizované přestávky na WC a na svačinu, aby o sebe nezakopávali, tak uvidíte, jak jim půjde práce od ruky.
Podmínky ke hře
AlphaZero hrál i tak na o něco lepším hardwaru očima toho, co se na TCEC považuje za férové nastavení. Rozdíl ale nebyl tak propastný, jak si mnozí myslí. Pronájem setupu AlphaZero na jednu partii by vás vyšel zhruba na to co láhev kvalitního moravského vína.
Trénink na hypotéku
Toto je skutečný kámen úrazu a důvod, proč Leela potřebovala tak početnou skupinu dobrovolníků, kteří na svých grafických kartách po nocích pálili kilowatty a partie hrané Leelou za obě strany posílali zpět autorům k dalšímu zpracování. Finální trénink AlphaZero, který trval pouhé čtyři hodiny, běžel na 5000 TPU, jejichž společný pronájem na takovou dobu by vás přišel na dva a půl milionu!
Tady se můžete podívat, jak takový trénink zhruba vypadá:
TCEC 15
V půlce roku 2019, tedy už zhruba rok a půl po triumfu AlfaZero v Londýně, se vítězem prestižního šampionátu šachových enginů, tentokrát už za férového nastavení hardwaru, se stává Lc0, hotový engine na bázi umělé inteligence, který v podstatě neumí prohrát partii.
TCEC 16
Hned v příštím mistrovství si ale legendární Stockfish bere vše zpět, když poráží v superfinále na sto partií engine AllieStein poměrem 54.5:45.5. Leela mnoha remízami se slabšími enginy v základní části skončila až na třetím místě a neprobojovala se tak do superfinále, kde bych ji já osobně favorizoval.
Jeden engine, tisíce sítí
Zatímco u běžných enginů se jedná o jednoduchý spustitelný exe soubor, u Leely je to pořád tak trochu alchymie. Spustitelný soubor se nemění vůbec, měníte pouze neurální sítě, které k propočtu používá. Zde je dobrý návod, kterou zvolit pro jakou příležitost.
Já používám jednu z posledních T40 a pak novou T60 3010, která v současnosti válčila na TCEC 17. Novější ale neznamená automaticky lepší. Tento posledně jmenovaný 130MB gigant se i na nejrychlejších kartách současnosti probudí k opravdovém výkonu až při hlubších analýzách a pro rychlá tempa a zběžné analýzy tato síť už moc vhodná nebude.
Vatu do uší
Když probudíte čtyři tisíce jader grafické karty ze spánku, hráči vám určitě potvrdí, že i neporušený hardware může pištět jak když zahradní kolečka pět let nevezmete olejem ani vazelinou. Tomuto fyzikálnímu jevu se říká Coil Whine a je těžko předvídatelný a není považován za vadu hardwaru. Dobrá zpráva pro šachové nadšence, hbitá T40ka má v tomto ohledu úplně jiný projev než rozvážná T60ka.
S pohonem všech kol
Už nejednou jsem byl dotazován, jaký hardware je pro Leelu nejlepší. V obchodě vám v tomto ohledu neporadí, klasický GPU benchmark je vám tady totiž k ničemu. Leela je schopná svůj život strávit ve specializovaných tenor cores (TPU = Tensor Processing Unit). To jsou jádra, jejichž jedinou funkcí je výrazné zrychlení matematické operace D=A*B+C pro matice o velikosti 4×4.
Zatím pouze Nvidia RTX
Taková jádra existují pouze v Nvidia RTX kartách a takových má karta osminu oproti marketingově zajímavějším číslům o počtu běžných jader. V současnosti tak můžete na RTX2080ti za cca třicet tisíc korun Leelu prohánět v 544 tensorových jádrech, pro které je tato krkolomná maticová operace samostatnou instrukcí, kterou zvládne během jednoho taktu grafické karty.
Zde najdete benchmark pro Leelu. Skutečnost, že tensor cores vyžadují čísla s poloviční přesností Leele ničím neškodí. Skutečnost, že při použití FP16 roste počet zanalyzovaných pozic za vteřinu mnohonásobně, ta je naopak velmi relevantní.
Leela a Alien Chess
Pro mě se stal tento poziční engine naprostou samozřejmostí při tréninku a podle toho to vypadá i v aplikaci, která se na takové tensorové výpočetní středisko dokáže připojit na dálku třeba ze zahrádky na Krásném (možná znáte spíš jako Krásno ze stejnojmenného filmu). Všechny tahy v knihovně zahájení jsou zanalyzované na 10 vteřinách RTX2080ti jednou z posledních sítí T40.
V pozici na diagramu trvalo dvě desetiny vteřiny, než Leela vyhodnotila tah Sh6 jako nejlepší a od té doby se nepohnula ani s volbou tahu, ani s jeho hodnocením. Zkušení alienisti jistě poznají, že se jedná o jednu z partií, které jsem ukazoval ve video sérii Groundbreaking positional decisions.
Nejbizarnějsí tah mé kariéry
Viděl jsem toho hodně, pochopil jsem toho hodně a u spousty věcí jsem aspoň rozuměl tomu, proč si je nedokážu osvojit. Zcela samostatné místo v tomto příběhu má ale tah 1. Sf4!, který má za cíl po 1…g5 2. Se3! ještě vyprovokovat další oslabení černé pozice tahy f4 a f3. Černými hrající Stockfish příležitost k útoku využil a jeho král se sám ocitl pod prudkým útokem ani ne za 15 tahů! Trvalo mi dlouho, než jsem se z toho vzpamatoval a aspoň částečně pochopil. Opět Leela konzistentně hodnotila tah Sf4 jako nejlepší od prvních desetin vteřiny propočtu.
Autor blogu: GM Štěpán Žilka, aplikace Alien Chess