Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

Kuring nyaho loba Data Élmuwan - sarta kuring meureun salah sahijina sorangan - anu dianggo dina mesin GPU, lokal atawa virtual, lokasina di awan, boh ngaliwatan Jupyter Notebook atawa ngaliwatan sababaraha jenis lingkungan ngembangkeun Python. Gawé pikeun 2 taun salaku ahli AI / pamekar ML, Kuring lakukeun persis ieu, bari Nyiapkeun data dina server biasa atawa workstation, sarta ngajalankeun latihan dina mesin virtual kalawan GPU di Azure.

Tangtu, urang sadaya geus ngadéngé ngeunaan Diajar Mesin Azure - platform awan husus pikeun mesin learning. Sanajan kitu, sanggeus hiji glance kahiji di artikel bubuka, Sigana nu Azure ML bakal nyieun leuwih masalah pikeun anjeun ti eta solves. Salaku conto, dina tutorial anu disebatkeun di luhur, latihan dina Azure ML diluncurkeun tina Jupyter Notebook, sedengkeun skrip latihan sorangan diusulkeun pikeun didamel sareng diédit salaku file téks dina salah sahiji sél - bari henteu nganggo auto-completion, syntax. panyorot, sarta kaunggulan sejenna tina lingkungan ngembangkeun normal. Kusabab ieu, kami parantos lami henteu nganggo Azure ML dina padamelan urang.

Nanging, kuring nembe mendakan cara pikeun ngamimitian nganggo Azure ML sacara efektif dina padamelan kuring! Museurkeun rinci?

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

Rahasia utama nyaéta Visual Studio Code extension pikeun Azure ML. Eta ngidinan Anjeun pikeun ngamekarkeun Aksara latihan katuhu dina VS Code, ngamangpaatkeun pinuh ku lingkungan - jeung anjeun malah bisa ngajalankeun naskah lokal lajeng saukur ngirimkeunana ka latihan dina klaster Azure ML kalawan sababaraha clicks. Merenah, sanes?

Dina ngalakukeunana, anjeun nampi mangpaat ieu tina ngagunakeun Azure ML:

  • Anjeun tiasa dianggo lolobana waktu lokal dina mesin anjeun dina IDE merenah, jeung ngagunakeun GPU ngan pikeun latihan model. Dina waktos anu sami, kolam renang sumberdaya latihan tiasa otomatis nyaluyukeun kana beban anu diperyogikeun, sareng ku netepkeun jumlah minimum titik ka 0, anjeun tiasa otomatis ngamimitian mesin virtual "dina paménta" ku ayana tugas latihan.
  • meureun nyimpen sakabéh hasil diajar di hiji tempat, kalebet métrik anu dihontal sareng modél anu hasilna - teu kedah aya sababaraha jinis sistem atanapi pesenan pikeun nyimpen sadaya hasil.
  • Ku kituna Sababaraha jalma tiasa dianggo dina proyék anu sami - aranjeunna tiasa nganggo klaster komputasi anu sami, sadaya percobaan bakal antrian, sareng aranjeunna ogé tiasa ningali hasil percobaan masing-masing. Salah sahiji skenario sapertos kitu ngagunakeun Azure ML dina pangajaran Deep Learninglamun tinimbang masihan unggal murid mesin virtual kalawan GPU a, Anjeun bisa nyieun hiji klaster anu bakal dipaké ku sadayana centrally. Sajaba ti éta, tabel umum hasil kalawan akurasi model bisa ngawula ka salaku unsur kalapa alus.
  • Kalawan Azure ML, anjeun bisa kalayan gampang ngalaksanakeun runtuyan percobaan, contona, pikeun optimasi hyperparameter - ieu tiasa dilakukeun ku sababaraha garis kode, teu kedah ngalaksanakeun sababaraha percobaan sacara manual.

Kuring miharep kuring yakin anjeun nyobian Azure ML! Ieu kumaha carana ngamimitian:

Azure ML Workspace sareng Azure ML Portal

Azure ML diatur sabudeureun konsép wewengkon gawé - ruang gawé. Data bisa disimpen dina workspace, percobaan dikirim ka dinya pikeun latihan, hasil latihan ogé disimpen di dinya - metrics jeung model hasilna. Anjeun tiasa ningali naon anu aya di jero rohangan kerja Azure ML portal - sareng ti dinya anjeun tiasa ngalakukeun seueur operasi, ti ngamuat data dugi ka ngawaskeun percobaan sareng nyebarkeun modél.

