14.11.2017 | Lauri Lehman

Microsoft Azuren data-analytiikkatyökaluihin julkistettiin merkittäviä muutoksia syksyn 2017 MS Ignitessa. Nämä uudistukset helpottavat koneoppimisen käyttöä Azure-ratkaisuissa huomattavasti, mahdollistaen koneoppimismallien entistä syvemmän integraation osaksi Azure-sovelluksia. Myös mallien kehittämismahdollisuudet monipuolistuivat, ja uusien mallien kokeilu on entistä nopeampaa uusien työkalujen ansiosta.

Merkittävimmät Ignitessa julkaistut uudistukset ovat Azure ML Workbench, Azure ML Model Management ja Visual Studio Code Tools for AI. Azure ML Workbench on uusi työpöytäsovellus, jonka avulla datan käsittely ja uusien mallien kehittely on entistä helpompaa. Azure ML Model Management tarjoaa työkalut koneoppimismallien järjestelmälliseen versiointiin ja hallintaan. Visual Studio Code Tools for AI sisältää toimintoja koneoppimismallien kehittelyyn ja mallien hallintaan Azuressa. Tässä artikkelissa kerron hieman ensivaikutelmia näistä uusista työkaluista.

AZURE ML WORKBENCH

Koneoppimismallien kehitys Azuressa on perustunut tähän asti Azure ML Studioon, joka on täysin selainpohjainen graafinen työkalu. Ignitessa Microsoft julkisti uuden palvelun nimellä "Azure ML Services", joka uudistaa tavan kehittää koneoppimismalleja Azuressa. Azure ML Servicessa koneoppimismalleja kehitetään Azure ML Workbenchilla, joka on uusi työpöytäsovellus Windowsille ja macOS:lle. AML Workbench on skriptipohjainen työkalu, joka ei tarjoa graafista käyttöliittymää koneoppimismalleille (ainakaan tässä vaiheessa). AML Workbench toimii saumattomasti Azuren kanssa ja mahdollistaa mallien julkaisun tehokkaasti suoraan Azureen.

AML Workbenchin kehityskieli on Python (Microsoftin mukaan myös Scalaa tuetaan, mutta ainakin tällä hetkellä kaikki esimerkit käyttävät Pythonia). AML Workbench sisältää oman Python-ympäristönsä, joka on eristetty muista paikallisesti asennetuista Python-ympäristöistä. Pythonista käytetään kolmosversiota, kirjoitushetkellä asennuksen mukana tuli Continuum Analyticsin Python 3.5.2 -versio. Uusien kirjastojen asennus on helppoa pip:n avulla, ja esimerkiksi Deep Learning -kirjastoja on saatavilla useita.

Ensi kokemalta AML Workbenchin paras ominaisuus on mahdollisuus kouluttaa malleja ja pisteyttää näytteitä paikallisesti. Azure ML Studiossa data täytyy ladata joko Datasetiksi ML Studioon tai johonkin ulkoiseen tietokantaan kuten Azure Blobiin. AML Workbenchissa dataa voidaan käyttää suoraan kovalevyltä ja samoin tulokset voidaan tallentaa paikallisesti kovalevylle. Tämä nopeuttaa huomattavasti Data Science -prosessia, koska dataan voidaan tehdä muutoksia käden käänteessä ja tulokset pystyy visualisoimaan omilla työkaluilla saman tien. Lisäksi skriptilähtöinen kehitystapa mahdollistaa mallien räätälöinnin entistä tehokkaammin, koska malliin on helppo tehdä muutoksia lennossa ja tehtyjen muutosten vaikutus pystytään tarkistamaan nopeasti.

Toinen kiitosta ansaitseva muutos liittyy datan valmisteluprosessiin ("Data Wrangling"). AML Workbench tarjoaa graafisen käyttöliittymän datan esikäsittelyyn ja yksinkertaisiin muunnoksiin. Esimerkiksi tyhjien arvojen poistot, arvojen suodatus, datatyyppien muunnokset ja uusien datakenttien tekeminen onnistuvat nyt todella helposti ja intuitiivisesti. Datan käsittely muistuttaa hieman Power BI:n vastaavaa kokemusta, enkä pistä sitä ollenkaan pahakseni. Microsoft mainostaa että prosessi käyttää hyväkseen tekoälyä, mutta lyhyen testin perusteella on vielä hieman epäselvää mitä se käytännössä tarkoittaa.

