You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
313 lines
18 KiB
313 lines
18 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "472d3fab1c5be50f387336e7a686dbe1",
|
|
"translation_date": "2025-09-05T18:02:04+00:00",
|
|
"source_file": "5-Data-Science-In-Cloud/19-Azure/README.md",
|
|
"language_code": "sk"
|
|
}
|
|
-->
|
|
# Data Science v cloude: Cesta "Azure ML SDK"
|
|
|
|
| ](../../sketchnotes/19-DataScience-Cloud.png)|
|
|
|:---:|
|
|
| Data Science v cloude: Azure ML SDK - _Sketchnote od [@nitya](https://twitter.com/nitya)_ |
|
|
|
|
Obsah:
|
|
|
|
- [Data Science v cloude: Cesta "Azure ML SDK"](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [Kvíz pred prednáškou](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [1. Úvod](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [1.1 Čo je Azure ML SDK?](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [1.2 Projekt predikcie zlyhania srdca a úvod do datasetu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2. Tréning modelu pomocou Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.1 Vytvorenie Azure ML pracovného priestoru](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.2 Vytvorenie výpočtového uzla](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.3 Načítanie datasetu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.4 Vytváranie notebookov](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.5 Tréning modelu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.5.1 Nastavenie pracovného priestoru, experimentu, výpočtového klastru a datasetu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [2.5.2 Konfigurácia AutoML a tréning](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [3. Nasadenie modelu a využitie endpointu pomocou Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [3.1 Uloženie najlepšieho modelu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [3.2 Nasadenie modelu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [3.3 Využitie endpointu](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [🚀 Výzva](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [Kvíz po prednáške](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [Recenzia a samostatné štúdium](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
- [Úloha](../../../../5-Data-Science-In-Cloud/19-Azure)
|
|
|
|
## [Kvíz pred prednáškou](https://ff-quizzes.netlify.app/en/ds/quiz/36)
|
|
|
|
## 1. Úvod
|
|
|
|
### 1.1 Čo je Azure ML SDK?
|
|
|
|
Data scientisti a vývojári AI používajú Azure Machine Learning SDK na vytváranie a spúšťanie workflowov strojového učenia pomocou služby Azure Machine Learning. So službou môžete pracovať v akomkoľvek prostredí Pythonu, vrátane Jupyter Notebookov, Visual Studio Code alebo vášho obľúbeného Python IDE.
|
|
|
|
Kľúčové oblasti SDK zahŕňajú:
|
|
|
|
- Preskúmanie, príprava a správa životného cyklu datasetov používaných v experimentoch strojového učenia.
|
|
- Správa cloudových zdrojov na monitorovanie, logovanie a organizovanie experimentov strojového učenia.
|
|
- Tréning modelov lokálne alebo pomocou cloudových zdrojov, vrátane tréningu modelov akcelerovaných GPU.
|
|
- Použitie automatizovaného strojového učenia, ktoré prijíma konfiguračné parametre a tréningové dáta. Automaticky iteruje cez algoritmy a nastavenia hyperparametrov, aby našiel najlepší model na predikcie.
|
|
- Nasadenie webových služieb na konverziu vašich trénovaných modelov na RESTful služby, ktoré môžu byť využité v akejkoľvek aplikácii.
|
|
|
|
[Viac o Azure Machine Learning SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109)
|
|
|
|
V [predchádzajúcej lekcii](../18-Low-Code/README.md) sme videli, ako trénovať, nasadiť a využívať model pomocou Low code/No code prístupu. Použili sme dataset zlyhania srdca na generovanie modelu predikcie zlyhania srdca. V tejto lekcii urobíme presne to isté, ale pomocou Azure Machine Learning SDK.
|
|
|
|

|
|
|
|
### 1.2 Projekt predikcie zlyhania srdca a úvod do datasetu
|
|
|
|
Pozrite si [tu](../18-Low-Code/README.md) úvod do projektu predikcie zlyhania srdca a datasetu.
|
|
|
|
## 2. Tréning modelu pomocou Azure ML SDK
|
|
### 2.1 Vytvorenie Azure ML pracovného priestoru
|
|
|
|
Pre jednoduchosť budeme pracovať v jupyter notebooku. To znamená, že už máte pracovný priestor a výpočtový uzol. Ak už máte pracovný priestor, môžete preskočiť na sekciu 2.3 Vytváranie notebookov.
|
|
|
|
Ak nie, postupujte podľa pokynov v sekcii **2.1 Vytvorenie Azure ML pracovného priestoru** v [predchádzajúcej lekcii](../18-Low-Code/README.md) na vytvorenie pracovného priestoru.
|
|
|
|
### 2.2 Vytvorenie výpočtového uzla
|
|
|
|
V [Azure ML pracovnom priestore](https://ml.azure.com/), ktorý sme vytvorili skôr, prejdite do menu Compute a uvidíte rôzne dostupné výpočtové zdroje.
|
|
|
|

|
|
|
|
Vytvorme výpočtový uzol na zriadenie jupyter notebooku.
|
|
1. Kliknite na tlačidlo + New.
|
|
2. Dajte názov vášmu výpočtovému uzlu.
|
|
3. Vyberte možnosti: CPU alebo GPU, veľkosť VM a počet jadier.
|
|
4. Kliknite na tlačidlo Create.
|
|
|
|
Gratulujeme, práve ste vytvorili výpočtový uzol! Tento uzol použijeme na vytvorenie notebooku v sekcii [Vytváranie notebookov](../../../../5-Data-Science-In-Cloud/19-Azure).
|
|
|
|
### 2.3 Načítanie datasetu
|
|
Ak ste dataset ešte nenahrali, pozrite si sekciu **2.3 Načítanie datasetu** v [predchádzajúcej lekcii](../18-Low-Code/README.md).
|
|
|
|
### 2.4 Vytváranie notebookov
|
|
|
|
> **_POZNÁMKA:_** Pre ďalší krok môžete buď vytvoriť nový notebook od začiatku, alebo nahrať [notebook, ktorý sme vytvorili](../../../../5-Data-Science-In-Cloud/19-Azure/notebook.ipynb) do vášho Azure ML Studio. Na jeho nahratie jednoducho kliknite na menu "Notebook" a nahrajte notebook.
|
|
|
|
Notebooky sú veľmi dôležitou súčasťou procesu data science. Môžu byť použité na vykonávanie prieskumných analýz dát (EDA), volanie výpočtového klastru na tréning modelu, alebo volanie inferenčného klastru na nasadenie endpointu.
|
|
|
|
Na vytvorenie notebooku potrebujeme výpočtový uzol, ktorý poskytuje jupyter notebook. Vráťte sa do [Azure ML pracovného priestoru](https://ml.azure.com/) a kliknite na Compute instances. V zozname výpočtových uzlov by ste mali vidieť [uzol, ktorý sme vytvorili skôr](../../../../5-Data-Science-In-Cloud/19-Azure).
|
|
|
|
1. V sekcii Applications kliknite na možnosť Jupyter.
|
|
2. Zaškrtnite políčko "Yes, I understand" a kliknite na tlačidlo Continue.
|
|

|
|
3. Toto by malo otvoriť nový prehliadačový tab s vaším jupyter notebookom. Kliknite na tlačidlo "New" na vytvorenie notebooku.
|
|
|
|

|
|
|
|
Teraz, keď máme notebook, môžeme začať trénovať model pomocou Azure ML SDK.
|
|
|
|
### 2.5 Tréning modelu
|
|
|
|
Ak máte akékoľvek pochybnosti, pozrite si [dokumentáciu Azure ML SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). Obsahuje všetky potrebné informácie na pochopenie modulov, ktoré uvidíme v tejto lekcii.
|
|
|
|
#### 2.5.1 Nastavenie pracovného priestoru, experimentu, výpočtového klastru a datasetu
|
|
|
|
Pracovný priestor musíte načítať z konfiguračného súboru pomocou nasledujúceho kódu:
|
|
|
|
```python
|
|
from azureml.core import Workspace
|
|
ws = Workspace.from_config()
|
|
```
|
|
|
|
Toto vráti objekt typu `Workspace`, ktorý reprezentuje pracovný priestor. Potom musíte vytvoriť `experiment` pomocou nasledujúceho kódu:
|
|
|
|
```python
|
|
from azureml.core import Experiment
|
|
experiment_name = 'aml-experiment'
|
|
experiment = Experiment(ws, experiment_name)
|
|
```
|
|
Na získanie alebo vytvorenie experimentu z pracovného priestoru požiadate o experiment pomocou názvu experimentu. Názov experimentu musí mať 3-36 znakov, začínať písmenom alebo číslom a môže obsahovať iba písmená, čísla, podčiarkovníky a pomlčky. Ak experiment nie je nájdený v pracovnom priestore, vytvorí sa nový experiment.
|
|
|
|
Teraz musíte vytvoriť výpočtový klaster na tréning pomocou nasledujúceho kódu. Upozorňujeme, že tento krok môže trvať niekoľko minút.
|
|
|
|
```python
|
|
from azureml.core.compute import AmlCompute
|
|
|
|
aml_name = "heart-f-cluster"
|
|
try:
|
|
aml_compute = AmlCompute(ws, aml_name)
|
|
print('Found existing AML compute context.')
|
|
except:
|
|
print('Creating new AML compute context.')
|
|
aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3)
|
|
aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config)
|
|
aml_compute.wait_for_completion(show_output = True)
|
|
|
|
cts = ws.compute_targets
|
|
compute_target = cts[aml_name]
|
|
```
|
|
|
|
Dataset môžete získať z pracovného priestoru pomocou názvu datasetu nasledujúcim spôsobom:
|
|
|
|
```python
|
|
dataset = ws.datasets['heart-failure-records']
|
|
df = dataset.to_pandas_dataframe()
|
|
df.describe()
|
|
```
|
|
#### 2.5.2 Konfigurácia AutoML a tréning
|
|
|
|
Na nastavenie konfigurácie AutoML použite [AutoMLConfig triedu](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109).
|
|
|
|
Ako je popísané v dokumentácii, existuje veľa parametrov, s ktorými môžete experimentovať. Pre tento projekt použijeme nasledujúce parametre:
|
|
|
|
- `experiment_timeout_minutes`: Maximálny čas (v minútach), ktorý je experimentu povolený pred automatickým zastavením a sprístupnením výsledkov.
|
|
- `max_concurrent_iterations`: Maximálny počet súbežných tréningových iterácií povolených pre experiment.
|
|
- `primary_metric`: Primárna metrika používaná na určenie stavu experimentu.
|
|
- `compute_target`: Cieľ výpočtu Azure Machine Learning, na ktorom sa spustí experiment automatizovaného strojového učenia.
|
|
- `task`: Typ úlohy na spustenie. Hodnoty môžu byť 'classification', 'regression' alebo 'forecasting' v závislosti od typu problému automatizovaného ML.
|
|
- `training_data`: Tréningové dáta, ktoré sa použijú v rámci experimentu. Mali by obsahovať tréningové vlastnosti aj stĺpec s označením (voliteľne stĺpec s váhami vzoriek).
|
|
- `label_column_name`: Názov stĺpca s označením.
|
|
- `path`: Celá cesta k priečinku projektu Azure Machine Learning.
|
|
- `enable_early_stopping`: Či povoliť predčasné ukončenie, ak sa skóre krátkodobo nezlepšuje.
|
|
- `featurization`: Indikátor, či by sa mal krok featurizácie vykonať automaticky alebo nie, alebo či by sa mala použiť prispôsobená featurizácia.
|
|
- `debug_log`: Súbor logov na zapisovanie informácií o ladení.
|
|
|
|
```python
|
|
from azureml.train.automl import AutoMLConfig
|
|
|
|
project_folder = './aml-project'
|
|
|
|
automl_settings = {
|
|
"experiment_timeout_minutes": 20,
|
|
"max_concurrent_iterations": 3,
|
|
"primary_metric" : 'AUC_weighted'
|
|
}
|
|
|
|
automl_config = AutoMLConfig(compute_target=compute_target,
|
|
task = "classification",
|
|
training_data=dataset,
|
|
label_column_name="DEATH_EVENT",
|
|
path = project_folder,
|
|
enable_early_stopping= True,
|
|
featurization= 'auto',
|
|
debug_log = "automl_errors.log",
|
|
**automl_settings
|
|
)
|
|
```
|
|
Teraz, keď máte nastavenú konfiguráciu, môžete model trénovať pomocou nasledujúceho kódu. Tento krok môže trvať až hodinu v závislosti od veľkosti vášho klastru.
|
|
|
|
```python
|
|
remote_run = experiment.submit(automl_config)
|
|
```
|
|
Môžete spustiť widget RunDetails na zobrazenie rôznych experimentov.
|
|
```python
|
|
from azureml.widgets import RunDetails
|
|
RunDetails(remote_run).show()
|
|
```
|
|
## 3. Nasadenie modelu a využitie endpointu pomocou Azure ML SDK
|
|
|
|
### 3.1 Uloženie najlepšieho modelu
|
|
|
|
`remote_run` je objekt typu [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). Tento objekt obsahuje metódu `get_output()`, ktorá vráti najlepší beh a zodpovedajúci trénovaný model.
|
|
|
|
```python
|
|
best_run, fitted_model = remote_run.get_output()
|
|
```
|
|
Parametre použité pre najlepší model môžete vidieť jednoducho vytlačením `fitted_model` a vlastnosti najlepšieho modelu môžete zobraziť pomocou metódy [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109).
|
|
|
|
```python
|
|
best_run.get_properties()
|
|
```
|
|
|
|
Teraz zaregistrujte model pomocou metódy [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109).
|
|
```python
|
|
model_name = best_run.properties['model_name']
|
|
script_file_name = 'inference/score.py'
|
|
best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py')
|
|
description = "aml heart failure project sdk"
|
|
model = best_run.register_model(model_name = model_name,
|
|
model_path = './outputs/',
|
|
description = description,
|
|
tags = None)
|
|
```
|
|
### 3.2 Nasadenie modelu
|
|
|
|
Keď je najlepší model uložený, môžeme ho nasadiť pomocou triedy [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109). InferenceConfig predstavuje konfiguračné nastavenia pre vlastné prostredie použité na nasadenie. Trieda [AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) predstavuje model strojového učenia nasadený ako endpoint webovej služby na Azure Container Instances. Nasadená služba je vyvážený HTTP endpoint s REST API. Môžete poslať dáta na toto API a získať predikciu vrátenú modelom.
|
|
|
|
Model je nasadený pomocou metódy [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109).
|
|
|
|
```python
|
|
from azureml.core.model import InferenceConfig, Model
|
|
from azureml.core.webservice import AciWebservice
|
|
|
|
inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment())
|
|
|
|
aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1,
|
|
memory_gb = 1,
|
|
tags = {'type': "automl-heart-failure-prediction"},
|
|
description = 'Sample service for AutoML Heart Failure Prediction')
|
|
|
|
aci_service_name = 'automl-hf-sdk'
|
|
aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig)
|
|
aci_service.wait_for_deployment(True)
|
|
print(aci_service.state)
|
|
```
|
|
Tento krok by mal trvať niekoľko minút.
|
|
|
|
### 3.3 Využitie endpointu
|
|
|
|
Endpoint využijete vytvorením vzorového vstupu:
|
|
|
|
```python
|
|
data = {
|
|
"data":
|
|
[
|
|
{
|
|
'age': "60",
|
|
'anaemia': "false",
|
|
'creatinine_phosphokinase': "500",
|
|
'diabetes': "false",
|
|
'ejection_fraction': "38",
|
|
'high_blood_pressure': "false",
|
|
'platelets': "260000",
|
|
'serum_creatinine': "1.40",
|
|
'serum_sodium': "137",
|
|
'sex': "false",
|
|
'smoking': "false",
|
|
'time': "130",
|
|
},
|
|
],
|
|
}
|
|
|
|
test_sample = str.encode(json.dumps(data))
|
|
```
|
|
A potom môžete tento vstup poslať vášmu modelu na predikciu:
|
|
```python
|
|
response = aci_service.run(input_data=test_sample)
|
|
response
|
|
```
|
|
Toto by malo vrátiť `'{"result": [false]}'`. To znamená, že vstup pacienta, ktorý sme poslali na endpoint, vygeneroval predikciu `false`, čo znamená, že táto osoba pravdepodobne nedostane infarkt.
|
|
|
|
Gratulujeme! Práve ste použili model nasadený a trénovaný na Azure ML pomocou Azure ML SDK!
|
|
|
|
|
|
> **_NOTE:_** Keď dokončíte projekt, nezabudnite vymazať všetky zdroje.
|
|
|
|
## 🚀 Výzva
|
|
|
|
Existuje mnoho ďalších vecí, ktoré môžete robiť prostredníctvom SDK, bohužiaľ, nemôžeme ich všetky prejsť v tejto lekcii. Dobrá správa je, že naučiť sa orientovať v dokumentácii SDK vám môže výrazne pomôcť. Pozrite si dokumentáciu Azure ML SDK a nájdite triedu `Pipeline`, ktorá vám umožňuje vytvárať pipeline. Pipeline je kolekcia krokov, ktoré môžu byť vykonané ako pracovný postup.
|
|
|
|
**TIP:** Prejdite na [dokumentáciu SDK](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) a zadajte kľúčové slová do vyhľadávacieho poľa, napríklad "Pipeline". Mali by ste mať triedu `azureml.pipeline.core.Pipeline` vo výsledkoch vyhľadávania.
|
|
|
|
## [Kvíz po prednáške](https://ff-quizzes.netlify.app/en/ds/quiz/37)
|
|
|
|
## Prehľad & Samoštúdium
|
|
|
|
V tejto lekcii ste sa naučili, ako trénovať, nasadiť a používať model na predikciu rizika zlyhania srdca pomocou Azure ML SDK v cloude. Pozrite si túto [dokumentáciu](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) pre ďalšie informácie o Azure ML SDK. Skúste vytvoriť vlastný model pomocou Azure ML SDK.
|
|
|
|
## Zadanie
|
|
|
|
[Projekt Data Science pomocou Azure ML SDK](assignment.md)
|
|
|
|
---
|
|
|
|
**Upozornenie**:
|
|
Tento dokument bol preložený pomocou služby AI prekladu [Co-op Translator](https://github.com/Azure/co-op-translator). Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. |