Článek
V první části rozhovoru jsme s vývojářem umělé inteligence Augustinem Žídkem mluvili obecně o tom, jak probíhá vývoj umělé inteligence, co umí a proč a jak rychlý je její vývoj. V další části se budeme více věnovat práci firmy DeepMind ze skupiny společnosti Google, pro kterou pracuje.
Působíte ve společnosti DeepMind, která je z laického pohledu velice široce rozkročena. Do povědomí veřejnosti vstoupila díky hře go, pak se zase postarala o rozruch mezi biology díky programu AlphaFold. Co je vlastně cílem DeepMind?
Mise DeepMindu je „Vyřešme inteligenci. Použijme ji k vyřešení všech ostatních problémů“ a poměrně dost to ovlivňuje, jak si vybíráme, na čem chceme pracovat. Mnoho projektů, na kterých se u nás dělá, se snaží o tu první část – vyřešit inteligenci.
Naše práce v oblasti „posilovaného učení“ (často se i v češtině používá výraz „reinforcement learning“, pozn. red.) jako například DQN, AlphaGo, AlphaZero nebo výzkum v oblasti „hlubokého učení“ (tzv. „deep learning“) nás postupně posouvají ke stále lepším modelům, které se lépe nebo rychleji učí o světě kolem nás.
Na druhé straně ale již teď máme algoritmy, které jsou schopné řešit současné problémy, tedy v některých případech jsme již v pozici, kdy můžeme „vyřešit některé ostatní problémy“. Mnoho z těchto projektů probíhá ve spolupráci s Googlem, jako například náš projekt na zvýšení efektivity chlazení datacenter nebo WaveNet, který se používá v Google Asistentovi. Posledním takovým projektem je zrovna AlphaFold 2. S lepšími AI schopnostmi bude stále více věcí, které budeme schopni řešit právě pomocí umělé inteligence.
Jak umělá inteligence pomohla biologům se starou hádankou
Tak se pojďme věnovat právě projektu AlphaFold. Překonat lidi ve hře go je totiž zajímavé, ale AlphaFold má potenciál skutečně přispět ke zlepšení v oboru, který má praktické využití. V čem je síla DeepMind? Proč jste před několika lety tak utekli konkurenci?
Jedna ze skvělých věcí na DeepMindu je, že spojuje vědce („researchers“) a programátory („engineers“), což mi mimo jiné přijde zajímavé proto, že pracuji jako research engineer, tedy někde na rozhraní těchto dvou rolí. Vědci a programátoři jsou samozřejmě v mnoha dalších organizacích, ale není mezi nimi tak blízká spolupráce a interakce jako v DeepMindu.
Myslím, že právě blízká spolupráce vědců a programátorů velmi zvyšuje efektivitu – vědci mají k dispozici skvělé nástroje, programy, knihovny, hardware, které zrychlují jejich výzkum a na druhé straně programátoři mají mnohem lepší přehled o tom, co je třeba naprogramovat, protože vidí do výzkumných problémů, které vědci řeší v jejich každodenní práci.
Další věc, která se mi líbí na DeepMindu, je, že nemá striktní kategorizaci na vědce a programátory. Je to spíš spektrum, kde je každý podle toho, co preferuje, co umí a také podle toho, co je právě potřeba. Vnímám to i při své práci – někdy dělám více výzkum, někdy více programuji, jak je potřeba.
V případě CASPu (soutěž programů na určování tvaru bílkovin, pozn. red.) je také podstatné, že jsme stavěli na skvělé práci, kterou udělala CASP a obecně vědecká komunita – například bez PDB (Protein Data Bank – databáze všech známých proteinových struktur), do které šly tisíce člověkolet práce, bychom nikdy nebyli schopni natrénovat žádný model.
Takže i tady platí, že bez dobrých dat by nebyl ani AlphaFold?
Kvalita dostupných dat a vůbec to, že jsou ta data dostupná, hrála kritickou roli. Na trénování AlphaFold používáme data z PDB, a tedy čím lepší jsou tato data, tím lepší je náš model. Velkou roli hrál také CASP. To, že běží už od roku 1994, znamená, že existují dobré metriky, způsoby, jak porovnávat modely, a také existuje komunita, která se věnuje komputačnímu skládání proteinů. Bez těchto dvou přísad by AlphaFold pravděpodobně nevznikl.
V minulosti jsme viděli podobné případy jako například ImageNet, který nastartoval současný AI boom v roce 2012, kdy neuronová síť AlexNet vyhrála každoroční soutěž v klasifikaci obrázků. Takže dobrý dataset spolu s nějakým způsobem, jak měřit pokrok, je dobrý způsob jak zrychlit (AI) pokrok v nějakém vědeckém oboru, protože lidé jsou velmi dobří v optimalizaci, jakmile jim dáte jasnou metriku.
Na druhé straně PDB má k dnešnímu dni zhruba 173 tisíc proteinů. Tohle je podle měřítek strojového učení, které je zvyklé na datasety s miliony nebo miliardami prvků, poměrně málo. Přijde mi tedy celkem zajímavé, že se nám podařilo AlphaFold natrénovat na tak malém množství údajů.
Augustin Žídek
- Absolvoval gymnázium ve Frýdlantě nad Ostravicí, poté nastoupil na University of Cambridge, kde studoval matematiku a informatiku.
- Studium dokončil v roce 2016, na podzim téhož roku nastoupil do společnosti DeepMind.
- V současné době tam působí jako „seniorní výzkumník“, a to primárně na projektu AlphaFold.
Máte nějaké ohlasy od lidí, kteří se proteiny už dlouho zabývají? Přesvědčili jste všechny, že strojové učení je nejlepší cesta k řešení?
Komunita biologů je z AlphaFold i AlphaFold Protein Structure Database celkem nadšená, protože jsme pomohli v některých případech i s experimenty, které deset let ležely v šuplíku. Až data z AlphaFold jim pomohla experiment dokončit, případně ověřit správnost AlphaFold předpovědi pomocí již nasbíraných experimentálních údajů.
Nemyslím si, že strojové učení bude jediný způsob, jak se bude určovat struktura proteinů – je to zkrátka nová metoda, kterou můžou biologové využít a doplnit tím stávající experimentální metody, případně zlepšit jejich přesnost nebo rychlost.
Může se někdy AI učit do značné míry sama, bez velkého množství dat?
Krásný příklad tohoto je robotika, kde se lidé snaží naučit robota nějakou věc, například na základě pozorování toho, jak ji dělá člověk. Získat data je u robotů těžké – simulace je buď nedostatečně přesná, nebo příliš pomalá a nechat běžet reálné roboty je drahé a pomalé. Pro porovnání – jen na natrénování DQN (Deep Q Learning, pozn. red) na Atari hrách je třeba 38 dní herního času.
U některých problémů jde také použít trik se simulátorem nějakého prostředí – necháme agenta interagovat s daným simulátorem, a tím si generuje data sám, aniž bychom my museli vyrobit dataset. Typické příklady tohoto jsou „samoučící“ algoritmy AlphaZero využívající „reinforcement learning“ v daném prostředí (go, šachy nebo šógi) nebo AlphaStar (ve hře Starcraft).
Vaše „AI“ se však postupně velmi měnila, že?
AlphaFold 2 je úplně jiný systém než AlphaFold 1, se kterým jsme se poprvé účastnili soutěže CASP. Zásadní rozdíl je, že AlphaFold 1 nebyl „end-to-end differentiable“ a skládal proteiny ve dvou krocích: V prvním kroku předpověděl histogram vzdáleností mezi všemi páry aminokyselin, ve druhém kroku poté vypočítal na základě tohoto histogramu samotnou strukturu proteinu. Neuronovou síť jsme použili jen v prvním kroku.
Neuronová síť v AlphaFold 2 předpovídá strukturu proteinu přímo. AlphaFold 2 také používá architekturu neuronové sítě, která je lépe uzpůsobená na skládání proteinů.
Chápeme to správně, že jste začali s modelem založeným na obecnějších principech a pak jej proměnili do podoby lépe odpovídající této úloze. Bude to tak podle Vás platit obecně: Bude se architektura AI úlohu od úlohy zásadně lišit nebo si budou spíše podobné?
Model v AlphaFold 1 byl méně specializovaný na skládání proteinů než model v AlphaFold 2. AlphaFold 2 samozřejmě je ovlivněný AlphaFold 1, ale spíš jen v tom, že jsme se na AlphaFold 1 naučili hodně věcí a ty jsme poté použili v AlphaFold 2 – nebo naopak nepoužili, pokud se ukázalo, že nefungují.
Specializace architektury většinou pomáhá, ale ultimátní cíl výzkumu v AI je mít jeden model, který je schopný řešit mnoho různých problémů. Toto je například něco, co se mi líbí na MuZero – je to jeden algoritmus, který je schopný hrát go, šachy a šógi, nebo dokonce libovolnou perfect-information hru pro dva hráče (pro každou hru je třeba ho však natrénovat zvlášť). Tím pádem je to velmi silný algoritmus, protože jde snadno použít na mnoho různých her nebo problémů.
Myslím, že v budoucnosti budeme používat oba přístupy – specifické AI systémy specializované na to, aby dělaly jeden úkol velmi dobře, ale také se budeme snažit o obecný algoritmus, který umí vyřešit mnoho různých problémů a také nové problémy, se kterými se nesetkal při trénování.
Vrátím se k vývoji AlphaFold. Po vítězství v soutěži se vývoj nezastavil, že? V čem jste dosáhli po soutěži největšího pokroku?
V červenci 2021 jsme vydali dva články v Nature. První článek je o metodě samotné a umožňuje komukoliv zreplikovat AlphaFold. Spolu s tímto článkem jsme vydali i zdrojový kód AlphaFold na GitHubu a také natrénované váhy AlphaFold.
O týden později jsme vydali druhý článek, který popisuje poskládaní zhruba 360 tisíc proteinů z 21 proteomů (jako je genom sada všech genů daného organismu, tak proteom je sada všech proteinů daného organismu), které jsme poskládali a dali volně k dispozici v on-line databázi. Mezi těmito 21 proteomy je například proteom člověka, myši, krysy, octomilky, rýže nebo E. coli – tedy organismů, které lidé hodně zkoumají a znalost tvarů proteinů v těchto proteomech je pro nás důležitá. V blízké době plánujeme tuto databázi rozšířit na přibližně 100 milionů proteinů. Pro porovnání – v současné době je známý tvar na základě experimentu u zhruba 180 tisíc proteinů.
V říjnu jsme zveřejnili článek o tom, jak pomocí upravené verze AlphaFoldu skládat proteinové komplexy. Proteinový komplex je seskupení více proteinů, které se skládají dohromady, a bylo tím pádem nutné upravit AlphaFold, aby byl schopný skládat nejen jeden proteinový řetězec, ale více dohromady.
Taková exploze nových výsledků je něco, co můžeme čekat od AI i v dalších oborech? Je to dobrá ilustrace nasazení „počítačové síly“ na úkoly, které dosud vyžadovaly školené profesionály?
Předpokládám, že ano, vzhledem k tomu, že AI jen rozšiřuje spektrum úloh, které umíme řešit pomocí počítače.
Přijde mi to velmi zajímavé zejména u diagnózy v medicíně: Představte si, že jdete na vyšetření, zda máte nějakou nemoc. Možná, že máte smůlu a vyšetřující doktor je unavený nebo ho něco rozptýlí nebo nemá dost zkušeností nebo špatně vyhodnotí to, co vidí.
Nyní co kdyby diagnózu dané nemoci dělalo AI a doktor by jen kontroloval a revidoval výstup tohoto AI? AI není nikdy unavené, vždy je stejně pozorné a pokud se vlivem dalšího zkoumání zlepší, skokově se zlepší diagnóza dané nemoci pro všechny lidi na světě – nemusíte mít štěstí, že vás vyšetřil správný doktor ve správném čase.
Samozřejmě člověk stále bude součástí tohoto procesu, ale například místo dvou hodin práce na detekci mu bude stačit deset minut na kontrolu toho, co navrhl počítač. Tento přístup se už začíná používat například na ranou detekci rakoviny prsu – a ukazuje se, že AI často zachytí nádor dříve než člověk. Když pak ukáže doktorovi, že tady by mohl být nádor, tak doktor často souhlasí (a potvrdí to například dalším skenem), byť sám by daný nádor ještě přehlédl, protože je například příliš malý nebo podobný tkáni kolem.