Би Jupyter Notebook эсвэл ямар нэгэн Python хөгжүүлэлтийн орчноор дамжуулан үүлэн дотор байрлах локал эсвэл виртуал GPU машинууд дээр ажилладаг олон Дата судлаачдыг мэддэг, магадгүй би өөрөө тэдний нэг байх. AI/ML хөгжүүлэгчийн мэргэжлээр 2 жил ажиллахдаа би ердийн сервер эсвэл ажлын станц дээр өгөгдөл бэлтгэж, Azure дээр GPU бүхий виртуал машин дээр сургалт явуулж байхдаа яг үүнийг хийсэн.
Мэдээжийн хэрэг, бид бүгд сонссон
Гэсэн хэдий ч би саяхан 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 нь концепцийн хүрээнд зохион байгуулагдсан ажлын талбай - Ажлын байр. Мэдээллийг ажлын талбарт хадгалах боломжтой, туршилтыг сургалтанд илгээж, сургалтын үр дүнг тэнд хадгалдаг - үр дүнгийн хэмжүүр, загварууд. Та ажлын талбар дотор юу байгааг харж болно
Та вэб интерфэйсээр дамжуулан ажлын талбар үүсгэж болно
az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml
Мөн зарим нь ажлын талбартай холбоотой тооцоолох нөөц (Тооцоолох). Загварыг сургах скрипт үүсгэсний дараа та боломжтой туршилтыг гүйцэтгэхэд илгээх ажлын талбарт оруулж, зааж өгнө үү зорилтот тооцоо - энэ тохиолдолд скриптийг багцалж, хүссэн тооцоолох орчинд ажиллуулж, дараа нь туршилтын бүх үр дүнг цаашид дүн шинжилгээ хийх, ашиглах зорилгоор ажлын талбарт хадгалах болно.
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 дээр үүнийг ажиллуулахын тулд та дараах зүйлийг хийх хэрэгтэй.
-
Azure өргөтгөл таны захиалгад холбогдсон эсэхийг шалгаарай. Зүүн талд байгаа цэснээс Azure дүрсийг сонгоно уу. Хэрэв та холбогдоогүй бол баруун доод буланд мэдэгдэл гарч ирнэ (
энэ бол тэр ), дээр дарснаар та хөтчөөр нэвтэрч болно. Та мөн дарж болно Ctrl-Shift-P VS Code командын мөрийг дуудаж, бичнэ үү Azure нэвтэрнэ үү. -
Үүний дараа Azure хэсэгт (зүүн талд байгаа дүрс) хэсгийг олоорой МАШИНЫ СУРГАЛТ:
Энд та ажлын талбар доторх янз бүрийн бүлгүүдийг харах ёстой: тооцоолох нөөц, туршилт гэх мэт.
- Файлуудын жагсаалт руу очоод скрипт дээр хулганы баруун товчийг дарна уу
train_universal.py
мөн сонгоно уу Azure ML: Azure дээр туршилт болгон ажиллуул.
- Үүний дараа VS кодын командын мөрөнд хэд хэдэн харилцах цонх гарч ирнэ: таны ашиглаж буй захиалга болон Azure ML ажлын талбарыг баталгаажуулж, сонгоно уу. Шинэ туршилт үүсгэх:
-
Шинэ тооцооллын нөөц үүсгэхийг сонгоно уу Шинэ тооцоолол үүсгэх:
- Тооцоолох сургалт явуулах тооцоолох нөөцийг тодорхойлдог. Та дотоод компьютер эсвэл AmlCompute үүл кластер сонгож болно. Би машинуудын өргөтгөх боломжтой кластер үүсгэхийг зөвлөж байна
STANDARD_DS3_v2
, хамгийн багадаа 0 машинтай (мөн таны хоолны дуршилаас хамааран дээд тал нь 1 ба түүнээс дээш). Үүнийг VS Code интерфейсээр эсвэл өмнө нь дамжуулан хийж болноML портал .
- Тооцоолох сургалт явуулах тооцоолох нөөцийг тодорхойлдог. Та дотоод компьютер эсвэл AmlCompute үүл кластер сонгож болно. Би машинуудын өргөтгөх боломжтой кластер үүсгэхийг зөвлөж байна
-
Дараа нь та тохиргоог сонгох хэрэгтэй Тооцооллын тохиргоо, энэ нь сургалтанд зориулж бүтээсэн савны параметрүүдийг, ялангуяа шаардлагатай бүх номын сангуудыг тодорхойлдог. Манай тохиолдолд Scikit Learn-г ашиглаж байгаа тул бид сонгодог SkLearn, дараа нь Enter товчийг дарж санал болгож буй номын сангийн жагсаалтыг баталгаажуулна уу. Хэрэв та ямар нэгэн нэмэлт номын сан ашигладаг бол тэдгээрийг энд зааж өгөх ёстой.
-
Энэ нь туршилтыг дүрсэлсэн JSON файл бүхий цонхыг нээх болно. Үүн дээр та зарим параметрүүдийг засах боломжтой - жишээлбэл, туршилтын нэр. Үүний дараа холбоос дээр дарна уу Туршилтыг илгээх яг энэ файл дотор:
- VS кодоор туршилтаа амжилттай илгээсний дараа мэдэгдлийн хэсгийн баруун талд та дараах холбоосыг харах болно.
Azure ML портал , та туршилтын байдал, үр дүнг хянах боломжтой.
Дараа нь та үүнийг үргэлж хэсгээс олж болно Туршилтууд
- Хэрэв үүний дараа та кодонд зарим засвар хийсэн эсвэл параметрүүдийг өөрчилсөн бол туршилтыг дахин эхлүүлэх нь илүү хурдан бөгөөд хялбар байх болно. Файл дээр хулганы баруун товчийг дарснаар та шинэ цэсийн зүйлийг харах болно Сүүлийн гүйлтийг давт - зүгээр л сонгоод туршилт нэн даруй эхэлнэ:
Та Azure ML Portal дээрх бүх эхлүүлсэн хэмжүүрүүдийн үр дүнг үргэлж олох боломжтой, тэдгээрийг бичих шаардлагагүй.
Одоо та Azure ML-тэй туршилт хийх нь энгийн бөгөөд өвдөлтгүй гэдгийг мэдэж байгаа бөгөөд ингэснээр та хэд хэдэн сайхан давуу талыг олж авах болно.
Гэхдээ та бас сул талыг харж болно. Жишээлбэл, скриптийг ажиллуулахад нэлээд удаан хугацаа шаардагдана. Мэдээжийн хэрэг, скриптийг саванд хийж, сервер дээр байрлуулах нь цаг хугацаа шаарддаг. Хэрэв нэгэн зэрэг кластерыг 0 зангилаатай болтол нь багасгасан бол виртуал машиныг эхлүүлэхэд илүү их цаг хугацаа шаардагдах бөгөөд бид хэдхэн секундын дотор шийдэгддэг MNIST гэх мэт энгийн ажлуудыг туршиж үзэхэд энэ бүхэн мэдэгдэхүйц юм. . Гэсэн хэдий ч бодит амьдрал дээр сургалт хэдэн цаг, бүр өдөр, долоо хоног үргэлжилдэг бол энэ нэмэлт цаг нь ач холбогдолгүй болдог, ялангуяа тооцооллын кластер илүү өндөр гүйцэтгэлтэй байдаг.
Дараа нь юу юм бэ?
Энэ нийтлэлийг уншсаны дараа та Azure ML-ийг скрипт ажиллуулах, тооцоолох нөөцийг удирдах, үр дүнг төвлөрсөн байдлаар хадгалах зэрэгт ашиглаж болно гэж найдаж байна. Гэсэн хэдий ч Azure ML нь танд илүү их ашиг тусыг өгөх болно!
Ажлын талбар дотор та өгөгдлийг хадгалах боломжтой бөгөөд ингэснээр таны бүх даалгаварт зориулсан төвлөрсөн агуулахыг бий болгож, хандахад хялбар байдаг. Нэмж дурдахад, та туршилтуудыг Visual Studio Code-ээс биш, харин API ашиглан хийж болно - энэ нь гиперпараметрийн оновчлолыг хийх шаардлагатай бөгөөд скриптийг өөр өөр параметртэй олон удаа ажиллуулах шаардлагатай бол ялангуяа ашигтай байж болно. Түүнчлэн, тусгай технологи нь Azure ML-д суурилагдсан
Ашигтай эх үүсвэр
Azure ML-ийн талаар илүү нарийвчилсан ойлголт авахын тулд та Microsoft Learn-ийн дараах курсуудыг ашиглаж болно.
Azure ML үйлчилгээний танилцуулга Azure ML Service ашиглан хиймэл оюун ухааны шийдлүүдийг бий болгох Azure ML Service-ээр орон нутгийн загварыг сурга
Эх сурвалж: www.habr.com