AutoML-betanítás beállítása táblázatos adatokhoz az Azure Machine Tanulás CLI-vel és Python SDK-val
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)
Ebből az útmutatóból megtudhatja, hogyan állíthat be automatikus gépi tanulási, AutoML- és betanítási feladatokat az Azure Machine Tanulás Python SDK 2-es verzióval. Az automatizált gépi tanulás kiválaszt egy algoritmust és hiperparamétereket, és létrehoz egy üzembe helyezésre kész modellt. Ez az útmutató részletesen ismerteti az automatizált gépi tanulási kísérletek konfigurálásához használható különféle lehetőségeket.
Ha inkább a kód nélküli felületet választja, a kód nélküli AutoML-betanítást is beállíthatja az Azure Machine Tanulás studióban.
Előfeltételek
- Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Tanulás ingyenes vagy fizetős verzióját.
- Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, az erőforrások létrehozása című cikk lépéseit követve kezdheti el a cikket.
Az SDK-információk használatához telepítse az Azure Machine Tanulás SDK v2 for Pythont.
Az SDK telepítéséhez
- Hozzon létre egy számítási példányt, amely már telepítette a legújabb Azure Machine Tanulás Python SDK-t, és előre konfigurálva van az ML-munkafolyamatokhoz. További információ: Azure Machine Tanulás számítási példány létrehozása.
- Az SDK telepítése a helyi gépen
A munkaterület beállítása
A munkaterülethez való csatlakozáshoz meg kell adnia egy előfizetést, egy erőforráscsoportot és egy munkaterületnevet.
A munkaterület részleteivel lekérheti a MLClient
azure.ai.ml
leírót a szükséges Azure Machine Tanulás munkaterületre.
Az alábbi példában a rendszer az alapértelmezett Azure-hitelesítést használja az alapértelmezett munkaterület-konfigurációval együtt, vagy bármely config.json
olyan fájlból, amelyet átmásolt a mappák struktúrájába. Ha nem config.json
található, manuálisan kell bevezetnie a subscription_id, a resource_group és a munkaterületet a létrehozáskor MLClient
.
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
Adatforrás és formátum
Ahhoz, hogy betanítási adatokat biztosíthasson az AutoML-nek az SDK v2-ben, fel kell töltenie őket a felhőbe egy MLTable használatával.
Az adatok MLTable-ba való betöltésének követelményei:
- Az adatoknak táblázatos formában kell lenniük.
- Az előrejelezendő értéknek, a céloszlopnak az adatokban kell lennie.
A betanítási adatoknak elérhetőnek kell lenniük a távoli számításból. Az automatizált ML v2 (Python SDK és CLI/YAML) az MLTable adategységeket (v2) fogadja el, de a visszamenőleges kompatibilitás érdekében támogatja az 1-es verzió (regisztrált táblázatos adatkészlet) v1 táblázatos adatkészleteit is ugyanazokkal a bemeneti adathalmaz-tulajdonságokkal. A javaslat azonban a 2- es verzióban elérhető MLTable használata. Ebben a példában feltételezzük, hogy az adatok a helyi elérési úton lesznek tárolva, ./train_data/bank_marketing_train_data.csv
Az mltable Python SDK használatával létrehozhat egy MLTable-t, ahogyan az alábbi példában is látható:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
Ez a kód létrehoz egy új fájlt, ./train_data/MLTable
amely tartalmazza a fájlformátumot és a betöltési utasításokat.
Most a ./train_data
mappában az MLTable definíciós fájl és az adatfájl található. bank_marketing_train_data.csv
További információ az MLTable-ról: mltable útmutató
Betanítási, érvényesítési és tesztelési adatok
Megadhat külön betanítási adatokat és érvényesítési adatkészleteket, de a betanítási adatokat meg kell adni a training_data
paraméternek az automatizált gépi tanulási feladat gyári függvényében.
Ha nem ad meg explicit módon egy vagy n_cross_validation
több paramétertvalidation_data
, az automatizált gépi tanulás alapértelmezett technikákat alkalmaz az ellenőrzés végrehajtásának meghatározásához. Ez a meghatározás a paraméterhez rendelt training_data
adathalmaz sorainak számától függ.
Betanítási adatok mérete | Érvényesítési technika |
---|---|
20 000 sornál nagyobb | Betanítási/érvényesítési adatok felosztása lesz alkalmazva. Az alapértelmezett beállítás az, hogy a kezdeti betanítási adatkészlet 10%-át használja érvényesítési csoportként. Ez az érvényesítési csoport a metrikák kiszámításához használatos. |
20 000 sornál kisebb vagy egyenlő | A rendszer keresztérvényesítési megközelítést alkalmaz. A hajtások alapértelmezett száma a sorok számától függ. Ha az adathalmaz kevesebb, mint 1000 sor, akkor a rendszer 10 hajtást használ. Ha a sorok értéke 1000 és 20 000 között van, akkor a rendszer három hajtást használ. |
Számítás a kísérlet futtatásához
A Python SDK v2 (vagy CLI v2) használatával végzett automatizált ml-feladatok jelenleg csak az Azure Machine Tanulás távoli számításban (fürt vagy számítási példány) támogatottak.
További információ a számítás Python SDKv2 (vagy CLIv2) használatával történő létrehozásáról.
A kísérlet beállításainak konfigurálása
Az automatizált gépi tanulási kísérlet konfigurálásához számos lehetőség közül választhat. Ezek a konfigurációs paraméterek a feladatmetódusban vannak beállítva. A feladat betanítási beállításait és a kilépési feltételeket is megadhatja a training
limits
beállításokkal együtt.
Az alábbi példa egy besorolási feladathoz szükséges paramétereket mutatja be, amelyek elsődleges metrikaként és 5 keresztérvényesítési hajtásként határozzák meg a pontosságot.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
Válassza ki a gépi tanulási feladat típusát (ML-probléma)
Az automatizált gépi tanulási feladat elküldése előtt meg kell határoznia, hogy milyen gépi tanulási problémát old meg. Ez a probléma határozza meg, hogy az automatizált gépi tanulási feladat melyik függvényt és milyen modell-algoritmusokat használ.
Az automatizált gépi tanulás támogatja a táblázatos adatalapú feladatokat (besorolás, regresszió, előrejelzés), a számítógépes látási feladatokat (például a képbesorolást és az objektumészlelést), valamint a természetes nyelvi feldolgozási feladatokat (például szövegbesorolási és entitásfelismerési feladatokat). További információt a tevékenységtípusokról szóló cikkünkben talál. Az előrejelzési feladatok beállításával kapcsolatos további részletekért tekintse meg az idősorok előrejelzési útmutatóját.
Támogatott algoritmusok
Az automatizált gépi tanulás különböző modelleket és algoritmusokat próbál ki az automatizálási és finomhangolási folyamat során. Felhasználóként nem kell megadnia az algoritmust.
A feladatmetódus határozza meg az alkalmazni kívánt algoritmusok/modellek listáját. allowed_training_algorithms
Az AutoML-feladat konfigurációjában szereplő training
paraméterekkel blocked_training_algorithms
tovább módosíthatja az iterációkat az elérhető modellekkel, hogy belefoglalják vagy kizárják azokat.
Az alábbi hivatkozások listájában az alább felsorolt gépi tanulási feladatonkénti támogatott algoritmusokat ismerheti meg.
Osztályozás | Regresszió | Idősoros előrejelzés |
---|---|---|
Logisztikai regresszió* | Rugalmas háló* | AutoARIMA |
Világos GBM* | Világos GBM* | Próféta |
Színátmenetes kiemelés* | Színátmenetes kiemelés* | Rugalmas háló |
Döntési fa* | Döntési fa* | Világos GBM |
K Legközelebbi szomszédok* | K Legközelebbi szomszédok* | K legközelebbi szomszédok |
Lineáris SVC* | LARS Lasso* | Döntési fa |
Támogatásvektor-besorolás (SVC)* | Sztochasztikus színátmenetes süllyedés (SGD)* | Arimax |
Véletlenszerű erdő* | Véletlenszerű erdő | LARS Lasso |
Rendkívül véletlenszerű fák* | Rendkívül véletlenszerű fák* | Rendkívül véletlenszerű fák* |
Xgboost* | Xgboost* | Véletlenszerű erdő |
Naiv Bayes* | Xgboost | TCNForecaster |
Sztochasztikus színátmenetes süllyedés (SGD)* | Sztochasztikus színátmenetes süllyedés (SGD) | Színátmenetes kiemelés |
ExponenciálisSmoothing | ||
SeasonalNaive | ||
Átlag | ||
Naiv | ||
SeasonalAverage |
További algoritmusokkal az alábbiakban.
- Képbesorolás többosztályos algoritmusok
- Képbesorolás többcímkés algoritmusok
- Képobjektum-észlelési algoritmusok
- NLP-szövegbesorolási többcímkés algoritmusok
- NLP-szöveg által elnevezett entitásfelismerési (NER-) algoritmusok
Kövesse ezt a hivatkozást , például az egyes tevékenységtípusok jegyzetfüzeteit.
Elsődleges metrika
A primary_metric
paraméter meghatározza a modellbetanítás során az optimalizáláshoz használandó metrikát. A választható metrikákat a választott tevékenységtípus határozza meg.
Az automatizált gépi tanulás elsődleges metrikájának kiválasztása az optimalizáláshoz számos tényezőtől függ. Azt javasoljuk, hogy az elsődleges szempont egy olyan metrika kiválasztása legyen, amely a legjobban megfelel az üzleti igényeinek. Ezután fontolja meg, hogy a metrika alkalmas-e az adathalmaz-profilhoz (adatméret, tartomány, osztályeloszlás stb.). Az alábbi szakaszok a tevékenységtípus és az üzleti forgatókönyv alapján összegzik az ajánlott elsődleges metrikákat.
Az automatizált gépi tanulási eredmények megismerésében megismerheti ezeknek a metrikáknak a konkrét definícióit.
Metrikák többosztályos forgatókönyvek besorolásához
Ezek a metrikák az összes besorolási forgatókönyvre érvényesek, beleértve a táblázatos adatokat, a képeket/a számítógépes látást és az NLP-textet.
A küszöbérték-függő metrikák, például accuracy
a norm_macro_recall
, recall_score_weighted
, és precision_score_weighted
nem feltétlenül optimalizálhatók olyan adathalmazokhoz, amelyek kicsik, nagy osztályeltérésben (osztálykiegyenlülés), vagy ha a várt metrikaérték nagyon közel van a 0,0-hoz vagy az 1.0-hoz. Ezekben az esetekben AUC_weighted
jobb választás lehet az elsődleges metrika számára. Az automatizált gépi tanulás befejezése után kiválaszthatja a nyertes modellt az üzleti igényeinek leginkább megfelelő metrika alapján.
Metrika | Példa használati eset(ek) |
---|---|
accuracy |
Képbesorolás, Hangulatelemzés, Változás előrejelzése |
AUC_weighted |
Csalásészlelés, Képbesorolás, Anomáliadetektálás/levélszemétészlelés |
average_precision_score_weighted |
Hangulatelemzés |
norm_macro_recall |
Változás előrejelzése |
precision_score_weighted |
Metrikák többcímkés forgatókönyvek besorolásához
A szövegbesorolás esetében jelenleg a többcímkés "Pontosság" az egyetlen támogatott elsődleges metrika.
Többcímke képbesorolása esetén a támogatott elsődleges metrikákat a ClassificationMultilabelPrimaryMetrics Enum határozza meg
Az NLP Text NER (Named Entity Recognition) forgatókönyveinek metrikái
- Az NLP Text NER (Named Entity Recognition) esetében jelenleg a "Pontosság" az egyetlen támogatott elsődleges metrika.
Regressziós forgatókönyvekhez használható metrikák
r2_score
, normalized_mean_absolute_error
és normalized_root_mean_squared_error
megpróbálják minimalizálni az előrejelzési hibákat. r2_score
és normalized_root_mean_squared_error
mindkettő minimálisra csökkenti az átlagos négyzetes hibákat, miközben normalized_mean_absolute_error
minimalizálja a hibák átlagos abszolút értékét. Az abszolút érték minden nagyságrendben kezeli a hibákat, és a négyzetes hibák sokkal nagyobb büntetést kapnak a nagyobb abszolút értékeket tartalmazó hibákért. Attól függően, hogy nagyobb hibákat kell-e többé vagy sem büntetni, választhat, hogy optimalizálja a négyzetes vagy az abszolút hibát.
A fő különbség a normalizálásuk módja és a jelentésük között r2_score
normalized_root_mean_squared_error
. normalized_root_mean_squared_error
a tartomány szerint normalizált, négyzetes középértéket jelenti, és az előrejelzés átlagos hibaértékeként értelmezhető. r2_score
az adateltérés becslése által normalizált átlagos négyzetes hiba. Ez a modell által rögzíthető variációk aránya.
Feljegyzés
r2_score
és normalized_root_mean_squared_error
ugyanúgy viselkedik, mint az elsődleges metrikák. Rögzített érvényesítési csoport alkalmazása esetén ez a két metrika ugyanazt a célt optimalizálja, a középérték négyzetes hibát jelenti, és ugyanazt a modellt fogja optimalizálni. Ha csak egy betanítási készlet áll rendelkezésre, és keresztérvényesítést alkalmaz, azok kissé eltérőek lesznek, mivel a normalizáló normalized_root_mean_squared_error
a betanítási készlet tartományaként van rögzítve, de a normalizáló r2_score
minden hajtás esetében eltérő lehet, mivel ez az egyes hajtások varianciája.
Ha a rangsor a pontos érték helyett érdekes, akkor jobb választás lehet, spearman_correlation
mivel a valós értékek és az előrejelzések közötti rang-korrelációt méri.
Az AutoML jelenleg nem támogat olyan elsődleges metrikákat, amelyek az előrejelzések és a megfigyelések közötti relatív különbséget mérik. A metrikák r2_score
és normalized_mean_absolute_error
normalized_root_mean_squared_error
az abszolút különbség mértékei. Ha például egy előrejelzés 10 egységre tér el egy megfigyeléstől, akkor ezek a metrikák ugyanazt az értéket számítják ki, ha a megfigyelés 20 egység vagy 20 000 egység. Ezzel szemben a relatív mérték százalékos különbsége 50%-os, illetve 0,05%-os hibákat ad! A relatív különbség optimalizálásához futtassa az AutoML-t egy támogatott elsődleges metrikával, majd válassza ki a modellt a legjobb vagy root_mean_squared_log_error
a .mean_absolute_percentage_error
Vegye figyelembe, hogy ezek a metrikák nem definiálva vannak, ha bármely megfigyelési érték nulla, ezért előfordulhat, hogy nem mindig jó választás.
Metrika | Példa használati eset(ek) |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Ár-előrejelzés (ház/termék/tipp), Pontszám előrejelzésének áttekintése |
r2_score |
Légitársaság késése, Fizetés becslése, Hibafeloldási idő |
normalized_mean_absolute_error |
Idősor-előrejelzési forgatókönyvek metrikái
A javaslatok hasonlóak a regressziós forgatókönyvekhez feljegyzett javaslatokhoz.
Metrika | Példa használati eset(ek) |
---|---|
normalized_root_mean_squared_error |
Ár-előrejelzés (előrejelzés), Készletoptimalizálás, Kereslet-előrejelzés |
r2_score |
Ár-előrejelzés (előrejelzés), Készletoptimalizálás, Kereslet-előrejelzés |
normalized_mean_absolute_error |
Metrikák képobjektum-észlelési forgatókönyvekhez
- Képobjektum-észlelés esetén a támogatott elsődleges metrikák az ObjectDetectionPrimaryMetrics enumerálásában vannak definiálva
Metrikák képpéldány szegmentálási forgatókönyvekhez
- Képpéldány szegmentálási forgatókönyvei esetén a támogatott elsődleges metrikák az InstanceSegmentationPrimaryMetrics Enumban vannak definiálva
Adatok featurizálása
Minden automatizált gépi tanulási kísérletben az adatok automatikusan számokká és számvektorokká alakulnak át, valamint skálázódnak és normalizálódnak, hogy segítsék a különböző skálázású funkciókra érzékeny algoritmusokat. Ezeket az adatátalakításokat featurizációnak nevezzük.
Feljegyzés
A gépi tanulás automatizált featurizálási lépései (funkció normalizálása, hiányzó adatok kezelése, szöveg numerikussá alakítása stb.) a mögöttes modell részévé válnak. Ha a modellt előrejelzésekhez használja, a betanítás során alkalmazott featurizációs lépések automatikusan a bemeneti adatokra lesznek alkalmazva.
Az automatizált gépi tanulási feladatok konfigurálásakor engedélyezheti vagy letilthatja a featurization
beállításokat.
Az alábbi táblázat a featurizálás elfogadott beállításait mutatja be.
Featurization Configuration | Leírás |
---|---|
"mode": 'auto' |
Azt jelzi, hogy az előfeldolgozás részeként a rendszer automatikusan végrehajtja az adatvédettségi és a featurizálási lépéseket . Alapértelmezett beállítás. |
"mode": 'off' |
Azt jelzi, hogy a featurizációs lépést nem szabad automatikusan elvégezni. |
"mode": 'custom' |
Azt jelzi, hogy a testre szabott featurizációs lépést kell használni. |
Az alábbi kód bemutatja, hogyan lehet egyéni featurizációt biztosítani ebben az esetben egy regressziós feladathoz.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
Kilépési feltételek
A függvényben set_limits()
definiálhat néhány lehetőséget a kísérlet befejezéséhez a feladat befejezése előtt.
Feltételek | leírás |
---|---|
Nincs feltétel | Ha nem határoz meg kilépési paramétereket, a kísérlet addig folytatódik, amíg az elsődleges metrika nem végez további előrehaladást. |
timeout |
Meghatározza, hogy a kísérlet mennyi ideig futjon percek alatt. Ha nincs megadva, az alapértelmezett feladat teljes időtúllépése 6 nap (8640 perc). Ha 1 óránál (60 percnél) rövidebb vagy egyenlő időtúllépést szeretne megadni, győződjön meg arról, hogy az adathalmaz mérete nem nagyobb 10 000 000-nél (sorok időoszlopa) vagy hibaeredmények. Ez az időtúllépés magában foglalja a beállítási, a featurizációs és a betanítási futtatásokat, de nem tartalmazza a folyamat végén futó ensembling és modell magyarázatát, mivel ezeknek a műveleteknek az összes próba (gyermekfeladat) befejezése után kell történnie. |
trial_timeout_minutes |
A próbaidőszakok (gyermekfeladatok) futásának maximális időtartama percekben, mielőtt befejeződne. Ha nincs megadva, a rendszer 1 hónapos vagy 43200 perces értéket használ |
enable_early_termination |
A feladat befejezése, ha a pontszám rövid távon nem javul |
max_trials |
Az AutoML-feladatok során kipróbálandó algoritmusok és hiperparaméterek eltérő kombinációjával futtatott kísérletek/futtatások maximális száma. Ha nincs megadva, az alapértelmezett érték 1000 próba. enable_early_termination Ha a használt próbaverziók száma kisebb lehet. |
max_concurrent_trials |
A párhuzamosan végrehajtandó kísérletek (gyermekfeladatok) maximális számát jelöli. Ezt a számot célszerű egyeztetni a fürt csomópontjainak számával |
Kísérlet futtatása
Feljegyzés
Ha ugyanazt a konfigurációs beállítást és elsődleges metrikát többször futtatja, valószínűleg az egyes kísérletekben a végleges metrikák pontszámának és a létrehozott modelleknek a variációja jelenik meg. Az automatizált gépi tanulási algoritmusok eredendő véletlenszerűséggel rendelkeznek, ami kismértékű eltérést okozhat a modellek kimenetében a kísérlet és az ajánlott modell végső metrikák pontszámában, például a pontosságban. Valószínűleg ugyanazzal a modellnévvel, de különböző hiperparaméterekkel is látni fogja az eredményeket.
Figyelmeztetés
Ha a tűzfalban és/vagy a hálózati biztonsági csoportban szabályokat állított be a munkaterületen, ellenőrizze, hogy a bejövő és kimenő hálózati forgalomhoz szükséges engedélyek vannak-e megadva a bejövő és kimenő hálózati forgalom konfigurálásában meghatározottak szerint.
Küldje el a kísérletet futtatásra, és hozzon létre egy modellt. MLClient
Az előfeltételekben létrehozott paranccsal futtathatja a következő parancsot a munkaterületen.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
Több gyermekfuttatás fürtökön
Az automatizált gépi tanulási kísérlet gyermekfuttatásai olyan fürtön is elvégezhetők, amely már futtat egy másik kísérletet. Az időzítés azonban attól függ, hogy hány csomópontja van a fürtnek, és hogy ezek a csomópontok elérhetők-e egy másik kísérlet futtatásához.
A fürt minden csomópontja önálló virtuális gépként (VM) működik, amely egyetlen betanítási futtatásra képes; automatizált gépi tanulás esetén ez gyermekfuttatást jelent. Ha az összes csomópont foglalt, egy új kísérlet lesz várólistán. Ha azonban vannak ingyenes csomópontok, az új kísérlet automatizált ml-gyermekfuttatásokat futtat párhuzamosan az elérhető csomópontokon/virtuális gépeken.
A gyermekfuttatások kezeléséhez és azok végrehajtásához javasoljuk, hogy kísérletenként hozzon létre egy dedikált fürtöt, és egyezzen a kísérlet számával max_concurrent_iterations
a fürt csomópontjainak számával. Így a fürt összes csomópontját egyszerre, az egyidejű gyermekfuttatások/iterációk számával együtt használhatja.
Konfigurálás max_concurrent_iterations
a limits
konfigurációban. Ha nincs konfigurálva, akkor alapértelmezés szerint kísérletenként csak egy egyidejű gyermekfuttatás/iteráció engedélyezett.
Számítási példány max_concurrent_trials
esetén a számítási példány virtuális gépén lévő magok számával megegyező értékre állítható be.
Modellek és metrikák megismerése
Az automatizált gépi tanulás lehetőséget kínál a betanítási eredmények monitorozására és kiértékelésére.
Az egyes futtatásokhoz megadott teljesítménydiagramokra és metrikákra vonatkozó definíciókat és példákat az automatizált gépi tanulási kísérletek eredményeinek kiértékelése című témakörben talál.
Ha szeretné lekérni a featurizációs összegzést, és tudni szeretné, hogy milyen funkciók lettek hozzáadva egy adott modellhez, tekintse meg a featurizáció átláthatóságát.
Az Azure Machine Tanulás felhasználói felületén a modell oldalán megtekintheti az adott modell betanításakor használt hiperparamétereket, valamint megtekintheti és testre szabhatja a belső modell betanítási kódját.
Modellek regisztrálása és üzembe helyezése
Miután tesztelt egy modellt, és megerősítette, hogy éles környezetben szeretné használni, regisztrálhatja későbbi használatra.
Tipp.
Regisztrált modellek esetén az egykattintásos üzembe helyezés az Azure Machine Tanulás Studióban érhető el. Megtudhatja , hogyan helyezhet üzembe regisztrált modelleket a stúdióból.
AutoML folyamatokban
Az AutoML MLOps-munkafolyamatokban való használatához hozzáadhat AutoML-feladatlépéseket az Azure Machine Tanulás-folyamatokhoz. Ez lehetővé teszi a teljes munkafolyamat automatizálását azáltal, hogy csatlakoztatja az adat-előkészítési szkripteket az AutoML-hez, majd regisztrálja és érvényesíti az eredményül kapott legjobb modellt.
Az alábbiakban egy AutoML-besorolási összetevőt és egy parancsösszetevőt tartalmazó mintafolyamat látható, amely az eredményként kapott AutoML-kimenetet jeleníti meg. Figyelje meg, hogy a bemenetek (betanítási és érvényesítési adatok) és a kimenetek (a legjobb modell) különböző lépésekben vannak hivatkozva.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
Az AutoML folyamatba való belefoglalására vonatkozó további példákért tekintse meg a példák adattárát.
AutoML nagy méretekben: elosztott betanítás
Nagy adatforgatókönyvek esetén az AutoML támogatja az elosztott betanítást korlátozott modellek esetén:
Elosztott algoritmus | Támogatott tevékenységek | Adatméretkorlát (hozzávetőleges) |
---|---|---|
LightGBM | Besorolás, regresszió | 1 TB |
TCNForecaster | Előrejelzés | 200 GB |
Az elosztott betanítási algoritmusok automatikusan particionálják és terjesztik az adatokat több számítási csomóponton a modell betanítása érdekében.
Feljegyzés
Az elosztott betanítási módban jelenleg nem támogatott a keresztérvényesítés, az együttes modellek, az ONNX-támogatás és a kódgenerálás. Emellett az AutoML olyan döntéseket is hozhat, mint a rendelkezésre álló featurálók és a részmintavételi adatok korlátozása az ellenőrzéshez, a magyarázhatósághoz és a modell kiértékeléshez.
Elosztott betanítás besoroláshoz és regresszióhoz
Az elosztott betanítás besoroláshoz vagy regresszióhoz való használatához be kell állítania a training_mode
feladatobjektum tulajdonságait és max_nodes
tulajdonságait.
Tulajdonság | Leírás |
---|---|
training_mode | Betanítási módot jelez; distributed vagy non_distributed . Alapértelmezett érték: non_distributed . |
max_nodes | Az egyes AutoML-próbaverziók betanításához használandó csomópontok száma. Ennek a beállításnak 4-nél nagyobbnak vagy egyenlőnek kell lennie. |
Az alábbi kódminta egy besorolási feladat alábbi beállításait mutatja be:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
Feljegyzés
A besorolási és regressziós feladatok elosztott betanítása jelenleg nem támogatja több egyidejű próbaverziót. A modellkísérletek csomópontok használatával max_nodes
egymás után hajtják végre az egyes próbaidőszakokat. A max_concurrent_trials
korlátbeállítás jelenleg figyelmen kívül van hagyva.
Elosztott betanítás előrejelzéshez
Ha szeretné megtudni, hogyan működik az elosztott betanítás az előrejelzési feladatokhoz, tekintse meg a nagy léptékű előrejelzési cikkünket. Ha elosztott betanítást szeretne használni az előrejelzéshez, be kell állítania a training_mode
enable_dnn_training
max_nodes
feladatobjektum tulajdonságait és max_concurrent_trials
tulajdonságait.
Tulajdonság | Leírás |
---|---|
training_mode | Betanítási módot jelez; distributed vagy non_distributed . Alapértelmezett érték: non_distributed . |
enable_dnn_training | Jelölő a mély neurális hálózati modellek engedélyezéséhez. |
max_concurrent_trials | Ez a párhuzamos betanított próbamodellek maximális száma. Alapértelmezett érték: 1. |
max_nodes | A betanításhoz használandó csomópontok teljes száma. Ennek a beállításnak 2-nél nagyobbnak vagy egyenlőnek kell lennie. Az előrejelzési feladatokhoz az egyes próbamodelleket $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$ csomópontokkal tanítjuk be. |
Az alábbi kódminta egy előrejelzési feladat alábbi beállításait mutatja be:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
A teljes konfigurációs kód mintáit a konfigurációról és a feladatok beküldéséről szóló korábbi szakaszokban találja.
Következő lépések
- További információ a modell üzembe helyezésének módjáról és módjáról.
- További információ az AutoML beállításáról egy idősorozat-előrejelzési modell betanításához.