Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

Tha mi eòlach air mòran de luchd-saidheans dàta - agus is dòcha gu bheil mi mar aon dhiubh mi-fhìn - a bhios ag obair air innealan GPU, ionadail no brìgheil, suidhichte san sgòth, an dàrna cuid tro Leabhar notaichean Jupyter no tro sheòrsa air choreigin de àrainneachd leasachaidh Python. Ag obair airson 2 bliadhna mar leasaiche eòlach AI / ML, rinn mi dìreach seo, fhad ‘s a bha mi ag ullachadh dàta air frithealaiche cunbhalach no stèisean-obrach, agus a’ ruith trèanadh air inneal brìgheil le GPU ann an Azure.

Gu dearbh, tha sinn uile air cluinntinn mu dheidhinn Ionnsachadh Inneal Azure - àrd-ùrlar sgòthan sònraichte airson ionnsachadh innealan. Ach, an dèidh a 'chiad sealladh air artaigilean tòiseachaidh, tha e coltach gun cruthaich Azure ML barrachd dhuilgheadasan dhut na tha e a’ fuasgladh. Mar eisimpleir, anns an oideachadh a chaidh ainmeachadh gu h-àrd, thèid trèanadh air Azure ML a chuir air bhog bho Leabhar-nota Jupyter, fhad ‘s a thathar a’ moladh an sgriobt trèanaidh fhèin a chruthachadh agus a dheasachadh mar fhaidhle teacsa ann an aon de na ceallan - ged nach eil e a ’cleachdadh fèin-chrìochnachadh, co-chòrdadh. soilleireachadh, agus buannachdan eile bho àrainneachd leasachaidh àbhaisteach. Air an adhbhar seo, chan eil sinn air Azure ML a chleachdadh gu mòr nar n-obair airson ùine mhòr.

Ach, lorg mi o chionn ghoirid dòigh air tòiseachadh air Azure ML a chleachdadh gu h-èifeachdach nam obair! A bheil ùidh agad anns na mion-fhiosrachadh?

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

Tha am prìomh dìomhair Leudachadh Còd Visual Studio airson Azure ML. Leigidh e leat sgriobtaichean trèanaidh a leasachadh ceart ann an Còd VS, a ’gabhail làn chothrom air an àrainneachd - agus faodaidh tu eadhon an sgriobt a ruith gu h-ionadail agus an uairsin dìreach a chuir gu trèanadh ann am brabhsair Azure ML le beagan chlican. Goireasach, nach eil?

Le bhith a’ dèanamh seo, gheibh thu na buannachdan a leanas bho bhith a’ cleachdadh Azure ML:

  • Faodaidh tu a’ mhòr-chuid den ùine obrachadh gu h-ionadail air an inneal agad ann an IDE goireasach, agus cleachd GPU a-mhàin airson trèanadh modail. Aig an aon àm, faodaidh an cruinneachadh de ghoireasan trèanaidh atharrachadh gu fèin-ghluasadach chun luchd a tha a dhìth, agus le bhith a’ suidheachadh an àireamh as lugha de nodan gu 0, faodaidh tu an inneal brìgheil a thòiseachadh gu fèin-ghluasadach “air iarrtas” an làthair gnìomhan trèanaidh.
  • Faodaidh tu stòradh a h-uile builean ionnsachaidh ann an aon àite, a 'gabhail a-steach na meatrach a chaidh a choileanadh agus na modalan a thàinig às - chan eil feum air siostam no òrdugh de sheòrsa air choreigin a chruthachadh airson na toraidhean gu lèir a stòradh.
  • Mar sin, Faodaidh grunn dhaoine obrachadh air an aon phròiseact - faodaidh iad an aon bhuidheann coimpiutaireachd a chleachdadh, thèid a h-uile deuchainn a chiudha, agus chì iad cuideachd toraidhean deuchainnean càch a chèile. Is e aon suidheachadh mar sin a’ cleachdadh Azure ML ann a bhith a’ teagasg Deep Learningnuair an àite inneal brìgheil a thoirt do gach oileanach le GPU, faodaidh tu aon bhuidheann a chruthachadh a bhios air a chleachdadh leis a h-uile duine sa mheadhan. A bharrachd air an sin, faodaidh clàr coitcheann de thoraidhean le mionaideachd modail a bhith na dheagh eileamaid farpaiseach.
  • Le Azure ML, is urrainn dhut gu furasta sreath de dheuchainnean a dhèanamh, mar eisimpleir, airson hyperparameter optimization - faodar seo a dhèanamh le beagan loidhnichean de chòd, chan eil feum air sreath de dheuchainnean a dhèanamh le làimh.

