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í)
Poznámka:
Syntaxe YAML podrobná v tomto dokumentu je založená na schématu JSON pro nejnovější verzi rozšíření ML CLI v2. Tato syntaxe je zaručena pouze pro práci s nejnovější verzí rozšíření ML CLI v2. Schémata pro starší verze rozšíření najdete na adrese https://azuremlschemasprod.azureedge.net/.
Každá entita Azure Machine Learning má reprezentaci YAML s schématem. Novou entitu můžete vytvořit z konfiguračního souboru YAML s příponou nebo .yml
příponou.yaml
.
Tento článek obsahuje referenční informace o některých konceptech syntaxe, se kterými se setkáte při konfiguraci těchto souborů YAML pro úlohy s více popisky klasifikace textu NLP.
Zdrojové schéma JSON najdete na adrese https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLNLPTextClassificationMultilabelJob.schema.json
Syntaxe YAML
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
$schema |
řetězec | Představuje umístění/adresu URL pro načtení schématu YAML. Pokud uživatel používá rozšíření Azure Machine Learning VS Code k vytvoření souboru YAML, včetně $schema v horní části souboru, umožní uživateli vyvolat schéma a dokončování prostředků. |
||
type |
Const | Povinný: Typ úlohy. | automl |
automl |
task |
Const | Povinný: Typ úlohy AutoML. Popis úlohy pro klasifikaci multilabelu: Existuje několik možných tříd a každý vzorek může být přiřazen libovolný počet tříd. Úkolem je předpovědět všechny třídy pro každou ukázku. Například klasifikace filmového skriptu jako "Comedy" nebo "Romantic" nebo "Comedy and Romantic". |
text_classification_multilabel |
|
name |
řetězec | Název úlohy. Musí být jedinečný pro všechny úlohy v pracovním prostoru. Pokud tento parametr vynecháte, Azure Machine Learning automaticky vygeneruje identifikátor GUID pro název. | ||
display_name |
řetězec | Zobrazovaný název úlohy v uživatelském rozhraní studia V rámci pracovního prostoru může být ne jedinečné. Pokud tento parametr vynecháte, Azure Machine Learning automaticky vygeneruje identifikátor jmenného jména čitelného člověka pro zobrazovaný název. | ||
experiment_name |
řetězec | Název experimentu pro uspořádání úlohy v části Záznam spuštění každé úlohy se uspořádá pod odpovídajícím experimentem na kartě Experimenty v sadě Studio. Pokud tento parametr vynecháte, Azure Machine Learning ho ve výchozím nastavení nastaví na název pracovního adresáře, ve kterém byla úloha vytvořena. | ||
description |
řetězec | Popis úlohy | ||
tags |
objekt | Slovník značek pro úlohu | ||
compute |
řetězec | Název cílového výpočetního objektu pro spuštění úlohy Pro odkaz na existující výpočetní prostředky v pracovním prostoru používáme syntaxi: azureml:<compute_name> |
||
log_verbosity |
Číslo | Různé úrovně podrobností protokolu |
not_set , debug , info , warning , , error critical |
info |
primary_metric |
řetězec | Metrika, kterou AutoML optimalizuje pro výběr modelu. | accuracy |
accuracy |
target_column_name |
řetězec | Povinný: Název sloupce, který se má cílit na předpovědi. Musí být vždy zadán. Tento parametr platí pro training_data a validation_data . |
||
training_data |
objekt | Povinný: Data, která se mají použít v rámci úlohy. Další podrobnosti najdete v části s více popisky. | ||
validation_data |
objekt | Povinný: Ověřovací data, která se mají použít v rámci úlohy. Měla by být konzistentní s trénovacími daty z hlediska sady sloupců, datového typu pro každý sloupec, pořadí sloupců zleva doprava a alespoň dvou jedinečných popisků. Poznámka: Názvy sloupců v rámci každé datové sady by měly být jedinečné. Další informace najdete v části ověření dat. |
||
limits |
objekt | Slovník omezujících konfigurací úlohy Parametry v této části: max_concurrent_trials , max_nodes , max_trials , timeout_minutes , . trial_timeout_minutes Podrobnosti najdete v omezeních . |
||
training_parameters |
objekt | Slovník obsahující parametry trénování pro úlohu. Podrobnosti najdete v podporovaných hyperparametrech . Poznámka: Hyperparametry nastavené v training_parameters sadě jsou pevné napříč všemi zametacími běhy, a proto není nutné je zahrnout do vyhledávacího prostoru. |
||
sweep |
objekt | Slovník obsahující parametry úklidu pro úlohu. Má dva klíče ( sampling_algorithm povinné) a early_termination . Další informace najdete v částech ladění modelů a ladění hyperparametrů. |
||
search_space |
objekt | Slovník vyhledávacího prostoru hyperparametrů Klíč je název hyperparametru a hodnota je výraz parametru. Všechny parametry, které je možné opravit, training_parameters jsou zde podporovány (aby se místo toho přetáhly). Další podrobnosti najdete v podporovaných hyperparametrech . Existují dva typy hyperparametrů: - Diskrétní hyperparametry: Diskrétní hyperparametry se zadají mezi choice diskrétními hodnotami.
choice může být jedna nebo více hodnot oddělených čárkami, range objekt nebo libovolný list objekt. Pokročilé diskrétní hyperparametry lze také určit pomocí rozdělení - randint ,qlognormal , qnormal , , .quniform Další informace najdete v tomto oddílu. - Průběžné hyperparametry: Průběžné hyperparametry jsou určeny jako rozdělení v souvislém rozsahu hodnot. Aktuálně podporované distribuce jsou - lognormal , normal , loguniform , uniform . Další informace najdete v tomto oddílu. V části Výrazy parametrů najdete sadu možných výrazů, které se mají použít. |
||
outputs |
objekt | Slovník výstupních konfigurací úlohy Klíč je název výstupu v kontextu úlohy a hodnota je výstupní konfigurace. | ||
outputs.best_model |
objekt | Slovník výstupních konfigurací pro nejlepší model Další informace naleznete v tématu Nejlepší konfigurace výstupu modelu. |
Další syntaxe použitá v konfiguracích:
Omezení
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
max_concurrent_trials |
celočíselný | Představuje maximální počet pokusů (podřízených úloh), které by se spouštěly paralelně. | 1 |
|
max_trials |
celočíselný | Představuje maximální počet pokusů, které se úloha AutoML nlp může pokusit spustit trénovací algoritmus s různými kombinacemi hyperparametrů. | 1 |
|
timeout_minutes |
celočíselný | Představuje maximální dobu v minutách, po kterou může spuštění odeslané úlohy AutoML trvat . Po této operaci se úloha ukončí. Výchozí časový limit v úlohách AutoML NLP je 7 dní. | 10080 |
|
trial_timeout_minutes |
celočíselný | Představuje maximální dobu v minutách, po kterou může spuštění každé zkušební verze (podřízené úlohy) v odeslané úloze AutoML trvat. Potom se podřízená úloha ukončí. | ||
max_nodes |
celočíselný | Maximální počet uzlů z backingového výpočetního clusteru, který se má pro úlohu využít. | 1 |
Podporované hyperparametry
Následující tabulka popisuje hyperparametry, které autoML NLP podporuje.
Název parametru | Popis | Syntaxe |
---|---|---|
gradient_accumulation_steps | Počet zpětných operací, jejichž přechody se mají sečíst před provedením jednoho kroku gradientního sestupu zavoláním funkce kroku optimalizátoru. Používá se k použití efektivní velikosti dávky, která je gradient_accumulation_steps krát větší než maximální velikost, která odpovídá GPU. |
Musí to být kladné celé číslo. |
learning_rate | Počáteční rychlost učení. | Musí to být plovák v rozsahu (0, 1). |
learning_rate_scheduler | Typ plánovače rychlosti učení | Je nutné vybrat z linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup . |
model_name | Název jednoho z podporovaných modelů | Je nutné vybrat z bert_base_cased, bert_base_uncased, bert_base_multilingual_cased, bert_base_german_cased, bert_large_cased, bert_large_uncased, distilbert_base_cased, distilbert_base_uncased, roberta_base, roberta_large, distilroberta_base, xlm_roberta_base, xlm_roberta_large, xlnet_base_cased, xlnet_large_cased . |
number_of_epochs | Počet epoch trénování. | Musí to být kladné celé číslo. |
training_batch_size | Trénovací velikost dávky. | Musí to být kladné celé číslo. |
validation_batch_size | Velikost dávky ověření. | Musí to být kladné celé číslo. |
warmup_ratio | Poměr celkových trénovacích kroků používaných pro lineární teplo od 0 do learning_rate | Musí to být plovák v rozsahu [0, 1]. |
weight_decay | Hodnota hmotnosti se rozpadne, když je optimalizátor sgd, adam nebo adamw. | Musí to být plovák v rozsahu [0, 1]. |
Trénovací nebo ověřovací data
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
description |
řetězec | Podrobné informace, které popisují tato vstupní data. | ||
path |
řetězec | Cesta, ze které se mají načíst data. Cesta může být file cesta, folder cesta nebo pattern cesta.
pattern určuje vzor hledání, který umožňuje použití globbingu(* a ** ) souborů a složek obsahujících data. Podporované typy identifikátorů URI jsou azureml , , https wasbs , abfss , a adl . Další informace o tom, jak používat formát identifikátoru azureml:// URI, najdete v základní syntaxi yaml. Identifikátor URI umístění souboru artefaktu. Pokud tento identifikátor URI nemá schéma (například http:, azureml atd.), považuje se za místní odkaz a soubor, na který odkazuje, se nahraje do výchozího úložiště objektů blob pracovního prostoru při vytváření entity. |
||
mode |
řetězec | Mechanismus doručování datových sad | direct |
direct |
type |
Const | Aby bylo možné generovat modely nlp, musí uživatel přenést trénovací data ve formě tabulky MLTable. Další informace najdete v tématu Příprava dat. | mltable | mltable |
Nejlepší konfigurace výstupu modelu
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
type |
řetězec | Povinný: Typ nejlepšího modelu. AutoML umožňuje pouze modely mlflow. | mlflow_model |
mlflow_model |
path |
řetězec | Povinný: Identifikátor URI umístění, kde jsou uloženy soubory artefaktů modelu. Pokud tento identifikátor URI nemá schéma (například http:, azureml atd.), považuje se za místní odkaz a soubor, na který odkazuje, se nahraje do výchozího úložiště objektů blob pracovního prostoru při vytváření entity. | ||
storage_uri |
řetězec | Adresa URL protokolu HTTP modelu. Tuto adresu URL az storage copy -s THIS_URL -d DESTINATION_PATH --recursive použijte ke stažení dat. |
Poznámky
Tento az ml job
příkaz se dá použít ke správě úloh Azure Machine Learning.
Příklady
Příklady jsou k dispozici v příkladech v úložišti GitHub. Níže jsou propojeny příklady související s úlohami víceznačky klasifikace textu NLP.
YAML: Úloha multilabelu klasifikace textu AutoML
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-text-classification-multilabel-paper-cat
description: A text classification multilabel job using paper categorization data
compute: azureml:gpu-cluster
task: text_classification_multilabel
primary_metric: accuracy
log_verbosity: debug
limits:
timeout_minutes: 60
target_column_name: "terms"
training_data:
path: "./training-mltable-folder"
type: mltable
validation_data:
type: mltable
path: "./validation-mltable-folder"
# featurization:
# dataset_language: "eng"
YAML: Úloha víceznakového kanálu klasifikace textu AutoML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Text Classification Multilabel task
display_name: pipeline-with-text-classification-multilabel
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
text_classification_multilabel_training_data:
type: mltable
path: ./training-mltable-folder
text_classification_multilabel_validation_data:
type: mltable
path: ./validation-mltable-folder
jobs:
preprocessing_node:
type: command
component: file:./components/component_preprocessing.yaml
inputs:
train_data: ${{parent.inputs.text_classification_multilabel_training_data}}
validation_data: ${{parent.inputs.text_classification_multilabel_validation_data}}
outputs:
preprocessed_train_data:
type: mltable
preprocessed_validation_data:
type: mltable
text_classification_multilabel_node:
type: automl
task: text_classification_multilabel
log_verbosity: info
primary_metric: accuracy
limits:
max_trials: 1
timeout_minutes: 60
target_column_name: terms
training_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_train_data}}
validation_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_validation_data}}
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.text_classification_multilabel_node.outputs.best_model}}
model_base_name: paper_categorization_model