Anjeun tiasa nyiptakeun ruang kerja ngalangkungan antarmuka wéb Portal Azure (tingali step by parentah hambalan), atanapi nganggo garis paréntah Azure CLI (parentah):

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

Ogé pakait sareng workspace sababaraha sumberdaya komputasi (itung). Sakali anjeun geus nyieun naskah pikeun ngalatih modél, anjeun tiasa ngirim percobaan pikeun palaksanaan ka workspace, sarta tangtukeun ngitung target - dina hal ieu, naskah bakal rangkep, ngajalankeun di lingkungan komputasi nu dipikahoyong, lajeng sagala hasil percobaan bakal disimpen dina workspace pikeun analisis salajengna jeung pamakéan.

Diajar naskah pikeun MNIST

Mertimbangkeun masalah klasik pangakuan digit tulisan leungeun ngagunakeun dataset MNIST. Nya kitu, dina mangsa nu bakal datang, Anjeun bisa ngajalankeun sagala skrip latihan Anjeun.

Aya skrip dina gudang urang train_local.py, anu kami ngalatih modél régrési liniér pangbasajanna nganggo perpustakaan SkLearn. Tangtosna, kuring ngartos yén ieu sanés cara anu pangsaéna pikeun ngabéréskeun masalah - kami nganggo éta pikeun conto, salaku anu paling gampang.

Skrip mimiti ngaunduh data MNIST tina OpenML teras nganggo kelas LogisticRegression pikeun ngalatih modél, teras nyitak akurasi hasilna:

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)

Anjeun tiasa ngajalankeun skrip dina komputer anjeun sareng kéngingkeun hasilna dina sababaraha detik.

Jalankeun naskah dina Azure ML

Lamun urang ngajalankeun naskah latihan ngaliwatan Azure ML, urang bakal boga dua kaunggulan utama:

  • Ngajalankeun latihan dina sumberdaya komputasi sawenang, nu, sakumaha aturan, leuwih produktif batan komputer lokal. Dina waktos anu sami, Azure ML nyalira bakal ngurus skrip kami sareng sadaya file tina diréktori ayeuna kana wadah docker, masang dependensi anu diperyogikeun, sareng ngirimkeunana pikeun dieksekusi.
  • Tulis hasil kana pendaptaran tunggal di jero rohangan kerja Azure ML. Pikeun ngamangpaatkeun fitur ieu, urang kedah nambihan sababaraha baris kode kana skrip urang pikeun ngarékam katepatan anu hasilna:

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

Versi saluyu tina naskah disebut train_universal.py (éta saeutik leuwih licik ti eta ditulis di luhur, tapi teu pira). Skrip ieu tiasa dijalankeun sacara lokal sareng dina sumber komputasi jauh.

Pikeun ngajalankeun éta dina Azure ML tina VS Code, anjeun kedah ngalakukeun ieu:

  1. Pastikeun Azure Extension disambungkeun ka langganan anjeun. Pilih ikon Azure tina ménu di kénca. Upami anjeun teu nyambung, bewara bakal muncul di pojok katuhu handap (resep ieu), ku ngaklik anu anjeun tiasa lebetkeun ngalangkungan browser. Anjeun oge bisa klik Ctrl-Shift-P pikeun nelepon baris paréntah VS Code, sarta ngetik Asup Azure.

  2. Saatos éta, dina bagian Azure (ikon di kénca), panggihan bagian éta PEMBELAJARAN Mesin:

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
Di dieu anjeun kedah ningali sababaraha kelompok objék dina rohangan kerja: sumber komputasi, ékspérimén, jsb.

  1. Pindah ka daptar file, klik katuhu dina skrip train_universal.py sareng pilih Azure ML: Jalankeun salaku percobaan dina Azure.

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  1. Ieu bakal dituturkeun ku séri dialog di daérah baris paréntah VS Code: mastikeun langganan sareng ruang kerja Azure ML anu anjeun anggo, teras pilih Jieun percobaan anyar:

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  1. Pilih nyieun sumber daya komputasi anyar Jieun Komputasi Anyar:

    • itung nangtukeun sumberdaya komputasi nu latihan bakal lumangsung. Anjeun tiasa milih komputer lokal, atanapi klaster awan AmlCompute. Abdi nyarankeun nyieun klaster scalable mesin STANDARD_DS3_v2, kalawan jumlah minimum mesin 0 (jeung maksimum 1 atawa leuwih, gumantung kana appetites Anjeun). Ieu bisa dilakukeun ngaliwatan panganteur VS Code, atawa saméméhna ngaliwatan Portal ML.

    Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  2. Salajengna, anjeun kedah milih konfigurasi Konfigurasi Itung, nu nangtukeun parameter tina wadahna dijieun pikeun latihan, hususna, sadaya perpustakaan perlu. Dina kasus urang, saprak urang ngagunakeun Scikit Diajar, urang milih SkLearn, lajeng ngan mastikeun daptar usulan perpustakaan ku mencét Lebetkeun. Upami anjeun nganggo perpustakaan tambahan, aranjeunna kedah disebatkeun di dieu.

    Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
    Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  3. Ieu bakal muka jandela sareng file JSON anu ngajelaskeun percobaan. Dina éta, anjeun tiasa ngabenerkeun sababaraha parameter - contona, nami percobaan. Sanggeus éta klik dina link Kirimkeun Percobaan katuhu dina file ieu:

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  1. Saatos hasil ngirimkeun percobaan ngaliwatan VS Code, di sisi katuhu wewengkon bewara, anjeun bakal nempo tumbu ka Azure ML Portal, dimana anjeun tiasa ngalacak status sareng hasil percobaan.

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
Salajengna, anjeun salawasna bisa manggihan eta dina bagian Eksperimen Azure ML Portal, atawa dina bagian Diajar Mesin Azure dina daptar percobaan:

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning

  1. Upami saatos éta anjeun ngadamel sababaraha koréksi kana kode atanapi ngarobih parameter, ngamimitian deui percobaan bakal langkung gancang sareng langkung gampang. Ku ngaklik katuhu dina file, anjeun bakal ningali item ménu anyar Ngulang ngajalankeun panungtungan - cukup pilih, sareng percobaan bakal langsung dimimitian:

