Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

Tunnen monia datatieteilijöitä - ja olen luultavasti yksi heistä itsekin - jotka työskentelevät GPU-koneilla, paikallisilla tai virtuaalisilla, jotka sijaitsevat pilvessä joko Jupyter Notebookin tai jonkin Python-kehitysympäristön kautta. Työskentelen 2 vuotta asiantuntijana AI/ML-kehittäjänä, tein juuri tämän, kun valmistelin tietoja tavallisella palvelimella tai työasemalla ja suoritin koulutusta virtuaalikoneella, jossa on GPU Azuressa.

Tietenkin olemme kaikki kuulleet siitä Azure-koneoppiminen — erityinen pilvialusta koneoppimiseen. Kuitenkin ensi silmäyksellä esittelyartikkeleita, näyttää siltä, ​​että Azure ML luo sinulle enemmän ongelmia kuin ratkaisee. Esimerkiksi yllä mainitussa opetusohjelmassa Azure ML:n koulutus käynnistetään Jupyter-muistikirjasta, kun taas itse harjoitusskripti ehdotetaan luotavaksi ja muokattavaksi tekstitiedostona jossakin solussa - ilman automaattista täydentämistä, syntaksia. korostus ja muut normaalin kehitysympäristön edut. Tästä syystä emme ole käyttäneet Azure ML:ää vakavasti työssämme pitkään aikaan.

Löysin kuitenkin äskettäin tavan aloittaa Azure ML:n tehokas käyttö työssäni! Kiinnostaako yksityiskohdat?

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

Pääsalaisuus on Visual Studio Code -laajennus Azure ML:lle. Sen avulla voit kehittää koulutusskriptejä suoraan VS Codessa hyödyntäen ympäristöä täysimääräisesti – ja voit jopa ajaa komentosarjan paikallisesti ja lähettää sen sitten koulutukseen Azure ML -klusteriin muutamalla napsautuksella. Kätevää, eikö?

Samalla saat seuraavat edut Azure ML:n käytöstä:

  • Voit työskennellä suurimman osan ajasta paikallisesti koneellasi kätevässä IDE:ssä ja käytä GPU:ta vain mallikoulutukseen. Samanaikaisesti koulutusresurssien allas voi automaattisesti mukautua vaadittuun kuormaan, ja asettamalla solmujen vähimmäismääräksi 0, voit käynnistää virtuaalikoneen automaattisesti "tarpeen mukaan" koulutustehtävien läsnä ollessa.
  • Voit tallentaa kaikki oppimistulokset yhteen paikkaan, mukaan lukien saavutetut mittarit ja tuloksena olevat mallit - ei tarvitse keksiä jonkinlaista järjestelmää tai järjestystä kaikkien tulosten tallentamiseen.
  • Tässä tapauksessa Useat ihmiset voivat työskennellä saman projektin parissa - he voivat käyttää samaa laskentaklusteria, kaikki kokeet joutuvat jonoon ja he voivat nähdä myös toistensa kokeiden tulokset. Yksi tällainen skenaario on Azure ML:n käyttö Deep Learning -opetuksessakun sen sijaan, että antaisit jokaiselle opiskelijalle virtuaalikoneen GPU:lla, voit luoda yhden klusterin, jota kaikki käyttävät keskitetysti. Lisäksi mallin tarkkuudella varustettu yleinen tulostaulukko voi toimia hyvänä kilpailutekijänä.
  • Azure ML:n avulla voit helposti suorittaa sarjan kokeita esimerkiksi hyperparametrien optimointi - Tämä voidaan tehdä muutamalla koodirivillä, ei tarvitse suorittaa sarjaa kokeita manuaalisesti.

Toivottavasti sain sinut kokeilemaan Azure ML:ää! Näin pääset alkuun:

Azure ML Workspace ja Azure ML Portal

Azure ML on järjestetty konseptin ympärille työ alue - työtila. Tietoa voidaan tallentaa työtilaan, siihen lähetetään kokeita koulutukseen, sinne tallennetaan myös harjoitustulokset - tuloksena saadut mittarit ja mallit. Näet, mitä työtilan sisällä on Azure ML -portaali - ja sieltä voit suorittaa monia toimintoja aina tietojen lataamisesta kokeiden seurantaan ja mallien käyttöönottoon.

