Aracılığıyla paylaş


CLI (v2) Otomatik ML metin sınıflandırması çok etiketli iş YAML şeması

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)

Not

Bu belgede ayrıntılı olarak yer alan YAML söz dizimi, ML CLI v2 uzantısının en son sürümü için JSON şemasını temel alır. Bu söz diziminin yalnızca ML CLI v2 uzantısının en son sürümüyle çalışması garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.

Her Azure Machine Learning varlığının şeması oluşturulmuş bir YAML gösterimi vardır. YAML yapılandırma dosyasından veya .yml uzantısıyla yeni bir .yaml varlık oluşturabilirsiniz.

Bu makalede, bu YAML dosyalarını NLP metin sınıflandırması çok etiketli işler için yapılandırırken karşılaşacağınız bazı söz dizimi kavramları için bir başvuru sağlanır.

Kaynak JSON şemasına şu konumdan ulaşabilirsiniz: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLNLPTextClassificationMultilabelJob.schema.json

YAML söz dizimi

Anahtar Türü Açıklama İzin verilen değerler Varsayılan değer
$schema Dize YAML şemasını yüklemek için konumu/URL'yi temsil eder. Kullanıcı YAML dosyasını yazmak için Azure Machine Learning VS Code uzantısını kullanıyorsa, dosyanın üst kısmı da dahil olmak üzere $schema kullanıcının şema ve kaynak tamamlamalarını çağırmasına olanak tanır.
type Const Gerekli. İşin türü. automl automl
task Const Gerekli. AutoML görevinin türü.
Çok etiketli sınıflandırma için görev açıklaması:
Birden çok olası sınıf vardır ve her örneğe herhangi bir sayıda sınıf atanabilir. Görev, her örnek için tüm sınıfları tahmin etmektir. Örneğin, bir film betiğini "Komedi", "Romantik" veya "Komedi ve Romantik" olarak sınıflandırma.
text_classification_multilabel
name Dize İşin adı. Çalışma alanı içindeki tüm işlerde benzersiz olmalıdır. Belirtilmezse, Azure Machine Learning ad için bir GUID'yi otomatik olarak oluşturur.
display_name Dize Stüdyo kullanıcı arabiriminde işin görünen adı. Çalışma alanı içinde benzersiz olmayabilir. Belirtilmezse, Azure Machine Learning görünen ad için insan tarafından okunabilen bir sıfat-isim tanımlayıcısını otomatik olarak oluşturur.
experiment_name Dize İşin düzenleyeceği deneme adı. Her işin çalıştırma kaydı, stüdyonun "Denemeler" sekmesinde ilgili deneme altında düzenlenir. Belirtilmezse, Azure Machine Learning bunu varsayılan olarak işin oluşturulduğu çalışma dizininin adı olarak belirler.
description Dize İşin açıklaması.
tags nesne İş için etiket sözlüğü.
compute Dize İşin yürütülecek işlem hedefinin adı. Çalışma alanında var olan bir hesaplamaya başvurmak için söz dizimini kullanırız: azureml:<compute_name>
log_verbosity Numara Farklı günlük ayrıntı düzeyleri. not_set, debug, info, , warning, error, critical info
primary_metric Dize AutoML'nin model seçimi için iyileştireceği ölçüm. accuracy accuracy
target_column_name Dize Gerekli. Tahminler için hedef kullanılacak sütunun adı. Her zaman belirtilmelidir. Bu parametre ve training_dataiçin validation_data geçerlidir.
training_data nesne Gerekli. İşin içinde kullanılacak veriler. Daha fazla ayrıntı için çoklu etiket bölümüne bakın.
validation_data nesne Gerekli. İşin içinde kullanılacak doğrulama verileri. Eğitim verileriyle sütun kümesi, her sütun için veri türü, soldan sağa sütunların sırası ve en az iki benzersiz etiket açısından tutarlı olmalıdır.
Not: Her veri kümesindeki sütun adları benzersiz olmalıdır. Daha fazla bilgi için veri doğrulama bölümüne bakın.
limits nesne İşin sınır yapılandırmaları sözlüğü. Bu bölümdeki parametreler: max_concurrent_trials, max_nodes, max_trials, timeout_minutes, trial_timeout_minutes. Ayrıntılar için bkz . sınırlar .
training_parameters nesne İş için eğitim parametrelerini içeren sözlük.
Ayrıntılı bilgi için desteklenen hiper parametrelere bakın.
Not: içinde training_parameters ayarlanan hiper parametreler tüm süpürme çalıştırmalarında sabitlenir ve bu nedenle arama alanına dahil edilmesi gerekmez.
sweep nesne İşin süpürme parametrelerini içeren sözlük. İki anahtarı vardır: sampling_algorithm (gerekli) ve early_termination. Daha fazla bilgi için bkz . Model süpürme ve hiper parametre ayarlama bölümleri.
search_space nesne Hiper parametre arama alanının sözlüğü. Anahtar, hiper parametrenin adı ve değer parametre ifadesidir. aracılığıyla training_parameters düzeltilebilen tüm parametreler burada desteklenir (bunun yerine süpürülmek için). Daha fazla ayrıntı için desteklenen hiper parametrelere bakın.
İki tür hiper parametre vardır:
- Ayrık Hiper Parametreler: Ayrık hiper parametreler, ayrık değerler arasında belirtilir choice . choice bir veya daha fazla virgülle ayrılmış değer, nesne veya herhangi bir range rastgele list nesne olabilir. Gelişmiş ayrık hiper parametreler bir dağıtım kullanılarak da belirtilebilir: randint,qlognormal , qnormal, , .quniform Daha fazla bilgi için bu bölüme bakın.
- Sürekli hiper parametreler: Sürekli hiper parametreler, sürekli bir değer aralığı üzerinden bir dağıtım olarak belirtilir. Şu anda desteklenen dağıtımlar şunlardır: lognormal, normal, loguniform, uniform. Daha fazla bilgi için bu bölüme bakın.

