Modely a platformy AI

Julien Rebetez, vedoucí inženýr strojového učení ve společnosti Picterra – rozhovor

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Julien Rebetez je vedoucí softwarového a strojového učení inženýra ve společnosti Picterra. Picterra poskytuje geoprostorovou cloudovou platformu speciálně navrženou pro školení hlubokých učících se detektorů, rychle a bezpečně.

Bez jediné řádky kódu a s pouze několika lidsky vytvořenými anotacemi uživatelé Picterry vytvářejí a nasazují jedinečné akční a připravené k použití hluboké učení modely.

Automatizuje analýzu satelitních a leteckých snímků, umožňující uživatelům identifikovat objekty a vzory.

Co vás přitáhlo k strojovému učení a umělé inteligenci?

Začal jsem programovat, protože jsem chtěl vytvářet videohry a zajímal se o počítačovou grafiku. To mě vedlo k počítačovému vidění, které je vlastně opačný proces, kdy místo toho, aby počítač vytvářel falešné prostředí, má počítač vnímat reálné prostředí. Během svých studií jsem absolvoval einige kurzy strojového učení a začal se zajímat o počítačové vidění z hlediska strojového učení. Myslím, že to, co je zajímavé na strojovém učení, je, že se nachází na rozhraní mezi softwarovým inženýrstvím, algoritmy a matematikou a stále to feels kind of magical, když to funguje.

 

Již několik let pracujete na využití strojového učení pro analýzu satelitních snímků. Jaký byl váš první projekt?

Můj první kontakt se satelitními snímky byl projekt Terra-i (k detekci odlesňování) a pracoval jsem na něm během svých studií. Byl jsem překvapen množstvím volně dostupných satelitních dat, která jsou produkována různými kosmickými agenturami (NASA, ESA atd.). Můžete získat pravidelné snímky planety zdarma každý den nebo tak a je to skvělý zdroj pro mnoho vědeckých aplikací.

 

Můžete sdílet více informací o projektu “Terra-i”?

