Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

Rwy'n adnabod llawer o Wyddonwyr Data - ac mae'n debyg fy mod yn un ohonyn nhw fy hun - sy'n gweithio ar beiriannau GPU, lleol neu rithwir, sydd wedi'u lleoli yn y cwmwl, naill ai trwy Lyfr Nodiadau Jupyter neu trwy ryw fath o amgylchedd datblygu Python. Gan weithio am 2 flynedd fel datblygwr AI/ML arbenigol, gwnes yn union hyn, wrth baratoi data ar weinydd rheolaidd neu weithfan, a rhedeg hyfforddiant ar beiriant rhithwir gyda GPU yn Azure.

Wrth gwrs, rydym i gyd wedi clywed am Dysgu Peiriant Azure - llwyfan cwmwl arbennig ar gyfer dysgu peiriannau. Fodd bynnag, ar ôl yr olwg gyntaf ar erthyglau rhagarweiniol, mae'n ymddangos y bydd Azure ML yn creu mwy o broblemau i chi nag y mae'n eu datrys. Er enghraifft, yn y tiwtorial a grybwyllir uchod, mae hyfforddiant ar Azure ML yn cael ei lansio o Lyfr Nodiadau Jupyter, tra bod y sgript hyfforddi ei hun yn cael ei gynnig i'w greu a'i olygu fel ffeil testun yn un o'r celloedd - er nad yw'n defnyddio awto-gwblhau, cystrawen amlygu, a manteision eraill amgylchedd datblygu arferol. Am y rheswm hwn, nid ydym wedi defnyddio Azure ML o ddifrif yn ein gwaith ers amser maith.

Fodd bynnag, yn ddiweddar darganfyddais ffordd i ddechrau defnyddio Azure ML yn effeithiol yn fy ngwaith! Diddordeb yn y manylion?

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

Y brif gyfrinach yw Estyniad Cod Stiwdio Gweledol ar gyfer Azure ML. Mae'n caniatáu ichi ddatblygu sgriptiau hyfforddi yn iawn yn VS Code, gan fanteisio'n llawn ar yr amgylchedd - a gallwch chi hyd yn oed redeg y sgript yn lleol ac yna ei anfon i hyfforddiant mewn clwstwr Azure ML gydag ychydig o gliciau. Cyfleus, ynte?

Wrth wneud hynny, rydych chi'n cael y buddion canlynol o ddefnyddio Azure ML:

  • Gallwch weithio'r rhan fwyaf o'r amser yn lleol ar eich peiriant mewn IDE cyfleus, a defnyddio GPU yn unig ar gyfer hyfforddiant model. Ar yr un pryd, gall y gronfa adnoddau hyfforddi addasu'n awtomatig i'r llwyth gofynnol, a thrwy osod y nifer lleiaf o nodau i 0, gallwch chi gychwyn y peiriant rhithwir yn awtomatig "yn ôl y galw" ym mhresenoldeb tasgau hyfforddi.
  • 'Сјјѕѕµ‚‚µ. .С storio'r holl ddeilliannau dysgu mewn un lle, gan gynnwys y metrigau a gyflawnwyd a'r modelau canlyniadol - nid oes angen dod o hyd i ryw fath o system neu orchymyn i storio'r holl ganlyniadau.
  • Yn yr achos hwn, Gall pobl luosog weithio ar yr un prosiect - gallant ddefnyddio'r un clwstwr cyfrifiadura, bydd yr holl arbrofion yn cael eu ciwio, a gallant hefyd weld canlyniadau arbrofion ei gilydd. Un senario o'r fath yw defnyddio Azure ML i addysgu Dysgu Dwfnpan yn lle rhoi peiriant rhithwir i bob myfyriwr gyda GPU, gallwch greu un clwstwr a fydd yn cael ei ddefnyddio gan bawb yn ganolog. Yn ogystal, gall tabl cyffredinol o ganlyniadau gyda chywirdeb model fod yn elfen gystadleuol dda.
  • Gydag Azure ML, gallwch chi gynnal cyfres o arbrofion yn hawdd, er enghraifft, ar gyfer optimeiddio hyperparameter - gellir gwneud hyn gydag ychydig linellau o god, nid oes angen cynnal cyfres o arbrofion â llaw.

Rwy'n gobeithio fy mod wedi eich argyhoeddi i roi cynnig ar Azure ML! Dyma sut i gychwyn arni:

Gweithle Azure ML a Phorth Azure ML

Mae Azure ML wedi'i drefnu o amgylch y cysyniad maes gwaith —lle gwaith. Gellir storio data yn y gweithle, anfonir arbrofion ato ar gyfer hyfforddiant, mae canlyniadau hyfforddi hefyd yn cael eu storio yno - y metrigau a'r modelau canlyniadol. Gallwch weld beth sydd y tu mewn i'r gweithle drwyddo Porth Azure ML - ac oddi yno gallwch gyflawni llawer o weithrediadau, yn amrywio o lwytho data i fonitro arbrofion a defnyddio modelau.

