Nastavení trénování AutoML pro tabulková data pomocí azure Machine Učení CLI a sady Python SDK
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
V této příručce se naučíte nastavit automatizované strojové učení, AutoML a trénovací úlohu pomocí sady Azure Machine Učení Python SDK v2. Automatizované strojové učení pro vás vybere algoritmus a hyperparametry a vygeneruje model připravený k nasazení. Tato příručka obsahuje podrobnosti o různých možnostech, které můžete použít ke konfiguraci experimentů automatizovaného strojového učení.
Pokud dáváte přednost prostředí bez kódu, můžete také nastavit trénování AutoML bez kódu v studio Azure Machine Learning.
Požadavky
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Učení.
- Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, můžete podle pokynů v článku Vytvoření prostředků začít .
Pokud chcete použít informace o sadě SDK, nainstalujte sadu Azure Machine Učení SDK v2 pro Python.
Pokud chcete nainstalovat sadu SDK, kterou můžete provést,
- Vytvořte výpočetní instanci, která už má nainstalovanou nejnovější sadu Azure Machine Učení Python SDK a je předem nakonfigurovaná pro pracovní postupy ML. Další informace najdete v tématu Vytvoření výpočetní instance azure Učení.
- Instalace sady SDK na místní počítač
Nastavení pracovního prostoru
Pokud se chcete připojit k pracovnímu prostoru, musíte zadat předplatné, skupinu prostředků a název pracovního prostoru.
Podrobnosti pracovního prostoru slouží k MLClient
azure.ai.ml
získání popisovače požadovaného pracovního prostoru Azure Machine Učení.
V následujícím příkladu se používá výchozí ověřování Azure spolu s výchozí konfigurací pracovního prostoru nebo z libovolného config.json
souboru, který jste mohli zkopírovat do struktury složek. Pokud se nenajde, config.json
musíte při vytváření MLClient
ručně zavést subscription_id, resource_group a pracovní prostor .
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)
Zdroj a formát dat
Abyste mohli poskytovat trénovací data pro AutoML v sadě SDK v2, musíte je nahrát do cloudu prostřednictvím tabulky MLTable.
Požadavky na načtení dat do tabulky MLTable:
- Data musí být v tabulkové podobě.
- Hodnota, která se má předpovědět, cílový sloupec, musí být v datech.
Trénovací data musí být přístupná ze vzdáleného výpočetního prostředí. Automatizované strojové učení v2 (Python SDK a CLI/YAML) přijímá datové prostředky MLTable (v2), i když kvůli zpětné kompatibilitě podporuje tabulkové datové sady v1 z v1 (registrovaná tabulková datová sada) prostřednictvím stejných vstupních vlastností datové sady. Doporučujeme však použít tabulku MLTable dostupnou ve verzi 2. V tomto příkladu předpokládáme, že data jsou uložená v místní cestě. ./train_data/bank_marketing_train_data.csv
Tabulku MLTable můžete vytvořit pomocí sady MLtable Python SDK , jak je znázorněno v následujícím příkladu:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
Tento kód vytvoří nový soubor, ./train_data/MLTable
který obsahuje formát souboru a pokyny k načtení.
Nyní složka ./train_data
obsahuje definiční soubor MLTable a datový soubor, bank_marketing_train_data.csv
.
Další informace o MLTable najdete v článku s postupy pro mltable .
Trénování, ověřování a testování dat
Můžete zadat samostatná trénovací data a sady ověřovacích dat, ale trénovací data musí být zadána training_data
parametru ve funkci továrny vaší automatizované úlohy ML.
Pokud explicitně nezadáte validation_data
parametr nebo n_cross_validation
parametr, automatizované strojové učení použije výchozí techniky k určení způsobu provedení ověření. Toto určení závisí na počtu řádků v datové sadě přiřazené k vašemu training_data
parametru.
Velikost trénovacích dat | Technika ověřování |
---|---|
Větší než 20 000 řádků | Použije se rozdělení dat trénování/ověření. Výchozí hodnota je 10 % počáteční trénovací sady dat jako ověřovací sady. Tato ověřovací sada se pak používá pro výpočet metrik. |
Menší než nebo rovno 20 000 řádků | Použije se přístup křížového ověřování. Výchozí počet záhybů závisí na počtu řádků. Pokud je datová sada menší než 1 000 řádků, použije se 10 složených záhybů. Pokud jsou řádky rovny 1 000 až 20 000, použijí se tři záhyby. |
Výpočetní prostředí pro spuštění experimentu
Automatizované úlohy STROJOVÉho učení se sadou Python SDK v2 (nebo CLI v2) se v současné době podporují jenom na počítačích Azure Učení vzdálených výpočetních prostředků (clusteru nebo výpočetní instance).
Přečtěte si další informace o vytváření výpočetních prostředků pomocí PythonU SDKv2 (nebo CLIv2).
Konfigurace nastavení experimentu
Existuje několik možností, které můžete použít ke konfiguraci experimentu automatizovaného strojového učení. Tyto parametry konfigurace jsou nastavené ve vaší metodě úlohy. Pomocí nastavení a nastavení můžete také nastavit nastavení trénování úloh a limits
ukončit kritériatraining
.
Následující příklad ukazuje požadované parametry pro úlohu klasifikace, která určuje přesnost jako primární metriku a 5 křížových ověření přeložení.
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
)
Vyberte typ úlohy strojového učení (problém ml).
Než budete moct odeslat automatizovanou úlohu ML, musíte určit typ problému strojového učení, který řešíte. Tento problém určuje, jakou funkci vaše automatizovaná úloha ML používá a jaké algoritmy modelu se použijí.
Automatizované strojové učení podporuje úlohy založené na tabulkových datech (klasifikace, regrese, prognózování), úlohy počítačového zpracování obrazu (například klasifikace obrázků a rozpoznávání objektů) a úlohy zpracování přirozeného jazyka (například klasifikace textu a úlohy rozpoznávání entit). Další informace najdete v našem článku o typech úkolů. Další podrobnosti o nastavení úloh prognózování najdete v našem průvodci prognózováním časových řad.
Podporované algoritmy
Automatizované strojové učení zkouší různé modely a algoritmy během procesu automatizace a ladění. Jako uživatel nemusíte zadávat algoritmus.
Metoda úlohy určuje seznam algoritmů/modelů, které se mají použít. allowed_training_algorithms
Pomocí parametrů blocked_training_algorithms
v training
konfiguraci úlohy AutoML můžete dále upravit iterace s dostupnými modely, které chcete zahrnout nebo vyloučit.
V následujícím seznamu odkazů můžete prozkoumat podporované algoritmy pro jednotlivé úlohy strojového učení uvedené níže.
Klasifikace | Regrese | Prognózování časové řady |
---|---|---|
Logistická regrese* | Elastic Net* | AutoARIMA |
Light GBM* | Light GBM* | Prorok |
Zvýšení přechodu* | Zvýšení přechodu* | Elastic Net |
Rozhodovací strom* | Rozhodovací strom* | Light GBM |
K Nejbližší sousedé* | K Nejbližší sousedé* | K Nearest Neighbors |
Lineární SVC* | Laso LARS* | Rozhodovací strom |
Klasifikace vektorů podpory (SVC)* | Stochastický gradientní sestup (SGD)* | Arimax |
Náhodná doménová struktura* | Náhodná doménová struktura | Laso LARS |
Extrémně randomizované stromy* | Extrémně randomizované stromy* | Extrémně randomizované stromy* |
Xgboost* | Xgboost* | Náhodná doménová struktura |
Naive Bayes* | Xgboost | TCNForecaster |
Stochastický gradientní sestup (SGD)* | Stochastický gradientní sestup (SGD) | Zvýšení přechodu |
ExponentialSmoothing | ||
Sezónnínaive | ||
Průměr | ||
Naive | ||
Sezónní průměr |
S dalšími algoritmy níže.
- Algoritmy klasifikace obrázků s více třídami
- Algoritmy klasifikace obrázků s více popisky
- Algoritmy detekce objektů obrázků
- Algoritmy více popisků klasifikace textu NLP
- Algoritmy NER (Text Named Entity Recognition) nLP
Použijte tento odkaz , například poznámkové bloky jednotlivých typů úkolů.
Primární metrika
Parametr primary_metric
určuje metriku, která se má použít během trénování modelu pro optimalizaci. Dostupné metriky, které můžete vybrat, jsou určeny typem úkolu, který zvolíte.
Výběr primární metriky pro automatizované strojové učení k optimalizaci závisí na mnoha faktorech. Doporučujeme, abyste zvolili metriku, která nejlépe reprezentuje vaše obchodní potřeby. Pak zvažte, jestli je metrika vhodná pro váš profil datové sady (velikost dat, rozsah, distribuce tříd atd.). Následující části shrnují doporučené primární metriky na základě typu úlohy a obchodního scénáře.
Seznamte se s konkrétními definicemi těchto metrik v tématu Vysvětlení výsledků automatizovaného strojového učení.
Metriky pro scénáře klasifikace s více třídami
Tyto metriky platí pro všechny scénáře klasifikace, včetně tabulkových dat, obrázků/ počítačového zpracování obrazu a NLP-Text.
Metriky závislé na prahových hodnotách, jako accuracy
například , recall_score_weighted
norm_macro_recall
a precision_score_weighted
nemusí se optimalizovat ani pro datové sady, které jsou malé, mají nerovnoměrnou distribuci velkých tříd (nevyváženost tříd) nebo pokud je očekávaná hodnota metriky velmi blízko 0,0 nebo 1.0. V takových případech AUC_weighted
může být lepší volbou pro primární metriku. Po dokončení automatizovaného strojového učení si můžete vybrat vítězný model na základě metriky, která nejlépe vyhovuje vašim obchodním potřebám.
Metrika | Příklady případů použití |
---|---|
accuracy |
Klasifikace obrázků, analýza mínění, predikce četnosti změn |
AUC_weighted |
Detekce podvodů, klasifikace obrázků, detekce anomálií / detekce spamu |
average_precision_score_weighted |
Analýza postoje |
norm_macro_recall |
Předpověď četnosti změn |
precision_score_weighted |
Metriky pro scénáře klasifikace s více popisky
Pro klasifikaci textu je aktuálně podporována pouze primární metrika s více popisky.
U více popisků klasifikace obrázků jsou v výčtu ClassificationMultilabelPrimaryMetrics definovány primární metriky.
Metriky pro scénáře NLP Text NER (rozpoznávání pojmenovaných entit)
- Pro NLP Text NER (pojmenované rozpoznávání entit) je aktuálně "Přesnost" jedinou podporovanou primární metrikou.
Metriky pro scénáře regrese
r2_score
normalized_mean_absolute_error
a normalized_root_mean_squared_error
snaží se minimalizovat chyby předpovědi. r2_score
a normalized_root_mean_squared_error
zároveň minimalizují průměrné kvadratické chyby, zatímco normalized_mean_absolute_error
minimalizují průměrnou absolutní hodnotu chyb. Absolutní hodnota zpracovává chyby ve všech velikostech stejně a kvadratické chyby budou mít mnohem větší trest za chyby s většími absolutními hodnotami. V závislosti na tom, zda by větší chyby měly být potrestány více nebo ne, můžete se rozhodnout optimalizovat kvadratické chyby nebo absolutní chybu.
Hlavní rozdíl mezi r2_score
a normalized_root_mean_squared_error
je způsob, jakým jsou normalizovány a jejich významy. normalized_root_mean_squared_error
je odmocněná střední kvadratická chyba normalizována podle rozsahu a lze ji interpretovat jako průměrnou velikost chyby pro předpověď. r2_score
je střední kvadratická chyba normalizována odhadem odchylky dat. Jedná se o poměr variant, který může model zachytit.
Poznámka:
r2_score
a normalized_root_mean_squared_error
také se chovají podobně jako primární metriky. Pokud se použije pevná ověřovací sada, tyto dvě metriky optimalizují stejný cíl, střední kvadratická chyba a budou optimalizovány stejným modelem. Pokud je k dispozici pouze trénovací sada a použije se křížové ověření, bude se mírně lišit, protože normalizátor normalized_root_mean_squared_error
pro je pevně nastaven jako rozsah trénovací sady, ale normalizátor pro r2_score
každé záhyby se bude lišit, protože se jedná o odchylku pro každou složenou záhybu.
Pokud je pořadí místo přesné hodnoty zajímavé, může být lepší volbou, spearman_correlation
protože měří korelaci pořadí mezi skutečnými hodnotami a předpověďmi.
AutoML v současné době nepodporuje žádné primární metriky, které měří relativní rozdíl mezi předpověďmi a pozorováními. Metriky r2_score
a normalized_mean_absolute_error
normalized_root_mean_squared_error
všechny míry absolutního rozdílu. Pokud se například předpověď liší od pozorování o 10 jednotek, tyto metriky počítají stejnou hodnotu, pokud je pozorování 20 jednotek nebo 20 000 jednotek. Naproti tomu procentuální rozdíl, což je relativní míra, poskytuje chyby 50 % a 0,05 %, v uvedeném pořadí! Pokud chcete optimalizovat relativní rozdíl, můžete spustit AutoML s podporovanou primární metrikou a pak vybrat model s nejlepším mean_absolute_percentage_error
nebo root_mean_squared_log_error
. Mějte na paměti, že tyto metriky nejsou definovány, pokud jsou jakékoli hodnoty pozorování nulové, takže nemusí být vždy dobrou volbou.
Metrika | Příklady případů použití |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Predikce ceny (house/product/tip), predikce skóre recenze |
r2_score |
Zpoždění letecké společnosti, odhad platu, doba řešení chyb |
normalized_mean_absolute_error |
Metriky pro scénáře prognózování časových řad
Doporučení jsou podobná doporučením, která jsou uvedena pro regresní scénáře.
Metrika | Příklady případů použití |
---|---|
normalized_root_mean_squared_error |
Predikce cen (prognózování), optimalizace zásob, prognóza poptávky |
r2_score |
Predikce cen (prognózování), optimalizace zásob, prognóza poptávky |
normalized_mean_absolute_error |
Metriky pro scénáře detekce objektů obrázků
- Pro rozpoznávání objektů obrázků jsou v výčtu ObjectDetectionPrimaryMetrics definovány primární metriky.
Metriky pro scénáře segmentace instance image
- V případě scénářů segmentace instancí imagí jsou v výčtu InstanceSegmentationPrimaryMetrics definovány primární metriky.
Featurizace dat
V každém automatizovaném experimentu ML se vaše data automaticky transformují na čísla a vektory čísel a také se škálují a normalizují, aby pomohly algoritmům citlivým na funkce, které jsou na různých škálách. Tyto transformace dat se nazývají featurizace.
Poznámka:
Kroky automatického featurizace strojového učení (normalizace funkcí, zpracování chybějících dat, převod textu na číselný atd.) se stanou součástí základního modelu. Při použití modelu pro předpovědi se na vstupní data automaticky použijí stejné kroky featurizace použité během trénování.
Při konfiguraci automatizovaných úloh ML můžete nastavení povolit nebo zakázat featurization
.
Následující tabulka uvádí přijatá nastavení pro featurizaci.
Konfigurace featurizace | Popis |
---|---|
"mode": 'auto' |
Označuje, že jako součást předběžného zpracování se automaticky provádějí ochranné mantinely dat a kroky featurizace. Výchozí nastavení |
"mode": 'off' |
Označuje, že krok featurizace by neměl být proveden automaticky. |
"mode": 'custom' |
Označuje, že se má použít přizpůsobený krok featurizace. |
Následující kód ukazuje, jak se dá v tomto případě poskytnout vlastní featurizace pro regresní úlohu.
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"},
)
Kritéria ukončení
Ve funkci můžete definovat set_limits()
několik možností, které před dokončením úlohy ukončí experiment.
Kritéria | description |
---|---|
Žádná kritéria | Pokud nedefinujete žádné výstupní parametry, experiment pokračuje, dokud se neprovedou žádné další pokroky v primární metrice. |
timeout |
Definuje, jak dlouho má experiment v minutách běžet. Pokud není zadaný, celkový časový limit výchozí úlohy je 6 dnů (8 640 minut). Pokud chcete zadat časový limit menší než nebo rovnou 1 hodině (60 minut), ujistěte se, že velikost datové sady není větší než 10 000 000 (sloupec s časy řádků) nebo chybové výsledky. Tento časový limit zahrnuje spuštění nastavení, featurizace a trénování, ale nezahrnuje spuštění pro přeskakování a vysvětlení modelu na konci procesu, protože tyto akce musí proběhnout, jakmile se dokončí všechny zkušební verze (podřízené úlohy). |
trial_timeout_minutes |
Maximální doba v minutách, po kterou může každá zkušební verze (podřízená úloha) běžet před ukončením. Pokud není zadáno, použije se hodnota 1 měsíc nebo 43200 minut. |
enable_early_termination |
Zda se má úloha ukončit, pokud se skóre v krátkodobém horizontu nezlepšuje |
max_trials |
Maximální počet pokusů/spuštění každého s jinou kombinací algoritmu a hyper-parametrů, které se mají vyzkoušet během úlohy AutoML. Pokud není zadáno, výchozí hodnota je 1000 zkušebních verzí. Pokud použijete enable_early_termination počet použitých pokusů, může být menší. |
max_concurrent_trials |
Představuje maximální počet pokusů (podřízených úloh), které by se spouštěly paralelně. Je vhodné toto číslo shodovat s počtem uzlů, které cluster používá. |
Spuštění experimentu
Poznámka:
Pokud spustíte experiment se stejným nastavením konfigurace a primární metrikou vícekrát, pravděpodobně se v každém experimentu zobrazí konečné skóre metrik a vygenerované modely. Algoritmy automatizovaného strojového učení mají vlastní náhodnost, která může způsobit mírné variace výstupu modelů experimentem a konečné skóre metrik doporučeného modelu, jako je přesnost. Pravděpodobně uvidíte také výsledky se stejným názvem modelu, ale použije se různé hyperparametry.
Upozorňující
Pokud jste v pracovním prostoru nastavili pravidla v bráně firewall nebo skupině zabezpečení sítě, ověřte, že jsou požadovaná oprávnění udělena příchozím a odchozím síťovým přenosům podle definice v části Konfigurace příchozího a odchozího síťového provozu.
Odešlete experiment, aby se spustil a vygeneroval model. MLClient
Po vytvoření v požadavcích můžete v pracovním prostoru spustit následující příkaz.
# 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
Více podřízených spuštění v clusterech
Spuštění podřízeného experimentu automatizovaného strojového učení je možné provést v clusteru, na kterém už běží jiný experiment. Načasování ale závisí na tom, kolik uzlů má cluster a jestli jsou tyto uzly k dispozici ke spuštění jiného experimentu.
Každý uzel v clusteru funguje jako jednotlivý virtuální počítač, který dokáže provést jeden trénovací běh; pro automatizované strojové učení to znamená podřízené spuštění. Pokud jsou všechny uzly zaneprázdněné, zařadí se do fronty nový experiment. Pokud ale existují bezplatné uzly, nový experiment spustí automatizované podřízené běhy ML paralelně v dostupných uzlech nebo virtuálních počítačích.
Pokud chcete pomoct se správou podřízených spuštění a jejich provedením, doporučujeme vytvořit vyhrazený cluster na experiment a shodovat počet experimentů max_concurrent_iterations
s počtem uzlů v clusteru. Tímto způsobem použijete všechny uzly clusteru současně s počtem souběžných podřízených spuštění nebo iterací, které chcete.
Nakonfigurujte max_concurrent_iterations
v limits
konfiguraci. Pokud není nakonfigurovaná, je ve výchozím nastavení povolená pouze jedna souběžná podřízená spuštění nebo iterace pro každý experiment.
V případě výpočetní instance je možné nastavit stejnou max_concurrent_trials
hodnotu jako počet jader na virtuálním počítači výpočetní instance.
Prozkoumání modelů a metrik
Automatizované strojové učení nabízí možnosti, jak monitorovat a vyhodnocovat výsledky trénování.
Definice a příklady výkonnostních grafů a metrik poskytovaných pro každé spuštění najdete v tématu Vyhodnocení výsledků experimentů automatizovaného strojového učení.
Pokud chcete získat souhrn featurizace a pochopit, jaké funkce byly přidány do konkrétního modelu, podívejte se na transparentnost featurizace.
Na stránce modelu můžete na stránce azure Machine Učení UI zobrazit také hyperparametry používané při trénování konkrétního modelu a také zobrazit a přizpůsobit použitý trénovací kód interního modelu.
Registrace a nasazení modelů
Jakmile model otestujete a potvrdíte, že ho chcete použít v produkčním prostředí, můžete ho zaregistrovat pro pozdější použití.
Tip
U registrovaných modelů je nasazení jedním kliknutím dostupné prostřednictvím studio Azure Machine Learning. Podívejte se, jak nasadit registrované modely ze studia.
AutoML v kanálech
Pokud chcete využít AutoML v pracovních postupech MLOps, můžete do svých kanálů azure machine Učení Pipelines přidat kroky úlohy AutoML. To vám umožní automatizovat celý pracovní postup propojením skriptů přípravy dat do AutoML a následnou registrací a ověřením výsledného nejlepšího modelu.
Níže je ukázkový kanál s komponentou klasifikace AutoML a komponentou příkazu, která zobrazuje výsledný výstup AutoML. Všimněte si, jak se na vstupy (trénovací a ověřovací data) a výstupy (nejlepší model) odkazují v různých krocích.
# 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
Další příklady, jak do kanálů zahrnout AutoML, najdete v našem úložišti příkladů.
AutoML ve velkém měřítku: distribuované trénování
V případě velkých datových scénářů podporuje AutoML distribuované trénování pro omezenou sadu modelů:
Distribuovaný algoritmus | Podporované úkoly | Limit velikosti dat (přibližný) |
---|---|---|
LightGBM | Klasifikace, regrese | 1 TB |
TCNForecaster | Prognostika | 200 GB |
Distribuované trénovací algoritmy automaticky rozdělují a distribuují vaše data napříč několika výpočetními uzly pro trénování modelu.
Poznámka:
V distribuovaném trénovacím režimu se v současné době nepodporují křížové ověřování, modely souborů, podpora ONNX a generování kódu. AutoML může také provádět volby, jako je omezení dostupných featurizátorů a dat dílčího vzorkování používaných k ověření, vysvětlitelnosti a vyhodnocení modelu.
Distribuované trénování pro klasifikaci a regresi
Pokud chcete použít distribuované trénování pro klasifikaci nebo regresi, musíte nastavit training_mode
a max_nodes
vlastnosti objektu úlohy.
Vlastnost | Popis |
---|---|
training_mode | Označuje režim trénování; distributed nebo non_distributed . Výchozí hodnota non_distributed je . |
max_nodes | Početuzlůch Toto nastavení musí být větší nebo rovno 4. |
Následující ukázka kódu ukazuje příklad těchto nastavení pro úlohu klasifikace:
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
)
Poznámka:
Distribuované trénování pro úlohy klasifikace a regrese v současné době nepodporuje více souběžných pokusů. Zkušební verze modelu se spouštějí postupně s každou zkušební verzí pomocí max_nodes
uzlů. Nastavení limitu max_concurrent_trials
je aktuálně ignorováno.
Distribuované trénování pro prognózování
Informace o tom, jak distribuované trénování funguje pro úlohy prognózování, najdete v článku o prognózách ve velkém měřítku . Pokud chcete použít distribuované trénování pro prognózování, musíte nastavit training_mode
enable_dnn_training
max_nodes
, a volitelně max_concurrent_trials
vlastnosti objektu úlohy.
Vlastnost | Popis |
---|---|
training_mode | Označuje režim trénování; distributed nebo non_distributed . Výchozí hodnota non_distributed je . |
enable_dnn_training | Označení příznakem pro povolení modelů hluboké neurální sítě |
max_concurrent_trials | Toto je maximální počet zkušebních modelů pro paralelní trénování. Výchozí hodnota je 1. |
max_nodes | Celkový počet uzlů, které se mají použít pro trénování. Toto nastavení musí být větší nebo rovno 2. U úloh prognózování se každý zkušební model vytrénuje pomocí uzlů $\text{max}\left(2; \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$. |
Následující ukázka kódu ukazuje příklad těchto nastavení pro úlohu prognózování:
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
)
Ukázky úplného konfiguračního kódu najdete v předchozích částech o konfiguraci a odeslání úlohy.
Další kroky
- Přečtěte si další informace o tom, jak a kde nasadit model.
- Přečtěte si další informace o tom, jak nastavit AutoML pro trénování modelu prognózování časových řad.