Projekt Terra-i (http://terra-i.org/terra-i.html) byl zahájen profesorem Andrezem Perez-Uribe, z HEIG-VD (Švýcarsko) a nyní je veden Louisem Reymondinem, z CIAT (Kolumbie). Nápad projektu spočívá v detekci odlesňování pomocí volně dostupných satelitních snímků. V té době jsme pracovali s snímky MODIS (rozlišení 250 m) protože poskytovaly uniformní a předvídatelnou pokrytí (jak prostorové, tak časové). Získali jsme měření pro každý pixel každých několik dní a z této časové řady měření jsme se pokusili detekovat anomálie nebo novinky, jak je někdy nazýváme ve strojovém učení.

Tento projekt byl velmi zajímavý, protože množství dat bylo výzvou v té době a byla také一些 softwarová inženýrství zapojena, aby to fungovalo na více počítačích a tak dále. Z hlediska strojového učení jsme použili Bayesian Neural Network (ne příliš hluboký v té době) k předpovědi, jak by měla vypadat časová řada pixelu. Pokud měření neodpovídalo předpovědi, měli jsme anomálii.

V rámci tohoto projektu jsem také pracoval na odstranění mraků. Použili jsme tradiční přístup signálové zpracování, kde máte časovou řadu měření a některé z nich budou úplně mimo kvůli mraku. Použili jsme fourierovský přístup (HANTS) k očištění časové řady před detekcí novinek v ní. Jednou z obtíží bylo, že pokud bychom to očistili příliš silně, odstranili bychom také novinky, takže bylo třeba udělat einige experimenty, aby se našly správné parametry.

 

Také jste navrhl a implementoval hluboký učení systém pro automatickou klasifikaci typu plodin z leteckých (dronových) snímků farmářských polí. Jaké byly hlavní výzvy v té době?

Tento byl můj první skutečný kontakt s hlubokým učením. V té době jsem si myslím, že hlavní výzvy byly více na straně spuštění frameworku a správného použití GPU než na samotném strojovém učení. Použili jsme Theano, který byl jedním z předků Tensorflowu.

Cílem projektu bylo klasifikovat typ plodiny v poli z dronových snímků. Zkouseli jsme přístup, kde hluboký učení model používal barevné histogramy jako vstupy místo raw obrazu. Abychom to udělali rozumně rychle, musel jsem implementovat vlastní Theano vrstvu, až po některé CUDA kódy. To byla skvělá učební zkušenost v té době a dobrý způsob, jak se trochu ponořit do technických detailů hlubokého učení.

 

Jste oficiálně vedoucí softwarového a strojového učení inženýra ve společnosti Picterra. Jak byste popsal svou denní činnost?

Skutečně se to mění, ale většina času je věnována sledování celkové architektury systému a produktu obecně a komunikaci s různými zainteresovanými stranami. Ačkoli strojové učení je jádrem našeho podnikání, rychle si uvědomíte, že většina času není strávena samotným strojovým učením, ale všemi věcmi kolem něj: správou dat, infrastrukturou, UI/UX, prototypováním, pochopením uživatelů atd. To je docela změna oproti akademické sféře nebo předchozím zkušenostem ve větších společnostech, kde jste mnohem více zaměřeni na konkrétní problém.

Co je zajímavé na Picterře je, že nejen spouštíme hluboké učení modely pro uživatele, ale také jim umožňujeme trénovat své vlastní. To je odlišné od typického pracovního postupu strojového učení, kde má tým strojového učení trénovat model a poté jej publikovat do produkce. To znamená, že nemůžeme ručně manipulovat s trénovacími parametry, jak se často děje. Musíme najít trénovací metodu, která bude fungovat pro všechny naše uživatele. To nás vedlo k vytvoření našeho “experimentálního frameworku”, který je velkou sbírkou dat, která simulují trénovací data, která naši uživatelé vytvářejí na platformě. Můžeme pak snadno testovat změny v naší trénovací metodě proti těmto datům a vyhodnotit, zda pomáhají nebo ne. Místo hodnocení jednoho modelu tak vyhodnocujeme architekturu + trénovací metodu.

Další výzvou je, že naši uživatelé nejsou odborníky na strojové učení, takže nevědí, co je trénovací sada, co je label a tak dále. Vytvoření uživatelského rozhraní, které umožňuje uživatelům bez znalostí strojového učení vytvářet datové sady a trénovat strojové učení modely, je neustálou výzvou a existuje mnoho zpětné vazby mezi týmy UX a strojového učení, aby se zajistilo, že uživatelé jsou směrováni správným směrem.

 

Jedna z vašich odpovědností zahrnuje prototypování nových nápadů a technologií. Můžete sdílet některé z nejzajímavějších projektů, na kterých jste pracoval?

Myslím, že nejzajímavější byl na Picterře prototyp Custom Detectoru. Před 1,5 lety jsme měli “vestavěné” detektory na platformě: ty detektory, které jsme trénovali sami a zpřístupnili uživatelům. Například jsme měli detektor budov, detektor aut a tak dále.

Toto je typický pracovní postup strojového učení: máte someho inženýra strojového učení, který vyvíjí model pro konkrétní případ a poté jej zpřístupňuje klientům.

Ale my jsme chtěli udělat něco jiného a trochu posunout hranice. Řekli jsme si: “Co kdybychom umožnili uživatelům trénovat své vlastní modely přímo na platformě?” Byly tam einige výzvy, aby to fungovalo: poprvé, jsme nechtěli, aby to trvalo několik hodin. Pokud chcete zachovat interaktivní pocit, trénování by mělo trvat několik minut nejvýše. Za druhé, jsme nechtěli vyžadovat tisíce anotací, které jsou typicky potřebné pro velké hluboké učení modely.

Začali jsme s velmi jednoduchým modelem, provedli einige testy v Jupyteru a poté se pokusili integrovat jej do naší platformy a otestovat celý pracovní postup, s základním uživatelským rozhraním a tak dále. Zpočátku to nefungovalo velmi dobře ve většině případů, ale byly einige případy, kde to fungovalo. To nás dalo naději a začali jsme iterovat na trénovací metodě a modelu. Po beberapa měsících jsme byli schopni dosáhnout bodu, kde to fungovalo dobře, a nyní máme naše uživatele, kteří toto používají neustále.

Co bylo zajímavé na tomto projektu, byla dvojí výzva: zachovat trénování rychlé (právě teď několik minut) a tudíž model není příliš komplexní, ale zároveň udělat jej komplexním enough, aby fungoval a řešil problémy uživatelů. Navíc to funguje s několika (<100) labely pro mnoho případů.

Použili jsme také einige z “Pravidel strojového učení” od Googlu, zejména těch, které se týkají implementace celého pracovního postupu a metrik před optimalizací modelu. To nás dostalo do “systémového myšlení” módu, kde jste zjistili, že ne všechny vaše problémy by měly být řešeny jádrem strojového učení, ale einige z nich mohou být přesunuty do uživatelského rozhraní, einige z nich mohou být zpracovány před nebo po zpracování, atd.

 

Můžete sdílet některé z technologií strojového učení, které se používají na Picterře?

V produkci aktuálně používáme Pytorch k trénování a spuštění našich modelů. Používáme také Tensorflow občas, pro einige konkrétní modely vyvinuté pro klienty. Kromě toho je to poměrně standardní vědecký Python stack (numpy, scipy) s einige geoprostorovými knihovnami (gdal) přidány.

 

Můžete diskutovat, jak Picterra funguje na pozadí, když někdo nahrává obrázky a chce trénovat neuronovou síť k anotaci objektů?

Samozřejmě, takže když uživatel nahrává obrázek, zpracujeme jej a uložíme do “Cloud-Optimized-Geotiff” (COG) formátu na našem blobstore (Google Cloud Storage), což nám umožňuje rychle přístup k blocích obrázku bez nutnosti stáhnout celý obrázek později. To je klíčový bod, protože geoprostorové obrázky mohou být obrovské: máme uživatele, kteří běžně pracují s obrázky o velikosti 50000×50000.

Pak, aby jste trénovali váš model, budete muset vytvořit trénovací datovou sadu prostřednictvím našeho webového uživatelského rozhraní. To uděláte tak, že definujete tři typy oblastí:

  1. ‘trénovací oblasti’, ve kterých budete kreslit trénovací labely
  2. ‘testovací oblasti’, kde model bude předpovídat, aby vám umožnil vizualizovat einige výsledky
  3. ‘přesnostní oblast’, kde budete kreslit labely, ale ty nejsou použity pro trénování, pouze pro skóre

Jakmile jste vytvořili tuto datovou sadu, můžete jednoduše kliknout na ‘Trénovat’ a my trénujeme detektor pro vás. Co se stane dál, je, že přidáme trénovací úlohu do fronty, necháme jeden z našich GPU workerů ji vyzvednout (nové GPU workery jsou spuštěny automaticky, pokud existuje mnoho současných úloh), trénujeme váš model, uložíme jeho váhy do blobstore a nakonec předpoví ve ‘testovací oblasti’, aby se zobrazily na uživatelském rozhraní. Odtud můžete iterovat nad svým modelem. Typicky budete vidět einige chyby ve ‘testovací oblasti’ a přidáte ‘trénovací oblasti’, aby pomohly modelu zlepšit se.

Jakmile jste spokojeni se skóre vašeho modelu, můžete jej spustit ve velkém měřítku. Z uživatelského pohledu je to opravdu jednoduché: stačí kliknout na ‘Detekovat’ vedle obrázku, na kterém chcete jej spustit. Ale je to trochu složitější pod kapotou, pokud je obrázek velký. Abychom to urychlili, zpracovali jsme velké detekce na gridové buňky a spustili nezávislou detekční úlohu pro každou buňku. To nám umožňuje spustit velmi velké detekce. Například jsme měli klienta, který spustil detekci nad celou Dánskem na 25cm snímcích, což je v rozmezí TB dat – pro jeden projekt. Máme podobný projekt popsán v tomto medium příspěvku.

 

Je něco jiného, co byste rádi sdíleli o Picterře?

Myslím, že to, co je skvělé na Picterře, je, že je to jedinečný produkt, na rozhraní mezi strojovým učením a geoprostorovými daty. Co nás odlišuje od jiných společností, které zpracovávají geoprostorová data, je, že vybavujeme naše uživatele samoobslužnou platformou. Uživatelé mohou snadno najít lokace, analyzovat vzory, detekovat a počítat objekty na snímcích Země. To by bylo nemožné bez strojového učení, ale naši uživatelé ani nemusí mít základní znalosti programování – platforma dělá práci na základě několika lidsky vytvořených anotací. Pro ty, kteří chtějí jít hlouběji a naučit se základní koncepty strojového učení v geoprostorovém doméně, jsme spustili komplexní online kurz.

Co je také worth mentioning, je, že možné aplikace Picterry jsou nekonečné – detektory postavené na platformě byly použity ve správě měst, precizním zemědělství, lesním hospodářství, humanitárním a katastrofickém řízení, farmářství a tak dále, jen aby se jmenovaly einige z nejčastějších aplikací. Jsme vlastně překvapeni každý den tím, co naši uživatelé se naší platformou zkoušejí dělat. Můžete to zkusit a dejte nám vědět, jak to fungovalo na sociálních médiích.

Děkuji za skvělý rozhovor a za sdílení, jak moc je Picterra silná, čtenáři, kteří chtějí se dozvědět více, by měli navštívit webovou stránku Picterry.

Antoine je vizionářský líder a spoluzakladatel Unite.AI, který je poháněn neotřesitelnou vášní pro formování a propagaci budoucnosti umělé inteligence a robotiky. Jako sériový podnikatel věří, že umělá inteligence bude mít na společnost stejně disruptivní vliv jako elektřina, a často se chvála na potenciál disruptivních technologií a AGI.