Konfigurowanie rozwiązania AutoML do trenowania modelu przetwarzania języka naturalnego

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Z tego artykułu dowiesz się, jak trenować modele przetwarzania języka naturalnego (NLP) za pomocą zautomatyzowanego uczenia maszynowego w usłudze Azure Machine Edukacja. Modele NLP można tworzyć za pomocą zautomatyzowanego uczenia maszynowego za pośrednictwem zestawu SDK języka Python platformy Azure Edukacja w wersji 2 lub interfejsu wiersza polecenia usługi Azure Machine Edukacja w wersji 2.

Zautomatyzowane uczenie maszynowe obsługuje nlp, co umożliwia specjalistom uczenia maszynowego i analitykom danych wprowadzanie własnych danych tekstowych i tworzenie niestandardowych modeli na potrzeby zadań NLP. Zadania NLP obejmują klasyfikację tekstu wieloklasowego, klasyfikację tekstu z wieloma etykietami i rozpoznawanie nazwanych jednostek (NER).

Możesz bezproblemowo zintegrować z usługą Azure Machine Edukacja możliwości etykietowania danych, aby oznaczyć dane tekstowe lub przenieść istniejące dane z etykietami. Zautomatyzowane uczenie maszynowe zapewnia możliwość korzystania z trenowania rozproszonego w klastrach obliczeniowych z wieloma procesorami GPU w celu szybszego trenowania modelu. Wynikowy model można zoperacjonalizować na dużą skalę przy użyciu możliwości metodyki MLOps usługi Azure Machine Edukacja.

Wymagania wstępne

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

  • Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, zarejestruj się, aby wypróbować bezpłatną lub płatną wersję usługi Azure Machine Edukacja dzisiaj.

  • Obszar roboczy usługi Azure Machine Edukacja z obliczeniami trenowania procesora GPU. Aby utworzyć obszar roboczy, zobacz Tworzenie zasobów obszaru roboczego. Aby uzyskać więcej informacji, zobacz Rozmiary maszyn wirtualnych zoptymalizowanych pod kątem procesora GPU, aby uzyskać więcej informacji na temat wystąpień procesora GPU udostępnianych przez platformę Azure.

    Ostrzeżenie

    Obsługa modeli wielojęzycznych i korzystanie z modeli o dłuższej maksymalnej długości sekwencji jest niezbędna w przypadku kilku przypadków użycia nlp, takich jak zestawy danych innych niż angielskie i dokumenty o dłuższym zakresie. W związku z tym te scenariusze mogą wymagać większej ilości pamięci procesora GPU, aby trenowanie modelu powiodło się, takie jak seria NC_v3 lub seria ND.

  • Zainstalowano interfejs wiersza polecenia usługi Azure Machine Edukacja w wersji 2. Aby uzyskać wskazówki dotyczące aktualizowania i instalowania najnowszej wersji, zobacz Instalowanie i konfigurowanie interfejsu wiersza polecenia (wersja 2).

  • W tym artykule założono, że znasz konfigurowanie eksperymentu zautomatyzowanego uczenia maszynowego. Postępuj zgodnie z instrukcjami, aby zobaczyć główne wzorce projektowania eksperymentów zautomatyzowanego uczenia maszynowego.

Wybierz zadanie NLP

Określ, jakie zadanie NLP chcesz wykonać. Obecnie zautomatyzowane uczenie maszynowe obsługuje następujące zadania głębokiej sieci neuronowej NLP.

Zadanie Składnia zadania rozwiązania AutoML opis
Klasyfikacja tekstu wieloklasowego Interfejs wiersza polecenia w wersji 2: text_classification
Zestaw SDK w wersji 2: text_classification()
Istnieje wiele możliwych klas, a każda próbka może być klasyfikowana jako dokładnie jedna klasa. Zadanie polega na przewidywaniu poprawnej klasy dla każdej próbki.

Na przykład klasyfikowanie skryptu filmu jako "Komedia" lub "Romantyk".
Klasyfikacja tekstu z wieloma etykietami Interfejs wiersza polecenia w wersji 2: text_classification_multilabel
Zestaw SDK w wersji 2: text_classification_multilabel()
Istnieje wiele możliwych klas, a każda próbka może mieć przypisaną dowolną liczbę klas. Zadanie polega na przewidywaniu wszystkich klas dla każdej próbki

