Sdílet prostřednictvím


Rozhraní příkazového řádku (v2) Schéma YAML automatizované klasifikace textu ML

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, , errorcritical 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_algorithmpovinné) 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, , httpswasbs, 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

Další kroky