Voit luoda työtilan verkkokäyttöliittymän kautta Azure-portaali (Ks. vaiheittaiset ohjeet) tai käyttämällä Azure CLI -komentoriviä (ohjeet):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

Työtilaan liittyy myös joitain laskentaresurssit (Laskea). Kun olet luonut skriptin mallin kouluttamiseksi, voit tehdä sen lähetä kokeilu suoritettavaksi työtilaan ja määritä laske tavoite - tässä tapauksessa komentosarja pakataan, ajetaan halutussa laskentaympäristössä ja sitten kaikki kokeen tulokset tallennetaan työtilaan jatkoanalyysiä ja käyttöä varten.

MNIST-käsikirjoituksen oppiminen

Harkitse klassista ongelmaa käsinkirjoitetun numeron tunnistus MNIST-tietojoukon avulla. Vastaavasti voit tulevaisuudessa suorittaa mitä tahansa harjoitusskriptejäsi.

Arkistossamme on käsikirjoitus train_local.py, jota harjoittelemme yksinkertaisimman lineaarisen regressiomallin avulla SkLearn-kirjaston avulla. Tietenkin ymmärrän, että tämä ei ole paras tapa ratkaista ongelma - käytämme sitä esimerkkinä, helpoimpana.

Komentosarja lataa ensin MNIST-tiedot OpenML:stä ja käyttää sitten luokkaa LogisticRegression kouluttaa mallia ja tulosta sitten saatu tarkkuus:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])

shuffle_index = np.random.permutation(len(mist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]

X_train, X_test, y_train, y_test = 
  train_test_split(X, y, test_size = 0.3, random_state = 42)

lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))

print('Overall accuracy:', acc)

Voit ajaa skriptin tietokoneellasi ja saada tuloksen muutamassa sekunnissa.

Suorita komentosarja Azure ML:ssä

Jos suoritamme koulutusohjelman Azure ML:n kautta, meillä on kaksi pääetua:

  • Harjoittelun suorittaminen mielivaltaisella laskentaresurssilla, joka on pääsääntöisesti tuottavampaa kuin paikallinen tietokone. Samalla Azure ML huolehtii itse skriptimme pakkaamisesta kaikki nykyisen hakemiston tiedostot docker-säiliöön, asentaa tarvittavat riippuvuudet ja lähettää sen suoritettavaksi.
  • Kirjoita tulokset yhteen rekisteriin Azure ML -työtilassa. Jotta voimme hyödyntää tätä ominaisuutta, meidän on lisättävä skriptimme pari koodiriviä tallentaaksemme tuloksena olevan tarkkuuden:

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

Komentosarjan vastaava versio kutsutaan train_universal.py (se on hieman ovelampi kuin yllä on kirjoitettu, mutta ei paljon). Tämä komentosarja voidaan suorittaa sekä paikallisesti että etälaskentaresurssilla.

