Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ

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

Мэдээжийн хэрэг, бид бүгд сонссон Azure Machine Learning — машин сургалтын тусгай үүлэн платформ. Гэсэн хэдий ч анхны харцаар харсны дараа танилцуулга нийтлэлүүд, Azure ML танд шийдэхээсээ илүү олон асуудал үүсгэх бололтой. Жишээлбэл, дээр дурдсан зааварт Azure ML-ийн сургалтыг Jupyter Notebook-ээс эхлүүлсэн бол сургалтын скриптийг өөрөө автоматаар бөглөх, синтакс ашиглаагүй байхад аль нэг нүдэнд текст файл хэлбэрээр үүсгэж засварлахыг санал болгож байна. онцлох, хэвийн хөгжлийн орчны бусад давуу талууд. Ийм учраас бид Azure ML-ийг ажилдаа нухацтай ашиглаагүй удаж байна.

Гэсэн хэдий ч би саяхан Azure ML-г ажилдаа үр дүнтэй ашиглаж эхлэх аргыг олж нээсэн! Нарийвчилсан мэдээллийг сонирхож байна уу?

Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ

Гол нууц нь Azure ML-д зориулсан Visual Studio кодын өргөтгөл. Энэ нь танд сургалтын скриптүүдийг VS кодоор шууд хөгжүүлж, орчны давуу талыг ашиглах боломжийг олгодог - мөн та скриптийг дотооддоо ажиллуулж, дараа нь хэдхэн товшилтоор Azure ML кластерт сургалт руу илгээх боломжтой. Тохиромжтой, тийм үү?

Ингэснээр та Azure ML-г ашигласнаар дараах давуу талыг олж авна.

  • Та ихэнх цагаа өөрийн машин дээрээ тохиромжтой IDE дээр ажиллах боломжтой GPU-г зөвхөн загварын сургалтанд ашиглах. Үүний зэрэгцээ сургалтын нөөцийн сан нь шаардлагатай ачааллыг автоматаар тохируулах боломжтой бөгөөд хамгийн бага зангилааны тоог 0 болгож тохируулснаар сургалтын даалгавар байгаа үед виртуал машиныг "хүсэлтээр" автоматаар эхлүүлэх боломжтой.
  • та нар болно сургалтын бүх үр дүнг нэг дор хадгалах, үүнд хүрсэн хэмжигдэхүүнүүд болон үр дүнгийн загварууд - бүх үр дүнг хадгалахын тулд ямар нэгэн төрлийн систем, захиалга хийх шаардлагагүй.
  • Иймээс Нэг төсөл дээр хэд хэдэн хүн ажиллах боломжтой - тэд ижил тооцоолох кластер ашиглаж болно, бүх туршилтууд дараалалд байх болно, мөн тэд бие биенийхээ туршилтын үр дүнг харах боломжтой. Ийм хувилбаруудын нэг нь Deep Learning хичээлд Azure ML ашиглахОюутан бүрт GPU бүхий виртуал машин өгөхийн оронд та бүгд төвлөрсөн байдлаар ашиглах нэг кластер үүсгэж болно. Нэмж дурдахад, загварын нарийвчлал бүхий үр дүнгийн ерөнхий хүснэгт нь сайн өрсөлдөх чадвартай элемент болж чадна.
  • Azure ML-ийн тусламжтайгаар та хэд хэдэн туршилтыг хялбархан хийж болно, жишээ нь гиперпараметрийн оновчлол - үүнийг хэд хэдэн мөр кодоор хийж болно, гараар цуврал туршилт хийх шаардлагагүй.

Би чамайг Azure ML-г туршиж үзэхийг ятгасан гэж найдаж байна! Үүнийг хэрхэн эхлүүлэх вэ:

  • Та суулгасан эсэхээ шалгаарай Visual Studio код, түүнчлэн өргөтгөлүүд Azure нэвтэрнэ үү и AzureML
  • Хадгалах газрыг клон хийх https://github.com/CloudAdvocacy/AzureMLStarter - Энэ нь MNIST мэдээллийн багц дээр гараар бичсэн цифрийг таних загварыг сургах зарим демо кодыг агуулдаг.
  • Visual Studio код дээр клонжуулсан агуулахыг нээнэ үү.
  • Үргэлжлүүлэн уншина уу!

