Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

Mən Jupyter Notebook və ya bir növ Python inkişaf mühiti vasitəsilə buludda yerləşən yerli və ya virtual GPU maşınlarında işləyən bir çox Məlumat Alimlərini tanıyıram - və yəqin ki, mən də onlardan biriyəm. Mütəxəssis AI/ML tərtibatçısı kimi 2 il işləyərək, adi server və ya iş stansiyasında məlumat hazırlayarkən və Azure-da GPU ilə virtual maşında təlim keçirərkən məhz bunu etdim.

Təbii ki, hamımız eşitmişik Azure Maşın Öyrənməsi — maşın öyrənməsi üçün xüsusi bulud platforması. Ancaq ilk baxışdan sonra giriş məqalələri, deyəsən Azure ML sizin üçün həll etdiyindən daha çox problem yaradacaq. Məsələn, yuxarıda qeyd olunan dərslikdə Azure ML üzrə təlim Jupyter Notebook-dan işə salınır, eyni zamanda təlim skriptinin özünün avtomatik tamamlama, sintaksisdən istifadə etmədən xanalardan birində mətn faylı kimi yaradılması və redaktə edilməsi təklif olunur. işıqlandırma və normal inkişaf mühitinin digər üstünlükləri. Bu səbəbdən uzun müddətdir ki, işimizdə Azure ML-dən ciddi şəkildə istifadə etmirik.

Bununla belə, mən bu yaxınlarda işimdə Azure ML-dən səmərəli istifadə etməyə başlamağın yolunu kəşf etdim! Detallarla maraqlanırsınız?

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

Əsas sirr budur Azure ML üçün Visual Studio Code genişləndirilməsi. Bu, ətraf mühitdən tam istifadə edərək, birbaşa VS Kodunda təlim skriptlərini inkişaf etdirməyə imkan verir - və hətta skripti yerli olaraq işə sala və sonra bir neçə kliklə onu Azure ML klasterində təlimə göndərə bilərsiniz. Rahatdır, elə deyilmi?

Bununla siz Azure ML-dən istifadə etməklə aşağıdakı üstünlükləri əldə edirsiniz:

  • Siz rahat IDE-də maşınınızda yerli olaraq çox vaxt işləyə bilərsiniz və GPU-dan yalnız model təlimi üçün istifadə edin. Eyni zamanda, təlim resurslarının hovuzu avtomatik olaraq tələb olunan yükə uyğunlaşa bilər və qovşaqların minimum sayını 0-a təyin etməklə, təlim tapşırıqlarının mövcudluğunda virtual maşını "tələb üzrə" avtomatik işə sala bilərsiniz.
  • Siz bütün təlim nəticələrini bir yerdə saxlayın, əldə edilmiş ölçülər və nəticədə modellər daxil olmaqla - bütün nəticələri saxlamaq üçün bir növ sistem və ya sifariş yaratmağa ehtiyac yoxdur.
  • Bu halda, Eyni layihə üzərində bir neçə nəfər işləyə bilər - onlar eyni hesablama klasterindən istifadə edə bilərlər, bütün təcrübələr növbəyə qoyulacaq və onlar bir-birlərinin təcrübələrinin nəticələrini də görə bilərlər. Belə ssenarilərdən biri də belədir Dərin Öyrənmənin tədrisində Azure ML-dən istifadəhər bir tələbəyə GPU ilə virtual maşın vermək əvəzinə, hamının mərkəzi olaraq istifadə edəcəyi bir klaster yarada bilərsiniz. Bundan əlavə, model dəqiqliyi ilə ümumi nəticələr cədvəli yaxşı rəqabət elementi kimi xidmət edə bilər.
  • Azure ML ilə siz asanlıqla bir sıra təcrübələr keçirə bilərsiniz, məsələn, üçün hiperparametrlərin optimallaşdırılması - bunu bir neçə sətir kodla etmək olar, əl ilə bir sıra eksperimentlər aparmağa ehtiyac yoxdur.

Ümid edirəm ki, sizi Azure ML-ni sınamağa inandırdım! Başlamaq üçün necə:

Azure ML Workspace və Azure ML Portal

Azure ML konsepsiya ətrafında təşkil edilmişdir iş sahəsi - İş sahəsi. Məlumatlar iş yerində saxlanıla bilər, təcrübələr təlim üçün ona göndərilir, təlim nəticələri də orada saxlanılır - nəticədə ölçülər və modellər. İş sahəsinin içərisində nə olduğunu görə bilərsiniz Azure ML portalı - və oradan məlumatların yüklənməsindən tutmuş təcrübələrin monitorinqinə və modellərin yerləşdirilməsinə qədər bir çox əməliyyatları yerinə yetirə bilərsiniz.