Kumaha cara nungkulan kasieun sareng mimitian nganggo Azure Machine Learning
Anjeun salawasna tiasa mendakan hasil métrik tina sadaya peluncuran dina Azure ML Portal, teu kedah nyeratna.

Ayeuna anjeun terang yén ngajalankeun ékspérimén sareng Azure ML saderhana sareng henteu aya rasa nyeri, sareng anjeun nampi sababaraha kauntungan anu saé dina ngalakukeunana.

Tapi anjeun ogé tiasa ningali kalemahan. Salaku conto, peryogi langkung lami pikeun ngajalankeun naskah. Tangtosna, bungkusan naskah dina wadah sareng nyebarkeunana dina server butuh waktos. Upami dina waktos anu sami klaster dipotong kana ukuran 0 titik, éta bakal nyandak langkung seueur waktos pikeun ngamimitian mesin virtual, sareng sadaya ieu katingali pisan nalika urang ékspérimén dina tugas saderhana sapertos MNIST, anu direngsekeun dina sababaraha detik. . Sanajan kitu, dina kahirupan nyata, nalika latihan lasts sababaraha jam, atawa malah poé atawa minggu, waktos tambahan ieu jadi teu penting, utamana ngalawan latar tukang kinerja loba nu leuwih luhur nu bisa nyadiakeun klaster komputasi.

Naon saterusna?

Abdi ngarepkeun saatos maca tulisan ieu, anjeun tiasa sareng bakal ngagunakeun Azure ML dina padamelan anjeun pikeun ngajalankeun naskah, ngatur sumber komputasi, sareng nyimpen hasil sacara sentral. Nanging, Azure ML tiasa masihan anjeun langkung seueur kauntungan!

Di jero rohangan kerja, anjeun tiasa nyimpen data, ku kituna nyiptakeun gudang terpusat pikeun sadaya tugas anjeun, anu gampang diakses. Salaku tambahan, anjeun tiasa ngajalankeun ékspérimén sanés tina Visual Studio Code, tapi nganggo API - ieu tiasa mangpaat upami anjeun kedah ngalakukeun optimasi hyperparameter sareng kedah ngajalankeun naskah sababaraha kali kalayan parameter anu béda. Sumawona, téknologi khusus diwangun kana Azure ML hyper drive, nu ngidinan Anjeun pikeun ngalakukeun pilarian leuwih tricky tur optimasi hyperparameters. Kuring bakal ngobrol ngeunaan kemungkinan ieu dina tulisan kuring salajengna.

sumberdaya mangpaat

Pikeun leuwih jéntré ngeunaan Azure ML, anjeun tiasa mendakan kursus Microsoft Learn di handap ieu mantuan:

sumber: www.habr.com

Tambahkeun komentar