ç§ã¯å€ãã®ããŒã¿ ãµã€ãšã³ãã£ã¹ããç¥ã£ãŠããŸã - ãããŠããããç§èªèº«ããã®ãã¡ã® 2 人ã§ã - 圌ãã¯ãJupyter Notebook ãŸãã¯ãã皮㮠Python éçºç°å¢ãä»ããŠãã¯ã©ãŠãäžã«ããããŒã«ã«ãŸãã¯ä»®æ³ã® GPU ãã·ã³ã§äœæ¥ããŠããŸãã AI/ML ã®ãšãã¹ããŒãéçºè ãšã㊠XNUMX 幎éåããŠããç§ã¯ãéåžžã®ãµãŒããŒãŸãã¯ã¯ãŒã¯ã¹ããŒã·ã§ã³ã§ããŒã¿ãæºåããAzure ã® GPU ãåããä»®æ³ãã·ã³ã§ãã¬ãŒãã³ã°ãå®è¡ããªããããŸãã«ãããå®è¡ããŸããã
ãã¡ããã誰ããèããããšãããã§ããã
ããããæè¿ãä»äºã§ Azure ML ãå¹æçã«äœ¿çšãå§ããæ¹æ³ãçºèŠããŸããã 詳现ã«èå³ããããŸãã?
äž»ãªç§å¯ã¯
ããããããšã§ãAzure ML ã䜿çšããããšã§æ¬¡ã®å©ç¹ãåŸãããŸãã
- ã»ãšãã©ã®æéã¯ã䟿å©ãª IDE ã䜿çšããŠãã·ã³äžã§ããŒã«ã«ã«äœæ¥ã§ããŸãã ã¢ãã«ã®ãã¬ãŒãã³ã°ã«ã®ã¿ GPU ã䜿çšããã åæã«ããã¬ãŒãã³ã° ãªãœãŒã¹ã®ããŒã«ã¯å¿ èŠãªè² è·ã«èªåçã«èª¿æŽã§ããæå°ããŒãæ°ã 0 ã«èšå®ããããšã§ããã¬ãŒãã³ã° ã¿ã¹ã¯ã®ååšäžã§ä»®æ³ãã·ã³ãããªã³ããã³ããã§èªåçã«èµ·åã§ããŸãã
- ããªããããããŸãã ãã¹ãŠã®åŠç¿ææã XNUMX ãæã«ä¿åããéæãããã¡ããªã¯ã¹ãšçµæã®ã¢ãã«ãå«ãããã¹ãŠã®çµæãä¿åããããã«äœããã®ã·ã¹ãã ãé åºãèãåºãå¿ èŠã¯ãããŸããã
- ãã®å Žåã è€æ°ã®äººãåããããžã§ã¯ãã«åãçµãããšãã§ããŸã - 圌ãã¯åãã³ã³ãã¥ãŒãã£ã³ã° ã¯ã©ã¹ã¿ãŒã䜿çšã§ãããã¹ãŠã®å®éšã¯ãã¥ãŒã«å ¥ãããããäºãã®å®éšã®çµæã確èªããããšãã§ããŸãã ãã®ãããªã·ããªãªã® XNUMX ã€ã¯ã 深局åŠç¿ã®æè²ã« Azure ML ã䜿çšããåçåŸã« GPU ãåããä»®æ³ãã·ã³ãäžãã代ããã«ãå šå¡ãéäžçã«äœ¿çšãã XNUMX ã€ã®ã¯ã©ã¹ã¿ãŒãäœæã§ããŸãã ããã«ãã¢ãã«ã®ç²ŸåºŠãå«ãçµæã®äžè¬çãªè¡šã¯ãåªãã競äºèŠçŽ ãšããŠæ©èœããŸãã
- Azure ML ã䜿çšãããšãããšãã°æ¬¡ã®ãããªäžé£ã®å®éšãç°¡åã«å®è¡ã§ããŸãã ãã€ããŒãã©ã¡ãŒã¿ã®æé©å - ããã¯æ°è¡ã®ã³ãŒãã§å®è¡ã§ããäžé£ã®å®éšãæåã§è¡ãå¿ èŠã¯ãããŸããã
Azure ML ãè©ŠããŠã¿ããã説åŸããŠããã ããã°å¹žãã§ãã éå§æ¹æ³ã¯æ¬¡ã®ãšããã§ãã
- ã€ã³ã¹ããŒã«ããããšã確èªããŠãã ãã
Visual Studio Code ãæ¡åŒµæ©èœãšåæ§ã«Azure ãµã€ã³ã€ã³ Оã¢ãºãŒã« ML - ãªããžããªã®ã¯ããŒã³ãäœæãã
https://github.com/CloudAdvocacy/AzureMLStarter - MNIST ããŒã¿ã»ããã§ææžãæ°åèªèã¢ãã«ããã¬ãŒãã³ã°ããããã®ã㢠ã³ãŒããå«ãŸããŠããŸãã - ã¯ããŒã³äœæãããªããžããªã Visual Studio Code ã§éããŸãã
- èªãïŒ
Azure ML ã¯ãŒã¯ã¹ããŒã¹ãš Azure ML ããŒã¿ã«
Azure ML ã¯ã次ã®æŠå¿µã«åºã¥ããŠæ§æãããŠããŸã äœæ¥ãšãªã¢ â ã¯ãŒã¯ã¹ããŒã¹ã ããŒã¿ã¯ã¯ãŒã¯ã¹ããŒã¹ã«ä¿åã§ããå®éšã¯ãã¬ãŒãã³ã°ã®ããã«ã¯ãŒã¯ã¹ããŒã¹ã«éä¿¡ããããã¬ãŒãã³ã°çµæãã€ãŸãçµæãšããŠåŸãããã¡ããªã¯ã¹ãšã¢ãã«ãããã«ä¿åãããŸãã ã¯ãŒã¯ã¹ããŒã¹å
ã«äœãããã®ãââã確èªã§ããŸã
Web ã€ã³ã¿ãŒãã§ã€ã¹ããã¯ãŒã¯ã¹ããŒã¹ãäœæã§ããŸã
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 ãéããŠãã¬ãŒãã³ã° ã¹ã¯ãªãããå®è¡ãããšã次㮠XNUMX ã€ã®äž»ãªå©ç¹ããããŸãã
- ä»»æã®ã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã§ãã¬ãŒãã³ã°ãå®è¡ããŸããéåžžãããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒãããçç£æ§ãé«ããªããŸãã åæã«ãAzure ML èªäœããçŸåšã®ãã£ã¬ã¯ããªã®ãã¹ãŠã®ãã¡ã€ã«ãå«ãã¹ã¯ãªããã Docker ã³ã³ãããŒã«ããã¯ããå¿ èŠãªäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŠãå®è¡ã®ããã«éä¿¡ããŸãã
- 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 ã§å®è¡ããã«ã¯ã次ã®æäœãè¡ãå¿ èŠããããŸãã
-
Azure æ¡åŒµæ©èœããµãã¹ã¯ãªãã·ã§ã³ã«æ¥ç¶ãããŠããããšã確èªããŠãã ããã å·ŠåŽã®ã¡ãã¥ãŒãã Azure ã¢ã€ã³ã³ãéžæããŸãã æ¥ç¶ããŠããªãå Žåã¯ãå³äžé ã«éç¥ã衚瀺ãããŸã (
ãã®ãã㪠ïŒãã¯ãªãã¯ãããšããã©ãŠã¶ããå ¥åã§ããŸãã ãã¯ãªãã¯ããããšãã§ããŸã Ctrl-Shift-P VS Code ã³ãã³ãã©ã€ã³ãåŒã³åºãã次ã®ããã«å ¥åããŸãã Azure ãµã€ã³ã€ã³. -
ãã®åŸãAzure ã»ã¯ã·ã§ã³ (å·ŠåŽã®ã¢ã€ã³ã³) ã§ã»ã¯ã·ã§ã³ãèŠã€ããŸãã æ©æ¢°åŠç¿:
ããã«ã¯ãã¯ãŒã¯ã¹ããŒã¹å
ã®ãªããžã§ã¯ãã®ããŸããŸãªã°ã«ãŒã (ã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ãå®éšãªã©) ã衚瀺ãããŸãã
- ãã¡ã€ã«ã®ãªã¹ãã«ç§»åããã¹ã¯ãªãããå³ã¯ãªãã¯ããŸã
train_universal.py
éžæããŸã Azure ML: Azure ã§å®éšãšããŠå®è¡ãã.
- ããã«ç¶ããŠãVS Code ã®ã³ãã³ã ã©ã€ã³é åã«äžé£ã®ãã€ã¢ãã°ã衚瀺ãããŸãã䜿çšããŠãããµãã¹ã¯ãªãã·ã§ã³ãš Azure ML ã¯ãŒã¯ã¹ããŒã¹ã確èªããéžæããŸã æ°ããå®éšãäœæãã:
-
æ°ããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã®äœæãéžæããŸã æ°ããã³ã³ãã¥ãŒãã£ã³ã°ã®äœæ:
- èšç® ãã¬ãŒãã³ã°ãè¡ãããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã決å®ããŸãã ããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒãŸã㯠AmlCompute ã¯ã©ãŠã ã¯ã©ã¹ã¿ãŒãéžæã§ããŸãã ã¹ã±ãŒã©ãã«ãªãã·ã³ã®ã¯ã©ã¹ã¿ãŒãäœæããããšããå§ãããŸã
STANDARD_DS3_v2
ãæå°ãã·ã³æ°ã¯ 0 (奜ã¿ã«å¿ããŠæ倧 1 å°ä»¥äž)ã ããã¯ãVS Code ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠè¡ãããšãã以åã¯ML ããŒã¿ã« .
- èšç® ãã¬ãŒãã³ã°ãè¡ãããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã決å®ããŸãã ããŒã«ã« ã³ã³ãã¥ãŒã¿ãŒãŸã㯠AmlCompute ã¯ã©ãŠã ã¯ã©ã¹ã¿ãŒãéžæã§ããŸãã ã¹ã±ãŒã©ãã«ãªãã·ã³ã®ã¯ã©ã¹ã¿ãŒãäœæããããšããå§ãããŸã
-
次ã«ãæ§æãéžæããå¿ èŠããããŸã ã³ã³ãã¥ãŒãã£ã³ã°æ§æããã¬ãŒãã³ã°çšã«äœæãããã³ã³ãããŒã®ãã©ã¡ãŒã¿ãŒãç¹ã«å¿ èŠãªãã¹ãŠã®ã©ã€ãã©ãªãŒãå®çŸ©ããŸãã ãã®äŸã§ã¯ãScikit Learn ã䜿çšããŠããããã ã¹ã¯ã©ãŒã³ãã¯ãªãã¯ããEnter ããŒãæŒããŠææ¡ãããã©ã€ãã©ãªã®ãªã¹ãã確èªããŸãã è¿œå ã®ã©ã€ãã©ãªã䜿çšããå Žåã¯ãããã§æå®ããå¿ èŠããããŸãã
-
ããã«ãããå®éšã説æãã JSON ãã¡ã€ã«ãå«ããŠã£ã³ããŠãéããŸãã ãã®äžã§ãå®éšã®ååãªã©ãããã€ãã®ãã©ã¡ãŒã¿ãŒãä¿®æ£ã§ããŸãã ãã®åŸããªã³ã¯ãã¯ãªãã¯ããŠãã ãã å®éšãéä¿¡ãã ãã®ãã¡ã€ã«ã®ããäžã«:
- VS Code ãéããŠå®éšãæ£åžžã«éä¿¡ãããšãéç¥é åã®å³åŽã«æ¬¡ã®ãªã³ã¯ã衚瀺ãããŸãã
Azure ML ããŒã¿ã« ãå®éšã®ã¹ããŒã¿ã¹ãšçµæã远跡ã§ããŸãã
ãã®åŸãã»ã¯ã·ã§ã³ã§ãã€ã§ãèŠã€ããããšãã§ããŸãã å®éš
- ãã®åŸãã³ãŒããä¿®æ£ãããããã©ã¡ãŒã¿ãŒãå€æŽãããããå Žåãå®éšãåéããã®ãã¯ããã«éãç°¡åã«ãªããŸãã ãã¡ã€ã«ãå³ã¯ãªãã¯ãããšãæ°ããã¡ãã¥ãŒé ç®ã衚瀺ãããŸã æåŸã®å®è¡ãç¹°ãè¿ã - ãããéžæããã ãã§ãããã«å®éšãéå§ãããŸãã
ãã¹ãŠã®èµ·åããã®ã¡ããªã¯ã¹ã®çµæã¯ãAzure ML ããŒã¿ã«ã§ãã€ã§ã確èªã§ããæžãçããå¿
èŠã¯ãããŸããã
Azure ML ã䜿çšããå®éšã®å®è¡ã¯ã·ã³ãã«ã§æéããããããããããããšã§å€ãã®åªããã¡ãªãããåŸãããããšãããããŸããã
ãããããã¡ãªãããããããŸãã ããšãã°ãã¹ã¯ãªããã®å®è¡ã«å€§å¹ ã«æéãããããŸããã ãã¡ãããã¹ã¯ãªãããã³ã³ããã«ããã±ãŒãžåããŠãµãŒããŒã«ãããã€ããã«ã¯æéãããããŸãã åæã«ã¯ã©ã¹ã¿ãŒã 0 ããŒãã®ãµã€ãºã«ã«ãããããå Žåãä»®æ³ãã·ã³ã®èµ·åã«ã¯ããã«æéãããããŸããããã¯ãã¹ãŠãæ°ç§ã§è§£æ±ºããã MNIST ã®ãããªåçŽãªã¿ã¹ã¯ãå®éšãããšãã«éåžžã«é¡èã§ãã ã ãã ããçŸå®ã®ç掻ã§ã¯ããã¬ãŒãã³ã°ãæ°æéãå Žåã«ãã£ãŠã¯æ°æ¥ãæ°é±éç¶ãå Žåãç¹ã«ã³ã³ãã¥ãŒãã£ã³ã° ã¯ã©ã¹ã¿ãŒãæäŸã§ããã¯ããã«é«ãããã©ãŒãã³ã¹ãèæ¯ã«ãããšããã®è¿œå æéã¯éèŠã§ã¯ãªããªããŸãã
次ã¯äœã§ããïŒ
ãã®èšäºãèªãã åŸãæ¥å㧠Azure ML ã䜿çšããŠã¹ã¯ãªãããå®è¡ããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã管çããçµæãäžå çã«ä¿åã§ããããã«ãªãããšãé¡ã£ãŠããŸãã ãã ããAzure ML ã䜿çšãããšããã«å€ãã®ã¡ãªãããåŸãããŸãã
ã¯ãŒã¯ã¹ããŒã¹å
ã«ããŒã¿ãä¿åã§ããããããã¹ãŠã®ã¿ã¹ã¯ã«ã¢ã¯ã»ã¹ããããäžå
åããããªããžããªãäœæãããŸãã ããã«ãVisual Studio Code ããã§ã¯ãªã API ã䜿çšããŠå®éšãå®è¡ã§ããŸããããã¯ããã€ããŒãã©ã¡ãŒã¿ãŒã®æé©åãå®è¡ããå¿
èŠããããç°ãªããã©ã¡ãŒã¿ãŒã§ã¹ã¯ãªãããäœåºŠãå®è¡ããå¿
èŠãããå Žåã«ç¹ã«äŸ¿å©ã§ãã ããã«ãAzure MLã«ã¯ç¹å¥ãªãã¯ãããžãŒãçµã¿èŸŒãŸããŠããŸã
圹ã«ç«ã€ãªãœãŒã¹
Azure ML ããã詳ããç解ããã«ã¯ã次㮠Microsoft Learn ã³ãŒã¹ã圹ç«ã€å ŽåããããŸãã
Azure ML ãµãŒãã¹ã®æŠèŠ Azure ML Service ã䜿çšãã AI ãœãªã¥ãŒã·ã§ã³ã®æ§ç¯ Azure ML ãµãŒãã¹ã䜿çšããŠããŒã«ã« ã¢ãã«ããã¬ãŒãã³ã°ãã
åºæïŒ habr.com