Jos haluat suorittaa sen Azure ML:ssä VS Codesta, sinun on tehtävä seuraava:

  1. Varmista, että Azure-laajennus on yhdistetty tilaukseesi. Valitse vasemmalla olevasta valikosta Azure-kuvake. Jos et ole muodostanut yhteyttä, oikeaan alakulmaan tulee ilmoitus (tässä on), jota klikkaamalla pääset sisään selaimen kautta. Voit myös klikata Ctrl-Shift-P kutsua VS Code -komentoriviä ja kirjoita Azure-kirjautuminen.

  2. Etsi sen jälkeen osio Azure-osiosta (kuvake vasemmalla). KONEEN OPPIMINEN:

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
Tässä sinun pitäisi nähdä erilaisia ​​​​objektiryhmiä työtilan sisällä: laskentaresurssit, kokeilut jne.

  1. Siirry tiedostoluetteloon, napsauta komentosarjaa hiiren kakkospainikkeella train_universal.py ja valitse Azure ML: Suorita kokeiluna Azuressa.

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  1. Tätä seuraa sarja valintaikkunoita VS Coden komentorivialueella: vahvista käyttämäsi tilaus ja Azure ML -työtila ja valitse Luo uusi kokeilu:

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  1. Valitse uusi laskentaresurssi Luo uusi laskenta:

    • Laskea määrittää laskentaresurssin, jolla koulutus tapahtuu. Voit valita paikallisen tietokoneen tai AmlCompute-pilviklusterin. Suosittelen luomaan skaalautuvan koneklusterin STANDARD_DS3_v2, jossa on vähintään 0 konetta (ja enintään yksi tai useampi, ruokahalustasi riippuen). Tämä voidaan tehdä VS Code -rajapinnan kautta tai aiemmin kautta ML portaali.

    Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  2. Seuraavaksi sinun on valittava kokoonpano Laske kokoonpano, joka määrittelee koulutusta varten luodun kontin parametrit, erityisesti kaikki tarvittavat kirjastot. Meidän tapauksessamme, koska käytämme Scikit Learniä, valitsemme SkLearn, ja vahvista sitten vain ehdotettu kirjastoluettelo painamalla Enter. Jos käytät muita kirjastoja, ne on määritettävä tässä.

    Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
    Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  3. Tämä avaa ikkunan, jossa on kokeilua kuvaava JSON-tiedosto. Siinä voit korjata joitain parametreja - esimerkiksi kokeen nimen. Napsauta sen jälkeen linkkiä Lähetä kokeilu aivan tämän tiedoston sisällä:

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  1. Kun olet lähettänyt kokeilun onnistuneesti VS Coden kautta, näet ilmoitusalueen oikealla puolella linkin kohteeseen Azure ML -portaali, jossa voit seurata kokeen tilaa ja tuloksia.

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
Myöhemmin löydät sen aina osiosta Kokeilut Azure ML -portaali, tai osiossa Azure-koneoppiminen koeluettelossa:

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö

  1. Jos sen jälkeen teit joitain korjauksia koodiin tai muutit parametreja, kokeilun uudelleen käynnistäminen on paljon nopeampaa ja helpompaa. Napsauta tiedostoa hiiren kakkospainikkeella, näet uuden valikkokohdan Toista viimeinen ajo - valitse se ja kokeilu alkaa välittömästi:

Kuinka voittaa pelko ja aloittaa Azure Machine Learningin käyttö
Löydät aina kaikkien julkaisujen mittareiden tulokset Azure ML Portalista, niitä ei tarvitse kirjoittaa muistiin.

Nyt tiedät, että kokeilujen suorittaminen Azure ML:llä on yksinkertaista ja kivutonta, ja saat siitä monia mukavia etuja.

Mutta voit nähdä myös haitat. Esimerkiksi käsikirjoituksen suorittaminen kesti huomattavasti kauemmin. Tietenkin komentosarjan pakkaaminen säiliöön ja sen käyttöönotto palvelimella vie aikaa. Jos samaan aikaan klusteri leikattiin 0 solmun kokoon, virtuaalikoneen käynnistäminen vie vielä enemmän aikaa, ja tämä kaikki on hyvin havaittavissa, kun kokeilemme yksinkertaisia ​​tehtäviä, kuten MNIST, jotka ratkeavat muutamassa sekunnissa. . Kuitenkin tosielämässä, kun koulutus kestää useita tunteja, jopa päiviä tai viikkoja, tämä lisäaika tulee merkityksettömäksi, varsinkin kun laskentaklusteri voi tarjota paljon korkeampaa suorituskykyä.

Mitä seuraavaksi?

Toivon, että tämän artikkelin luettuasi voit käyttää ja tulet käyttämään Azure ML:ää työssäsi komentosarjojen suorittamiseen, laskentaresurssien hallintaan ja tulosten tallentamiseen keskitetysti. Azure ML voi kuitenkin tarjota sinulle vielä enemmän etuja!

Työtilan sisällä voit tallentaa tietoja ja luoda näin kaikille tehtävillesi keskitetyn arkiston, johon on helppo pääsy. Lisäksi voit suorittaa kokeiluja ei Visual Studio Codesta, vaan API:n avulla - tämä voi olla erityisen hyödyllistä, jos sinun on suoritettava hyperparametrien optimointi ja komentosarja on suoritettava useita kertoja eri parametreilla. Lisäksi Azure ML:ään on sisäänrakennettu erikoistekniikka hyperdrive, jonka avulla voit tehdä vaikeampaa hyperparametrien hakua ja optimointia. Kerron näistä mahdollisuuksista seuraavassa postauksessani.

Hyödyllisiä resursseja

Jos haluat lisätietoja Azure ML:stä, seuraavista Microsoft Learn -kursseista voi olla apua:

Lähde: will.com

Lisää kommentti