Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

Men Jupyter Notebook yoki qandaydir Python ishlab chiqish muhiti orqali bulutda joylashgan mahalliy yoki virtual GPU mashinalarida ishlaydigan ko'plab Data Scientistlarni bilaman va ehtimol men ulardan biriman. 2 yil davomida AI/ML bo'yicha mutaxassis ishlab chiquvchi sifatida ishlagan holda, men oddiy server yoki ish stantsiyasida ma'lumotlarni tayyorlash va Azure'da GPU bilan virtual mashinada treningni o'tkazishda aynan shunday qildim.

Albatta, biz hammamiz eshitganmiz Azure Machine Learning — mashinani oʻrganish uchun maxsus bulutli platforma. Biroq, birinchi qarashdan keyin kirish maqolalari, Azure ML siz uchun hal qilishdan ko'ra ko'proq muammolarni keltirib chiqaradi. Misol uchun, yuqorida aytib o'tilgan trening misolida, Azure ML bo'yicha trening Jupyter Notebook-dan boshlangan, shu bilan birga o'quv skriptining o'zi avtomatik to'ldirish, sintaksisni ajratib ko'rsatish va boshqalardan foydalanmasdan, hujayralardan birida matn fayli sifatida yaratilishi va tahrirlanishi taklif etiladi. normal rivojlanish muhitining afzalliklari. Shu sababli, biz uzoq vaqt davomida ishimizda Azure ML dan jiddiy foydalanmadik.

Biroq, men yaqinda o'z ishimda Azure ML dan samarali foydalanishni boshlash usulini topdim! Tafsilotlarga qiziqasizmi?

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

Asosiy sir - bu Azure ML uchun Visual Studio Code kengaytmasi. Bu sizga atrof-muhitdan to'liq foydalangan holda to'g'ridan-to'g'ri VS Code-da o'quv skriptlarini ishlab chiqish imkonini beradi - va siz hatto skriptni mahalliy sifatida ishga tushirishingiz va keyin uni bir necha marta bosish bilan Azure ML klasterida mashq qilish uchun yuborishingiz mumkin. Qulay, shunday emasmi?

Bunda siz Azure ML dan quyidagi afzalliklarga ega boʻlasiz:

  • Siz ko'p vaqtni mashinangizda qulay IDEda mahalliy sifatida ishlashingiz mumkin va GPUdan faqat modelni o'qitish uchun foydalaning. Shu bilan birga, o'quv resurslari puli avtomatik ravishda kerakli yukga moslashishi mumkin va tugunlarning minimal sonini 0 ga o'rnatish orqali, agar o'quv vazifalari mavjud bo'lsa, virtual mashinani "talab bo'yicha" avtomatik ravishda ishga tushirishingiz mumkin.
  • Agar mumkin barcha o'rganish natijalarini bitta joyda saqlang, shu jumladan erishilgan ko'rsatkichlar va natijada olingan modellar - barcha natijalarni saqlash uchun qandaydir tizim yoki buyurtmani o'ylab topishning hojati yo'q.
  • Shunday qilib Bitta loyiha ustida bir necha kishi ishlashi mumkin - ular bir xil hisoblash klasteridan foydalanishlari mumkin, barcha tajribalar navbatga qo'yiladi va ular bir-birlarining tajribalari natijalarini ham ko'rishlari mumkin. Shunday stsenariylardan biri Deep Learning o'qitishda Azure ML dan foydalanish, bu erda har bir talabaga GPUga ega virtual mashinani berish o'rniga, siz hamma tomonidan markaziy ravishda foydalaniladigan bitta klaster yaratishingiz mumkin. Bundan tashqari, model aniqligi bilan umumiy natijalar jadvali yaxshi raqobatbardosh element bo'lib xizmat qilishi mumkin.
  • Azure ML-dan foydalanib, siz bir qator tajribalarni osongina bajarishingiz mumkin, masalan. giperparametrlarni optimallashtirish - buni bir necha qator kodlar yordamida amalga oshirish mumkin, qo'lda bir qator tajribalar o'tkazishga hojat yo'q.

Umid qilamanki, sizni Azure ML-ni sinab ko'rishga ishontirdim! Buni qanday boshlash kerak:

Azure ML Workspace va Azure ML Portal

Azure ML kontseptsiya atrofida tashkil etilgan ish maydoni - Ish maydoni. Ma'lumotlar ish joyida saqlanishi mumkin, unga o'qitish uchun tajribalar yuborilishi mumkin va o'quv natijalari - natijada olingan ko'rsatkichlar va modellar ham u erda saqlanadi. Ish maydoni ichida nima ishlatilishini ko'rishingiz mumkin Azure ML portali - va u erdan siz ma'lumotlarni yuklashdan tortib monitoring tajribalari va modellarni joylashtirishgacha bo'lgan ko'plab operatsiyalarni bajarishingiz mumkin.

Veb-interfeys orqali ish joyini yaratishingiz mumkin Azure portali (Sm. bosqichma-bosqich ko'rsatmalar) yoki Azure CLI buyruq qatoridan (ko'rsatmalar):

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

Ish maydoni bilan bog'liq bo'lganlar ham bor hisoblash resurslari (Hisoblash). Modelni o'rgatish uchun skript yaratganingizdan so'ng, mumkin eksperimentni bajarish uchun yuboring ish maydoniga o'tkazing va belgilang maqsadni hisoblash - bu holda skript paketlanadi, kerakli hisoblash muhitida ishga tushiriladi, so'ngra tajribaning barcha natijalari keyingi tahlil va foydalanish uchun ish maydonida saqlanadi.

MNIST uchun trening skripti

Keling, klassik muammoni ko'rib chiqaylik qo'lda yozilgan raqamni aniqlash MNIST ma'lumotlar to'plamidan foydalanish. Xuddi shunday, kelajakda siz har qanday trening skriptlarini bajarishingiz mumkin bo'ladi.

Bizning omborimizda skript mavjud train_local.py, bu SkLearn kutubxonasi yordamida eng oddiy chiziqli regressiya modelini o'rgatadi. Albatta, men tushunaman, bu muammoni hal qilishning eng yaxshi yo'li emas - biz uni misol sifatida, eng oddiyi sifatida ishlatamiz.

Skript avval OpenML-dan MNIST ma'lumotlarini yuklab oladi va keyin sinfdan foydalanadi LogisticRegression modelni o'rgatish va keyin olingan aniqlikni chop etish uchun:

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)

Siz skriptni kompyuteringizda ishga tushirishingiz mumkin va bir necha soniya ichida siz natijaga erishasiz.

Azure ML da skriptni ishga tushirish

Agar biz Azure ML orqali trening skriptini ishga tushirsak, biz ikkita asosiy afzalliklarga ega bo'lamiz:

  • Odatda mahalliy kompyuterdan ko'ra samaraliroq bo'lgan ixtiyoriy hisoblash resursida treningni o'tkazish. Bunday holda, Azure ML o'zi bizning skriptimizni joriy katalogdagi barcha fayllar bilan docker konteyneriga o'rash, kerakli bog'liqliklarni o'rnatish va uni bajarish uchun yuborish bilan shug'ullanadi.
  • Natijalarni Azure ML ish maydonidagi yagona registrga yozing. Ushbu xususiyatdan foydalanish uchun biz natijada aniqlikni qayd qilish uchun skriptimizga bir necha qator kod qo'shishimiz kerak:

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

Skriptning mos keladigan versiyasi chaqiriladi train_universal.py (yuqorida tavsiflanganidan ko'ra bir oz ayyorroq tarzda ishlab chiqilgan, lekin unchalik emas). Ushbu skript ham mahalliy, ham masofaviy hisoblash resursida ishga tushirilishi mumkin.

Uni VS Code dan Azure ML da ishga tushirish uchun siz quyidagilarni bajarishingiz kerak:

  1. Azure kengaytmasi obunangizga ulanganligiga ishonch hosil qiling. Chapdagi menyudan Azure belgisini tanlang. Agar siz ulanmagan bo'lsangiz, pastki o'ng burchakda bildirishnoma paydo bo'ladi (shunga o'xshash), ustiga bosish orqali siz brauzer orqali kirishingiz mumkin. Siz ham bosishingiz mumkin Ctrl-Shift-P VS Code buyruq qatorini oching va kiriting Azure tizimiga kirish.

  2. Shundan so'ng, Azure bo'limida (chapdagi belgi) bo'limni toping Mashinalarni o'rganish:

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
Bu erda siz ish maydoni ichidagi turli xil ob'ektlar guruhlarini ko'rishingiz kerak: hisoblash resurslari, tajribalar va boshqalar.

  1. Fayllar ro'yxatiga o'ting, skriptni o'ng tugmasini bosing train_universal.py va tanlang Azure ML: Azure-da tajriba sifatida ishga tushirish.

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  1. Shundan so‘ng VS Code buyruqlar qatori maydonida bir qator dialog oynalari paydo bo‘ladi: obuna va Azure ML ish maydonini tasdiqlang va tanlang. Yangi tajriba yarating:

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  1. Yangi hisoblash resursini yaratish uchun tanlang Yangi hisoblash yaratish:

    • Hisoblash trening o'tkaziladigan hisoblash resursini belgilaydi. Siz mahalliy kompyuterni yoki AmlCompute bulutli klasterni tanlashingiz mumkin. Men kengayadigan mashinalar klasterini yaratishni tavsiya qilaman STANDARD_DS3_v2, mashinalarning minimal soni bilan 0 (va maksimal ishtahangizga qarab 1 yoki undan ko'p bo'lishi mumkin). Buni VS Code interfeysi orqali yoki avvalroq amalga oshirish mumkin ML portali.

    Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  2. Keyin konfiguratsiyani tanlashingiz kerak Hisoblash konfiguratsiyasi, bu o'qitish uchun yaratilgan konteyner parametrlarini, xususan, barcha kerakli kutubxonalarni belgilaydi. Bizning holatda, biz Scikit Learn dan foydalanayotganimiz sababli, biz tanlaymiz SkLearn, so'ngra Enter tugmasini bosib taklif qilingan kutubxonalar ro'yxatini tasdiqlang. Agar siz qo'shimcha kutubxonalardan foydalansangiz, ular shu yerda ko'rsatilishi kerak.

    Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
    Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  3. Shundan so'ng, tajribani tavsiflovchi JSON fayli bilan oyna ochiladi. Undagi ba'zi parametrlarni tuzatishingiz mumkin, masalan, tajriba nomi. Shundan so'ng havolani bosing Tajribani yuborish ushbu fayl ichida:

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  1. VS kodi orqali tajribani muvaffaqiyatli topshirgandan so'ng, o'ngdagi bildirishnomalar sohasida siz havolani ko'rasiz Azure ML portali, bu yerda tajriba holati va natijalarini kuzatishingiz mumkin.

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
Keyinchalik, uni har doim bo'limda topishingiz mumkin Tajribalar Azure ML portali, yoki bo'limda Azure Machine Learning tajribalar ro'yxatida:

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak

  1. Agar siz keyinchalik kodga ba'zi tuzatishlar kiritgan bo'lsangiz yoki parametrlarni o'zgartirgan bo'lsangiz, tajribani qayta ishga tushirish ancha tez va osonroq bo'ladi. Faylni sichqonchaning o'ng tugmasi bilan bosish orqali siz yangi menyu elementini ko'rasiz Oxirgi yugurishni takrorlang - shunchaki uni tanlang va tajriba darhol boshlanadi:

Qanday qilib qo'rquvni engish va Azure Machine Learning-dan foydalanishni boshlash kerak
Siz har doim Azure ML Portalidagi barcha ishlarning natijalarini topishingiz mumkin; ularni yozib olishning hojati yo'q.

Endi bilasizki, Azure ML yordamida tajribalar o‘tkazish oson, og‘riqsiz va ba’zi qiziqarli afzalliklarga ega.

Ammo siz ba'zi kamchiliklarni sezgan bo'lishingiz mumkin. Masalan, skriptni ishga tushirish ancha uzoq davom etdi. Albatta, skriptni konteynerga joylashtirish va uni serverga joylashtirish vaqt talab etadi. Agar klaster 0 tugun o'lchamiga qisqartirilgan bo'lsa, virtual mashinani ishga tushirish uchun ko'proq vaqt kerak bo'ladi va bularning barchasi MNIST kabi bir necha soniya ichida hal qilinadigan oddiy muammolar ustida tajriba o'tkazganimizda juda sezilarli bo'ladi. Biroq, real hayotda, mashg'ulotlar bir necha soat, hatto kunlar yoki haftalar davom etganda, bu qo'shimcha vaqt ahamiyatsiz bo'lib qoladi, ayniqsa hisoblash klasteri ta'minlay oladigan ancha yuqori ko'rsatkichlar fonida.

Keyin nima?

Umid qilamanki, ushbu maqolani o'qib chiqqandan so'ng siz Azure ML-dan skriptlarni ishga tushirish, hisoblash resurslarini boshqarish va natijalarni markaziy saqlash uchun o'z ishingizda foydalanishingiz mumkin va foydalanasiz. Biroq, Azure ML sizga ko'proq foyda keltirishi mumkin!

Siz ma'lumotlarni ish maydoni ichida saqlashingiz mumkin, shu bilan barcha vazifalaringiz uchun kirish oson bo'lgan markazlashtirilgan omborni yaratishingiz mumkin. Bundan tashqari, siz Visual Studio Code o'rniga API yordamida tajriba o'tkazishingiz mumkin - bu, ayniqsa, giperparametrlarni optimallashtirishni amalga oshirishingiz kerak bo'lsa va skriptni turli parametrlar bilan ko'p marta ishga tushirishingiz kerak bo'lsa foydali bo'lishi mumkin. Bundan tashqari, Azure ML-ga maxsus texnologiya o'rnatilgan giper haydovchi, bu giperparametrlarni yanada murakkab qidirish va optimallashtirish imkonini beradi. Bu imkoniyatlar haqida keyingi postimda gapirib beraman.

Foydali manbalar

Azure ML haqida ko'proq ma'lumot olish uchun quyidagi Microsoft Learn kurslarini foydali deb topishingiz mumkin:

Manba: www.habr.com

a Izoh qo'shish