Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

Мен Jupyter Notebook аркылуу же кандайдыр бир Python иштеп чыгуу чөйрөсү аркылуу булуттун ичинде жайгашкан жергиликтүү же виртуалдык GPU машиналарында иштеген көптөгөн Дата Окумуштууларын билем, балким, мен алардын биримин. 2 жыл бою AI/ML боюнча эксперт-иштеп чыгуучу болуп иштеп, мен кадимки серверде же жумушчу станцияда маалыматтарды даярдоодо жана Azureде GPU менен виртуалдык машинада машыгууну өткөрүп жатып, дал ушундай кылдым.

Албетте, биз баарыбыз укканбыз Azure Machine Learning — машинаны үйрөнүү үчүн атайын булут платформасы. Бирок, биринчи караганда, кийин кириш макалалар, Azure ML сиз үчүн чечкенге караганда көбүрөөк көйгөйлөрдү жаратат окшойт. Мисалы, жогоруда айтылган окутуу мисалында Azure ML боюнча тренинг Jupyter Notebook'тан ишке киргизилген, ал эми окутуу скриптинин өзү уячалардын биринде текст файлы катары автотолтурууну, синтаксисти бөлүп көрсөтүүнү жана башкаларды колдонбостон түзүлүп, редакциялоо сунушталат. нормалдуу өнүгүү чөйрөнүн артыкчылыктары. Ушул себептен улам, биз көп убакыт бою Azure MLди ишибизде олуттуу түрдө колдонгон эмеспиз.

Бирок, мен жакында жумушумда Azure MLди эффективдүү колдонуунун жолун таптым! чоо-жайы кызык?

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

негизги сыр болуп саналат Azure ML үчүн Visual Studio Code кеңейтүүсү. Бул чөйрөнүн бардык артыкчылыктарын пайдаланып, VS Code'де түздөн-түз окутуу скрипттерин иштеп чыгууга мүмкүндүк берет - жана сиз скриптти локалдуу иштетип, андан кийин бир нече чыкылдатуу менен аны Azure ML кластеринде машыгууга жөнөтө аласыз. Ыңгайлуу, туурабы?

Муну менен сиз Azure MLди колдонуудан төмөнкү артыкчылыктарды аласыз:

  • Сиз ыңгайлуу IDEде машинаңызда жергиликтүү убакыттын көбүн иштей аласыз жана моделди окутуу үчүн гана GPU колдонуңуз. Ошол эле учурда, окутуу ресурстарынын бассейни талап кылынган жүктөмгө автоматтык түрдө ыңгайлаша алат жана түйүндөрдүн минималдуу санын 0гө коюу менен, машыгуу тапшырмалары бар болсо, виртуалдык машинаны "талап боюнча" автоматтык түрдө ишке киргизе аласыз.
  • сиз бардык окуу натыйжаларын бир жерде сактоо, анын ичинде жетишилген метрикалар жана алынган моделдер - бардык натыйжаларды сактоо үчүн кандайдыр бир системаны же буйрукту ойлоп табуунун кереги жок.
  • Ошентип, Бир долбоордо бир нече адам иштей алат - алар бир эле эсептөө кластерин колдоно алышат, бардык эксперименттер кезекке коюлат, ошондой эле алар бири-биринин эксперименттеринин жыйынтыгын көрө алышат. Ушундай сценарийлердин бири Deep Learning окутууда Azure ML колдонуу, бул жерде ар бир студентке GPU менен виртуалдык машинаны берүүнүн ордуна, сиз бардыгы тарабынан борборлоштурулган бир кластер түзө аласыз. Мындан тышкары, моделдин тактыгы менен жыйынтыктардын жалпы таблицасы жакшы атаандаштык элементи катары кызмат кыла алат.
  • Azure ML колдонуп, сиз оңой эле бир катар эксперименттерди жүргүзө аласыз, мис. гиперпараметрди оптималдаштыруу - бул коддун бир нече саптары менен жасалышы мүмкүн, кол менен бир катар эксперименттерди жүргүзүүнүн кереги жок.

Мен сизди Azure ML сынап көрүүгө ынандырдым деп үмүттөнөм! Бул жерде кантип баштоо керек:

  • Орнотконуңузду текшериңиз Visual Studio Code, ошондой эле кеңейтүүлөр Azure Кирүү и AzureML
  • Репозиторийди клондоштуруу https://github.com/CloudAdvocacy/AzureMLStarter — ал MNIST маалымат топтомунда кол менен жазылган цифраларды таануу моделин үйрөтүү үчүн демо-кодду камтыйт.
  • Visual Studio Code ичинде клондолгон репозиторийди ачыңыз.
  • Оку!

Azure ML Workspace жана Azure ML порталы

