Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

Ezagutzen ditut datu-zientzialari asko -eta seguruenik ni neu naiz-, hodeian kokatutako GPU makinetan lan egiten dutenak, tokikoak edo birtualetan, Jupyter Notebook baten bidez edo Python garapen-ingurune baten bidez. 2 urtez lanean AI/ML garatzaile aditu gisa, horixe egin nuen, zerbitzari edo lan-estazio arrunt batean datuak prestatzen eta Azure-n GPU duen makina birtual batean entrenatzen ari nintzen bitartean.

Noski, guztiok entzun dugu Azure Machine Learning β€” Hodeiko plataforma berezi bat ikaskuntza automatikorako. Hala ere, lehen begiratu bat eman ondoren sarrerako artikuluak, badirudi Azure ML-k konpontzen dituen baino arazo gehiago sortuko dizkizula. Esate baterako, goian aipatutako tutorialean, Azure ML-ri buruzko prestakuntza Jupyter Koaderno batetik abiarazten da, prestakuntza-scripta bera gelaxka batean testu-fitxategi gisa sortzea eta editatzea proposatzen den bitartean, osaketa automatikoa, sintaxia erabiltzen ez den bitartean. nabarmentzea, eta garapen-ingurune normal baten beste abantaila batzuk. Horregatik, aspalditik ez dugu Azure ML serio erabili gure lanean.

Hala ere, duela gutxi aurkitu dut nire lanean Azure ML modu eraginkorrean erabiltzen hasteko modu bat! Xehetasunak interesatzen zaizkizu?

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

Sekretu nagusia da Visual Studio Code luzapena Azure MLrako. Prestakuntza-scriptak VS Code-n zuzenean garatzeko aukera ematen du, ingurunea aprobetxatuz, eta scripta lokalean exekutatu dezakezu eta, besterik gabe, Azure ML kluster bateko prestakuntzara bidali klik gutxi batzuekin. Erosoa, ezta?

Horrela, onura hauek lortuko dituzu Azure ML erabiltzeak:

  • Gehienetan lokalean lan egin dezakezu zure makinan IDE eroso batean, eta erabili GPU ereduaren prestakuntzarako soilik. Aldi berean, prestakuntza-baliabideen multzoa automatikoki egokitu daiteke behar den kargara, eta gutxieneko nodo kopurua 0-n ezarriz, makina birtuala automatikoki abiarazi dezakezu "eskaeran" prestakuntza-zereginen aurrean.
  • Ahal baduzu gorde ikaskuntza-emaitza guztiak leku bakarrean, lortutako neurketak eta ondoriozko ereduak barne - ez dago inolako sistemarik sortu beharrik edo emaitza guztiak gordetzeko agindurik.
  • Kasu honetan, Hainbat pertsona lan egin dezakete proiektu berean - informatika-kluster bera erabil dezakete, esperimentu guztiak ilaran jarriko dira eta elkarren esperimentuen emaitzak ere ikus ditzakete. Horrelako eszenatoki bat da Azure ML erabiliz Deep Learning irakaskuntzanikasle bakoitzari GPU batekin makina birtual bat eman beharrean, zentralki guztiek erabiliko duten kluster bat sor dezakezu. Horrez gain, ereduaren zehaztasuna duten emaitzen taula orokor batek lehiakortasun-elementu on gisa balio dezake.
  • Azure ML-rekin, esperimentu sorta bat erraz egin dezakezu, adibidez hiperparametroen optimizazioa - Kode lerro batzuekin egin daiteke, ez dago esperimentu sorta bat eskuz egin beharrik.

Espero dut Azure ML probatzeko konbentzitu zaitudala! Hona hemen nola hasi:

Azure ML Workspace eta Azure ML Portal

Azure ML kontzeptuaren inguruan antolatuta dago lan eremua - lan-eremua. Datuak lan-eremuan gorde daitezke, esperimentuak bertara bidaltzen dira entrenatzeko, prestakuntza-emaitzak ere bertan gordetzen dira - ondoriozko neurketak eta ereduak. Laneko eremuaren barruan zer dagoen ikus dezakezu Azure ML ataria - eta hortik eragiketa asko egin ditzakezu, datuak kargatzetik hasi eta esperimentuak monitorizatzera eta ereduak zabaltzeraino.