Kullanılacak olası ifade kümesi için parametre ifadeleri bölümüne bakın.
outputs nesne İşin çıkış yapılandırmaları sözlüğü. Anahtar, iş bağlamındaki çıkışın adıdır ve değer çıkış yapılandırmasıdır.
outputs.best_model nesne En iyi model için çıkış yapılandırmaları sözlüğü. Daha fazla bilgi için bkz . En iyi model çıktı yapılandırması.

Yapılandırmalarda kullanılan diğer söz dizimi:

Sınırlar

Anahtar Türü Açıklama İzin verilen değerler Varsayılan değer
max_concurrent_trials tamsayı Paralel olarak yürütülecek en fazla deneme sayısını (alt iş) temsil eder. 1
max_trials tamsayı AutoML nlp işinin farklı hiper parametreler bileşimiyle bir eğitim algoritması çalıştırmayı deneyebileceği en fazla deneme sayısını temsil eder. 1
timeout_minutes tamsayı Gönderilen AutoML işinin çalışması için gereken en uzun süreyi dakika cinsinden temsil eder. Bundan sonra iş sonlandırılır. AutoML NLP işlerinde varsayılan zaman aşımı 7 gündür. 10080
trial_timeout_minutes tamsayı Gönderilen AutoML işindeki her denemenin (alt iş) çalıştırabileceği en uzun süreyi dakika cinsinden temsil eder. Bundan sonra çocuk işi sonlandırılır.
max_nodes tamsayı İş için yararlanılması gereken, yedekleme işlem kümesindeki düğüm sayısı üst sınırı. 1

Desteklenen hiper parametreler

Aşağıdaki tabloda AutoML NLP'nin desteklediği hiper parametreler açıklanmaktadır.