Gallwch greu man gwaith trwy'r rhyngwyneb gwe Porth Azure (gw cyfarwyddiadau cam wrth gam), neu ddefnyddio llinell orchymyn Azure CLI (cyfarwyddiadau):

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

Mae rhai hefyd yn gysylltiedig â'r gweithle adnoddau cyfrifiadurol (Cyfrifo). Unwaith y byddwch wedi creu sgript i hyfforddi'r model, gallwch chi anfon arbrawf i'w weithredu i'r gweithle, a nodwch cyfrifo targed - yn yr achos hwn, bydd y sgript yn cael ei becynnu, ei redeg yn yr amgylchedd cyfrifiadurol dymunol, ac yna bydd holl ganlyniadau'r arbrawf yn cael eu cadw yn y gweithle i'w dadansoddi a'u defnyddio ymhellach.

Sgript ddysgu ar gyfer MNIST

Ystyriwch y broblem glasurol adnabod digid mewn llawysgrifen defnyddio set ddata MNIST. Yn yr un modd, yn y dyfodol, gallwch redeg unrhyw un o'ch sgriptiau hyfforddi.

Mae sgript yn ein cadwrfa train_local.py, yr ydym yn hyfforddi'r model atchweliad llinol symlaf gan ddefnyddio llyfrgell SkLearn. Wrth gwrs, deallaf nad dyma'r ffordd orau o ddatrys y broblem - rydym yn ei ddefnyddio er enghraifft, fel y symlaf.

Mae'r sgript yn lawrlwytho'r data MNIST o OpenML yn gyntaf ac yna'n defnyddio'r dosbarth LogisticRegression i hyfforddi'r model, ac yna argraffu'r cywirdeb canlyniadol:

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)

Gallwch chi redeg y sgript ar eich cyfrifiadur a chael y canlyniad mewn ychydig eiliadau.

Rhedeg y sgript yn Azure ML

Os byddwn yn rhedeg y sgript hyfforddi trwy Azure ML, bydd gennym ddwy brif fantais:

  • Cynnal hyfforddiant ar adnodd cyfrifiadura mympwyol, sydd, fel rheol, yn fwy cynhyrchiol na'r cyfrifiadur lleol. Ar yr un pryd, bydd Azure ML ei hun yn gofalu am bacio ein sgript gyda'r holl ffeiliau o'r cyfeiriadur cyfredol i mewn i gynhwysydd docwr, gosod y dibyniaethau gofynnol, a'i hanfon i'w gweithredu.
  • Ysgrifennu canlyniadau i gofrestrfa sengl y tu mewn i weithle Azure ML. Er mwyn manteisio ar y nodwedd hon, mae angen i ni ychwanegu dwy linell o god i'n sgript i gofnodi'r cywirdeb canlyniadol:

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

Gelwir y fersiwn cyfatebol o'r sgript train_universal.py (mae ychydig yn fwy cyfrwys nag y mae'n ysgrifenedig uchod, ond dim llawer). Gellir rhedeg y sgript hon yn lleol ac ar adnodd cyfrifiadura o bell.

