Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Rozšíření Azure CLI ml v2 (aktuální)
Python SDK azure-ai-ml v2 (aktuální)
V tomto článku se dozvíte, jak nastavit úlohu pro trénování AutoML pomocí sady SDK v2 pro Python pro Azure Machine Learning. AutoML za vás vybere algoritmus a hyperparametry a vygeneruje model připravený k nasazení. Tento článek obsahuje podrobnosti o různých možnostech, které můžete použít ke konfiguraci experimentů AutoML.
Pokud dáváte přednost prostředí bez kódu, můžete také nastavit trénování AutoML bez kódu pro tabulková data pomocí uživatelského rozhraní studia.
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 Learning.
- Pracovní prostor služby Azure Machine Learning. Pokud ho nemáte, přečtěte si článek Vytvoření prostředků, abyste mohli začít.
Pokud chcete použít informace o sadě SDK , nainstalujte sadu Azure Machine Learning SDK v2 pro Python.
Sadu SDK můžete nainstalovat dvěma způsoby:
- Vytvořte výpočetní instanci, která už obsahuje nejnovější sadu Azure Machine Learning Python SDK a je nakonfigurovaná pro pracovní postupy ML. Další informace najdete v tématu Vytvoření výpočetní instance služby Azure Machine Learning.
- Nainstalujte sadu 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 pracovní prostor.
Podrobnosti o pracovním prostoru zadejte do MLClient z azure.ai.ml, abyste se připojili k pracovnímu prostoru Azure Machine Learning.
Následující příklad používá výchozí ověřování Azure s výchozí konfigurací pracovního prostoru nebo konfigurací ze config.json souboru ve struktuře složek. Pokud nenajde žádné config.json, musíte při vytváření MLClient ručně zadat ID předplatného, skupinu prostředků a pracovní prostor.
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
from azure.ai.ml import MLClient
try:
credential = DefaultAzureCredential()
credential.get_token("https://management.azure.com/.default")
except Exception:
credential = InteractiveBrowserCredential()
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)
Zadání zdroje a formátu dat
Pokud chcete poskytnout trénovací data 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í. AutoML v2 (Python SDK a CLI/YAML) přijímá datové prostředky MLTable (v2). Kvůli zpětné kompatibilitě také podporuje tabulkové datové sady v1 z verze v1, tedy registrovanou tabulkovou datovou sadu, prostřednictvím stejných vlastností vstupní datové sady. Doporučujeme používat tabulku MLTable, která je dostupná ve verzi 2. V tomto příkladu jsou data uložena v místní cestě ./train_data/bank_marketing_train_data.csv.
MLTable můžete vytvořit pomocí sady SDK Pythonu pro MLTable, jak ukazuje následující příklad:
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í.
Složka ./train_data teď obsahuje definiční soubor MLTable a datový soubor bank_marketing_train_data.csv.
Další informace o tabulce MLTable najdete v tématu Práce s tabulkami ve službě Azure Machine Learning.
Trénování, ověřování a testování dat
Můžete zadat samostatná trénovací data a sady ověřovacích dat. Musíte poskytnout trénovací data parametru training_data ve funkci pro vytváření úlohy AutoML.
Pokud explicitně nezadáte validation_data parametr nebo n_cross_validation parametr, AutoML použije výchozí techniky k určení způsobu ověřování. 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ů | AutoML použije rozdělení trénovacích a ověřovacích dat. Výchozí hodnota má jako ověřovací sadu 10% počáteční trénovací sady dat. AutoML pak použije ověřovací sadu pro výpočet metrik. |
| Menší než nebo rovno 20 000 řádků | AutoML používá 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ů, AutoML používá deset složených řádků. Pokud jsou řádky rovny nebo mezi 1 000 a 20 000, použije AutoML tři záhyby. |
Výpočetní prostředí pro spuštění experimentu
Úlohy AutoML se sadou Python SDK v2 (nebo CLI v2) se v současné době podporují jenom ve vzdáleném výpočetním clusteru nebo výpočetní instanci služby Azure Machine Learning. Další informace o vytváření výpočetních prostředků pomocí PythonU SDKv2 nebo CLIv2 najdete v tématu trénování modelů pomocí azure Machine Learning CLI, sady SDK a rozhraní REST API.
Konfigurace nastavení experimentu
Ke konfiguraci experimentu AutoML můžete použít několik možností. Tyto parametry konfigurace jsou nastavené ve vaší metodě úlohy. Pomocí nastavení training a můžete také nastavit nastavení trénování úlohy a kritéria ukončení.
Následující příklad ukazuje požadované parametry pro klasifikační úlohu, která specifikuje přesnost jako primární metriku a pět foldů křížové validace.
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ýběr typu úlohy strojového učení
Než budete moct odeslat úlohu AutoML, určete typ problému strojového učení, který chcete vyřešit. Tento problém určuje, jakou funkci vaše úloha používá a jaké algoritmy modelu použije.
AutoML podporuje různé typy úloh:
Tabulkové úlohy založené na datech
- klasifikace
- regrese
- prognózování
Úlohy počítačového zpracování obrazu, včetně
- Klasifikace obrázků
- Rozpoznávání objektů
Úlohy zpracování přirozeného jazyka, včetně
- Klasifikace textu
- Rozpoznávání entit
Další informace najdete v tématu Typy úkolů. Další informace o nastavení úloh prognózování najdete v tématu Nastavení AutoML pro trénování modelu prognózování časových řad.
Podporované algoritmy
AutoML během procesu automatizace a ladění zkouší různé modely a algoritmy. Jako uživatel nemusíte zadávat algoritmus.
Metoda úlohy určuje seznam algoritmů nebo modelů, které se mají použít. Chcete-li dále upravit iterace a určit, které z dostupných modelů zahrnout nebo vyloučit, použijte v konfiguraci úlohy training parametry allowed_training_algorithms nebo blocked_training_algorithms.
V následující tabulce prozkoumejte podporované algoritmy na úlohu strojového učení.
S jinými algoritmy:
- Algoritmy klasifikace obrázků s více třídami
- Algoritmy klasifikace obrázků s více popisky
- Algoritmy detekce objektů obrázků
- Algoritmy pro víceštítkovou klasifikaci textu v NLP
- Algoritmy rozpoznávání pojmenovaných entit (NER) v textu
Příklady poznámkových bloků pro jednotlivé typy úloh viz automl-standalone-jobs.
Primární metrika
Parametr primary_metric určuje metriku, která se má použít během trénování modelu pro optimalizaci. Typ úkolu, který zvolíte, určuje metriky, které můžete vybrat.
Výběr primární metriky pro optimalizaci AutoML 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, včetně velikosti dat, rozsahu a distribuce tříd. Následující části shrnují doporučené primární metriky na základě typu úlohy a obchodního scénáře.
Informace o konkrétních definicích těchto metrik najdete v tématu vyhodnocení výsledků experimentu AutoML.
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ů nebo počítačového zpracování obrazu a textu pro zpracování přirozeného jazyka (NLP-Text).
Metriky závislé na prahové hodnotě, jako jsou accuracy, recall_score_weighted, norm_macro_recall a precision_score_weighted, se nemusejí optimalizovat tak dobře u datových sad, které jsou malé, mají výraznou nevyváženost tříd, nebo když 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í AutoML můžete zvolit 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 sentimentu, predikce odchodu zákazníků |
AUC_weighted |
Detekce podvodů, klasifikace obrázků, detekce anomálií / detekce spamu |
average_precision_score_weighted |
Analýza sentimentu |
norm_macro_recall |
Predikce odchodu zákazníků |
precision_score_weighted |
Metriky pro scénáře klasifikace s více štítky
Pro víceštítkovou klasifikaci textu je v současnosti jako primární metrika podporována pouze „Přesnost“.
Pro víceštítkovou klasifikaci obrázků jsou podporované primární metriky definovány ve výčtu ClassificationMultilabelPrimaryMetrics.
Metriky pro scénáře rozpoznávání pojmenovaných entit NLP
U textu NLP s názvem Rozpoznávání entit (NER) je aktuálně "Přesnost" jedinou podporovanou primární metrikou.
Metriky pro scénáře regrese
r2_score, normalized_mean_absolute_errora normalized_root_mean_squared_error všechny se snaží minimalizovat chyby predikce.
r2_score a normalized_root_mean_squared_error zároveň minimalizují průměrné kvadratické chyby a normalized_mean_absolute_error minimalizují průměrnou absolutní hodnotu chyb. Absolutní hodnota přistupuje k chybám bez ohledu na jejich velikost stejně, zatímco kvadratické chyby jsou při větších absolutních hodnotách penalizovány mnohem více. V závislosti na tom, jestli by větší chyby měly být potrestány více nebo ne, můžete zvolit optimalizaci kvadratické chyby nebo absolutní chyby.
Hlavním rozdílem mezi r2_score a normalized_root_mean_squared_error je to, jak jsou normalizovány a jejich významy.
normalized_root_mean_squared_error je odmocněná střední kvadratická chyba normalizovaná rozsahem a lze ji interpretovat jako průměrnou velikost chyby u předpovědi.
r2_score je střední kvadratická chyba normalizována odhadem odchylky dat. Jedná se o poměr variant, který model dokáže zachytit.
Poznámka:
r2_score a normalized_root_mean_squared_error také se chovají podobně jako primární metriky. Pokud se použije pevná validační sada, jsou tyto dvě metriky optimalizovány vůči stejnému cíli, tedy střední kvadratické chybě, a stejným modelem. Pokud je k dispozici pouze trénovací sada a použije se křížová validace, budou se mírně lišit, protože normalizátor pro normalized_root_mean_squared_error je pevně dán rozsahem trénovací sady, zatímco normalizátor pro r2_score se bude v každé části lišit, protože je určen rozptylem v dané části.
Pokud je pořadí místo přesné hodnoty zajímavé, spearman_correlation může být lepší volbou. 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 predikcemi a pozorováními. Metriky r2_scorea normalized_mean_absolute_errornormalized_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, který je relativní veličinou, udává chyby 50 % a 0,05 % v tomto 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. 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 (domu/produktu/spropitného), predikce hodnocení 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í se podobají doporučením 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 |
|
spearman_correlation |
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
Pro scénáře segmentace instancí obrázků jsou podporované primární metriky definovány ve výčtu InstanceSegmentationPrimaryMetrics.
Featurizace dat
V každém experimentu AutoML se vaše data automaticky transformují na čísla a vektory čísel. Data se také š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 featurizace AutoML, jako je normalizace funkcí, zpracování chybějících dat a převod textu na číselnou hodnotu, se stanou součástí podkladové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 úloh AutoML můžete povolit nebo zakázat featurization nastavení.
Následující tabulka uvádí přijatá nastavení pro featurizaci.
| Konfigurace featurizace | Popis |
|---|---|
"mode": 'auto' |
Označuje, že v rámci předběžného zpracování se kroky ochrany dat a featurizace provádějí automaticky. Tato hodnota je výchozím nastavením. |
"mode": 'off' |
Označuje, že krok featurizace by neměl být proveden automaticky. |
"mode": 'custom' |
Označuje, že byste měli použít přizpůsobený krok featurizace. |
Následující kód ukazuje, jak v tomto případě poskytnout vlastní featurizaci 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í
Před dokončením úlohy můžete ve set_limits() funkci definovat několik možností pro ukončení experimentu.
| Kritéria | popis |
|---|---|
| Žá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 šest dnů (8 640 minut). Chcete-li zadat časový limit kratší nebo rovný 1 hodině (60 minutám), ujistěte se, že velikost vaší datové sady není větší než 10 000 000 (počet řádků × počet sloupců), jinak dojde k chybě. Tento časový limit zahrnuje nastavení, featurizaci a trénovací běhy, ale nezahrnuje běhy ansámblování a vysvětlování modelu na konci procesu, protože tyto akce musí proběhnout až po dokončení všech pokusů (podřízených úloh). |
trial_timeout_minutes |
Maximální doba v minutách, po kterou může každý pokus (podřízená úloha) běžet, než bude ukončen. Pokud není zadáno, AutoML použije hodnotu 1 měsíc nebo 43200 minut. |
enable_early_termination |
Jestli 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í, z nichž každé používá jinou kombinaci algoritmu a hyperparametrů, které se mají v průběhu úlohy vyzkoušet. Pokud není zadáno, výchozí hodnota je 1 000 pokusů. Pokud použijete enable_early_termination, může AutoML použít méně zkušebních verzí. |
max_concurrent_trials |
Maximální počet pokusů (podřízených úloh), které by běžely paralelně. Je vhodné sladit toto číslo s počtem uzlů ve vašem clusteru. |
Spuštění experimentu
Odešlete experiment, aby se spustil a vygeneroval model.
Poznámka:
Pokud spustíte experiment se stejným nastavením konfigurace a primární metrikou vícekrát, může se zobrazit variace v konečném skóre metrik jednotlivých experimentů a vygenerovaných modelech. Algoritmy, které AutoML využívá, mají vlastní náhodnost, která může způsobit mírné odchylky ve výstupu modelů experimentem a konečné skóre metrik doporučeného modelu, jako je přesnost. Můžete také zobrazit výsledky se stejným názvem modelu, ale používají se různé hyperparametry.
Upozornění
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 definovaným v konfiguraci příchozího a odchozího síťového provozu.
S položkou MLClient, kterou jste vytvořili v části Požadavky, 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
Podřízené spuštění experimentu AutoML můžete spustit v clusteru, na kterém už běží jiný experiment. Načasování závisí na tom, kolik uzlů cluster má 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 AutoML to znamená podřízené spuštění. Pokud jsou všechny uzly zaneprázdněné, AutoML zařadí nový experiment do fronty. Pokud jsou k dispozici volné uzly, nový experiment spustí podřízená spuštění paralelně na dostupných uzlech nebo virtuálních počítačích.
Aby bylo možné lépe spravovat podřízená spuštění a určit, kdy se mohou spouštět, doporučujeme pro každý experiment vytvořit vyhrazený cluster a sladit počet max_concurrent_iterations vašeho experimentu 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í a iterací, které chcete.
Nakonfigurujte max_concurrent_iterations v konfiguraci limits. Pokud není nakonfigurováno, je ve výchozím nastavení pro každý experiment povoleno pouze jedno souběžné podřízené spuštění nebo iterace. U výpočetní instance můžete nastavit max_concurrent_trials stejnou hodnotu jako počet jader na virtuálním počítači výpočetní instance.
Prozkoumání modelů a metrik
AutoML 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ů experimentu AutoML.
V uživatelském rozhraní Azure Machine Learning na stránce modelu můžete zobrazit souhrn featurizace a pochopit, jaké funkce byly přidány do konkrétního modelu. Můžete také zobrazit hyperparametry použité při trénování konkrétního modelu a 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í.
Návod
U registrovaných modelů můžete použít nasazení jedním kliknutím pomocí studio Azure Machine Learning. Viz nasazení modelu.
Použití AutoML v pipelinech
Pokud chcete ve svých pracovních postupech operací strojového učení používat AutoML, můžete do kanálů Služby Azure Machine Learning přidat kroky úlohy AutoML. Tento přístup umožňuje automatizovat celý pracovní postup propojením skriptů pro přípravu dat do AutoML. Pak zaregistrujte a ověřte výsledný nejlepší model.
Tento kód je ukázkový kanál s komponentou klasifikace AutoML a komponentou příkazu, která zobrazuje výsledný výstup. Kód odkazuje na vstupy (trénovací a ověřovací data) a výstupy (nejlepší model) 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://registries/azureml/environments/sklearn-1.5/labels/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 úložišti příkladů.
Použití 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 také může 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
Chcete-li použít distribuované trénování pro klasifikaci nebo regresi, nastavte training_mode a max_nodes vlastnosti objektu úlohy.
| Vlastnost | Popis |
|---|---|
| tréninkový režim | Označuje režim trénování: distributed nebo non_distributed. Výchozí hodnota je non_distributed. |
| max_nodes | Počet uzlů použitých pro trénování v každém pokusu. 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:
Poznámka:
TabularTrainingMode je experimentální rozhraní API a může se kdykoli změnit.
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ů. Pokusy modelu probíhají sekvenčně, přičemž každý pokus používá 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 tématu prognózování ve velkém měřítku. Pokud chcete použít distribuované trénování pro prognózování, musíte nastavit training_modeenable_dnn_trainingmax_nodes, a volitelně max_concurrent_trials vlastnosti objektu úlohy.
| Vlastnost | Popis |
|---|---|
| tréninkový režim | Označuje režim trénování; distributed nebo non_distributed. Výchozí hodnota je non_distributed. |
| povolit_trénování_dnn | Příznak pro povolení modelů hlubokých neuronových sítí. |
| maximální_souběžné_pokusy | Tato hodnota je maximální počet zkušebních modelů, které se mají trénovat paralelně. 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.
Související obsah
- 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.