AI-mallit ja alustat

Julien Rebetez, Picterran johtava koneoppimisen insinööri – Haastattelusarja

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Julien Rebetez on Picterran johtava ohjelmisto- ja koneoppimisen insinööri. Picterra tarjoaa geospatiaalisen pilvipohjaisen alustan, joka on suunniteltu syvän oppimisen perusteisten havaintojen kouluttamiseen nopeasti ja turvallisesti.

Ilman yhtään koodiriviä ja vain muutamalla ihmisten tekemällä annotaatiolla Picterran käyttäjät luovat ja käyttävät toimivia ja valmiita syvän oppimisen malleja.

Se automatisoi satelliitti- ja ilmakuvien analyysin, jolloin käyttäjät voivat tunnistaa objekteja ja kuvioita.

Mikä sai sinut kiinnostuneeksi koneoppimisesta ja tekoälystä?

Aloin ohjelmoida, koska halusin tehdä videopelien ja tuli kiinnostuneeksi tietokonegrafiikasta. Tämä johti minua tietokoneen näkemiseen, joka on tietokoneen luoman ympäristön vastakkainen prosessi. Opiskellessani otin joitain koneoppimiskursseja ja kiinnostuin tietokoneen näkemisen kulmasta. Luulen, että mielenkiintoista koneoppimisessa on, että se on ohjelmistosuunnittelun, algoritmien ja matematiikan risteyksessä, ja se tuntuu edelleen jonkinlaiselta magialta, kun se toimii.

 

Olet työskennellyt satelliittikuvien analyysin parissa koneoppimisen avulla jo useita vuosia. Mikä oli ensimmäinen projekti, jossa työskentelit?

Ensimmainen kokemukseni satelliittikuvista oli Terra-i-projekti (joka havaitsee metsäkatoa), ja työskentelin siinä opiskellessani. Olin hämmästynyt siitä, kuinka paljon vapaasti saatavilla olevaa satelliittidataa on tarjolla (NASA, ESA jne.). Voit saada päivittäin kuvia planeetasta, ja se on erinomainen resurssi monille tieteellisille sovelluksille.

 

Voitko kertoa lisää yksityiskohtia “Terra-i”-projektista?