Azure ML концепциянын айланасында уюштурулган иш аймагы - Жумуш мейкиндиги. Маалыматтар иш мейкиндигинде сакталышы мүмкүн, ага окутуу үчүн эксперименттер жөнөтүлүшү мүмкүн жана окутуунун натыйжалары — натыйжада алынган метрикалар жана моделдер да ошол жерде сакталат. Сиз иш мейкиндигинде эмнени колдонуп жатканын көрө аласыз Azure ML порталы - жана ал жерден сиз маалыматтарды жүктөөдөн баштап мониторинг эксперименттерине жана моделдерди жайылтууга чейин көптөгөн операцияларды аткара аласыз.

Сиз веб-интерфейс аркылуу жумушчу мейкиндигин түзө аласыз Azure порталы (Cm. кадам кадам нускамалар) же Azure CLI буйрук сабын колдонуу (көрсөтмөлөрү):

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

Жумуш мейкиндигине байланыштуу кээ бирлери да бар эсептөө ресурстары (Compute). Модельди үйрөтүү үчүн сценарий түзгөндөн кийин, сиз жасай аласыз аткаруу үчүн эксперимент жөнөтүү жумуш аймагына жана тактаңыз максатты эсептөө - бул учурда скрипт пакеттелет, керектүү эсептөө чөйрөсүндө ишке киргизилет, андан кийин эксперименттин бардык натыйжалары андан ары талдоо жана колдонуу үчүн жумушчу мейкиндигинде сакталат.

MNIST үчүн тренинг сценарийи

Келгиле, классикалык маселени карап көрөлү кол менен жазылган цифраны таануу MNIST маалымат топтомун колдонуу. Ошо сыяктуу эле, келечекте сиз каалаган окуу сценарийиңизди аткара аласыз.

Биздин репозиторийде сценарий бар train_local.py, ал SkLearn китепканасын колдонуу менен эң жөнөкөй сызыктуу регрессия моделин үйрөтөт. Албетте, бул маселени чечүүнүн эң жакшы жолу эмес экенин түшүнөм – биз муну мисал катары, эң жөнөкөй катары колдонобуз.

Скрипт алгач OpenMLден MNIST маалыматтарын жүктөп алып, андан кийин классты колдонот LogisticRegression моделди үйрөтүү үчүн, андан кийин алынган тактыкты басып чыгарат:

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)

Скриптти компьютериңизде иштетсеңиз болот жана бир нече секунданын ичинде сиз жыйынтыкка ээ болосуз.

Azure MLде сценарийди иштетүү

Эгерде биз Azure ML аркылуу окутуу сценарийин иштетсек, анда биз эки негизги артыкчылыкка ээ болобуз:

  • Адатта жергиликтүү компьютерге караганда жемиштүү болгон ыктыярдуу эсептөө ресурсунда машыгууну өткөрүү. Бул учурда, Azure ML өзү биздин скриптибизди учурдагы каталогдон бардык файлдар менен докер контейнерине таңгактап, керектүү көз карандылыктарды орнотуп, аны аткарууга жөнөтөт.
  • Azure ML жумушчу мейкиндигинде бир реестрге натыйжаларды жазыңыз. Бул өзгөчөлүктөн пайдалануу үчүн, натыйжадагы тактыкты жазуу үчүн скриптибизге бир нече сап кодду кошуубуз керек:

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

Сценарийдин тиешелүү версиясы деп аталат train_universal.py (бул жогоруда сүрөттөлгөндөн бир аз куураак иштелип чыккан, бирок көп эмес). Бул скрипт жергиликтүү жана алыскы эсептөө ресурсунда да иштетилиши мүмкүн.

