Einrichten von automatisiertem ML zum Trainieren eines Modells zur Verarbeitung natürlicher Sprache
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)
Python SDK azure-ai-ml v2 (aktuell)
In diesem Artikel erfahren Sie, wie Sie Modelle zur Verarbeitung natürlicher Sprache (NLP) mit automatisiertem ML in Azure Machine Learning trainieren. Sie können NLP-Modelle mit automatisiertem ML über das Azure Machine Learning Python SDK v2 oder die Azure Machine Learning-CLI v2 erstellen.
Automatisiertes ML unterstützt NLP, mit dem ML-Spezialisten und wissenschaftliche Fachkräfte für Daten eigene Textdaten verwenden und benutzerdefinierte Modelle für NLP-Aufgaben erstellen können. NLP-Aufgaben umfassen die Mehrklassen-Textklassifizierung, die Textklassifizierung mit mehreren Bezeichnungen und die Erkennung benannter Entitäten (Named Entity Recognition, NER).
Sie können die nahtlose Integration in die Azure Machine Learning Datenbezeichnungs-Funktion nutzen, um Ihre Textdaten zu bezeichnen, oder Ihre vorhandenen beschrifteten Daten einbringen. Automatisiertes ML bietet die Möglichkeit, verteiltes Training auf Computeclustern mit mehreren GPU zu verwenden, um das Modelltraining zu beschleunigen. Das daraus resultierende Modell kann mithilfe der MLOps-Funktionen von Azure Machine Learning im großen Stil operationalisiert werden.
Voraussetzungen
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
Azure-Abonnement. Wenn Sie kein Azure-Abonnement haben, können Sie sich jetzt für die kostenlose oder kostenpflichtige Version von Azure Machine Learning registrieren.
Ein Azure Machine Learning-Arbeitsbereich mit einem GPU-Trainings-Compute. Informationen zum Erstellen des Arbeitsbereichs finden Sie unter Schnellstart: So erstellen Sie Arbeitsbereichsressourcen, die Sie für die ersten Schritte mit Azure Machine Learning benötigen. Weitere Informationen zu GPU-Instanzen, die von Azure bereitgestellt werden, finden Sie unter GPU-optimierte VM-Größen.
Warnung
Für mehrere NLP-Anwendungsfälle ist die Unterstützung für mehrsprachige Modelle und die Verwendung von Modellen mit einer längeren maximalen Sequenzlänge erforderlich, z. B. nicht englische Datasets und Dokumente mit längerer Spanne. Daher kann für diese Szenarien ein höherer GPU-Arbeitsspeicher erforderlich sein, damit das Modelltraining erfolgreich ist, z. B. die NC_v3- oder ND-Serie.
Die Azure Machine Learning-CLI v2 muss installiert sein. Leitfäden zum aktualisieren und installieren der neuesten Version finden Sie unter Installieren und Einrichten der CLI (v2).
In diesem Artikel werden Grundkenntnisse in der Einrichtung eines Experiments mit automatisiertem maschinellem Lernen vorausgesetzt. Folgen Sie der Schrittanleitung, um die wichtigsten Entwurfsmuster für automatisierte ML-Experimente kennenzulernen.
Auswählen ihrer NLP-Aufgabe
Bestimmen Sie, welche NLP-Aufgabe Sie ausführen möchten. Derzeit unterstützt automatisiertes ML die folgenden Deep Neural Network-NLP-Aufgaben.
Aufgabe | AutoML-Auftragssyntax | BESCHREIBUNG |
---|---|---|
Mehrklassige Textklassifizierung | CLI v2: text_classification SDK v2: text_classification() |
Es gibt mehrere mögliche Klassen, und jedes Beispiel kann als genau eine Klasse klassifiziert werden. Die Aufgabe besteht darin, die richtige Klasse für jedes Beispiel vorherzusagen. Beispielsweise das Klassifizieren eines Filmskripts als „Komödie“ oder „Romanze“. |
Textklassifizierung mit mehreren Bezeichnungen | CLI v2: text_classification_multilabel SDK v2: text_classification_multilabel() |
Es gibt mehrere mögliche Klassen, und jedem Beispiel kann eine beliebige Anzahl von Klassen zugewiesen werden. Die Aufgabe besteht darin, für jedes Beispiel die Klasse vorherzusagen Beispielsweise das Klassifizieren eines Filmskripts als „Komödie“, „Romanze“ oder „Romantische Komödie“. |
Erkennung benannter Entitäten (NER) | CLI v2:text_ner SDK v2: text_ner() |
Es gibt mehrere mögliche Tags für Token in Sequenzen. Die Aufgabe besteht darin, für alle Token und für jede Sequenz die Tags vorherzusagen. Beispiel: Extrahieren domänenspezifischer Entitäten aus unstrukturiertem Text, z. B. Verträgen oder Finanzdokumenten. |
Festlegen von Schwellenwerten
Das Festlegen von Schwellenwerten (Thresholding) ist das Feature mit mehreren Bezeichnungen, mit dem Benutzer den Schwellenwert auswählen können, ab dem die vorhergesagten Wahrscheinlichkeiten zu einer positiven Bezeichnung führen. Niedrigere Werte erlauben mehr Bezeichnungen, was besser ist, wenn Benutzer mehr Wert auf die Wiedererkennung legen, aber diese Option könnte zu mehr False Positive-Ergebnissen führen. Höhere Werte erlauben weniger Bezeichnungen und sind daher besser für Benutzer geeignet, die Wert auf Genauigkeit legen, aber diese Option könnte zu mehr False Negative-Ergebnissen führen.
Aufbereiten der Daten
Für NLP-Experimente im automatisierten ML können Sie Ihre Daten im .csv
-Format für Klassifizierungsaufgaben mit mehreren Klassen und mehreren Bezeichnungen bereitstellen. Für NER-Aufgaben werden zweispaltige .txt
-Dateien unterstützt, die ein Leerzeichen als Trennzeichen verwenden und dem CoNLL-Format entsprechen. Die folgenden Abschnitte enthalten Details zum Datenformat, das für die einzelnen Aufgaben akzeptiert wird.
Mehrere Klassen
Für die Klassifizierung mit mehreren Klassen kann das Dataset mehrere Textspalten und genau eine Bezeichnungsspalte enthalten. Das folgende Beispiel enthält nur eine Textspalte.
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"
Mehrere Bezeichnungen
Bei der Klassifizierung mit mehreren Bezeichnungen sind die Dataset-Spalten identisch mit mehreren Klassen, es gibt jedoch besondere Formatanforderungen für Daten in der Bezeichnungsspalte. Die beiden akzeptierten Formate und Beispiele sind in der folgenden Tabelle aufgeführt.
Formatoptionen für Bezeichnungsspalten | Mehrere Bezeichnungen | Eine Bezeichnung | Keine Bezeichnungen |
---|---|---|---|
Nur-Text | "label1, label2, label3" |
"label1" |
"" |
Python-Liste mit Anführungszeichen | "['label1','label2','label3']" |
"['label1']" |
"[]" |
Wichtig
Verschiedene Parser werden verwendet, um Bezeichnungen für diese Formate zu lesen. Verwenden Sie bei Nutzung des Nur-Text-Formats nur alphabetische und numerische Zeichen und '_'
in Ihren Bezeichnungen. Alle anderen Zeichen werden als Trennzeichen von Bezeichnungen erkannt.
Wenn Ihre Bezeichnung beispielsweise "cs.AI"
lautet, wird sie als "cs"
und "AI"
gelesen. Während mit dem Python-Listenformat die Bezeichnung "['cs.AI']"
lautet, was als "cs.AI"
gelesen wird.
Beispieldaten für mehrere Bezeichnungen im Nur-Text-Format.
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.",""
Beispieldaten für mehrere Bezeichnungen in der Python-Liste mit Anführungszeichenformat.
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.","[]"
Erkennung benannter Entitäten (NER)
Im Gegensatz zu mehrklassigen oder mehrfachen Bezeichnungen, die Datasets im .csv
-Format verwenden, erfordert die Erkennung benannter Entitäten das CoNLL-Format. Die Datei muss genau zwei Spalten enthalten, und in jeder Zeile werden das Token und die Bezeichnung durch ein einzelnes Leerzeichen getrennt.
Beispiel:
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
Datenvalidierung
Bevor ein Modell trainiert wird, wendet das automatisierte ML Datenvalidierungsprüfungen auf die Eingabedaten an, um sicherzustellen, dass die Daten ordnungsgemäß vorverarbeitet werden können. Wenn eine dieser Überprüfungen fehlschlägt, schlägt die Ausführung mit der entsprechenden Fehlermeldung fehl. Im Folgenden sind die Anforderungen zum Bestehen von Datenvalidierungsprüfungen für die einzelnen Aufgaben enthalten.
Hinweis
Einige Datenvalidierungsprüfungen gelten sowohl für den Trainings- als auch für den Validierungssatz, während andere nur für den Trainingssatz gelten. Wenn das Test-Dataset die Datenvalidierung nicht bestehen konnte, bedeutet dies, dass das automatisierte ML es nicht erfassen konnte und es eine Möglichkeit eines Modellrückschlussfehlers oder einer Einbuße der Modellleistung gibt.
Aufgabe | Datenvalidierungsüberprüfung |
---|---|
Alle Aufgaben | Mindestens 50 Trainingsbeispiele sind erforderlich |
Mehrere Klassen und mehrere Bezeichnungen | Die Trainingsdaten und Validierungsdaten müssen folgendes vorweisen: – Die gleiche Gruppe von Spalten – Die gleiche Spaltenreihenfolge von links nach rechts – Denselben Datentyp für Spalten mit dem gleichen Namen – Mindestens zwei eindeutige Bezeichnungen – Eindeutige Spaltennamen innerhalb jedes Datasets (z. B. darf der Trainingssatz nicht mehrere Spalten mit dem Namen Alter enthalten) |
Nur mehrere Klassen | Keine |
Nur mehrere Bezeichnungen | – Das Format der Bezeichnungsspalte muss in einem zulässigen Format vorliegen – Mindestens ein Beispiel sollte über 0 oder mehr als 2 Bezeichnungen verfügen, andernfalls sollte es eine multiclass -Aufgabe sein – Alle Bezeichnungen sollten im str - oder int -Format vorliegen, ohne sich zu überschneiden. Sie sollten nicht sowohl die Bezeichnung 1 als auch die Bezeichnung '1' haben |
Nur NER | – Die Datei darf nicht mit einer leeren Zeile beginnen – Jede Zeile muss eine leere Zeile sein oder das Format {token} {label} aufweisen, wobei genau ein Leerzeichen zwischen dem Token und der Bezeichnung und kein Leerraum nach der Bezeichnung vorhanden ist – Alle Bezeichnungen müssen mit I- oder B- beginnen oder genau O lauten. Groß-/Kleinschreibung beachten – Genau eine leere Zeile zwischen zwei Beispielen – Genau eine leere Zeile am Ende der Datei |
Konfigurieren des Experiments
Die NLP-Funktion des automatisierten ML wird über aufgabenspezifische Aufträge vom Typ automl
ausgelöst. Dies ist derselbe Workflow wie für die Übermittlung automatisierter ML-Experimente für Klassifizierungs-, Regressions- und Vorhersageaufgaben. Sie würden die Parameter wie bei diesen Experimenten festlegen, z. B. experiment_name
, compute_name
und Dateneingaben.
Es gibt jedoch wichtige Unterschiede:
- Sie können
primary_metric
ignorieren, da er nur zu Berichtszwecken dient. Derzeit trainiert das automatisierte ML nur ein Modell pro Ausführung für NLP, und es gibt keine Modellauswahl. - Der
label_column_name
-Parameter ist nur für Textklassifizierungs-Aufgaben mit mehreren Klassen und mehreren Bezeichnungen erforderlich. - Wenn mehr als 10 % der Stichproben in Ihrem Dataset mehr als 128 Token enthalten, wird dies als weitreichend angesehen.
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
Für automatisierte ML-Aufträge der CLI v2 konfigurieren Sie Ihr Experiment in einer YAML-Datei wie der folgenden.
Spracheinstellungen
Im Rahmen der NLP-Funktionalität unterstützt das automatisierte ML 104 Sprachen, die sprachspezifische und mehrsprachige vortrainierte Text-DNN-Modelle nutzen, z. B. die BERT-Modellfamilie. Derzeit ist die Sprachauswahl standardmäßig auf Englisch eingestellt.
In der folgenden Tabelle wird zusammengefasst, welches Modell basierend auf Aufgabentyp und Sprache angewendet wird. Hier finden Sie die vollständige Liste der unterstützten Sprachen und ihrer Codes.
Aufgabentyp | Syntax für dataset_language |
Textmodellalgorithmus |
---|---|---|
Textklassifizierung mit mehreren Bezeichnungen | "eng" "deu" "mul" |
English BERT nicht Groß-/Kleinschreibung-sensitiv Deutsches BERT Mehrsprachiges BERT Für alle anderen Sprachen wendet das automatisierte ML mehrsprachiges BERT an |
Mehrklassige Textklassifizierung | "eng" "deu" "mul" |
Englisches BERT Groß-/Kleinschreibung-sensitiv Mehrsprachiges BERT Für alle anderen Sprachen wendet das automatisierte ML mehrsprachiges BERT an |
Erkennung benannter Entitäten (NER) | "eng" "deu" "mul" |
Englisches BERT Groß-/Kleinschreibung-sensitiv Deutsches BERT Mehrsprachiges BERT Für alle anderen Sprachen wendet das automatisierte ML mehrsprachiges BERT an |
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
Sie können die Datasetsprache im Abschnitt „Featurisierung“ Ihrer YAML-Datei für die Konfiguration angeben. BERT wird auch im Featurisierungsprozess des automatisierten ML-Experimenttrainings verwendet. Erfahren Sie mehr über die BERT-Integration und -Featurisierung in automatisiertem ML (SDK v1).
featurization:
dataset_language: "eng"
Verteiltes Training
Sie können Ihre NLP-Experimente auch mit verteiltem Training in einem Azure Machine Learning-Computecluster ausführen.
Übermitteln des AutoML-Auftrags
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
Zum Übermitteln Ihres AutoML-Auftrags können Sie den folgenden CLI v2-Befehl mit dem Pfad zu Ihrer YML-Datei, dem Arbeitsbereichsnamen, der Ressourcengruppe und der Abonnement-ID ausführen.
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]
Codebeispiele
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
Weitere Informationen finden Sie in den folgenden YAML-Dateien für die einzelnen NLP-Aufgaben.
Modell-Sweeping und Hyperparameteroptimierung (Vorschau)
Wichtig
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.
Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
AutoML NLP ermöglicht es Ihnen, eine Liste von Modellen und Kombinationen von Hyperparametern über den Suchbereich für Hyperparameter in der Konfiguration anzugeben. Hyperdrive generiert mehrere untergeordnete Ausführungen, von denen jede eine Optimierungsausführung für ein bestimmtes NLP-Modell und einen festgelegten Satz von Hyperparametern darstellt, die auf der Grundlage des angegebenen Suchbereichs ausgewählt und bereinigt wurden.
Unterstützte Modellalgorithmen
Nachfolgend finden Sie alle vortrainierten Text-DNN-Modelle, die derzeit in AutoML NLP zur Optimierung verfügbar sind:
- 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
Beachten Sie, dass die großen Modelle größer sind als ihre Basismodelle. Sie sind in der Regel leistungsfähiger, aber sie benötigen mehr GPU-Speicher und mehr Zeit für das Training. Daher sind ihre SKU-Anforderungen strenger: Wir empfehlen, sie auf VMs der ND-Serie auszuführen, um die besten Ergebnisse zu erzielen.
Unterstützte Modellalgorithmen: HuggingFace (Vorschau)
Mit dem neuen Back-End, das in Azure Machine Learning-Pipelines ausgeführt wird, können Sie zusätzlich ein beliebiges Text-/Tokenklassifizierungsmodell aus dem HuggingFace Hub für die Textklassifizierung, Tokenklassifizierung verwenden, die Teil der Transformer-Bibliothek ist (z. B. microsoft/deberta-large-mnli). Möglicherweise finden Sie auch eine zusammengestellte Liste der Modelle in der Azure Machine Learning-Modellregistrierung, die mit den Pipeline-Komponenten überprüft wurden.
Wenn Sie ein HuggingFace-Modell verwenden, werden Ausführungen mithilfe von Pipeline-Komponenten ausgelöst. Wenn sowohl Legacy- als auch HuggingFace-Modelle verwendet werden, werden alle Ausführungen/Testversionen mithilfe von Komponenten ausgelöst.
Unterstützte Hyperparameter
In der folgenden Tabelle werden die Hyperparameter beschrieben, die von AutoML NLP unterstützt werden.
Parametername | BESCHREIBUNG | Syntax |
---|---|---|
gradient_accumulation_steps | Die Anzahl der abwärtsgerichteten Vorgänge, deren Gradienten summiert werden sollen, bevor ein Schritt des Gradientenabstiegs durch Aufruf der Schrittfunktion des Optimierers durchgeführt wird. Dies wird genutzt, um eine effektive Batchgröße zu verwenden, die um den Wert von „gradient_accumulation_steps“ mal größer ist als die maximale Größe, die für die GPU geeignet ist. |
Der Wert muss eine positive ganze Zahl sein. |
learning_rate | Anfängliche Lernrate. | Muss ein Gleitkommawert im Bereich (0, 1) sein. |
learning_rate_scheduler | Typ des Lernratenplaners. | Sie müssen aus linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup auswählen. |
model_name | Name eines der unterstützten Modelle. | Sie müssen aus 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 auswählen. |
number_of_epochs | Anzahl der Trainingsepochen | Der Wert muss eine positive ganze Zahl sein. |
training_batch_size | Trainingsbatchgröße. | Der Wert muss eine positive ganze Zahl sein. |
validation_batch_size | Überprüfungsbatchgröße. | Der Wert muss eine positive ganze Zahl sein. |
warmup_ratio | Verhältnis der insgesamt verwendeten Trainingsschritte für ein lineares Aufwärmen von 0 bis „learning_rate“. | Muss ein Gleitkommawert im Bereich [0, 1] sein. |
weight_decay | Wert des Gewichtsverfalls, wenn der Optimierer „sgd“, „adam“ oder „adamw“ ist. | Muss ein Gleitkommawert im Bereich [0, 1] sein. |
Bei allen diskreten Hyperparametern sind nur Auswahlverteilungen möglich, z. B. bei den Hyperparametern training_batch_size
vom Typ „Ganze Zahl“ und model_name
vom Typ „Zeichenfolge“. Alle kontinuierlichen Hyperparameter wie learning_rate
unterstützen alle Verteilungen.
Konfigurieren der Sweep-Einstellungen
Sie können alle Sweep-bezogenen Parameter konfigurieren. Es können mehrere Modellunterräume mit Hyperparametern konstruiert werden, die an das jeweilige Modell gebunden sind, wie in den einzelnen Beispielen zur Hyperparameteroptimierung zu sehen ist.
Die gleichen diskreten und kontinuierlichen Verteilungsoptionen, die für allgemeine HyperDrive-Aufträge verfügbar sind, werden hier unterstützt. Betrachten Sie alle neun Optionen in Hyperparameteroptimierung eines Modells.
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
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
Samplingmethoden für den Sweep
Beim Sweepen von Hyperparametern müssen Sie die Samplingmethode angeben, die für das Sweepen über den definierten Parameterraum verwendet werden soll. Derzeit werden die folgenden Samplingmethoden mit dem sampling_algorithm
-Parameter unterstützt:
Stichprobentyp | AutoML-Auftragssyntax |
---|---|
Zufällige Stichprobenentnahme | random |
Rastersampling | grid |
Bayessches Sampling | bayesian |
Experimentbudget
Sie können optional das Experimentbudget für Ihren AutoML NLP-Trainingsauftrag angeben, indem Sie den timeout_minutes
-Parameter in limits
verwenden – der Zeitspanne in Minuten, bevor das Experiment beendet wird. Ohne eine Angabe beträgt der Standardtimeout für Experimente sieben Tage (maximal 60 Tage).
Automatisiertes ML mit NLP unterstützt auch trial_timeout_minutes
, die maximale Zeit in Minuten, die ein einzelner Versuch ausgeführt werden kann, bevor er beendet wird, und max_nodes
, die maximale Anzahl von Knoten aus dem unterstützenden Computecluster, die für den Auftrag genutzt werden sollen. Diese Parameter gehören ebenfalls zum Abschnitt limits
.
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
limits:
timeout_minutes: 60
trial_timeout_minutes: 20
max_nodes: 2
Richtlinien zum vorzeitigen Beenden
Sie können Ausführungen mit schlechter Leistung mit einer Richtlinie für vorzeitige Beendigung automatisch beenden. Eine vorzeitige Beendigung verbessert die Effizienz der Berechnungen und spart Computeressourcen, die sonst für weniger vielversprechende Konfigurationen verwendet worden wären. AutoML NLP unterstützt frühzeitige Beendigungsrichtlinien mithilfe des Parameters early_termination
. Wenn keine Richtlinie für die Beendigung angegeben wird, werden alle Konfigurationen bis zum Ende ausgeführt.
Erfahren Sie mehr darüber, wie Sie die Richtlinie für die vorzeitige Beendigung Ihres Hyperparameter-Sweeps konfigurieren.
Ressourcen für den Sweep
Sie können die für Ihren Hyperparameter-Sweep verwendeten Ressourcen steuern, indem Sie max_trials
und max_concurrent_trials
für den Sweep angeben.
Parameter | Detail |
---|---|
max_trials |
Parameter für die maximale Anzahl der Konfigurationen, für die der Sweep durchgeführt wird. Muss eine ganze Zahl zwischen 1 und 1000 sein. Wenn Sie nur die Standardhyperparameter für einen bestimmten Modellalgorithmus untersuchen, legen Sie diesen Parameter auf 1 fest. Der Standardwert ist 1. |
max_concurrent_trials |
Maximale Anzahl von Ausführungen, die gleichzeitig ausgeführt werden können. Wenn dieser Wert angegeben wird, muss es sich dabei um eine ganze Zahl zwischen 1 und 100 handeln. Der Standardwert ist 1. HINWEIS: max_concurrent_trials ist intern auf max_trials begrenzt. Wenn der Benutzer z. B. max_concurrent_trials=4 , max_trials=2 festlegt, werden die Werte intern auf max_concurrent_trials=2 , max_trials=2 aktualisiert. |
Sie können alle Parameter, die auf Sweep bezogen sind, wie im folgenden Beispiel dargestellt konfigurieren.
GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)
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
Bekannte Probleme
Umgang mit niedrigen Scores oder höheren Verlustwerten:
Bei bestimmten Datasets, unabhängig von der NLP-Aufgabe, können die erzielten Scores sehr niedrig sein, manchmal sogar null. Dieser Score geht mit höheren Verlustwerten einher, was bedeutet, dass das neuronale Netzwerk nicht konvergieren konnte. Diese Scores können bei bestimmten GPU-SKUs häufiger vorkommen.
Solche Fälle sind zwar ungewöhnlich, aber möglich. Die beste Möglichkeit, damit umzugehen, ist die Hyperparameteroptimierung und die Bereitstellung einer größeren Bandbreite von Werten, insbesondere für Hyperparameter wie Lernraten. Bis unsere Funktion zur Hyperparameteroptimierung in der Produktionsumgebung verfügbar ist, empfehlen wir Benutzern, die mit solchen Problemen konfrontiert sind, die Computecluster NC6 oder ND6 zu nutzen. Diese Cluster weisen in der Regel relativ stabile Trainingsergebnisse auf.