Terra-i-projekti (http://terra-i.org/terra-i.html) aloitettiin professori Andrez Perez-Uriben toimesta HEIG-VD: ssä (Sveitsi) ja johtaja on nyt Louis Reymondin, CIAT: ssa (Kolumbia). Projektin idea on havaita metsäkatoa vapaasti saatavilla olevien satelliittikuvien avulla. Silloin työskentelimme MODIS-kuvien (250 m pikseliresoluutio) kanssa, koska se tarjosi yhdenmukaisen ja ennustettavissa olevan kattavuuden (sekä paikallisesti että ajallisesti). Saimme mittauksen jokaiselle pikselille joka muutama päivä, ja tästä aikasarjasta voitiin yrittää havaita poikkeamia tai uutuuksia, joita kutsutaan joskus ML: ssä.

Tämä projekti oli erittäin mielenkiintoinen, koska datamäärä oli haaste silloin, ja siinä oli myös jonkin verran ohjelmistosuunnittelua, jotta se toimisi useilla tietokoneilla jne. ML-puolelta se käytti Bayesilaista neuroverkkoa (ei erityisen syvää silloin) ennustamaan, miltä aikasarja pikselin pitäisi näyttää. Jos mittaus ei vastannut ennustetta, silloin meillä oli poikkeama.

Projektin aikana työskentelin myös pilvenpoistossa. Käytimme perinteistä signaaliydinmenetelmää, jossa sinulla on aikasarja mittauksia, ja joistakin niistä puuttuu kokonaan, koska ne ovat pilvien peitossa. Käytimme Fourier-pohjaista lähestymistapaa (HANTS) puhdistamaan aikasarjaa ennen kuin havaitsemme uutuuksia siinä. Yksi vaikeus oli, että jos puhdistimme liian voimakkaasti, poistaisimme myös uutuuksia, joten teimme paljon kokeita löytääksemme oikeat parametriarvot.

 

Suunnittelit ja toteutit myös syvän oppimisen järjestelmän maatalousmaan viljelytyyppien automaattiseen luokitteluun (ilma- ja satelliittikuvista). Mitkä olivat suurimmat haasteet silloin?

Tämä oli ensimmäinen oikea tutustumiseni syvään oppimiseen. Silloin haasteet olivat enemmän saada framework toimimaan ja käyttämään GPU: ta kuin itse ML: ssä. Käytimme Theanoa, joka oli yksi TensorFlown edeltäjistä.

Projektin tavoitteena oli luokitella viljelytyyppi maatalousmaalla ilmakuvien perusteella. Yritimme lähestymistapaa, jossa syvän oppimisen malli käytti värihistogrammeja syötteinä raw-kuvien sijaan. Saadaksemme tämän toimimaan kohtuullisesti nopeasti, muistan toteuttaneeni Theanossa oman kerroksen, aina CUDA-koodiin asti. Se oli erinomainen oppimiskokemus silloin ja hyvä tapa tutustua syvän oppimisen teknisiin yksityiskohtiin.

 

Olet virallisesti Picterran johtava ohjelmisto- ja koneoppimisen insinööri. Kuinka kuvailisit päivittäisiä toimia?

Se vaihtelee paljon, mutta suurin osa siitä on se, että pidän silmällä koko järjestelmän arkkitehtuuria ja tuotetta yleensä ja kommunikoisin eri sidosryhmien kanssa. Vaikka ML on liiketoimintamme ydintä, huomaat nopeasti, että useimmiten aikaa ei käytetä itse ML: ään, vaan kaikkiin asioihin sen ympärillä: datahallinta, infrastruktuuri, UI/UX, prototyyppien luominen, käyttäjien ymmärtäminen jne… Tämä on suuri muutos akateemisesta tai aiemmasta kokemuksesta suuremmissa yrityksissä, joissa olet paljon keskittyneempi tiettyyn ongelmaan.

Mikä on mielenkiintoista Picterrassa on, että emme ainoastaan suorita syvän oppimisen malleja käyttäjille, vaan sallimme heidän kouluttaa omia mallejaan. Tämä on erilaista kuin useimmissa tyypillisissä ML-työkulkuvaiheissa, joissa ML-tiimi kouluttaa mallin ja julkaisee sen tuotantoon. Tämä tarkoittaa, että emme voi manuaalisesti leikkiä koulutusparametrien kanssa, kuten usein tehdään. Meidän on löydettävä koulutusmenetelmä, joka toimii kaikkien käyttäjien kanssa. Tämä johti meidät luomaan niin kutsutun “kokeen kehyksemme”, joka on suuri tietokanta, joka simuloi koulutusdataa, jonka käyttäjämme luovat alustalla. Voimme sitten helposti testata muutoksia koulutusmenetelmiimme näiden tietokantojen avulla ja arvioida, auttavatko ne vai eivät. Sen sijaan, että arvioisimme yksittäistä mallia, arvioimme enemmän arkkitehtuurin + koulutusmenetelmän.

Toinen haaste on, että käyttäjämme eivät välttämättä ole ML-asiantuntijoita, joten he eivät välttämättä tiedä, mitä koulutusjoukko on, mitä merkintä on jne. Rakentaa käyttöliittymä, joka sallii ei-ML-asiantuntijoiden luoda tietoja ja kouluttaa ML-malleja, on jatkuva haaste, ja on paljon edestakaista vuorovaikutusta UX- ja ML-tiimien välillä varmistaaksemme, että ohjaamme käyttäjiä oikeaan suuntaan.

 

Mitä mielenkiintoisimpia projekteja olet työskennellyt Picterrassa?

Luulen, että mielenkiintoisin oli Custom Detector -prototyyppi. 1,5 vuotta sitten meillä oli “valmiit” havaintoja alustalla: ne olivat havaintoja, jotka itse koulutimme ja teimme käyttäjille saataville. Esimerkiksi meillä oli rakennuksen havainto, auton havainto jne…

Tämä on tyypillinen ML-työkulku: sinulla on ML-insinööri, joka kehittää mallin tiettyyn tapaukseen, ja sitten tarjoaa sen asiakkaille.

Me halusimme tehdä jotain erilaista ja työntää rajoja hieman. Niin me sanomme: “Mitä jos sallimme käyttäjien kouluttaa omia mallejaan suoraan alustalla”? Siinä oli muutamia haasteita, jotta se toimisi: ensinnäkään, emme halunneet, että se kestäisi useita tunteja. Jos halusimme pitää interaktiivisen tunteen, koulutus pitäisi kestää vain muutamia minuutteja. Toiseksi, emme halunneet vaatia tuhansia merkintöjä, mikä on tyypillisesti tarpeen suurten syvän oppimisen mallien koulutukseen.

Aloimme erittäin yksinkertaisella mallilla, teimme paljon testejä jupyterissa ja yritimme integroida sen alustaan ja testata koko työkulkua, perusliittymällä ja niin edelleen. Aluksi se ei toiminut hyvin useimmissa tapauksissa, mutta oli joitakin tapauksia, joissa se toimi. Se antoi meille toiveita, ja aloimme iteroida koulutusmenetelmää ja mallia. Muutaman kuukauden jälkeen saavutimme pisteen, jossa se toimi hyvin, ja nyt meillä on käyttäjiä, jotka käyttävät tätä jatkuvasti.

Mikä oli mielenkiintoista tässä on se, että se oli kaksinkertainen haaste: pitää koulutus nopeana (nykyään muutamassa minuutissa) ja siksi malli ei ole liian monimutkainen, mutta samalla tehdä se monimutkaiseksi tarpeeksi, jotta se toimii ja ratkaisee käyttäjien ongelmia. Lisäksi se toimii vain muutamalla (<100) merkinnällä useissa tapauksissa.

Sovelimme myös useita Googlen ” Machine Learning -sääntöjä“, erityisesti niitä, jotka koskevat koko putken toteuttamista ja metriikkojen toteuttamista ennen mallin optimointia. Se asettaa sinut “järjestelmäajattelun” tilaan, jossa ymmärrät, että ei kaikki ongelmat pitäisi käsitellä ytimen ML: llä, vaan osa niistä voidaan siirtää UI: hen, osa voidaan esikäsitellä, jne…

 

Mitkä ovat jotkut koneoppimisen teknologioita, joita käytetään Picterrassa?

Tuotannossa käytämme tällä hetkellä Pytorchia mallien koulutukseen ja suorittamiseen. Käytämme myös Tensorflowa silloin tällöin tiettyjen asiakkaiden kehittämien mallien kanssa. Muuten se on melko standardi tieteellinen Python-pino (numpy, scipy) joitakin geospatiaalisia kirjastoja (gdal) mukana.

 

Voitko kertoa, miten Picterra toimii taustalla, kun joku lataa kuvia ja haluaa kouluttaa neuroniverkon oikein merkintöjen tekemiseen?

Kyllä, joten kun lataat kuvan, prosessoidaan sitä ja tallennetaan se “Cloud-Optimized-Geotiff” (COG) -muodossa blob-kauppaamme (Google Cloud Storage), mikä mahdollistaa nopean pääsyn kuvan osiin ilman, että koko kuvan tarvitsee ladata myöhemmin. Tämä on avainkohta, koska geospatiaaliset kuvat voivat olla valtavat: meillä on käyttäjiä, jotka työskentelevät jatkuvasti 50000×50000 kuvien kanssa.

Sitten, kouluttaaksesi mallin, sinun on luotava koulutusjoukkosi verkkoliittymän kautta. Teet sen määrittelemällä 3 tyyppisiä alueita:

  1. ‘koulutusalueet’, joissa piirrät koulutusmerkinnät
  2. ‘testausalueet’, joissa malli tekee ennusteita, jotta voit visualisoida joitakin tuloksia
  3. ‘tarkkuusalue’, jossa piirrät merkinnät, mutta ne eivät ole koulutuksessa käytettävissä, vaan ainoastaan pisteytykseen

Kun olet luonut tämän tietojoukon, voit yksinkertaisesti klikata ‘Kouluta’ ja koulutamme havaintoja sinulle. Se, mitä tapahtuu seuraavaksi, on, että jonotamme koulutustehtävän, käynnistämme yhden GPU-työntekijämme (uudet GPU-työntekijät käynnistyvät automaattisesti, jos on useita rinnakkaisia tehtäviä), koulutamme mallisi, tallennamme sen painot blob-kauppaamme ja lopulta ennustamme ‘testausalueella’ näyttääksesi UI: ssä. Siitä voit iteroida malliasi. Yleensä huomaat virheitä ‘testausalueilla’ ja lisäät ‘koulutusalueita’ auttamaan mallia parantamaan.

Kun olet tyytyväinen mallisi pisteytykseen, voit suorittaa sen suurella mittakaavalla. Käyttäjän näkökulmasta tämä on erittäin yksinkertaista: vain klikkaa ‘Havainnointi’ kuvan vieressä, jonka haluat suorittaa. Mutta se on hieman monimutkaisempi taustalla, jos kuva on suuri. Nopeuden lisäämiseksi, vikojen käsittelyyn ja estämiseksi, että havainnoinnit kestävät useita tunteja, jakamme suuret havainnoinnit ruutuosi ja suoritamme itsenäisen havaintotehtävän kunkin solun kohdalla. Tämä mahdollistaa erittäin suurten mittakaavojen havainnoinnit. Esimerkiksi meillä oli asiakas, joka suoritti havaintoja koko Tanskan alueella 25 cm kuvissa, mikä on TB: n luokkaa – yhden projektin osalta. Olemme kertoneet vastaavan projektin tässä medium-postauksessa.

 

Onko mitään muuta, mitä haluaisit jakaa Picterran kanssa?

Luulen, että se, mikä on suurinta Picterrassa, on, että se on ainutlaatuinen tuote, joka on koneoppimisen ja geospatiaalisen tekniikan risteyksessä. Se, mikä erottaa meidät muista geospatiaalista dataa prosessoivista yrityksistä, on, että me varustamme käyttäjiämme itsepalvelualustalla. He voivat helposti löytää sijainteja, analysoida kuvioita ja havaita ja laskea objekteja maan havaintokuvissa. Se olisi mahdotonta ilman koneoppimista, mutta käyttäjillämme ei tarvitse edes perustason ohjelmointitaitoja – alusta tekee työn perustuen muutamiin ihmisten tekemiin merkintöihin. Niille, jotka haluavat mennä syvemmälle ja oppia geospatiaalisen koneoppimisen peruskäsitteitä, olemme lanseeranneet kattavan online-kurssin.

Mikä on myös mainittava, on, että Picterran soveltamisen mahdollisuudet ovat loputtomat – havaintoja, jotka on rakennettu alustalla, on käytetty kaupunkien hallinnassa, tarkassa maatalousmaanviljelyssä, metsien hallinnassa, humanitaarisen ja vaarallisten tilanteiden hallinnassa, maataloudessa jne., ainoastaan mainitaksemme yleisimmät sovellukset. Olemme yllättyneitä joka päivä siitä, mitä käyttäjämme yrittävät tehdä alustallamme. Voit kokeilla sitä ja kertoa meille, miten se toimi sosiaalisessa mediassa.

Kiitos haastattelusta ja jaetuista vinkkeistä, kuinka voimakas Picterra on. Lukijat, jotka haluavat oppia lisää, voivat vierailla Picterran verkkosivuilla.

Antoine on visionäärisellä johtajalla ja Unite.AI:n perustajakumppani, joka on intohimoisesti omistautunut tulevaisuuden älyteknologian ja robotiikan muotoiluun ja edistämiseen. Sarjayrittäjänä hän uskoo, että älyteknologia tulee olemaan yhtä mullistava yhteiskunnalle kuin sähkö, ja hän on usein innostunut puhumaan älyteknologian ja AGI:n mahdollisuuksista.

Hän on tulevaisuudentutkija, joka on omistautunut tutkimiseen, miten nämä innovaatiot muotoilevat maailmaamme. Lisäksi hän on Securities.io:n perustaja, joka on keskittynyt sijoittamiseen älykkäisiin teknologioihin, jotka määrittelevät tulevaisuutta ja muokkaavat koko toimialoja.