Azure ML Workspace болон Azure ML Portal

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

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

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

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

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 кодоос 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 кодын командын мөрөнд хэд хэдэн харилцах цонх гарч ирнэ: таны ашиглаж буй захиалга болон Azure ML ажлын талбарыг баталгаажуулж, сонгоно уу. Шинэ туршилт үүсгэх:

Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ
Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ
Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ

  1. Шинэ тооцооллын нөөц үүсгэхийг сонгоно уу Шинэ тооцоолол үүсгэх:

    • Тооцоолох сургалт явуулах тооцоолох нөөцийг тодорхойлдог. Та дотоод компьютер эсвэл 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 кодоор туршилтаа амжилттай илгээсний дараа мэдэгдлийн хэсгийн баруун талд та дараах холбоосыг харах болно. Azure ML портал, та туршилтын байдал, үр дүнг хянах боломжтой.

Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ
Дараа нь та үүнийг үргэлж хэсгээс олж болно Туршилтууд Azure ML портал, эсвэл хэсэгт Azure Machine Learning туршилтын жагсаалтад:

Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ

  1. Хэрэв үүний дараа та кодонд зарим засвар хийсэн эсвэл параметрүүдийг өөрчилсөн бол туршилтыг дахин эхлүүлэх нь илүү хурдан бөгөөд хялбар байх болно. Файл дээр хулганы баруун товчийг дарснаар та шинэ цэсийн зүйлийг харах болно Сүүлийн гүйлтийг давт - зүгээр л сонгоод туршилт нэн даруй эхэлнэ:

Айдсаа хэрхэн даван туулж, Azure Machine Learning-г ашиглаж эхлэх вэ
Та Azure ML Portal дээрх бүх эхлүүлсэн хэмжүүрүүдийн үр дүнг үргэлж олох боломжтой, тэдгээрийг бичих шаардлагагүй.

Одоо та Azure ML-тэй туршилт хийх нь энгийн бөгөөд өвдөлтгүй гэдгийг мэдэж байгаа бөгөөд ингэснээр та хэд хэдэн сайхан давуу талыг олж авах болно.

Гэхдээ та бас сул талыг харж болно. Жишээлбэл, скриптийг ажиллуулахад нэлээд удаан хугацаа шаардагдана. Мэдээжийн хэрэг, скриптийг саванд хийж, сервер дээр байрлуулах нь цаг хугацаа шаарддаг. Хэрэв нэгэн зэрэг кластерыг 0 зангилаатай болтол нь багасгасан бол виртуал машиныг эхлүүлэхэд илүү их цаг хугацаа шаардагдах бөгөөд бид хэдхэн секундын дотор шийдэгддэг MNIST гэх мэт энгийн ажлуудыг туршиж үзэхэд энэ бүхэн мэдэгдэхүйц юм. . Гэсэн хэдий ч бодит амьдрал дээр сургалт хэдэн цаг, бүр өдөр, долоо хоног үргэлжилдэг бол энэ нэмэлт цаг нь ач холбогдолгүй болдог, ялангуяа тооцооллын кластер илүү өндөр гүйцэтгэлтэй байдаг.

Дараа нь юу юм бэ?

Энэ нийтлэлийг уншсаны дараа та Azure ML-ийг скрипт ажиллуулах, тооцоолох нөөцийг удирдах, үр дүнг төвлөрсөн байдлаар хадгалах зэрэгт ашиглаж болно гэж найдаж байна. Гэсэн хэдий ч Azure ML нь танд илүү их ашиг тусыг өгөх болно!

Ажлын талбар дотор та өгөгдлийг хадгалах боломжтой бөгөөд ингэснээр таны бүх даалгаварт зориулсан төвлөрсөн агуулахыг бий болгож, хандахад хялбар байдаг. Нэмж дурдахад, та туршилтуудыг Visual Studio Code-ээс биш, харин API ашиглан хийж болно - энэ нь гиперпараметрийн оновчлолыг хийх шаардлагатай бөгөөд скриптийг өөр өөр параметртэй олон удаа ажиллуулах шаардлагатай бол ялангуяа ашигтай байж болно. Түүнчлэн, тусгай технологи нь Azure ML-д суурилагдсан Гипердрайв, энэ нь танд илүү төвөгтэй хайлт хийх, гиперпараметрүүдийг оновчтой болгох боломжийг олгодог. Би эдгээр боломжуудын талаар дараагийн нийтлэлдээ ярих болно.

Ашигтай эх үүсвэр

Azure ML-ийн талаар илүү нарийвчилсан ойлголт авахын тулд та Microsoft Learn-ийн дараах курсуудыг ашиглаж болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх