Hlavní navigace

Hype kolem AI je ospravedlnitelný, říká český student, který vyvinul systém pro CERN

Jan Sedlák

Student FI MUNI Filip Široký v CERNu vyvinul systém strojového učení, který pomáhá s detekcí chybných dat z urychlovače částic.

Doba čtení: 13 minut

Filip Široký se během svého bakalářského studia na Fakultě informatiky Masarykovy univerzity v Brně (FI MUNI) dostal na roční výzkumný pobyt v organizaci CERN. Ve dvaceti letech tam přišel s projektem, který využívá strojové učení pro kontrolu správnosti dat z obřího urychlovače částic. Výsledek se nyní testuje na datech z roku 2017 a v budoucnu by mohl být nasazen do ostrého provozu.

Široký v rozhovoru pro Lupu mluví o tom, v čem jeho práce pro CERN spočívala nebo jak vidí obor umělé inteligence a své další kroky.

Jak jste se do CERNu dostal?

CERN má program nazvaný Technical Student Programme, který je určený zejména pro studenty magisterských oborů ze všech členských zemí. To jsou státy, které CERN platí, v případě Česka je to asi 10 milionů franků ročně. V rámci programu se každý rok nabere několik desítek studentů. Je třeba dát přihlášku, získat nějaká doporučení, prezentovat se dalšími dovednostmi, zahraničními zkušenostmi nebo vyhranými soutěžemi. Pokud se najde projekt, který sedí s profilem studenta, může se stát, že se tam člověk dostane.

Společně se dvěma spolužáky jsme v druhém semestru na Fakultě informatiky na Masarykově univerzitě vyhráli fakultní soutěž v umělé inteligenci, ve třetím semestru jsem byl na Erasmu poblíž Milána a odtud jsem přihlášku do CERNu posílal. Pak jsem se přesunul do Ženevy a teď se vrátil do Brna dodělat si bakalářský titul.

Během přijímacího procesu je třeba napsat poměrně velké množství motivačních dopisů a uvést, co by vás nejvíce zajímalo, proč by měli vybrat zrovna vás, jaké technologie umíte a podobně. První fází je obecné rozřazování, které mají na starost lidé z HR, pak se vedoucí projektů dívají na životopisy a motivační dopisy a případně se ozvou. Pak probíhá technické interview. Technický program v CERNu není pouze pro informatiky, ale také třeba pro odborníky kolem aplikované fyziky, matematiky, elektroniky, strojírenství, materiálů a podobně.

Mě osobně se nejvíce ptali na předchozí zkušenosti a nejvíce se jim líbilo, že jsem vyhrál soutěž v AI. V soutěži jsme měli navrhnout AI, která by uměla hledat anomálie v datech. Něco takového v CERNu zrovna potřebovali, takže jsem měl veliké štěstí. CERN se mě ptal, že má taková a taková data, jaké na jejich zpracování použít metody a tak dále.

Během působení v programu CERNu je třeba přerušit studium?

Funguje to jako praktická stáž. Za každý měsíc dostanete pět kreditů. Já tam byl dvanáct měsíců, takže jsem dostal 60 kreditů, což pokrylo dva semestry. Ale při získání titulu mi to stejně nepomůže, protože potřebuji splnit povinné předměty, takže si studium o rok prodlužuji. Formálně jsem ale studentem pořád byl. Fakulta informatiky byla vstřícná. Pouze jsem do informačního systému musel nahrát dokumenty, že mám s CERNem smlouvu, na jak dlouho tam budu a podobně. Po půlroce jsem musel zaslat průběžný report, který jsem získal od mého supervizora. To si přečetl proděkan a nahrál mi kredity. To samé proběhlo i na konci stáže.

Filip Široký během prezentace v CERNu
Autor: Filip Široký

Filip Široký během prezentace v CERNu

Jak vypadá nástupní proces do CERNu?

Dostanete nějaké stipendium na relokaci do Švýcarska. První tři dny si vyřizujete různé papíry. Dostanete takovou diplomatickou kartičku. CERN má podobné diplomatické výhody, jako třeba zaměstnanci Interpolu, NATO a podobně. Jako student na stáži sice nemáte takové výhody jako zaměstnanci, i tak ale status platí jak ve Francii, tak ve Švýcarsku. Dostanete třeba speciální SPZ na auto a výjimečně můžete parkovat tam, kde se normálně nemůže. Je tam toho víc, ale moc jsem se o to nezajímal. Na letišti v Ženevě jsem zkoušel projít speciální frontou a prošlo to (smích).

No a první dny se spíše seznamujete s infrastrukturou CERNu a vyřizujete si takové věci, jako přístup k určitým datům a dalším věcem.

Vy jste byl ve dvanáctičlenném týmu jako jediný student?

