|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago |
README.md
Data Science pilvessä: "Azure ML SDK" -tapa
![]() |
---|
Data Science pilvessä: Azure ML SDK - Sketchnote by @nitya |
Sisällysluettelo:
- Data Science pilvessä: "Azure ML SDK" -tapa
Ennakkokysely
1. Johdanto
1.1 Mikä on Azure ML SDK?
Data-analyytikot ja tekoälykehittäjät käyttävät Azure Machine Learning SDK:ta rakentaakseen ja suorittaakseen koneoppimisen työnkulkuja Azure Machine Learning -palvelun avulla. Palvelua voi käyttää missä tahansa Python-ympäristössä, kuten Jupyter Notebooksissa, Visual Studio Codessa tai suosikkisi Python-IDE:ssä.
SDK:n keskeiset alueet:
- Tutki, valmistele ja hallitse koneoppimiskokeiden datasetien elinkaarta.
- Hallitse pilviresursseja koneoppimiskokeiden monitorointiin, lokitukseen ja organisointiin.
- Kouluta malleja joko paikallisesti tai pilviresursseja käyttäen, mukaan lukien GPU-kiihdytetty mallikoulutus.
- Käytä automatisoitua koneoppimista, joka hyväksyy konfiguraatioparametrit ja koulutusdatan. Se käy automaattisesti läpi algoritmeja ja hyperparametrien asetuksia löytääkseen parhaan mallin ennusteiden suorittamiseen.
- Ota käyttöön verkkopalveluita, jotka muuntavat koulutetut mallisi RESTful-palveluiksi, joita voi käyttää missä tahansa sovelluksessa.
Lisätietoja Azure Machine Learning SDK:sta
Edellisessä oppitunnissa opimme, kuinka kouluttaa, ottaa käyttöön ja hyödyntää mallia Low code/No code -menetelmällä. Käytimme sydämen vajaatoiminnan datasettiä ennustemallin luomiseen. Tässä oppitunnissa teemme täsmälleen saman, mutta käyttäen Azure Machine Learning SDK:ta.
1.2 Sydämen vajaatoiminnan ennustamisprojekti ja datasetin esittely
Katso täältä sydämen vajaatoiminnan ennustamisprojekti ja datasetin esittely.
2. Mallin kouluttaminen Azure ML SDK:lla
2.1 Azure ML -työtilan luominen
Yksinkertaisuuden vuoksi työskentelemme jupyter-notebookissa. Tämä tarkoittaa, että sinulla on jo työtila ja laskentayksikkö. Jos sinulla on jo työtila, voit siirtyä suoraan kohtaan 2.3 Notebookien luominen.
Jos ei, seuraa ohjeita kohdassa 2.1 Azure ML -työtilan luominen edellisessä oppitunnissa luodaksesi työtilan.
2.2 Laskentayksikön luominen
Azure ML -työtilassa, jonka loimme aiemmin, siirry Compute-valikkoon, ja näet käytettävissä olevat laskentaresurssit.
Luodaan laskentayksikkö jupyter-notebookin käyttöä varten.
- Klikkaa + Uusi -painiketta.
- Anna laskentayksikölle nimi.
- Valitse vaihtoehdot: CPU tai GPU, VM-koko ja ytimien määrä.
- Klikkaa Luo-painiketta.
Onnittelut, olet juuri luonut laskentayksikön! Käytämme tätä laskentayksikköä notebookin luomiseen kohdassa Notebookien luominen.
2.3 Datasetin lataaminen
Katso edellinen oppitunti kohdasta 2.3 Datasetin lataaminen, jos et ole vielä ladannut datasettiä.
2.4 Notebookien luominen
HUOM: Seuraavassa vaiheessa voit joko luoda uuden notebookin alusta alkaen tai ladata luomamme notebookin Azure ML Studioosi. Lataamista varten klikkaa "Notebook"-valikkoa ja lataa notebook.
Notebookit ovat erittäin tärkeä osa data-analytiikkaprosessia. Niitä voidaan käyttää tutkimaan dataa (EDA), kutsumaan laskentaklusteria mallin kouluttamiseen tai kutsumaan inferenssiklusteria päätepisteen käyttöönottoon.
Notebookin luomiseen tarvitsemme laskentayksikön, joka palvelee jupyter-notebook-instanssia. Palaa Azure ML -työtilaan ja klikkaa Laskentayksiköt. Laskentayksiköiden listassa pitäisi näkyä aiemmin luomamme laskentayksikkö.
- Sovellukset-osiossa klikkaa Jupyter-vaihtoehtoa.
- Ruksaa "Kyllä, ymmärrän" -ruutu ja klikkaa Jatka-painiketta.
- Tämä avaa uuden selaimen välilehden jupyter-notebook-instanssillasi. Klikkaa "Uusi"-painiketta luodaksesi notebookin.
Nyt kun meillä on notebook, voimme aloittaa mallin kouluttamisen Azure ML SDK:lla.
2.5 Mallin kouluttaminen
Ensinnäkin, jos sinulla on epäilyksiä, viittaa Azure ML SDK -dokumentaatioon. Se sisältää kaikki tarvittavat tiedot moduuleista, joita käsittelemme tässä oppitunnissa.
2.5.1 Työtilan, kokeen, laskentaklusterin ja datasetin määrittäminen
Lataa workspace
konfiguraatiotiedostosta seuraavalla koodilla:
from azureml.core import Workspace
ws = Workspace.from_config()
Tämä palauttaa Workspace
-tyyppisen objektin, joka edustaa työtilaa. Sitten sinun täytyy luoda experiment
seuraavalla koodilla:
from azureml.core import Experiment
experiment_name = 'aml-experiment'
experiment = Experiment(ws, experiment_name)
Työtilasta voi hakea tai luoda kokeen kokeen nimen avulla. Kokeen nimi täytyy olla 3-36 merkkiä pitkä, alkaa kirjaimella tai numerolla, ja voi sisältää vain kirjaimia, numeroita, alaviivoja ja viivoja. Jos koetta ei löydy työtilasta, uusi koe luodaan.
Nyt sinun täytyy luoda laskentaklusteri koulutusta varten seuraavalla koodilla. Huomaa, että tämä vaihe voi kestää muutaman minuutin.
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]
Voit hakea datasetin työtilasta datasetin nimen avulla seuraavasti:
dataset = ws.datasets['heart-failure-records']
df = dataset.to_pandas_dataframe()
df.describe()
2.5.2 AutoML-konfiguraatio ja koulutus
AutoML-konfiguraation määrittämiseen käytetään AutoMLConfig-luokkaa.
Kuten dokumentaatiossa kuvataan, konfiguraatiossa on paljon parametreja, joilla voit leikkiä. Tässä projektissa käytämme seuraavia parametreja:
experiment_timeout_minutes
: Maksimiaika (minuuteissa), jonka koe saa kestää ennen automaattista pysäytystä ja tulosten saatavuutta.max_concurrent_iterations
: Maksimimäärä samanaikaisia koulutuskierroksia kokeessa.primary_metric
: Ensisijainen metriikka kokeen tilan määrittämiseen.compute_target
: Azure Machine Learning -laskentakohde, jossa automatisoitu koneoppimiskoe suoritetaan.task
: Suoritettavan tehtävän tyyppi. Arvot voivat olla 'classification', 'regression' tai 'forecasting' riippuen ratkaistavasta koneoppimisongelmasta.training_data
: Koulutusdata, jota käytetään kokeessa. Sen tulee sisältää sekä koulutusominaisuudet että label-sarake (valinnaisesti näytepainot-sarake).label_column_name
: Label-sarakkeen nimi.path
: Täydellinen polku Azure Machine Learning -projektikansioon.enable_early_stopping
: Ota käyttöön varhainen lopetus, jos tulos ei parane lyhyellä aikavälillä.featurization
: Indikaattori siitä, tehdäänkö featurointi automaattisesti vai ei, tai käytetäänkö mukautettua featurointia.debug_log
: Lokitiedosto, johon kirjoitetaan debug-tietoja.
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
)
Kun konfiguraatio on asetettu, voit kouluttaa mallin seuraavalla koodilla. Tämä vaihe voi kestää jopa tunnin klusterin koosta riippuen.
remote_run = experiment.submit(automl_config)
Voit käyttää RunDetails-widgettiä näyttämään eri kokeet.
from azureml.widgets import RunDetails
RunDetails(remote_run).show()
3. Mallin käyttöönotto ja päätepisteen hyödyntäminen Azure ML SDK:lla
3.1 Parhaan mallin tallentaminen
remote_run
on AutoMLRun-tyyppinen objekti. Tämä objekti sisältää get_output()
-metodin, joka palauttaa parhaan ajon ja vastaavan sovitetun mallin.
best_run, fitted_model = remote_run.get_output()
Voit nähdä parhaan mallin käytetyt parametrit tulostamalla fitted_modelin ja tarkastella parhaan mallin ominaisuuksia käyttämällä get_properties()-metodia.
best_run.get_properties()
Rekisteröi malli register_model-metodilla.
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 Mallin käyttöönotto
Kun paras malli on tallennettu, voimme ottaa sen käyttöön InferenceConfig-luokan avulla. InferenceConfig edustaa konfiguraatioasetuksia mukautetulle ympäristölle, jota käytetään käyttöönotossa. AciWebservice-luokka edustaa koneoppimismallia, joka on otettu käyttöön verkkopalvelupäätepisteenä Azure Container Instancesissa. Käyttöön otettu palvelu luodaan mallista, skriptistä ja siihen liittyvistä tiedostoista. Tuloksena oleva verkkopalvelu on kuormantasattu HTTP-päätepiste REST-API:lla. Voit lähettää dataa tähän API:iin ja saada mallin palauttaman ennusteen.
Malli otetaan käyttöön deploy-metodilla.
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)
Tämä vaihe voi kestää muutaman minuutin.
3.3 Päätepisteen hyödyntäminen
Voit hyödyntää päätepistettä luomalla näytesyötteen:
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))
Ja sitten voit lähettää tämän syötteen mallillesi ennustetta varten:
response = aci_service.run(input_data=test_sample)
response
Tämän pitäisi tuottaa '{"result": [false]}'
. Tämä tarkoittaa, että lähettämämme potilastieto tuotti ennusteen false
, mikä tarkoittaa, että tämän henkilön sydänkohtauksen riski on epätodennäköinen.
Onnittelut! Olet juuri käyttänyt Azure ML:ssä koulutettua ja julkaistua mallia Azure ML SDK:n avulla!
NOTE: Kun olet valmis projektin kanssa, muista poistaa kaikki resurssit.
🚀 Haaste
SDK:n avulla voi tehdä paljon muutakin, mutta valitettavasti emme voi käydä kaikkea läpi tässä oppitunnissa. Hyvä uutinen on, että oppimalla selaamaan SDK-dokumentaatiota pääset pitkälle omatoimisesti. Tutustu Azure ML SDK -dokumentaatioon ja etsi Pipeline
-luokka, jonka avulla voit luoda työnkulkuja. Pipeline on kokoelma vaiheita, jotka voidaan suorittaa yhtenäisenä prosessina.
VIHJE: Mene SDK-dokumentaatioon ja kirjoita hakukenttään avainsanoja, kuten "Pipeline". Hakutuloksista pitäisi löytyä azureml.pipeline.core.Pipeline
-luokka.
Oppitunnin jälkeinen kysely
Kertaus ja itseopiskelu
Tässä oppitunnissa opit, kuinka kouluttaa, julkaista ja käyttää mallia sydämen vajaatoiminnan riskin ennustamiseen Azure ML SDK:n avulla pilvessä. Katso tämä dokumentaatio saadaksesi lisätietoa Azure ML SDK:sta. Kokeile luoda oma malli Azure ML SDK:n avulla.
Tehtävä
Data Science -projekti Azure ML SDK:ta käyttäen
Vastuuvapauslauseke:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulisi pitää ensisijaisena lähteenä. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinkäsityksistä tai virhetulkinnoista.