Tha mi an dòchas gun tug mi dearbhadh dhut Azure ML fheuchainn! Seo mar a thòisicheas tu:

Àite-obrach Azure ML agus Portal Azure ML

Tha Azure ML air a chuir air dòigh timcheall air a’ bhun-bheachd raon obrach - àite-obrach. Faodar dàta a stòradh san àite-obrach, thèid deuchainnean a chuir thuige airson trèanadh, tha toraidhean trèanaidh air an stòradh an sin cuideachd - na meatrach agus na modalan a thig às. Chì thu dè tha taobh a-staigh an àite-obrach troimhe Portal Azure ML - agus às an sin faodaidh tu mòran obrachaidhean a dhèanamh, bho bhith a’ luchdachadh dàta gu bhith a’ cumail sùil air deuchainnean agus a’ cleachdadh mhodalan.

Faodaidh tu àite-obrach a chruthachadh tron ​​​​eadar-aghaidh lìn Portal Azure (faic stiùireadh ceum air cheum), no a’ cleachdadh loidhne-àithne Azure CLI (stiùireadh):

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

Cuideachd co-cheangailte ris an àite-obrach tha cuid goireasan coimpiutaireachd (Dèan co-dhùnadh). Aon uair ‘s gu bheil thu air sgriobt a chruthachadh gus am modail a thrèanadh, faodaidh tu cuir deuchainn airson a chuir gu bàs chun an àite-obrach, agus sònraich àireamhachadh targaid - anns a ’chùis seo, thèid an sgriobt a phacaigeadh, a ruith san àrainneachd coimpiutaireachd a tha thu ag iarraidh, agus an uairsin thèid toraidhean an deuchainn gu lèir a shàbhaladh san àite-obrach airson tuilleadh sgrùdaidh agus cleachdadh.

Ionnsachadh sgriobt airson MNIST

Beachdaich air an duilgheadas clasaigeach aithneachadh figear làmh-sgrìobhte a’ cleachdadh an stòr-dàta MNIST. San aon dòigh, san àm ri teachd, faodaidh tu gin de na sgriobtaichean trèanaidh agad a ruith.

Tha sgriob anns an ionad-tasgaidh againn train_local.py, a bhios sinn a’ trèanadh am modail ais-tharraing sreathach as sìmplidh a’ cleachdadh leabharlann SkLearn. Gu dearbh, tha mi a 'tuigsinn nach e seo an dòigh as fheàrr air fuasgladh fhaighinn air an duilgheadas - bidh sinn ga chleachdadh airson eisimpleir, mar as sìmplidh.

Bidh an sgriobt an toiseach a’ luchdachadh sìos dàta MNIST bho OpenML agus an uairsin a’ cleachdadh a’ chlas LogisticRegression gus am modail a thrèanadh, agus an uairsin clò-bhuail an cruinneas a thig às:

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)

Faodaidh tu an sgriobt a ruith air a’ choimpiutair agad agus an toradh fhaighinn ann an diog no dhà.

Ruith an sgriobt ann an Azure ML