Ano. V rámci CMS bylo několik fyziků, kteří hodně rozuměli fyzice, ale zase tolik nerozuměli strojovému učení. A zároveň skupina měla skrze další program smlouvu s ruskou společností Yandex, která s projektem pomáhala. A já měl být jako taková spojka mezi fyziky a datovými vědci z Yandexu. Nakonec to ale více bylo tak, že jsem pracoval na prototypu své verze programu, který by se do budoucna mohl nasadit v ostrém provozu, a Yandex pracoval na své verzi. Měli jsme týdenní sezení, porovnávali jsme výsledky, dávali si zpětnou vazbu a tak dále.

O čem tedy váš projekt v CERNu je?

Problém byl takový, že CMS, což je druhý největší detektor v rámci obřího urychlovače částic LHC, generuje obrovské množství dat a může se stát, že některá část z tohoto detektoru může fungovat špatně a data mohou mít a mají chyby. To je třeba kontrolovat. Momentálně to jednou za čas dělá skupina asi deseti fyziků, z nichž každý je expert na jinou část onoho detektoru. Úkol byl toto automatizovat – buď úplně, nebo alespoň tak, aby fyzikům zbyla pouze malá část, se kterou by si AI nevěděla rady.

To je problém, který nelze vyřešit za týden. Špatných dat je velmi málo. U dat z roku 2016 je to kolem jednoho procenta. A navíc, když už se nějaká anomálie objevila, často se tak stávalo z odlišných důvodů. Natrénovat nějakou klasifikační neuronovou síť, která by určovala dobré nebo špatné výsledky, na to nebylo k dispozici dostatečné množství dat a stejně bychom z předchozích dat nebyli schopni popsat všechny anomálie, protože některé se ještě nestaly. V potaz tedy přicházely metody, kdy bychom trénovali pouze na dobrých datech. Ale další problém byl, že jsme přesně nevěděli, jak ta data reprezentovat. Momentálně se fyzici rozhodovali na základě nějakých histogramů a vizualizací dat. My ale víme, že v těchto histogramech zdaleka nejsou všechny informace, které by tam být mohly. Byl to takový „trade off“ mezi tím, na základě čeho se dá ještě rychle rozhodnout, a kde je dostatek informací tak, aby se rozhodnout šlo.

Takže jsme přemýšleli, jak hluboko jít a kolik těch informací vzít. V CERNu je několik datasetů, které jsou rozděleny podle úrovně rekonstrukce. Buď můžete brát syrová data, kterých je hrozně moc, ale nemá to moc smysl, a pak jsou rekonstrukce, kdy už se z dat vytváří proměnné, kterým můžeme rozumět. Třeba kolik energie měly nějaké částice a tak dále. Nakonec jsme se rozhodli, že každý data point budeme reprezentovat vektorem o asi 2800 prvků. To nám přišlo jako schůdné. Informací tam bylo ještě poměrně dost a zároveň by si s tím nějaká architektura na základě neuronových sítí ještě poradila.

Kvůli problému označovaném jako „curse of dimensionality“ jsme nemohli použít klasické algoritmy jako třeba One Class SVM a podobně. Hlavní výzkum mého projektu, na kterém jsem pracoval a Yandex mezitím dělal na něčem jiném, bylo využití neuronové sítě s bottleneck architekturou. Byl to můj nápad a vedení to pak odsouhlasilo, že na tom mohu pracovat a že by to mohlo fungovat.

Tato bottleneck architektura se klasicky používá jako „unsupervised learning“, většinou na snížení dimensionality. Já už jsem chtěl přímo klasifikovat. To jsem udělal tak, že jsem trénoval na dobrých datech. Tam se předpokládá, že „reconstruction error“ podle nějaké metriky bude na těch dobrých datech malý a stálý. A je zde předpoklad, že pokud bychom chtěli rekonstruovat nějaký datapoint, který by byl anomální, „reconstruction error“ by byl vyšší a mohli bychom nastavit nějakou hranici, od které bychom to považovali za anomálii.

Tohle jsem vyzkoušel a fungovalo to poměrně dobře. A mělo to ještě jeden skoro až vedlejší efekt, kterého jsem si předtím nevšiml. A sice ten, že výstupem je vektor, který má opět zhruba těch 2800 prvků. A my víme, že prvních 400 prvků jsou nějaké proměnné, které jsou třeba z fotonů a podobně. Napadlo mě vzít vektor, který byl datapointem, a prvek zvlášť odečíst od toho rekonstruovaného. Tohle můžeme vizualizovat a dostaneme jakousi distribuci onoho „reconstruction erroru“. Měl jsem hypotézu, že pokud v této rekonstrukci bude „peak“ třeba pro proměnné spojené s fotony, dalo by se předpokládat, že ten datapoint byl špatný právě díky chybě ve fotonovém detektoru. To jsem vyzkoušel a většinou se tato vlastnost projevila. Takže se dá říci, že tento model má i poměrně dobrou vysvětlitelnost.