ML Workbenchia pystyy ajamaan käyttäjän omalla koneella "natiivisti" tai Docker containerin sisällä. ML Workbenchissa luodut mallit voidaan julkaista uuteen Azure ML Model Management -palveluun, joka eroaa siis tutusta ML Studio Web Servicesta. AML Model Management perustuu Docker containereihin, jotka ovat muutenkin laajassa käytössä Azuressa. Mainiona ominaisuutena on myös mahdollisuus ajaa malleja Azure HDInsightin Spark-klustereissa. Näin mallia ei tarvitse luoda tyhjästä mikäli halutaan siirtyä AML Experimentation Servicesta HDInsightiin.

Microsoft tarjoaa nyt siis kahta rinnakkaista PaaS-palvelua koneoppimiseen: AML Studion ja AML Servicesin (HDInsight on tavallaan vielä oma palvelunsa, mutta se integroituu hyvin AML Servicesiin). Alla olevasta kuvasta näet esimerkin miltä uudet resurssit näyttävät Azuressa tällä hetkellä. Microsoft ei ole tiedottanut selvästi, mikä on AML Studion kohtalo tulevaisuudessa, mutta en usko että se tulee poistumaan kokonaisuudessaan. AML Studio ja AML Services tarjoavat hyvin erilaiset käyttökokemukset, jotka täydentävät toisiaan. Todennäköisesti ne tulevat säilymään rinnakkain jossain muodossa.

Lista Azure ML Servicesiin kuuluvista resursseista

Azure ML Workbench integroituu tällä hetkellä kahteen IDE-työkaluun, Visual Studio Codeen ja pyCharmiin. VS Codesta enemmän alla.

VISUAL STUDIO CODE TOOLS FOR AI

Visual Studio Code on Microsoftin tarjoama kevyt työkalu ohjelmointiin ja skriptaukseen. Se soveltuu erittäin hyvin Azuressa toimivien serverless-ratkaisujen kehittämiseen. Ignitessa julkaistiin uusi VS Code Tools for AI -laajennus, jolla koneoppimismallien kehittäminen on nopeaa ja vaivatonta. Mallien kehittäminen onnistuu toki myös AML Workbenchissa, mutta Workbenchin ominaisuudet koodieditorina ovat hieman rajalliset. VS Code tarjoaa täysimittaisen koodieditorin, joka tukee hyvin Pythonia ja mahdollistaa esimerkiksi debuggauksen.

Koneoppimismallien kehittäminen onnistuu itsenäisesti VS Codella, ja skriptejä pystyy ajamaan VS Codessa paikallisesti samaan tapaan kuin ML Workbenchissa. Ensikokeilulla tämä vaikutti toimivan sujuvasti, ja uskon että tulevaisuudessa tulen käyttämään VS Codea ensisijaisena editorina koneoppimismalleja kehittäessä.

Yksi VS Code Tools for AI:n parhaista ominaisuuksista on integraatio Microsoftin tekemiin malliesimerkkeihin. Malliesimerkeistä on helppo luoda itselleen projekti VS Codeen tutkittavaksi ja testattavaksi.

Jos käytössäsi on myös Azure Data Science Virtual Machine, mallien koulutus ja pisteytys onnistuu myös pilvessä. Ajoympäristön vaihto vaatii ainoastaan uuden konfiguraation luomisen, minkä jälkeen ajoympäristöjä pystyy vaihtamaan todella kätevästi vetovalikosta. Etäajot hyödyntävät Docker containereita, minkä ansiosta skriptit voidaan suorittaa samassa ympäristössä eri alustalla. Myös AML Model Management hyödyntää Dockeria, joten mallien julkaisun ja hallinnan pitäisi olla todella helppoa.

YHTEENVETO

Kaikki tässä artikkelissa käsiteltävät tuotteet ovat vielä Preview-vaiheessa (GA-päivämäärä ei ole vielä tiedossa, mutta veikkaisin joko vuoden 2017 loppua tai 2018 alkua). Tämä ilmeni kokeilun aikana siten, etteivät kaikki ominaisuudet toimi välttämättä suorilta käsin, ja valmiiden esimerkkienkin läpikäynti saattaa olla hieman työlästä. Näen näissä työkaluissa kuitenkin paljon potentiaalia, ja suosittelen niiden kokeilua kaikille Azure-alustalla toimiville Data Scientisteille. Microsoft kehittää työkalujaan vahvasti yleisöpalautteen pohjalta, joten sovelluksissa havaitut puutteet kannattaa aina saattaa Microsoftin tietoon. Uskon että tulevaisuudessa Microsoft panostaa runsaasti näiden työkalujen parantamiseen, joten kannattaa hypätä kelkkaan mahdollisimman aikaisessa vaiheessa!

LISÄTIETOA

Azure Blog: Announcing tools for the AI-driven digital transformation

Azure Blog: Diving deep into what’s new with Azure Machine Learning

Microsoft Docs: Create Azure Machine Learning preview accounts and install Azure Machine Learning Workbench