Ma ruitheas sinn an sgriobt trèanaidh tro Azure ML, bidh dà phrìomh bhuannachd againn:

  • A 'ruith trèanadh air goireas coimpiutaireachd neo-riaghailteach, a tha, mar riaghailt, nas cinneasaiche na a' choimpiutair ionadail. Aig an aon àm, bidh Azure ML fhèin a ’gabhail cùram mu bhith a’ pacadh ar sgriobt leis na faidhlichean uile bhon eòlaire gnàthach a-steach do ghobhar docker, a ’stàladh na h-eisimeileachd a tha a dhìth, agus ga chuir airson a chuir gu bàs.
  • Sgrìobh toraidhean gu aon chlàr taobh a-staigh àite-obrach Azure ML. Gus brath a ghabhail air an fheart seo, feumaidh sinn loidhne no dhà de chòd a chur ris an sgriobt againn gus an cruinneas a thig às a chlàradh:

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

Canar an dreach co-fhreagarrach den sgriobt train_universal.py (tha e beagan nas seòlta na tha e sgrìobhte gu h-àrd, ach chan eil mòran). Faodar an sgriobt seo a ruith an dà chuid gu h-ionadail agus air goireas coimpiutaireachd iomallach.

Gus a ruith ann an Azure ML bho Chòd VS, feumaidh tu na leanas a dhèanamh:

  1. Dèan cinnteach gu bheil an Azure Extension ceangailte ris an fho-sgrìobhadh agad. Tagh an ìomhaigh Azure bhon chlàr air an taobh chlì. Mura h-eil thu ceangailte, nochdaidh fios anns an oisean gu h-ìosal air an làimh dheis (an seo tha), le bhith a’ briogadh air an urrainn dhut a dhol a-steach tron ​​​​bhrobhsair. Faodaidh tu cuideachd briogadh Ctrl-Shift-P gus loidhne-àithne Còd VS a ghairm, agus seòrsa Azure Log a-steach.

  2. Às deidh sin, anns an roinn Azure (ìomhaigh air an taobh chlì), lorg an earrann IONNSACHADH MACHINE:

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
An seo bu chòir dhut diofar bhuidhnean de nithean fhaicinn taobh a-staigh an àite-obrach: goireasan coimpiutaireachd, deuchainnean, msaa.

  1. Rach gu liosta nam faidhlichean, cliog deas air an sgriobt train_universal.py agus tagh Azure ML: Ruith mar dheuchainn ann an Azure.

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  1. Leanaidh seo le sreath de chòmhraidhean ann an raon loidhne-àithne Còd VS: dearbhaich an fho-sgrìobhadh agus an àite-obrach Azure ML a tha thu a’ cleachdadh, agus tagh Cruthaich deuchainn ùr:

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  1. Tagh goireas coimpiutaireachd ùr a chruthachadh Cruthaich Coimpiutaireachd Ùr:

    • Dèan co-dhùnadh a’ dearbhadh an goireas coimpiutaireachd air an tèid trèanadh a chumail. Faodaidh tu coimpiutair ionadail a thaghadh, no brabhsair sgòthan AmlCompute. Tha mi a ’moladh cruinneachadh de dh’ innealan scalable a chruthachadh STANDARD_DS3_v2, le àireamh as lugha de dh’ innealan de 0 (agus 1 no barrachd aig a’ char as àirde, a rèir do bhlas). Faodar seo a dhèanamh tro eadar-aghaidh Còd VS, no tro roimhe Portal ML.

    Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  2. An ath rud, feumaidh tu rèiteachadh a thaghadh Configuration coimpiutaireachd, a tha a’ mìneachadh crìochan an t-soithich a chaidh a chruthachadh airson trèanadh, gu sònraichte, na leabharlannan riatanach uile. Anns a 'chùis againn, leis gu bheil sinn a' cleachdadh Scikit Learn, bidh sinn a 'taghadh SkLearn, agus an uairsin dìreach dearbhaich an liosta de leabharlannan a tha san amharc le bhith a’ putadh Enter. Ma chleachdas tu leabharlannan a bharrachd, feumaidh iad a bhith air an sònrachadh an seo.

    Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
    Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  3. Fosglaidh seo uinneag le faidhle JSON a’ toirt cunntas air an deuchainn. Ann, faodaidh tu cuid de pharaimearan a cheartachadh - mar eisimpleir, ainm an deuchainn. Às deidh sin cliog air a’ cheangal Cuir a-steach Deuchainn taobh a-staigh an fhaidhle seo:

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  1. Às deidh dhut deuchainn a chuir a-steach gu soirbheachail tro Chòd VS, air taobh deas an raon fios, chì thu ceangal gu Portal Azure ML, far an urrainn dhut sùil a chumail air inbhe agus toraidhean an deuchainn.

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
Às deidh sin, faodaidh tu an-còmhnaidh a lorg anns an roinn Deuchainnean Portal Azure ML, no anns an earrainn Ionnsachadh Inneal Azure anns an liosta de dheuchainnean:

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning

  1. Ma rinn thu beagan ceartachaidhean air a’ chòd às deidh sin no ma dh’ atharraich thu na crìochan, bidh ath-thòiseachadh an deuchainn tòrr nas luaithe agus nas fhasa. Le briogadh deas air faidhle, chì thu rud clàr ùr Dèan a-rithist an ruith mu dheireadh - dìreach tagh e, agus tòisichidh an deuchainn sa bhad:

Mar a gheibh thu thairis air eagal agus tòiseachadh a’ cleachdadh Azure Machine Learning
Gheibh thu an-còmhnaidh toraidhean meatrach bho gach cur air bhog air Portal Azure ML, chan eil feum air an sgrìobhadh sìos.

A-nis tha fios agad gu bheil ruith dheuchainnean le Azure ML sìmplidh agus gun phian, agus gheibh thu grunn bhuannachdan snog le bhith a ’dèanamh sin.

Ach chì thu cuideachd na h-eas-bhuannachdan. Mar eisimpleir, thug e mòran nas fhaide an sgriobt a ruith. Gu dearbh, bidh pacadh an sgriobt ann an soitheach agus ga chuir air an fhrithealaiche a ’toirt ùine. Ma chaidh an cruinneachadh aig an aon àm a ghearradh gu meud 0 nodan, bheir e eadhon barrachd ùine an inneal brìgheil a thòiseachadh, agus tha seo uile gu math follaiseach nuair a nì sinn deuchainn air gnìomhan sìmplidh mar MNIST, a thèid fhuasgladh ann am beagan dhiog. . Ach, ann am fìor bheatha, nuair a mhaireas trèanadh grunn uairean a thìde, no eadhon làithean no seachdainean, bidh an ùine a bharrachd seo a’ fàs beag, gu h-àraidh an aghaidh cùl-raon de choileanadh mòran nas àirde a bheir buidheann coimpiutaireachd seachad.

Dè a-nis?

Tha mi an dòchas às deidh dhut an artaigil seo a leughadh, gun urrainn dhut agus gun cleachd thu Azure ML nad obair gus sgriobtaichean a ruith, goireasan coimpiutaireachd a riaghladh, agus toraidhean a stòradh sa mheadhan. Ach, faodaidh Azure ML eadhon barrachd bhuannachdan a thoirt dhut!

Taobh a-staigh an àite-obrach, faodaidh tu dàta a stòradh, mar sin a’ cruthachadh stòr meadhanaichte airson na gnìomhan agad gu lèir, a tha furasta faighinn thuige. A bharrachd air an sin, faodaidh tu deuchainnean a ruith chan ann bho Chòd Visual Studio, ach a ’cleachdadh an API - faodaidh seo a bhith gu sònraichte feumail ma dh’ fheumas tu hyperparameter optimization a dhèanamh agus feumaidh tu an sgriobt a ruith iomadh uair le diofar pharaimearan. A bharrachd air an sin, tha teicneòlas sònraichte air a thogail a-steach do Azure ML dràibhear hyper, a leigeas leat sgrùdadh nas duilghe a dhèanamh agus optimization hyperparameters. Bruidhnidh mi mu na cothroman sin anns an ath phost agam.

Goireasan feumail

Gus barrachd ionnsachadh mu Azure ML, is dòcha gum bi na cùrsaichean Microsoft Learn a leanas feumail dhut:

Source: www.habr.com

Cuir beachd ann