Fyzici jsou často skeptičtí vůči neuronovým sítím, protože je vidí jako černou krabičku, kdy to sice funguje celkem dobře, ale není vidět, co se tam děje. A můj způsob se jim líbil a je pravděpodobné, že se zkusí nasadit do produkce. Teď se to zkouší na nových datech z roku 2017. Problémem také je to, že distribuce toho, co je dobré, se mění. Konfigurace detektoru CMS se mění.

Filip Široký
Autor: Filip Široký

Filip Široký

S jak velkými objemy dat se pracuje?

Záleží na tom, jak bychom se to rozhodli reprezentovat. V mém případě to bylo v řádu asi půl TB. CERN mi poskytl poměrně dobrý stroj, který měl asi čtvrt TB paměti RAM a osm výkonných grafických karet 1080 od Nvidie. To jsem mohl kdykoliv využívat. Přímo v budově je datacentrum, kde je takových strojů více. V posledních letech je ve fyzice a spol. o něco takového zájem.

V roce 2016 bylo zhruba jedno procento dat chybných. Bude toto číslo postupně klesat?

Ano, procento by se mělo zmenšovat. Detektory se zlepšují. I to je motivace, že bychom měli trénovat na dobrých datech, protože těch špatných bude méně a méně.

S jakými technologiemi v CERNu pracujete?

Tím, že jsem měl vytvořit pouze prototyp, jsem se mohl rozhodnout sám, s čím chci dělat. Používal jsem Python, TensorFlow, Pandas a další klasické věci, které se používají „všude“. Část věcí jsem musel dělat v C++. Potřeboval jsem získat data, vytvořit analyzer, vypočítat statistiky a podobně. Bylo to psáno nad jinou velkou knihovnou CERNu. Výstupem analyzeru jsou data v ROOTu, který vytvořil přímo CERN a mimo něj to není příliš známá technologie.

Kam dnes jde oblast strojového učení a umělé inteligence? Zaznívají hlasy, že jsme příliš nepokročili, „pouze“ máme více dat nebo výpočetní síly.

Souhlasím s tím, že neuronové sítě jsou tady dlouho, ale myslím si, že vznikají nové architektury. Jedním z úkazů jsou „Generative Adversarial Networks“ (GAN), které pochází od Iana Goodfellowa. Ten mimochodem přednášel v CERNu. To je na této instituce skvělé, můžete tam takovéto lidi potkat. GAN je poměrně nová technologie, která umí řadu věcí. V jistém smyslu je to jakési spojení neuronových sítí s teorií her. Dále je zde pak třeba Deep Reinforcement Learning a další. To jsou zajímavě zkombinované technologie a vývoj pokračuje dostatečně rychle. Celá tato oblast je pro řadu studentů informatiky atraktivní obor a nedá se ani držet krok se vším, co zde vzniká.

Pro studenty je AI/ML zajímavé z jakých důvodů? Je to nejlépe placené, nabízí to zajímavé problémy k řešení?

S tím platem to také souvisí, ale není to jediný důvod. Je to také díky úspěchům typu AlphaGo. Celkově se o celé oblasti hodně mluví, je to vidět. Celá kultura kolem AI je teď zajímavá.

Filip Široký
Autor: Filip Široký

Filip Široký

Nevkrádá se do toho také prvek „bullshitování“?

Určitě ano. I kolegové v CERNu si z toho hodně dělají legraci. Pořád chodili s tím, že je to celé „hype“ a že to za pět let skončí. Určitá část „hype“ je, nicméně řada výsledků je prostě nepopíratelných. Líbí se mi jeden citát, který jsem slyšel na TEDx: „Recept na příštích deset tisíc startupů je ten, že vezmete X a přidáte AI.“ Myslím si ale, že onen „hype“ je z velké části ospravedlnitelný.

Zvýší AI lidský potenciál? Říkal jste, že se v CERNu doposud musí asi deset fyziků zabývat tím, proč jsou některá data špatná. Když se tohle přenese na stroj, pravděpodobně se budou moci věnovat tomu, v čem jsou dobří, tedy fyzice.

Toto je určitě jednou z hlavních věcí, o které v AI je. Dokáže nahradit repetitivní práci, abychom mohli dělat něco více kreativního. To byl přesně případ v CERNu. Fyzici v CERNu věděli, že by automatizace měla nějak jít, ale přesně nevěděli jak. V CERNu jsem se setkal i s takovými lidmi, kteří mají vizi, že v podstatě celá analýza tam by se nějak dala automatizovat.