Web interfazearen bidez lan-eremu bat sor dezakezu Azure ataria (Ikus urratsez urrats argibideak), edo Azure CLI komando-lerroa erabiliz (argibideak):

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

Lan-esparruarekin ere lotuta daude batzuk baliabide informatikoak (Kontatu). Eredua trebatzeko script bat sortu ondoren, egin dezakezu bidali esperimentua gauzatzeko lan eremura, eta zehaztu kalkulatu helburua - Kasu honetan, script-a paketatu egingo da, nahi den informatika-ingurunean exekutatu eta, ondoren, esperimentuaren emaitza guztiak lan-eremuan gordeko dira aztertzeko eta erabiltzeko.

MNISTrako gidoia ikasteko

Demagun arazo klasikoa eskuz idatzitako digituen ezagutza MNIST datu-multzoa erabiliz. Era berean, etorkizunean, zure prestakuntza-gidoietako edozein exekutatu dezakezu.

Gure biltegian script bat dago train_local.py, SkLearn liburutegia erabiliz erregresio lineal eredu sinpleena entrenatzen dugu. Jakina, ulertzen dut hori ez dela arazoa konpontzeko modurik onena - adibide gisa erabiltzen dugu, errazena.

Scriptak OpenML-tik MNIST datuak deskargatzen ditu eta gero klasea erabiltzen du LogisticRegression eredua trebatzeko, eta ondoren inprimatu lortutako zehaztasuna:

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)

Scripta zure ordenagailuan exekutatu dezakezu eta segundo pare batean emaitza lor dezakezu.

Exekutatu scripta Azure ML-n

Prestakuntza-scripta Azure ML bidez exekutatzen badugu, bi abantaila nagusi izango ditugu:

  • Baliabide informatiko arbitrario batean entrenatzea, normalean, tokiko ordenagailua baino produktiboagoa dena. Aldi berean, Azure ML bera arduratuko da gure script-a uneko direktorioko fitxategi guztiekin docker edukiontzi batean paketatzeaz, beharrezko mendekotasunak instalatuz eta exekuziora bidaliz.
  • Idatzi emaitzak erregistro bakarrean Azure ML lan-eremu baten barruan. Ezaugarri hau aprobetxatzeko, kode-lerro pare bat gehitu behar dizkiogu gure scriptari, ondoriozko zehaztasuna grabatzeko:

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

Scriptari dagokion bertsioari deitzen zaio train_universal.py (Goian idatzitakoa baino apur bat maltzuragoa da, baina ez asko). Script hau lokalean zein urruneko baliabide informatiko batean exekutatu daiteke.