Na przykład klasyfikowanie skryptu filmowego jako "Komedia" lub "Romantyk" lub "Komedia i romantyczny".
Rozpoznawanie jednostek nazwanych Interfejs wiersza polecenia w wersji 2:text_ner
Zestaw SDK w wersji 2: text_ner()
Istnieje wiele możliwych tagów tokenów w sekwencjach. Zadanie polega na przewidywaniu tagów dla wszystkich tokenów dla każdej sekwencji.

Na przykład wyodrębnianie jednostek specyficznych dla domeny z tekstu bez struktury, takiego jak kontrakty lub dokumenty finansowe.

Obcinanie

Progowanie to funkcja z wieloma etykietami, która umożliwia użytkownikom wybranie progu, który przewidywane prawdopodobieństwo doprowadzi do pozytywnej etykiety. Niższe wartości umożliwiają uzyskanie większej liczby etykiet, co jest lepsze, gdy użytkownicy dbają o kompletność, ale ta opcja może prowadzić do większej liczby wyników fałszywie dodatnich. Wyższe wartości umożliwiają mniejszą liczbę etykiet, a tym samym lepszą dla użytkowników, którzy dbają o precyzję, ale ta opcja może prowadzić do większej liczby wyników fałszywie ujemnych.

Przygotowywanie danych

W przypadku eksperymentów NLP w zautomatyzowanym uczeniu maszynowym można udostępnić dane w .csv formacie dla zadań klasyfikacji wieloklasowej i wieloeznakowej. W przypadku zadań NER obsługiwane są pliki dwukolumnowe .txt używające spacji jako separatora i zgodne z formatem CoNLL. Poniższe sekcje zawierają szczegółowe informacje o formacie danych akceptowanym dla każdego zadania.

Wiele klas

W przypadku klasyfikacji wieloklasowej zestaw danych może zawierać kilka kolumn tekstowych i dokładnie jedną kolumnę etykiety. W poniższym przykładzie jest tylko jedna kolumna tekstowa.

text,labels
"I love watching Chicago Bulls games.","NBA"
"Tom Brady is a great player.","NFL"
"There is a game between Yankees and Orioles tonight","MLB"
"Stephen Curry made the most number of 3-Pointers","NBA"

Wiele etykiet

W przypadku klasyfikacji z wieloma etykietami kolumny zestawu danych będą takie same jak w przypadku wielu klas, jednak istnieją specjalne wymagania dotyczące formatu danych w kolumnie etykiety. Dwa zaakceptowane formaty i przykłady znajdują się w poniższej tabeli.

Opcje formatowania kolumn etykiet Wiele etykiet Jedna etykieta Brak etykiet
Zwykły tekst "label1, label2, label3" "label1" ""
Lista języka Python z cudzysłowami "['label1','label2','label3']" "['label1']" "[]"

Ważne

Różne analizatory służą do odczytywania etykiet dla tych formatów. Jeśli używasz formatu zwykłego tekstu, użyj tylko alfabetycznych, liczbowych i '_' w etykietach. Wszystkie inne znaki są rozpoznawane jako separator etykiet.

Jeśli na przykład etykieta to "cs.AI", jest ona odczytywana jako "cs" i "AI". Mając format listy języka Python, etykieta będzie miała "['cs.AI']"wartość , która jest odczytywana jako "cs.AI" .

Przykładowe dane dla wielu etykiet w formacie zwykłego tekstu.

text,labels
"I love watching Chicago Bulls games.","basketball"
"The four most popular leagues are NFL, MLB, NBA and NHL","football,baseball,basketball,hockey"
"I like drinking beer.",""

Przykładowe dane dla wielu etykiet na liście języka Python z formatem cudzysłowów.

text,labels
"I love watching Chicago Bulls games.","['basketball']"
"The four most popular leagues are NFL, MLB, NBA and NHL","['football','baseball','basketball','hockey']"
"I like drinking beer.","[]"

Rozpoznawanie nazwanych jednostek (NER)

W przeciwieństwie do wielu klas lub wielu etykiet, które mają .csv format zestawów danych, rozpoznawanie nazwanych jednostek wymaga formatu CoNLL. Plik musi zawierać dokładnie dwie kolumny, a w każdym wierszu token i etykietę są oddzielone pojedynczą spacją.

Przykład:

Hudson B-loc
Square I-loc
is O
a O
famous O
place O
in O
New B-loc
York I-loc
City I-loc

Stephen B-per
Curry I-per
got O
three O
championship O
rings O

Sprawdzanie poprawności danych

Przed trenowanie modelu zautomatyzowane uczenie maszynowe stosuje sprawdzanie poprawności danych wejściowych, aby upewnić się, że dane można wstępnie przetworzyć. Jeśli którykolwiek z tych testów zakończy się niepowodzeniem, przebieg zakończy się niepowodzeniem z odpowiednim komunikatem o błędzie. Poniżej przedstawiono wymagania dotyczące przekazywania testów poprawności danych dla każdego zadania.

Uwaga

Niektóre testy sprawdzania poprawności danych mają zastosowanie zarówno do trenowania, jak i zestawu weryfikacji, natomiast inne mają zastosowanie tylko do zestawu treningowego. Jeśli testowy zestaw danych nie może przejść weryfikacji danych, oznacza to, że zautomatyzowane uczenie maszynowe nie może go przechwycić i istnieje możliwość niepowodzenia wnioskowania modelu lub spadku wydajności modelu.

Zadanie Sprawdzanie poprawności danych
Wszystkie zadania Wymagane jest co najmniej 50 próbek szkoleniowych
Wiele klas i wiele etykiet Dane szkoleniowe i dane weryfikacji muszą mieć
- Ten sam zestaw kolumn
— Taka sama kolejność kolumn od lewej do prawej
— Ten sam typ danych dla kolumn o tej samej nazwie
- Co najmniej dwie unikatowe etykiety
- Unikatowe nazwy kolumn w każdym zestawie danych (na przykład zestaw treningowy nie może mieć wielu kolumn o nazwie Age)
Tylko wiele klas Brak
Tylko wiele etykiet - Format kolumny etykiety musi być w akceptowanym formacie
- Co najmniej jedna próbka powinna mieć etykiety 0 lub 2+, w przeciwnym razie powinno to być multiclass zadanie
— Wszystkie etykiety powinny być w str formacie lub int bez nakładania się. Nie należy mieć etykiety 1 i etykiety '1'
Tylko NER — Plik nie powinien zaczynać się od pustego wiersza
— Każdy wiersz musi być pustym wierszem lub postępować zgodnie z formatem {token} {label}, gdzie istnieje dokładnie jedno miejsce między tokenem a etykietą i bez odstępu po etykiecie
— Wszystkie etykiety muszą zaczynać się od I-, B-lub być dokładnie O. Uwzględniana wielkość liter
- Dokładnie jeden pusty wiersz między dwoma próbkami
- Dokładnie jeden pusty wiersz na końcu pliku

Konfigurowanie eksperymentu

Funkcja NLP zautomatyzowanego uczenia maszynowego jest wyzwalana za pomocą zadań specyficznych dla zadania określonego automl zadania, które są tym samym przepływem pracy do przesyłania zautomatyzowanych eksperymentów uczenia maszynowego na potrzeby zadań klasyfikacji, regresji i prognozowania. Parametry można ustawić tak, jak w przypadku tych eksperymentów, takich jak experiment_name, compute_name i dane wejściowe.

Istnieją jednak kluczowe różnice:

  • Możesz zignorować primary_metricwartość , ponieważ jest to tylko do celów raportowania. Obecnie zautomatyzowane uczenie maszynowe trenuje tylko jeden model na przebieg dla nlp i nie ma wyboru modelu.
  • Parametr label_column_name jest wymagany tylko w przypadku zadań klasyfikacji tekstu wieloklasowej i wieloetekstowej.
  • Jeśli więcej niż 10% próbek w zestawie danych zawiera więcej niż 128 tokenów, jest uważany za długi zakres.
    • Aby użyć funkcji tekstu o długim zakresie, należy użyć nc6 lub wyższej/lepszej jednostki SKU dla procesora GPU, takich jak seria NCv3 lub seria ND .

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

W przypadku zadań zautomatyzowanego uczenia maszynowego interfejsu wiersza polecenia w wersji 2 należy skonfigurować eksperyment w pliku YAML, tak jak poniżej.

Ustawienia językowe

W ramach funkcji NLP zautomatyzowane uczenie maszynowe obsługuje 104 języki wykorzystujące wstępnie wytrenowane modele nazw DNN specyficzne dla języka i wielojęzyczne, takie jak rodzina modeli BERT. Obecnie wybór języka jest domyślnie domyślny dla języka angielskiego.

W poniższej tabeli podsumowano, jaki model jest stosowany na podstawie typu i języka zadań. Zobacz pełną listę obsługiwanych języków i ich kodów.

Typ zadania Składnia dla dataset_language Algorytm modelu tekstu
Klasyfikacja tekstu z wieloma etykietami "eng"
"deu"
"mul"
Angielski BERT bez liter
Niemiecki BERT
Wielojęzyczny BERT

W przypadku wszystkich innych języków zautomatyzowane uczenie maszynowe stosuje wielojęzyczne BERT
Klasyfikacja tekstu wieloklasowego "eng"
"deu"
"mul"
Angielski przypadek BERT
Wielojęzyczny BERT

W przypadku wszystkich innych języków zautomatyzowane uczenie maszynowe stosuje wielojęzyczne BERT
Rozpoznawanie nazwanych jednostek (NER) "eng"
"deu"
"mul"
Angielski przypadek BERT
Niemiecki BERT
Wielojęzyczny BERT

W przypadku wszystkich innych języków zautomatyzowane uczenie maszynowe stosuje wielojęzyczne BERT

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Język zestawu danych można określić w sekcji cechowania pliku YAML konfiguracji. BERT jest również używany w procesie cechowania zautomatyzowanego trenowania eksperymentów uczenia maszynowego, dowiedz się więcej na temat integracji i cechowania BERT w zautomatyzowanym uczeniu maszynowym (SDK w wersji 1).

featurization:
   dataset_language: "eng"

Szkolenie rozproszone

Możesz również uruchomić eksperymenty NLP z rozproszonym szkoleniem w klastrze obliczeniowym usługi Azure Machine Edukacja.

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Przesyłanie zadania automatycznego uczenia maszynowego

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Aby przesłać zadanie rozwiązania AutoML, możesz uruchomić następujące polecenie interfejsu wiersza polecenia w wersji 2 ze ścieżką do pliku yml, nazwy obszaru roboczego, grupy zasobów i identyfikatora subskrypcji.


az ml job create --file ./hello-automl-job-basic.yml --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

Przykłady kodu

Zamiatanie modeli i dostrajanie hiperparametrów (wersja zapoznawcza)

Ważne

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.

Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Funkcja NLP automatycznego uczenia maszynowego umożliwia udostępnienie listy modeli i kombinacji hiperparametrów za pośrednictwem przestrzeni wyszukiwania hiperparametrów w konfiguracji. Funkcja Hyperdrive generuje kilka przebiegów podrzędnych, z których każdy jest przebiegiem dostrajania dla danego modelu NLP i zestawem wartości hiperparametrów, które zostały wybrane i przetoczyły się na podstawie podanej przestrzeni wyszukiwania.

Obsługiwane algorytmy modelu

Poniżej wymieniono wszystkie wstępnie wytrenowane modele sieci DNN tekstu dostępne w rozwiązaniu NlP automatycznego uczenia maszynowego do dostrajania:

  • bert-base-cased
  • bert-large-uncased
  • bert-base-multilingual-cased
  • bert-base-german-cased
  • bert-large-cased
  • distilbert-base-cased
  • distilbert-base-uncased
  • roberta-base
  • roberta-large
  • distilroberta-base
  • xlm-roberta-base
  • xlm-roberta-large
  • xlnet-base-cased
  • xlnet-large-cased

Należy pamiętać, że duże modele są większe niż ich odpowiedniki podstawowe. Zazwyczaj są one bardziej wydajne, ale zajmują więcej pamięci i czasu na trenowanie. W związku z tym ich wymagania dotyczące jednostki SKU są bardziej rygorystyczne: zalecamy uruchamianie na maszynach wirtualnych serii ND w celu uzyskania najlepszych wyników.

Obsługiwane algorytmy modelu — HuggingFace (wersja zapoznawcza)

Po uruchomieniu nowego zaplecza w potokach usługi Azure Machine Edukacja można również użyć dowolnego modelu klasyfikacji tekstu/tokenu z centrum HuggingFace dla klasyfikacji tekstu, klasyfikacji tokenów będącej częścią biblioteki przekształcania (takiej jak microsoft/deberta-large-mnli). Listę wyselekcjonowanych modeli można również znaleźć w rejestrze modeli usługi Azure Machine Edukacja zweryfikowanym za pomocą składników potoku.

Użycie dowolnego modelu HuggingFace spowoduje wyzwolenie przebiegów przy użyciu składników potoku. Jeśli są używane zarówno starsze modele, jak i HuggingFace, wszystkie uruchomienia/wersje próbne zostaną wyzwolone przy użyciu składników.

Obsługiwane hiperparametry

W poniższej tabeli opisano hiperparametry obsługiwane przez funkcję NlP rozwiązania AutoML.

Nazwa parametru opis Składnia
gradient_accumulation_steps Liczba operacji wstecznych, których gradienty mają zostać podsumowane przed wykonaniem jednego kroku spadku gradientu przez wywołanie funkcji kroku optymalizatora.

Jest to użycie efektywnego rozmiaru partii, który jest gradient_accumulation_steps razy większy niż maksymalny rozmiar pasujący do procesora GPU.
Musi być dodatnią liczbą całkowitą.
learning_rate Początkowa szybkość nauki. Musi być zmiennoprzecinkowym w zakresie (0, 1).
learning_rate_scheduler Typ harmonogramu szybkości nauki. Musi wybrać jedną z linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmupopcji .
Model_name Nazwa jednego z obsługiwanych modeli. Musi wybrać jedną 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_casedopcji .
number_of_epochs Liczba epok treningowych. Musi być dodatnią liczbą całkowitą.
training_batch_size Rozmiar partii trenowania. Musi być dodatnią liczbą całkowitą.
validation_batch_size Sprawdzanie poprawności rozmiaru partii. Musi być dodatnią liczbą całkowitą.
warmup_ratio Współczynnik całkowitych kroków treningowych używanych do rozgrzewki liniowej z zakresu od 0 do learning_rate. Musi być zmiennoprzecinkowym w zakresie [0, 1].
weight_decay Wartość rozkładu masy, gdy optymalizator jest sgd, adam lub adamw. Musi być zmiennoprzecinkowym w zakresie [0, 1].

Wszystkie dyskretne hiperparametry zezwalają tylko na dystrybucje wyboru, takie jak liczba całkowita typu training_batch_size i hiperparametry typu model_name ciąg. Wszystkie hiperparametry ciągłe, takie jak learning_rate obsługa wszystkich dystrybucji.

Konfigurowanie ustawień zamiatania

Możesz skonfigurować wszystkie parametry związane z funkcjami zamiatania. Wiele przestrzeni podrzędnych modelu można utworzyć za pomocą hiperparametrów warunkowych dla odpowiedniego modelu, jak pokazano w każdym przykładzie dostrajania hiperparametrów.

W tym miejscu są obsługiwane te same dyskretne i ciągłe opcje dystrybucji, które są dostępne dla ogólnych zadań funkcji HyperDrive. Zobacz wszystkie dziewięć opcji dostrajania hiperparametrów modelu

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

limits: 
  timeout_minutes: 120  
  max_trials: 4 
  max_concurrent_trials: 2 

sweep: 
  sampling_algorithm: grid 
  early_termination: 
    type: bandit 
    evaluation_interval: 10 
    slack_factor: 0.2 

search_space: 
  - model_name: 
      type: choice 
      values: [bert_base_cased, roberta_base] 
    number_of_epochs: 
      type: choice 
      values: [3, 4] 
  - model_name: 
      type: choice 
      values: [distilbert_base_cased] 
    learning_rate: 
      type: uniform 
      min_value: 0.000005 
      max_value: 0.00005 

Metody próbkowania dla zamiatania

Podczas zamiatania hiperparametrów należy określić metodę próbkowania, która ma być używana do zamiatania przez zdefiniowaną przestrzeń parametrów. Obecnie następujące metody próbkowania są obsługiwane za pomocą parametru sampling_algorithm :

Typ próbkowania Składnia zadania rozwiązania AutoML
Losowe próbkowanie random
Próbkowanie siatki grid
Próbkowanie bayesowskie bayesian

Budżet eksperymentu