Parametre adı Açıklama Sözdizimi
gradyan birikimi adımları İyileştiricinin adım işlevini çağırarak bir adım gradyan azalma gerçekleştirmeden önce gradyanları toplanacak geriye dönük işlemlerin sayısı.

Bu, GPU'ya uyan maksimum boyuttan gradient_accumulation_steps kat daha büyük olan etkili bir toplu iş boyutu kullanmak için kullanılır.
Pozitif bir tamsayı olmalıdır.
learning_rate İlk öğrenme oranı. Aralıktaki bir float olmalıdır (0, 1).
learning_rate_scheduler Öğrenme oranı zamanlayıcı türü. arasından linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmupseçim yapmalıdır.
model_name Desteklenen modellerden birinin adı. arasından 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_casedseçim yapmalıdır.
number_of_epochs Eğitim dönemlerinin sayısı. Pozitif bir tamsayı olmalıdır.
training_batch_size Eğitim toplu iş boyutu. Pozitif bir tamsayı olmalıdır.
doğrulama_dizi_boyutu Doğrulama toplu iş boyutu. Pozitif bir tamsayı olmalıdır.
ısınma_oranı 0'dan learning_rate doğrusal ısınma için kullanılan toplam eğitim adımlarının oranı. [0, 1] aralığında bir float olmalıdır.
ağırlık azaltma İyileştirici sgd, adam veya adamw olduğunda ağırlık bozulmasının değeri. [0, 1] aralığında bir float olmalıdır.

Eğitim veya doğrulama verileri

Anahtar Türü Açıklama İzin verilen değerler Varsayılan değer
description Dize Bu giriş verilerini açıklayan ayrıntılı bilgiler.
path Dize Verilerin yüklendiği yol. Yol bir file yol, folder yol veya pattern yollar için olabilir. pattern veri içeren dosya ve klasörlerin globbing(* ve **) izin vermek için bir arama düzeni belirtir. Desteklenen URI türleri : azureml, https, wasbs, abfssve adl. URI biçimini kullanma azureml:// hakkında daha fazla bilgi için bkz . çekirdek yaml söz dizimi. Yapıt dosyasının konumunun URI'sini. Bu URI'nin bir şeması yoksa (örneğin http:, azureml: vb.), yerel başvuru olarak kabul edilir ve varlık oluşturulurken işaret edilen dosya varsayılan çalışma alanı blob depolama alanına yüklenir.
mode Dize Veri kümesi teslim mekanizması. direct direct
type Const Nlp modelleri oluşturmak için kullanıcının eğitim verilerini MLTable biçiminde getirmesi gerekir. Daha fazla bilgi için bkz . Verileri hazırlama mltable mltable

En iyi model çıktı yapılandırması

Anahtar Türü Açıklama İzin verilen değerler Varsayılan değer
type Dize Gerekli. En iyi modelin türü. AutoML yalnızca mlflow modellerine izin verir. mlflow_model mlflow_model
path Dize Gerekli. Model yapıt dosyalarının depolandığı konumun URI'sini. Bu URI'nin bir şeması yoksa (örneğin http:, azureml: vb.), yerel başvuru olarak kabul edilir ve varlık oluşturulurken işaret edilen dosya varsayılan çalışma alanı blob depolama alanına yüklenir.
storage_uri Dize Modelin HTTP URL'si. Bu URL'yi kullanarak az storage copy -s THIS_URL -d DESTINATION_PATH --recursive verileri indirin.

Açıklamalar

Komutu, az ml job Azure Machine Learning işlerini yönetmek için kullanılabilir.

Örnekler

Örnekler GitHub deposunda bulunabilir. NLP metin sınıflandırması çoklu etiket işleri ile ilgili örnekler aşağıda verilmiştir.

YAML: AutoML metin sınıflandırması çok etiketli iş

$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: AutoML metin sınıflandırması çok etiketli işlem hattı işi

$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

Sonraki adımlar