Azure DP-100: ããŒã¿ãµã€ãšã³ãã£ã¹ãã¢ãœã·ãšã€ãã®ããã®6é±éã®åŠç¿èšç»
Azure ML SDK v2ãMLflowããã¶ã€ããŒããããã€ã¡ã³ããç¶²çŸ ããçŸå®çãª6é±éã®DP-100èšç» - æºåäžç«¯ãªåéšè ã§ãã€ãŸããèœãšã穎ã解説ããŸãã
DP-100ã¯ãAzure ã§ããŒã¿ãµã€ãšã³ã¹ãœãªã¥ãŒã·ã§ã³ãèšèšããã³å®è£ ãã (Designing and Implementing a Data Science Solution on Azure) 詊éšã§ãã165ç±³ãã«ã100åéã§40ã60åïŒã±ãŒã¹ã¹ã¿ãã£ã«ããå顿°ã¯å€åïŒã1ã€ãŸãã¯2ã€ã®ã±ãŒã¹ã¹ã¿ãã£ã»ã¯ã·ã§ã³ãåæ Œåºæºã¹ã³ã¢ã¯700/1000ã§ããããã¯ãAzure Machine Learningã§åãããŒã¿ãµã€ãšã³ãã£ã¹ãåãã®ããŒã«ããŒã¹ã®ã¢ãœã·ãšã€ãèªå®ã§ãã
Pythonãscikit-learnãããã³åºæ¬çãªMLã®æŠå¿µããã§ã«ç¥ã£ãŠããå Žåãé±ã«8ã10æéã®6é±éã§ååã§ããMLããŒãããåŠã¶å ŽåãDP-100ã¯ãŸã é©åãªè©Šéšã§ã¯ãããŸããããŸãã¢ãã«ãã¬ãŒãã³ã°ã³ãŒã¹ãåè¬ããŠãã ããããã®è©Šéšã¯ãæ··åè¡åãçè§£ããŠãããã©ããã§ã¯ãªããAzure MLããã¹ãããŸãã
DP-100ãå®éã«ãã¹ããããã®
çŸåšã®è©Šéšã¬ã€ãïŒSDK v1ãåé€ããv2ã«å®å šã«ç§»è¡ãããã2024å¹Žã«æŽæ°ïŒã¯ã倧ãŸãã«ä»¥äžã®éãã§ãã
- Azure MLãªãœãŒã¹ã®ç®¡çïŒã¯ãŒã¯ã¹ããŒã¹ãã³ã³ãã¥ãŒãã£ã³ã°ãããŒã¿ã¹ãã¢ãç°å¢ïŒ- çŽ25%
- å®éšã®å®è¡ãšã¢ãã«ã®ãã¬ãŒãã³ã°ïŒãžã§ããMLflowãã©ããã³ã°ãAutoMLãHyperDriveïŒ- çŽ25%
- MLãœãªã¥ãŒã·ã§ã³ã®ãããã€ãšéçšåïŒãããŒãžããªã³ã©ã€ã³ãšã³ããã€ã³ããããããšã³ããã€ã³ããç£èŠïŒ- çŽ25%
- 責任ããMLã®å®è£ ïŒå ¬å¹³æ§ãè§£éå¯èœæ§ãå·®åãã©ã€ãã·ãŒïŒ- çŽ25%
ããã¯å®éã«ã¯ãAzure ML Python SDK v2ãæµæ¢ã«äœ¿ãããªããAzure ML StudioïŒãã¶ã€ããŒãšããŒãããã¯ïŒã«æ £ããŠãããAzure MLã«ãããMLflowãã©ããã³ã°ã衚圢åŒ/ç»å/NLPåãAutoMLãããã³ãã€ããŒãã©ã¡ãŒã¿ãŒãã¥ãŒãã³ã°ã®ããã®HyperDrive / ã¹ã€ãŒããžã§ãã®éããæç¢ºã«çè§£ããŠããå¿ èŠããããšããããšã§ãããããã€ã¡ã³ãã®éšåã§ã¯ããããŒãžããªã³ã©ã€ã³ãšã³ããã€ã³ãïŒãªã¢ã«ã¿ã€ã ããã©ãã£ãã¯åå²ãšãã«ãŒã°ãªãŒã³å±éïŒãšããããšã³ããã€ã³ãïŒå€§èŠæš¡ãªã¹ã³ã¢ãªã³ã°ïŒã®éããç¥ã£ãŠããããšãæ±ããããŸãã
å®éã«å¿ èŠãªåææ¡ä»¶
1é±ç®ã«å ¥ãåã«ã以äžã®ç¶æ ã«ãªã£ãŠããå¿ èŠããããŸãã
- Pythonãåé¡ãªã䜿ããããšã颿°ãã¯ã©ã¹ããã³ã¬ãŒã¿ãä»®æ³ç°å¢ã®èªã¿æžããã§ããããšã
- pandas + numpyãå®çšã¬ãã«ã§äœ¿ããããšã
Pipelineãtrain_test_splitãåºæ¬çãªãªã°ã¬ããµãŒãšåé¡åšãColumnTransformerãå«ãscikit-learnã- æŠå¿µçãªML: èšç·Ž/æ€èšŒ/ãã¹ãåå²ã亀差æ€èšŒãéåŠç¿ãæ£ååãååž°ãšåé¡ã®ææšã®éãã
- ããçšåºŠã®Azureã®ç¥è - æäœéãAZ-900ã®çšèªããªãœãŒã¹ã°ã«ãŒããRBACãã¹ãã¬ãŒãžã¢ã«ãŠã³ããKey Vaultã¯è©Šéšã§å説æãããŸããã
ãããã®é ç®ãäžå®å®ã ãšæããå Žåã¯ã以äžã®èšç»ãéå§ããåã«2é±éãããŠåŒ·åããŠãã ããã
第1é±: ã¯ãŒã¯ã¹ããŒã¹ãšã³ã³ãã¥ãŒãã£ã³ã°
ãŸããã©ãããã©ãŒã ãå®éã«äœ¿ã£ãŠã¿ãŸãããããŸã 詊éšã¬ã€ããæåããæåŸãŸã§èªãå¿ èŠã¯ãããŸããã
- Azureç¡æã¢ã«ãŠã³ãããªãå Žåã¯äœæããŠãã ãããããŒã¿ã«ãéããŠAzure MLã¯ãŒã¯ã¹ããŒã¹ãäœæããŸããåæã«äœãäœæããããæ³šç®ããŠãã ãã: ã¹ãã¬ãŒãžã¢ã«ãŠã³ããKey Vaultãã³ã³ããã¬ãžã¹ããªãApplication Insightsã詊éšã§ã¯ãããã«ã€ããŠåãããŸãã
- ã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ïŒå°èŠæš¡ãªãã® - D2s_v3ã§ååïŒãšãæå°ããŒãæ°0ã®ã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ãŒãããããžã§ãã³ã°ããŸããã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã¯ã¢ã€ãã«ç¶æ ã§ã課éãããã®ã«å¯Ÿããã¯ã©ã¹ã¿ãŒããŒãã¯ãŒãã«ã¹ã±ãŒã«ããŠã³ããããšã«æ³šæããŠãã ãããããã¯è©Šéšã«åºãŸãã
- Azure ML Studioã®UIãèŠãŠåããŸããããŒã¿ã¹ãã¢ãããŒã¿ã»ãã/ããŒã¿ã¢ã»ãããç°å¢ãã¢ãã«ããšã³ããã€ã³ããã¯ãªãã¯ããŠã¿ãŠãã ããããŸã æ§ç¯ã¯ãããã¬ã€ã¢ãŠããææ¡ããã ãã§ãã
- ã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã«ããŒãããã¯ãã¢ã¿ããããŸãã
azure-ai-mlïŒSDK v2ããã±ãŒãž - v1ã§éæšå¥šã®azureml-coreã§ã¯ãªãïŒãã€ã³ã¹ããŒã«ããŸããDefaultAzureCredentialã§èªèšŒããMLClientãäœæããŸããã¯ãŒã¯ã¹ããŒã¹åãåºåããŸãããããããªãã®ãhello worldãã§ãã
鱿«ã®ãã§ãã¯ãã€ã³ã: äœã調ã¹ãã«60ç§ä»¥å ã«ããŒãããã¯ããã¯ãŒã¯ã¹ããŒã¹ã«æ¥ç¶ã§ããŸããïŒ
第2é±: ããŒã¿ãç°å¢ããžã§ã
ä»åºŠã¯å®éã«æ§ç¯ããŠã¿ãŸãããã
- CSVã
Dataã¢ã»ããïŒURIãã¡ã€ã«ãŸãã¯MLTableïŒãšããŠç»é²ããŸããml_client.data.get(...)ã䜿ã£ãŠããŒãããã¯ããèªã¿èŸŒã¿ãŸãã詊éšã§ã¯uri_fileãuri_folderãmltableã®ããŒã¿ã¢ã»ããã¿ã€ãã®éããé »ç¹ã«åãããŸã - ããããã®ãŠãŒã¹ã±ãŒã¹ãæèšããŠãã ããã - ã«ã¹ã¿ã ç°å¢ãæ§ç¯ããŸãã
conda.yamlãäœæãããããã¥ã¬ãŒããããç°å¢ã«pipã®è¿œå äŸåé¢ä¿ãå ãããããŸãããã¬ãŒãã³ã°ã¹ã¯ãªããïŒç»é²ããããŒã¿ã»ããã«å¯Ÿãã30è¡ã®scikit-learnåé¡åšïŒãå®è¡ããcommandãžã§ããéä¿¡ããŸãã - ã¹ã¯ãªããã§MLflowãªãŒããã®ã³ã°ã䜿çšããŸãïŒ
mlflow.sklearn.autolog()ã®åŸã«fitïŒããžã§ãã§ã¡ããªã¯ã¹ãšã¢ãŒãã£ãã¡ã¯ãã衚瀺ãããã®ã確èªããŸããmlflow.log_metric()ã䜿ã£ãæåãã®ã³ã°ãšæ¯èŒããŠãã ããã - ãžã§ããã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã§ã¯ãªããã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ãŒã«éä¿¡ããŸããã¯ã©ã¹ã¿ãŒã0ããèµ·åãããã®åŸã¹ã±ãŒã«ããŠã³ããã®ã確èªããŠãã ããã
èŠããŠããã¹ãèœãšã穎: SDK v2ã§ã¯ããžã§ãã¯azure.ai.mlã®command颿°ãä»ããŠéä¿¡ãããScriptRunConfigïŒããã¯v1ïŒãä»ããŠã§ã¯ãããŸããã詊éšã§ã¯ã誀ã£ãéžæè¢ãšããŠv1ã¹ã¿ã€ã«ã®ã³ãŒããåºé¡ãããŸãããããèŠæãç®ãé€ããŸãããã
第3é±: AutoMLãHyperDriveããã€ãã©ã€ã³
ããéåãªMLé±ã§ãã
- SDKããåãããŒã¿ã»ããã«å¯ŸããŠAutoMLåé¡ãžã§ããå®è¡ããŸããã¯ã¬ãžãããæ¶è²»ããããªãããã«ã30å以å
ããã³
max_trials=10ã«å¶éããŠãã ããããªãŒããŒããŒãã確èªããŸãã - ã«ã¹ã¿ã ãã¬ãŒãã³ã°ã¹ã¯ãªããã«å¯ŸããŠã¹ã€ãŒã/HyperDriveãžã§ããå®è¡ããŸãããŸã
randomãµã³ããªã³ã°ã詊ããæ¬¡ã«bayesianã詊ããŸãïŒããã¯æ©æçµäºããµããŒãããŠããŸãã - ããã詊éšåé¡ã§ãïŒã - æ©æçµäºããªã·ãŒã«ã€ããŠåŠç¿ããŸã: ãã³ãã£ãããäžå€®å€åæ¢ãåãæšãŠéžæãããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãç¹ã«ãã³ãã£ããã®
slack_factorãšslack_amountã®åãæ¿ããç¥ã£ãŠãããŸãããã - å°ãªããšã2ã€ã®ã³ã³ããŒãã³ãïŒããŒã¿æºåã³ã³ããŒãã³ããšãã¬ãŒãã³ã°ã³ã³ããŒãã³ãïŒãé£çµãããã€ãã©ã€ã³ãžã§ããæ§ç¯ããŸãããã€ãã©ã€ã³ã¯è©Šéšã§éåžžã«éèŠãšããããã§ã¯ãããŸãããã詊éšåœæ¥ã«YAMLãæšæž¬ããããªãçšåºŠã«ã¯åºé¡ãããŸãã
鱿«ã®ãã§ãã¯ãã€ã³ã: RandomãGridãBayesianãµã³ããªã³ã°ãäœããããããã€ã©ãã䜿ããããªãBayesianããã³ãã£ãããšçµã¿åãããããªããã声ã«åºããŠèª¬æã§ããŸããïŒ
第4é±: ãããã€ã¡ã³ã
ãããã»ãšãã©ã®åéšè ãç¹æ°ãèœãšããã€ã³ãã§ãã
- ãžã§ãã®åºåããã¢ãã«ãç»é²ããŸããSDKã®
ml_client.models.create_or_updateãäœ¿ãæ¹æ³ãšãStudio UIããè¡ãæ¹æ³ã®äž¡æ¹ãç·Žç¿ããŸãã - ã¢ãã«ããããŒãžããªã³ã©ã€ã³ãšã³ããã€ã³ãã«ãããã€ããŸããåããšã³ããã€ã³ãã®èåŸã«å°ãªããšã2ã€ã®ãããã€ãç«ã¡äžãããããã®éã§ãã©ãã£ãã¯ã90/10ã«åå²ããŸããããã¯MicrosoftãçŽæ¥ãã¹ããããã«ãŒ/ã°ãªãŒã³ãã¿ãŒã³ã§ãã
- åãã¢ãã«ãããããšã³ããã€ã³ãã«ãããã€ããŸããå ¥åãã¡ã€ã«ã®ãã©ã«ããã¹ã³ã¢ãªã³ã°ããŸããããããšã³ããã€ã³ãã¯ã³ã³ãã¥ãŒãã£ã³ã°ãã¢ã€ãã«ç¶æ ã«ä¿ããªãããšã«æ³šæããŠãã ãããåŒã³åºãããšã«ã¯ã©ã¹ã¿ãŒãèµ·åããŸãã
- ãããã€ã¡ã³ãã«ããŒã¿ããªããç£èŠãèšå®ããŸããApplication Insightsã¢ã©ãŒããæ§æããŸãã詊éšã§ã¯ãModel MonitorïŒSDK v1ã§Data Drift MonitorãšåŒã°ããŠãããã®ã®æ°ããååïŒã«ã€ããŠå°ãªããšã1ååºé¡ãããŸãã
èœãšã穎: ãããŒãžããªã³ã©ã€ã³ãšã³ããã€ã³ãã¯ããã©ãã£ãã¯ãéä¿¡ããŠãããã©ããã«ããããããåºç€ãšãªãVMã«ãã£ãŠèª²éãããŸãã詊éšã§ã¯ãæãå®äŸ¡ãªçããããããšã³ããã€ã³ãã§ããã誀ã£ãçãããã¹ãŠãªã³ã©ã€ã³ãšã³ããã€ã³ãã§ããã·ããªãªãèšå®ãããŸããéžæããåã«ããäºæž¬ã¯ãªã¢ã«ã¿ã€ã ã§ããå¿ èŠã¯ãªãããšãã質åæãèªãã§ãã ããã
第5é±: 責任ããMLãšã±ãŒã¹ã¹ã¿ãã£
ã³ãŒãã£ã³ã°ã¯å°ãªããèªè§£ãå€ãã§ãã
- ãã¬ãŒãã³ã°æžã¿ã®ã¢ãã«åãã«Microsoftã®è²¬ä»»ããAIããã·ã¥ããŒããèŠãŠåããŸããå ¬å¹³æ§ã¡ããªã¯ã¹ããšã©ãŒåæãã¢ãã«è§£éå¯èœæ§ïŒSHAPïŒå€ãçæããŸãã詊éšã§ã¯å®è£ ã®æ·±ãã§ã¯ãªããçšèªãåãããŸãã
- Azure MLã«ãããå·®åãã©ã€ãã·ãŒã«ã€ããŠèªã¿ãŸã -
azureml-opendp-smartnoiseã¯ååšããŸããã詊éšã§ã¯æŠå¿µçãªéšåãåãããŸãã - æåã®æ¬æ Œçãªæš¡æ¬è©Šéšãæéå¶éä»ãã§åéšããŸããé£ç¶ãã2ã€ã®ã±ãŒã¹ã¹ã¿ãã£ã§30å以äžãè²»ãããŸããããŒã¹ã«æ £ããŠãã ããã
- æš¡æ¬è©Šéšã®ã¹ã³ã¢ãã匱ãé åãç¹å®ããŸããã»ãšãã©ã®åéšè ã«ãšã£ãŠãããã¯ãããã€ã¡ã³ãã®å éšæ§é ããã€ããŒãã©ã¡ãŒã¿ãã¥ãŒãã³ã°ããªã·ãŒã®ããããã§ã - 第3é±ãŸãã¯ç¬¬4é±ã«æ»ã£ãŠåŸ©ç¿ããŸãããã
第6é±: åŸ¹åºæŒç¿ãšå®äº
éæ¥ã§æš¡æ¬è©ŠéšãåããŸããããããã®åŸã§ãééãããµãŒãã¹ãæŠå¿µãæžãåºããŸãããã¿ãŒã³ãèŠããŠããã§ããã - éåžžãç°å¢ïŒãã¥ã¬ãŒãããããã® vs. ã«ã¹ã¿ã vs. ç»é²æžã¿ïŒãããŒã¿ã¢ã»ããã®çš®é¡ããããŠã©ã®ç£èŠããŒã«ãæ£ããçããïŒApplication Insights vs. Azure Monitor vs. Log Analyticsã¯ãŒã¯ã¹ããŒã¹ïŒã«é¢ãããã®ã§ãã
詊éšã鱿«ã«äºçŽããŸããæéå¶éä»ãã§é£ç¶ããŠ2åã®æš¡æ¬è©Šéšã§80%以äžã®ã¹ã³ã¢ãåºãããªããæºåäžç«¯ã§ãã70%æªæºã®å Žåã¯ãã1é±éå»¶æããŠãã ãã - 165ãã«ã®ååéšæãš24æéã®ã¯ãŒã«ããŠã³ã¯ããã7æ¥éè²»ãããããé«ãã€ããŸãã
DP-100ãAI-102ããã³DP-900ãšã©ã®ããã«é¢é£ããã
DP-100ã¯ããŒã¿ãµã€ãšã³ãã£ã¹ãåããAI-102ã¯AIãšã³ãžãã¢åãã®ãã©ãã¯ã§ããéè€ã¯ãããã§ããDP-100ã¯Azure MLã§ã«ã¹ã¿ã ã¢ãã«ããã¬ãŒãã³ã°ããããã€ããããšãæ±ããAI-102ã¯Azure AIãµãŒãã¹ïŒVisionãLanguageãOpenAIïŒãã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒãããšãæ±ããŸããããŒã¿ãµã€ãšã³ãã£ã¹ãã§ããã°ãDP-100ã ãã§ååã§ããCopilotã¹ã¿ã€ã«ã®æ©èœãæ§ç¯ãããœãããŠã§ã¢ãšã³ãžãã¢ã§ããã°ãAI-102ã®æ¹ãé©ããŠãããDP-100ã¯ããããã§ãã
DP-900ã¯èŠªãã¿ããããŠã©ãŒã ã¢ããã§ã - äžè¬çãªAzureããŒã¿ãµãŒãã¹ã«æ £ããŠããªãå Žåã¯åœ¹ç«ã¡ãŸãããAzure MLã§ãã§ã«äœãããªãªãŒã¹ããçµéšãããå Žåã¯éè€ããŸãã
å顿Œç¿ã®æºåãã§ããããCertLabProã®DP-100åé¡ãã³ã¯ãé²èЧããããæéå¶éä»ãã·ãã¥ã¬ãŒã·ã§ã³ãéå§ããŠãã ãããã±ãŒã¹ã¹ã¿ãã£åé¡ã¯æéçãã¬ãã·ã£ãŒãããããããã«ãã§ã§ååŸã«èªãã®ã§ã¯ãªããæéãèŠãªããç·Žç¿ããŸãããã