Veb interfeysi vasitəsilə iş sahəsi yarada bilərsiniz Azure Portalı (Bax addım-addım təlimatlar) və ya Azure CLI əmr satırından istifadə edərək (təlimatlar):

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

İş sahəsi ilə də əlaqəli olanlar var hesablama resursları (Hesablayın). Modeli öyrətmək üçün skript yaratdıqdan sonra edə bilərsiniz təcrübəni icra üçün göndərin iş sahəsinə daxil edin və təyin edin hədəfi hesablayın - bu halda skript paketlənəcək, istədiyiniz hesablama mühitində işlədəcək və sonra eksperimentin bütün nəticələri sonrakı təhlil və istifadə üçün iş yerində saxlanacaq.

MNIST üçün skript öyrənmək

Klassik problemi nəzərdən keçirin əl ilə yazılmış rəqəmlərin tanınması MNIST məlumat dəstindən istifadə etməklə. Eynilə, gələcəkdə siz hər hansı təlim skriptinizi işlədə bilərsiniz.

Anbarımızda bir skript var train_local.pySkLearn kitabxanasından istifadə edərək ən sadə xətti reqressiya modelini öyrədirik. Əlbəttə ki, başa düşürəm ki, bu problemi həll etməyin ən yaxşı yolu deyil - biz onu nümunə üçün, ən sadə kimi istifadə edirik.

Skript əvvəlcə OpenML-dən MNIST məlumatlarını yükləyir və sonra sinifdən istifadə edir LogisticRegression modeli öyrətmək və sonra əldə edilən dəqiqliyi çap etmək üçün:

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)

Skripti kompüterinizdə işlədə və bir neçə saniyə ərzində nəticə əldə edə bilərsiniz.

Skripti Azure ML-də işə salın

Təlim skriptini Azure ML vasitəsilə işlədirsək, iki əsas üstünlüyümüz olacaq:

  • Bir qayda olaraq, yerli kompüterdən daha məhsuldar olan ixtiyari hesablama resursunda məşq etmək. Eyni zamanda, Azure ML özü skriptimizi cari kataloqdan bütün fayllarla docker konteynerinə qablaşdırmaq, tələb olunan asılılıqları quraşdırmaq və icraya göndərmək ilə məşğul olacaq.
  • Nəticələri Azure ML iş məkanında vahid reyestrə yazın. Bu xüsusiyyətdən yararlanmaq üçün nəticədə yaranan dəqiqliyi qeyd etmək üçün skriptimizə bir neçə sətir kod əlavə etməliyik:

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

Skriptin müvafiq versiyası deyilir train_universal.py (yuxarıda yazıldığından bir az hiyləgərdir, amma çox deyil). Bu skript həm yerli, həm də uzaq hesablama resursunda işlədilə bilər.

Onu VS Kodundan Azure ML-də işə salmaq üçün aşağıdakıları etməlisiniz:

  1. Azure Genişlənməsinin abunəliyinizə qoşulduğundan əmin olun. Soldakı menyudan Azure simgesini seçin. Əgər qoşulmamısınızsa, sağ alt küncdə bildiriş görünəcək (bunun kimi), üzərinə klikləməklə brauzer vasitəsilə daxil ola bilərsiniz. Siz də klikləyə bilərsiniz Ctrl-Shift-P VS Kodu əmr xəttinə zəng etmək və yazın Azure Daxil ol.

  2. Bundan sonra, Azure bölməsində (solda ikon) bölməni tapın MACHINE Öyrənmə:

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
Burada iş sahəsinin içərisində müxtəlif obyekt qruplarını görməlisiniz: hesablama resursları, təcrübələr və s.

  1. Fayllar siyahısına keçin, skriptin üzərinə sağ vurun train_universal.py və seçin Azure ML: Azure-da sınaq kimi işə salın.

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  1. Bunun ardınca VS Kodunun komanda xətti sahəsində bir sıra dialoqlar olacaq: istifadə etdiyiniz abunəliyi və Azure ML iş sahəsini təsdiqləyin və seçin Yeni təcrübə yaradın:

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  1. Yeni hesablama resursu yaratmağı seçin Yeni Hesablama Yaradın:

    • Hesablayın təlimin keçiriləcəyi hesablama resursunu müəyyən edir. Siz yerli kompüter və ya AmlCompute bulud klasterini seçə bilərsiniz. Mən miqyaslana bilən maşın klasteri yaratmağı məsləhət görürəm STANDARD_DS3_v2, maşınların minimum sayı 0 (və iştahınızdan asılı olaraq maksimum 1 və ya daha çox) ilə. Bu, VS Code interfeysi və ya əvvəllər vasitəsilə edilə bilər ML Portalı.

    Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  2. Sonra, bir konfiqurasiya seçməlisiniz Hesablama Konfiqurasiyası, təlim üçün yaradılmış konteynerin parametrlərini, xüsusən də bütün lazımi kitabxanaları müəyyən edir. Bizim vəziyyətimizdə Scikit Learn istifadə etdiyimiz üçün seçirik SkLearn, və sonra Enter düyməsini basaraq təklif olunan kitabxanaların siyahısını təsdiqləyin. Əgər hər hansı əlavə kitabxanalardan istifadə edirsinizsə, onlar burada göstərilməlidir.

    Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
    Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  3. Bu, təcrübəni təsvir edən JSON faylı olan bir pəncərə açacaq. Orada bəzi parametrləri düzəldə bilərsiniz - məsələn, təcrübənin adı. Bundan sonra linkə klikləyin Təcrübəni təqdim edin bu faylın içində:

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  1. Təcrübəni VS Kodu vasitəsilə uğurla təqdim etdikdən sonra bildiriş sahəsinin sağ tərəfində aşağıdakı linki görəcəksiniz. Azure ML Portalı, burada təcrübənin vəziyyətini və nəticələrini izləyə bilərsiniz.

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
Sonradan onu həmişə bölmədə tapa bilərsiniz Təcrübələr Azure ML Portalı, və ya bölməsində Azure Maşın Öyrənməsi təcrübələr siyahısında:

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar

  1. Bundan sonra kodda bəzi düzəlişlər etmisinizsə və ya parametrləri dəyişdirmisinizsə, təcrübəni yenidən başlatmaq daha sürətli və asan olacaq. Faylı sağ klikləməklə, yeni menyu elementi görəcəksiniz Son qaçışı təkrarlayın - sadəcə onu seçin və təcrübə dərhal başlayacaq:

Qorxuya necə qalib gəlmək və Azure Machine Learning-dən istifadə etməyə başlamaq olar
Siz həmişə Azure ML Portalında bütün buraxılışlardan ölçülərin nəticələrini tapa bilərsiniz, onları yazmağa ehtiyac yoxdur.

İndi bilirsiniz ki, Azure ML ilə təcrübələr aparmaq sadə və ağrısızdır və bununla siz bir sıra gözəl üstünlüklər əldə edirsiniz.

Ancaq mənfi cəhətləri də görə bilərsiniz. Məsələn, skriptin icrası xeyli uzun çəkdi. Əlbəttə ki, skriptin konteynerdə qablaşdırılması və serverdə yerləşdirilməsi vaxt aparır. Eyni zamanda klaster 0 qovşaq ölçüsünə kəsilibsə, virtual maşını işə salmaq daha çox vaxt aparacaq və bütün bunlar MNIST kimi sadə tapşırıqlar üzərində təcrübə apardıqda çox nəzərə çarpır, hansı ki, onlar bir neçə saniyə ərzində həll olunur. . Bununla belə, real həyatda təlim bir neçə saat, hətta günlər və ya həftələr davam etdikdə, xüsusilə hesablama klasterinin təmin edə biləcəyi daha yüksək performans fonunda bu əlavə vaxt əhəmiyyətsiz olur.

Növbəti nədir?

Ümid edirəm ki, bu məqaləni oxuduqdan sonra skriptləri idarə etmək, hesablama resurslarını idarə etmək və nəticələri mərkəzləşdirilmiş şəkildə saxlamaq üçün işinizdə Azure ML-dən istifadə edə bilərsiniz və edəcəksiniz. Bununla belə, Azure ML sizə daha çox fayda verə bilər!

İş sahəsinin içərisində siz məlumatları saxlaya bilərsiniz və bununla da bütün tapşırıqlarınız üçün asanlıqla daxil olmaq üçün mərkəzləşdirilmiş repozitoriya yarada bilərsiniz. Bundan əlavə, təcrübələri Visual Studio Code-dan deyil, API-dən istifadə etməklə həyata keçirə bilərsiniz - bu, hiperparametrlərin optimallaşdırılmasını yerinə yetirməli və skripti müxtəlif parametrlərlə dəfələrlə işə salmaq lazım olduqda xüsusilə faydalı ola bilər. Üstəlik, Azure ML-də xüsusi texnologiya qurulub Hiperdrive, bu, hiperparametrlərin daha çətin axtarışını və optimallaşdırılmasını həyata keçirməyə imkan verir. Bu imkanlar haqqında növbəti yazımda danışacağam.

Faydalı qaynaqlar

Azure ML haqqında ətraflı öyrənmək üçün aşağıdakı Microsoft Learn kurslarını faydalı tapa bilərsiniz:

Mənbə: www.habr.com

Добавить комментарий