Opcjonalnie możesz określić budżet eksperymentu dla zadania trenowania nlp zautomatyzowanego uczenia maszynowego przy użyciu parametru timeout_minutes w parametrze limits — czas w minutach przed zakończeniem eksperymentu. Jeśli żaden z nich nie zostanie określony, domyślny limit czasu eksperymentu wynosi siedem dni (maksymalnie 60 dni).

Funkcja NLP automatycznego uczenia maszynowego obsługuje trial_timeout_minutesrównież maksymalny czas w minutach, przez który może zostać uruchomiona indywidualna wersja próbna przed zakończeniem, oraz max_nodesmaksymalna liczba węzłów z klastra obliczeniowego pomocniczego do użycia dla zadania. Te parametry należą również do limits sekcji.

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

limits: 
  timeout_minutes: 60 
  trial_timeout_minutes: 20 
  max_nodes: 2 

Zasady wczesnego kończenia

Możesz automatycznie zakończyć przebiegi o niskiej wydajności z zasadami wczesnego kończenia. Wczesne zakończenie poprawia wydajność obliczeniową, oszczędzając zasoby obliczeniowe, które w przeciwnym razie zostałyby wydane na mniej obiecujące konfiguracje. Funkcja NLP automatycznego uczenia maszynowego obsługuje zasady wczesnego kończenia przy użyciu parametru early_termination . Jeśli nie określono żadnych zasad zakończenia, wszystkie konfiguracje są uruchamiane do ukończenia.

Dowiedz się więcej na temat konfigurowania zasad wczesnego zakończenia dla zamiatania hiperparametrów.

Zasoby dla zamiatania

Możesz kontrolować zasoby wydane na zamiatanie hiperparametrów, określając max_trials wartości i max_concurrent_trials dla zamiatania.

Parametr Szczegół
max_trials Parametr maksymalnej liczby konfiguracji do zamiatania. Musi być liczbą całkowitą z zakresu od 1 do 1000. Podczas eksplorowania tylko domyślnych hiperparametrów dla danego algorytmu modelu ustaw ten parametr na 1. Domyślna wartość wynosi 1.
max_concurrent_trials Maksymalna liczba przebiegów, które mogą być uruchamiane współbieżnie. W przypadku określenia musi być liczbą całkowitą z zakresu od 1 do 100. Domyślna wartość wynosi 1.

UWAGA:
  • Liczba współbieżnych przebiegów jest bramowana dla zasobów dostępnych w określonym obiekcie docelowym obliczeniowym. Upewnij się, że docelowy obiekt obliczeniowy ma dostępne zasoby dla żądanej współbieżności.
  • max_concurrent_trials jest ograniczona max_trials wewnętrznie. Jeśli na przykład użytkownik ustawia max_concurrent_trials=4wartości , max_trials=2wartości zostaną wewnętrznie zaktualizowane jako max_concurrent_trials=2, max_trials=2.
  • Wszystkie parametry powiązane z funkcjami zamiatania można skonfigurować, jak pokazano w tym przykładzie.

    DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

    sweep:
      limits:
        max_trials: 10
        max_concurrent_trials: 2
      sampling_algorithm: random
      early_termination:
        type: bandit
        evaluation_interval: 2
        slack_factor: 0.2
        delay_evaluation: 6
    

    Znane problemy

    Radzenie sobie z niskimi wynikami lub wyższymi wartościami strat:

    W przypadku niektórych zestawów danych, niezależnie od zadania NLP, wygenerowane wyniki mogą być bardzo niskie, czasami nawet zero. Ten wynik jest dołączony przez wyższe wartości strat, co oznacza, że sieć neuronowa nie mogła się zbieżnie. Te wyniki mogą występować częściej w przypadku niektórych jednostek SKU procesora GPU.

    Chociaż takie przypadki są rzadkie, są one możliwe i najlepszym sposobem obsługi jest wykorzystanie dostrajania hiperparametrów i zapewnienie szerszego zakresu wartości, zwłaszcza w przypadku hiperparametrów, takich jak współczynniki uczenia. Dopóki nasza funkcja dostrajania hiperparametrów nie będzie dostępna w środowisku produkcyjnym, zalecamy użytkownikom, którzy napotykają te problemy, aby korzystać z klastrów obliczeniowych NC6 lub ND6. Te klastry zwykle mają wyniki trenowania, które są dość stabilne.

    Następne kroki