Chystáte se do CERNu zase vrátit?

Dostal jsem nabídku, abych si tam udělal doktorát. Tomu jsem poměrně nakloněný. Technologie, které bych tam vyvíjel, jsou natolik obecné, že i kdybych po doktorátu už v CERNu nepracoval, mohl bych zkušenosti využít i kdekoliv jinde. Obecně bych chtěl zůstat v Evropě. Hodně zajímavého výzkumu kolem AI se dnes odehrává ve společnostech typu Google, Facebook, Uber a podobně. Ty mají pobočky také v Evropě. Například velká výzkumná AI laboratoř Googlu je v Curychu. Výzkumná AI laboratoř Facebooku nedávno vznikla i v Paříži. Hodně zajímavá je také laboratoř Yoshua Bengia v Montrealu. Pokud bych nebyl v Evropě, zkusil bych to tam.

Proč není vaší volbou číslo jedna právě Google nebo Facebook? Kromě zajímavého výzkumu jsou tam i pěkné platy.

Ani v CERNu nejsou malé platy. Když už jste řádný zaměstnanec, 10 až 15 tisíc franků čistého měsíčně máte, to je dejme tomu až 330 tisíc korun. Google a spol. samozřejmě nabízí ještě více. Zvažuji i tuto možnost. Tyto firmy mají roční programy nazvané AI Residency. Je to něco mezi magisterským a doktorským stupněm. Důvodem, proč si ještě chci nějaké doktorské studium udělat, je to, že vím, kolik toho ještě nevím.

Jeden z dalších hlavních důvodů, proč bych upřednostňoval pozici AI výzkumníka v CERNu před například výzkumníkem aplikované AI v Googlu a podobně, je ten, že CERN má mnohem zajímavější misi. V Googlu byste mohli třeba pracovat na zlepšování nějakého systému pro doporučování, aby si toho lidé více koupili a pomáhali jste Googlu generovat větší příjem, ale v CERN můžete pomáhat hledat novou fyziku a snažit se odpovídat na ty nejzákladnější otázky.

Stáž v CERNu je také placená?

Ano. Dostal jsem asi 3300 franků měsíčně, tedy asi 75 tisíc korun čistého měsíčně. Na Ženevu to není moc, ale tím, že CERN je na hranicích Švýcarska a Francie, tak většina lidí žije ve Francii a na tu jsou takové peníze dobré. Více než polovina se dá ušetřit.

A co aktivity kolem AI/ML v Brně? Je pro vás varianta zůstat zde?

Varianta zde určitě je. Například Tomáš Mikolov dělal doktorát na VUT a teď patří mezi světovou špičku v AI. Zajímavý výzkum se dá dělat kdekoliv. Hlavní výhoda dělat to někde jinde jsou jednak peníze, ale také studenti jsou více zainteresovaní. Roli hrají rovněž kontakty a spolupráce mezi školami a průmyslem. O Švýcarsku se třeba mluví jako o „Silicon Valley of robotics“.

Švýcarsko si může dovolit platit profesorům čtvrt milionů franků za rok a je na tom dobře, takže automaticky stahuje talenty. Zajímavý výzkum se tedy koncentruje v podobných centrech. Česko by se také mělo snažit lákat profesory ze zahraničí. Diskrétní matematiku nás nyní například cvičí post-doktorand z Anglie, který je velice dobrý. Také v CEITECu a podobně už je zahraniční talent vidět, ale ještě toho není tolik.

Ve skupině v CERNu jste byl s lidmi z Caltechu nebo MIT. Jsou u nich nějaké velké rozdíly oproti Čechům?

Těm lidem už bylo kolem čtyřiceti a měli toho více za sebou. Byli vždy ochotní pomoci. Studenti z Čech nejsou horší než odjinud. Když už si do CERNu někoho vyberou, má jisté kvality. Matika se na MIT učí podobně jako v Brně. Na několik set let staré matematice se toho ani moc jinak učit nedá, a pokud člověk chce, může se z přednášek a dalších materiálů věhlasných univerzit typu MIT nebo Stanford učit i z Brna, protože je mají na internetu a veřejné. Obecně v době, kdy je získávání informací velmi jednoduché, hlavní motivací studovat na takovýchto univerzitách fyzicky jsou podle mě hlavně kontakty a prostředí. Je tam třeba větší pravděpodobnost, že se svými spolužáky založíte nějakou zajímavou firmu, a je také jednodušší získat investory.

Z mých zkušeností v zahraničí vidím největší rozdíl, že tamní studenti mají mnohem větší hlad, jsou více draví a tvoří aktivnější komunitu. Mentalita je jiná a může další studenty dovést k lepším výsledkům a dělat něco zajímavějšího než být řadový programátor.

Našli jste v článku chybu?