Аны VS Code'ден Azure MLде иштетүү үчүн сиз төмөнкүлөрдү кылышыңыз керек:

  1. Azure кеңейтүүсү жазылууңузга туташып турганын текшериңиз. Сол менюдан Azure сөлөкөтүн тандаңыз. Эгер сиз туташпасаңыз, төмөнкү оң бурчта эскертме пайда болот (Бул сыяктуу), аны чыкылдатуу менен сиз браузер аркылуу кире аласыз. Сиз да бассаңыз болот Ctrl-Shift-P VS Code буйрук сабын ачып, териңиз Azure Кирүү.

  2. Андан кийин, Azure бөлүмүндө (сол жактагы сөлөкөт) бөлүмдү табыңыз Машина үйрөнүү:

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
Бул жерде сиз жумуш мейкиндигинде объекттердин ар кандай топторун көрүшүңүз керек: эсептөө ресурстары, эксперименттер ж.б.

  1. Файлдардын тизмесине өтүп, скриптти оң баскыч менен чыкылдатыңыз train_universal.py жана тандаңыз Azure ML: Azure'де эксперимент катары иштетүү.

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  1. Андан кийин VS Code буйрук сабынын аймагындагы бир катар диалогдор болот: жазылууңузду жана Azure ML жумушчу мейкиндигин ырастап, анан тандаңыз Жаңы эксперимент түзүү:

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  1. Жаңы эсептөө ресурсун түзүү үчүн тандаңыз Жаңы эсептөөнү түзүү:

    • Compute окутуу өтө турган эсептөө ресурсун аныктайт. Сиз жергиликтүү компьютерди же AmlCompute булут кластерин тандай аласыз. Мен машиналардын масштабдуу кластерин түзүүнү сунуштайм STANDARD_DS3_v2, машиналардын минималдуу саны 0 менен (жана максимум 1 же андан көп болушу мүмкүн, табитиңизге жараша). Бул VS Code интерфейси аркылуу же мурда аркылуу жасалышы мүмкүн ML порталы.

    Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  2. Андан кийин сиз конфигурацияны тандооңуз керек Конфигурацияны эсептөө, окутуу үчүн түзүлгөн контейнер параметрлерин аныктайт, атап айтканда, бардык зарыл китепканалар. Биздин учурда, биз Scikit Learn колдонуп жаткандыктан, биз тандайбыз SkLearn, анан жөн гана Enter баскычын басып, китепканалардын сунушталган тизмесин ырастаңыз. Эгер кандайдыр бир кошумча китепканаларды колдонсоңуз, алар бул жерде көрсөтүлүшү керек.

    Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
    Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  3. Андан кийин, экспериментти сүрөттөгөн JSON файлы менен терезе ачылат. Сиз андагы кээ бир параметрлерди оңдосоңуз болот, мисалы, эксперименттин аталышы. Андан кийин шилтемени басыңыз Эксперимент тапшыруу дал ушул файлдын ичинде:

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  1. VS Code аркылуу экспериментти ийгиликтүү тапшыргандан кийин, оң жактагы эскертме тилкесинде сиз шилтемени көрөсүз Azure ML порталы, анда сиз эксперименттин абалын жана натыйжаларын көзөмөлдөй аласыз.

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
Андан кийин, сиз аны ар дайым бөлүмдөн таба аласыз эксперименттер Azure ML порталы, же бөлүмүндө Azure Machine Learning эксперименттердин тизмесинде:

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот

  1. Эгер сиз кийинчерээк кодго бир аз оңдоолорду киргизсеңиз же параметрлерди өзгөртсөңүз, экспериментти кайра иштетүү алда канча тезирээк жана оңой болот. Файлды оң баскыч менен чыкылдатуу менен, менюнун жаңы пунктун көрөсүз Акыркы чуркоону кайталаңыз - жөн гана аны тандап, эксперимент дароо башталат:

Коркунучту кантип жеңсе болот жана Azure Machine Learningди кантип колдонсо болот
Сиз Azure ML порталында бардык чуркоолордун метрикалык натыйжаларын ар дайым таба аласыз; аларды жаздыруунун кереги жок.

Эми сиз Azure ML аркылуу эксперименттерди жүргүзүү оңой, оорутпай турганын жана кээ бир кызыктуу артыкчылыктарга ээ экенин билесиз.

Бирок сиз кээ бир кемчиликтерди байкагандырсыз. Мисалы, сценарийди иштетүү үчүн бир топ убакыт талап кылынды. Албетте, скриптти контейнерге таңгактоо жана аны серверге жайгаштыруу убакытты талап кылат. Эгерде кластер 0 түйүндөрдүн өлчөмүнө чейин кичирейтилген болсо, виртуалдык машинаны ишке киргизүү үчүн дагы көп убакыт талап кылынат жана мунун баары бир нече секунданын ичинде чечилүүчү MNIST сыяктуу жөнөкөй көйгөйлөр боюнча эксперимент жүргүзгөндө абдан байкалат. Бирок, реалдуу жашоодо, окутуу бир нече саатка, ал тургай күндөргө же жумаларга созулганда, бул кошумча убакыт, айрыкча, эсептөө кластери бере турган бир топ жогорку көрсөткүчтөрдүн фонунда анча деле маанилүү эмес болуп калат.

Кийинкиси эмне?

Бул макаланы окугандан кийин, сиз Azure MLди скрипттерди иштетүү, эсептөө ресурстарын башкаруу жана жыйынтыктарды борборлоштурулган сактоо үчүн колдоно аласыз жана колдоно аласыз деп үмүттөнөм. Бирок, Azure ML сизге дагы көбүрөөк пайда бере алат!

Сиз иш мейкиндигинде маалыматтарды сактай аласыз, ошону менен бардык тапшырмаларыңыз үчүн борборлоштурулган репозиторийди түзө аласыз. Кошумчалай кетсек, сиз эксперименттерди Visual Studio Code ордуна API аркылуу жүргүзсөңүз болот - бул өзгөчө пайдалуу болушу мүмкүн, эгерде сиз гиперпараметрди оптималдаштырууну аткарышыңыз керек жана скриптти ар кандай параметрлер менен көп жолу иштетүү керек болсо. Мындан тышкары, Azure MLге атайын технология орнотулган гипер диск, бул гиперпараметрлерди кыйла татаал издөөгө жана оптималдаштырууга мүмкүндүк берет. Бул мүмкүнчүлүктөр тууралуу кийинки постумда сөз кылам.

Пайдалуу булактар

Azure ML жөнүндө көбүрөөк билүү үчүн төмөнкү Microsoft Learn курстарын пайдалуу деп тапсаңыз болот:

Source: www.habr.com

Комментарий кошуу