VS Code-tik Azure ML-n exekutatzeko, honako hau egin behar duzu:

  1. Ziurtatu Azure Extension zure harpidetzara konektatuta dagoela. Hautatu Azure ikonoa ezkerreko menuan. Ez bazaude konektatuta, jakinarazpen bat agertuko da beheko eskuineko izkinan (horrela), nabigatzailearen bidez sartu dezakezun klik eginez. Klikatu ere egin dezakezu Ktrl-Maius-P VS Code komando-lerrora deitzeko eta idatzi Azure saioa hasi.

  2. Horren ostean, Azure atalean (ezkerreko ikonoa), bilatu atala MAKINA IKASKETA:

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
Hemen lan-eremuaren barruan objektu talde desberdinak ikusi behar dituzu: baliabide informatikoak, esperimentuak, etab.

  1. Joan fitxategien zerrendara, egin klik eskuineko botoiarekin scriptean train_universal.py eta hautatu Azure ML: Exekutatu esperimentu gisa Azuren.

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  1. Horren ondoren, VS Code-ko komando-lerroko eremuan elkarrizketa-koadro batzuk agertuko dira: berretsi erabiltzen ari zaren harpidetza eta Azure ML lan-eremua eta hautatu Sortu esperimentu berria:

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  1. Aukeratu konputazio-baliabide berri bat sortzea Sortu Konputazio Berria:

    • Kontatu prestakuntza zein baliabide informatikotan egingo den zehazten du. Tokiko ordenagailu bat edo AmlCompute hodeiko kluster bat aukeratu dezakezu. Makina multzo eskalagarri bat sortzea gomendatzen dut STANDARD_DS3_v2, gutxieneko makina 0 (eta gehienez 1 edo gehiago, zure gosearen arabera). Hau VS Code interfazearen bidez egin daiteke, edo aurretik ML ataria.

    Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  2. Ondoren, konfigurazio bat hautatu behar duzu Konputatu konfigurazioa, prestakuntzarako sortutako edukiontziaren parametroak definitzen dituena, bereziki, beharrezko liburutegi guztiak. Gure kasuan, Scikit Learn erabiltzen ari garenez, hautatzen dugu SkLearn, eta ondoren, berretsi besterik ez dago proposatutako liburutegien zerrenda Sartu sakatuz. Liburutegi gehigarriren bat erabiltzen baduzu, hemen zehaztu behar dira.

    Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
    Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  3. Honek leiho bat irekiko du esperimentua deskribatzen duen JSON fitxategi batekin. Bertan, parametro batzuk zuzendu ditzakezu, adibidez, esperimentuaren izena. Horren ondoren egin klik estekan Bidali esperimentua fitxategi honen barruan bertan:

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  1. VS Code bidez esperimentu bat behar bezala bidali ondoren, jakinarazpen-eremuaren eskuinaldean, esteka bat ikusiko duzu. Azure ML ataria, non esperimentuaren egoera eta emaitzen jarraipena egin dezakezu.

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
Ondoren, beti aurkituko duzu atalean Esperimentuak Azure ML ataria, edo atalean Azure Machine Learning esperimentuen zerrendan:

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen

  1. Horren ondoren kodean zuzenketa batzuk egin badituzu edo parametroak aldatu badituzu, esperimentua berrabiaraztea askoz azkarragoa eta errazagoa izango da. Fitxategi batean eskuineko botoiarekin klik eginez, menu-elementu berri bat ikusiko duzu Errepikatu azken korrika - hautatu besterik ez dago eta berehala hasiko da esperimentua:

Nola gainditu beldurra eta nola hasi Azure Machine Learning erabiltzen
Beti aurki ditzakezu abiarazte guztietako neurketen emaitzak Azure ML Portalean, ez dago idatzi beharrik.

Orain badakizu Azure ML-rekin esperimentuak egitea erraza eta minik gabekoa dela, eta hainbat onura polit lortzen dituzula hori egitean.

Baina desabantailak ere ikus ditzakezu. Esate baterako, askoz gehiago behar izan da gidoia exekutatzeko. Jakina, scripta edukiontzi batean ontziratu eta zerbitzarian zabaltzeak denbora behar du. Aldi berean klusterra 0 nodoko tamainara moztu bada, are denbora gehiago beharko da makina birtuala abiarazteko, eta hori guztia oso nabaria da MNIST bezalako ataza sinpleetan esperimentatzen dugunean, segundo gutxitan konpontzen direnak. . Hala ere, bizitza errealean, entrenamenduak hainbat ordu edo egun edo aste irauten dituenean, denbora gehigarri hori hutsala bihurtzen da, batez ere informatika-kluster batek eman dezakeen errendimendu askoz handiagoaren atzealdean.

Zer da hurrengoa?

Artikulu hau irakurri ondoren, zure lanean Azure ML erabil dezakezula eta erabiliko duzula espero dut scriptak exekutatzeko, baliabide informatikoak kudeatzeko eta emaitzak zentralki gordetzeko. Hala ere, Azure ML-k are onura gehiago eman dizkizu!

Lan-eremuaren barruan, datuak gorde ditzakezu, horrela zure zeregin guztietarako biltegi zentralizatu bat sortuz, erraz sar daitekeena. Horrez gain, esperimentuak exekutatu ditzakezu ez Visual Studio Codetik, baina APIa erabiliz; hau bereziki erabilgarria izan daiteke hiperparametroen optimizazioa egin behar baduzu eta scripta hainbat aldiz exekutatu behar baduzu parametro ezberdinekin. Gainera, Azure ML-n teknologia berezia dago Hiperdrive, hiperparametroen bilaketa eta optimizazio zailagoa egiteko aukera ematen duena. Aukera horiei buruz hitz egingo dut hurrengo mezuan.

Baliabide erabilgarriak

Azure MLri buruz gehiago jakiteko, Microsoft Learn ikastaro hauek lagungarriak izan daitezke:

Iturria: www.habr.com

Gehitu iruzkin berria