Er mwyn ei redeg yn Azure ML o VS Code, mae angen i chi wneud y canlynol:

  1. Sicrhewch fod yr Estyniad Azure wedi'i gysylltu â'ch tanysgrifiad. Dewiswch yr eicon Azure o'r ddewislen ar y chwith. Os nad ydych wedi'ch cysylltu, bydd hysbysiad yn ymddangos yn y gornel dde isaf (fel hyn), trwy glicio ar y gallwch chi fynd i mewn trwy'r porwr. Gallwch hefyd glicio Ctrl-Shift-P i alw llinell orchymyn Cod VS, a theipio Azure Sign In.

  2. Ar ôl hynny, yn yr adran Azure (eicon ar y chwith), darganfyddwch yr adran DYSGU PEIRIANNAU:

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
Yma dylech weld gwahanol grwpiau o wrthrychau yn y gweithle: adnoddau cyfrifiadurol, arbrofion, ac ati.

  1. Ewch i'r rhestr o ffeiliau, cliciwch ar y dde ar y sgript train_universal.py a dewis Azure ML: Rhedeg fel arbrawf yn Azure.

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  1. Bydd hyn yn cael ei ddilyn gan gyfres o ddeialogau yn ardal llinell orchymyn y Cod VS: cadarnhewch y tanysgrifiad a'r man gwaith Azure ML rydych chi'n ei ddefnyddio, a dewiswch Creu arbrawf newydd:

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  1. Dewiswch greu adnodd cyfrifiadurol newydd Creu Cyfrifiadura Newydd:

    • Cyfrifo sy'n pennu'r adnodd cyfrifiadurol y bydd hyfforddiant yn digwydd arno. Gallwch ddewis cyfrifiadur lleol, neu glwstwr cwmwl AmlCompute. Rwy'n argymell creu clwstwr graddadwy o beiriannau STANDARD_DS3_v2, gydag isafswm o beiriannau o 0 (ac uchafswm o 1 neu fwy, yn dibynnu ar eich archwaeth). Gellir gwneud hyn trwy ryngwyneb Cod VS, neu drwy'r blaen Porth ML.

    Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  2. Nesaf, mae angen i chi ddewis cyfluniad Cyfluniad Cyfrifo, sy'n diffinio paramedrau'r cynhwysydd a grëwyd ar gyfer hyfforddiant, yn arbennig, yr holl lyfrgelloedd angenrheidiol. Yn ein hachos ni, gan ein bod ni'n defnyddio Scikit Learn, rydyn ni'n dewis SkLearn, ac yna dim ond cadarnhau'r rhestr arfaethedig o lyfrgelloedd trwy wasgu Enter. Os ydych yn defnyddio unrhyw lyfrgelloedd ychwanegol, rhaid eu nodi yma.

    Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
    Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  3. Bydd hyn yn agor ffenestr gyda ffeil JSON yn disgrifio'r arbrawf. Ynddo, gallwch chi gywiro rhai paramedrau - er enghraifft, enw'r arbrawf. Ar ôl hynny cliciwch ar y ddolen Cyflwyno Arbrawf yn union y tu mewn i'r ffeil hon:

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  1. Ar ôl cyflwyno arbrawf yn llwyddiannus trwy VS Code, ar ochr dde'r ardal hysbysu, fe welwch ddolen i Porth ML Azure, lle gallwch olrhain statws a chanlyniadau'r arbrawf.

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
Yn dilyn hynny, gallwch chi bob amser ddod o hyd iddo yn yr adran Arbrofion Porth ML Azure, neu yn yr adran Dysgu Peiriant Azure yn y rhestr o arbrofion:

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning

  1. Os gwnaethoch rai cywiriadau i'r cod ar ôl hynny neu newid y paramedrau, bydd ailgychwyn yr arbrawf yn llawer cyflymach ac yn haws. Trwy dde-glicio ar ffeil, fe welwch eitem ddewislen newydd Ailadrodd y rhediad diwethaf - dewiswch ef, a bydd yr arbrawf yn cychwyn ar unwaith:

Sut i oresgyn ofn a dechrau defnyddio Azure Machine Learning
Gallwch chi bob amser ddod o hyd i ganlyniadau metrigau o bob lansiad ar y Porth Azure ML, nid oes angen eu hysgrifennu.

Nawr rydych chi'n gwybod bod rhedeg arbrofion gydag Azure ML yn syml ac yn ddi-boen, ac rydych chi'n cael nifer o fanteision braf wrth wneud hynny.

Ond gallwch chi hefyd weld yr anfanteision. Er enghraifft, cymerodd lawer mwy o amser i redeg y sgript. Wrth gwrs, mae pecynnu'r sgript mewn cynhwysydd a'i ddefnyddio ar y gweinydd yn cymryd amser. Os cafodd y clwstwr ei dorri ar yr un pryd i faint o 0 nod, bydd yn cymryd hyd yn oed mwy o amser i gychwyn y peiriant rhithwir, ac mae hyn i gyd yn amlwg iawn pan fyddwn yn arbrofi ar dasgau syml fel MNIST, sy'n cael eu datrys mewn ychydig eiliadau . Fodd bynnag, mewn bywyd go iawn, pan fydd hyfforddiant yn para sawl awr, neu hyd yn oed ddyddiau neu wythnosau, mae'r amser ychwanegol hwn yn mynd yn ddibwys, yn enwedig yn erbyn cefndir y perfformiad llawer uwch y gall clwstwr cyfrifiadura ei ddarparu.

Beth sydd nesaf?

Rwy'n gobeithio, ar ôl darllen yr erthygl hon, y gallwch ac y byddwch yn defnyddio Azure ML yn eich gwaith i redeg sgriptiau, rheoli adnoddau cyfrifiadurol, a storio canlyniadau yn ganolog. Fodd bynnag, gall Azure ML roi hyd yn oed mwy o fuddion i chi!

Y tu mewn i'r gweithle, gallwch storio data, a thrwy hynny greu ystorfa ganolog ar gyfer eich holl dasgau, sy'n hawdd ei chyrchu. Yn ogystal, gallwch chi redeg arbrofion nid o Visual Studio Code, ond gan ddefnyddio'r API - gall hyn fod yn arbennig o ddefnyddiol os oes angen i chi berfformio optimeiddio hyperparamedr ac mae angen rhedeg y sgript lawer gwaith gyda pharamedrau gwahanol. Ar ben hynny, mae technoleg arbennig wedi'i chynnwys yn Azure ML Hyperdreif, sy'n eich galluogi i wneud chwiliad mwy anodd ac optimeiddio hyperparamedrau. Byddaf yn siarad am y posibiliadau hyn yn fy swydd nesaf.

Adnoddau defnyddiol

I ddysgu mwy am Azure ML, efallai y bydd y cyrsiau Microsoft Learn canlynol yn ddefnyddiol i chi:

Ffynhonnell: hab.com

Ychwanegu sylw