Hyperparameter-Feinabstimmung
Beim maschinellen Lernen ermittelt die Hyperparameter-Abstimmung eine Reihe optimaler Hyperparameter für einen Lernalgorithmus. Ein Hyperparameter ist ein Modellargument, dessen Wert vor dem Beginn des Lernprozesses festgelegt wird. Im Gegensatz dazu werden die Werte anderer Parameter erlernt, z. B. Koeffizienten eines linearen Modells.
Dank der Hyperparameter-Abstimmung können Sie weniger Zeit für die manuelle Iteration von Hyperparametern aufwenden und sich verstärkt auf die Datenauswertung konzentrieren.
Sie können Hyperparameter-Abstimmungsoptionen für die folgenden Modelltypen angeben:
- Lineare und logistische Regression
- K-means
- Matrixfaktorisierung
- Autoencoder
- Gesteigerte Strukturen
- Random Forest
- Neuronales Deep-Learning-Netzwerk (DNN)
- Wide & Deep-Netzwerk
Für diese Arten von Modellen ist die Hyperparameter-Abstimmung aktiviert, wenn Sie einen Wert für dieNUM_TRIALS
-Option in der CREATE MODEL
-Anweisung angeben.
Die folgenden Modelle unterstützen auch die Hyperparameter-Abstimmung. Sie können jedoch keine bestimmten Werte angeben:
- In AutoML Tables-Modellen ist die automatische Abstimmung der Hyperparameter standardmäßig im Modelltraining eingebettet.
- Mit ARIMA_PLUS-Modellen können Sie das Argument
AUTO_ARIMA
festlegen, um die Hyperparameter-Abstimmung mit dem auto.ARIMA-Algorithmus durchzuführen. Dieser Algorithmus führt eine Hyperparameter-Abstimmung für das Trendmodul durch. Die Hyperparameter-Abstimmung wird nicht für die gesamte Modellierungspipeline unterstützt.
Informationen zu den unterstützten SQL-Anweisungen und -Funktionen für die einzelnen Modelltypen erhalten Sie unter End-to-End-Nutzerpfad für jedes Modell.
Standorte
Informationen darüber, welche Standorte die Hyperparameter-Abstimmung unterstützen, finden Sie unter BigQuery ML-Standorte.
Hyperparameter festlegen
Zum Optimieren eines Hyperparameters müssen Sie einen Wertebereich für diesen Hyperparameter angeben, den das Modell für eine Reihe von Tests verwenden kann. Dazu können Sie beim Festlegen des Hyperparameters in der CREATE MODEL
-Anweisung eines der folgenden Keywords verwenden, anstatt einen einzelnen Wert anzugeben:
HPARAM_RANGE
: EinARRAY(FLOAT64)
-Wert mit zwei Elementen, der die Mindest- und Höchstgrenzen des Suchbereichs kontinuierlicher Werte für einen Hyperparameter definiert. Verwenden Sie diese Option, um einen Wertebereich für einen Hyperparameter anzugeben, z. B.LEARN_RATE = HPARAM_RANGE(0.0001, 1.0)
.HPARAM_CANDIDATES
: EinARRAY(STRUCT)
-Wert, der die Gruppe einzelner Werte für den Hyperparameter angibt. Verwenden Sie diese Option, um eine Reihe von Werten für einen Hyperparameter anzugeben, z. B.OPTIMIZER = HPARAM_CANDIDATES(['ADAGRAD', 'SGD', 'FTRL'])
.
Hyperparameter und Ziele
In der folgenden Tabelle sind die unterstützten Hyperparameter und Ziele für jeden Modelltyp aufgeführt, der die Hyperparameter-Abstimmung unterstützt:
Modelltyp | Hyperparameter-Ziele | Hyperparameter | Gültiger Bereich | Standardbereich | Skalentyp |
---|---|---|---|---|---|
LINEAR_REG
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (Standard)
EXPLAINED_VARIANCE
|
L1_REG
L2_REG
|
(0, ∞]
(0, ∞]
|
(0, 10]
(0, 10]
|
LOG
LOG
|
LOGISTIC_REG
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (Standard)
|
L1_REG
L2_REG
|
(0, ∞]
(0, ∞]
|
(0, 10]
(0, 10]
|
LOG
LOG
|
KMEANS
|
DAVIES_BOULDIN_INDEX
|
NUM_CLUSTERS
|
[2, 100]
|
[2, 10]
|
LINEAR
|
MATRIX_ (explizit)
|
MEAN_SQUARED_ERROR
|
NUM_FACTORS
L2_REG
|
[2, 200]
(0, ∞)
|
[2, 20]
(0, 10]
|
LINEAR
LOG
|
MATRIX_ (implizit)
|
MEAN_AVERAGE_PRECISION (Standard)
MEAN_SQUARED_ERROR
NORMALIZED_DISCOUNTED_CUMULATIVE_GAIN
AVERAGE_RANK
|
NUM_FACTORS
L2_REG
WALS_ALPHA
|
[2, 200]
(0, ∞)
[0, ∞)
|
[2, 20]
(0, 10]
[0, 100]
|
LINEAR
LOG
LINEAR
|
AUTOENCODER
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR (Standard)
MEAN_SQUARED_LOG_ERROR
|
LEARN_RATE
BATCH_SIZE
L1_REG
L2_REG
L1_REG_ACTIVATION
DROPOUT
HIDDEN_UNITS
OPTIMIZER
ACTIVATION_FN
|
[0, 1]
(0, ∞)
(0, ∞)
(0, ∞)
(0, ∞)
[0, 1)
Array von [1, ∞)
{ ADAM , ADAGRAD , FTRL , RMSPROP , SGD }
{ RELU , RELU6 , CRELU , ELU , SELU , SIGMOID , TANH }
|
[0, 1]
[16, 1024]
(0, 10]
(0, 10]
(0, 10]
[0, 0.8]
– { ADAM , ADAGRAD , FTRL , RMSPROP , SGD }
– |
LOG
LOG
LOG
LOG
LOG
LINEAR
– – – |
DNN_CLASSIFIER
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (Standard)
|
BATCH_SIZE
DROPOUT
HIDDEN_UNITS
LEARN_RATE
OPTIMIZER
L1_REG
L2_REG
ACTIVATION_FN
|
(0, ∞)
[0, 1)
Array von [1, ∞)
[0, 1]
{ ADAM , ADAGRAD , FTRL , RMSPROP , SGD }
(0, ∞)
(0, ∞)
{ RELU , RELU6 , CRELU , ELU , SELU , SIGMOID , TANH }
|
[16, 1024]
[0, 0.8]
– [0, 1]
{ ADAM , ADAGRAD , FTRL , RMSPROP , SGD }
(0, 10]
(0, 10]
– |
LOG
LINEAR
– LINEAR
– LOG
LOG
– |
DNN_REGRESSOR
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (Standard)
EXPLAINED_VARIANCE
|
||||
DNN_LINEAR_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (Standard)
|
BATCH_SIZE
DROPOUT
HIDDEN_UNITS
L1_REG
L2_REG
ACTIVATION_FN
|
(0, ∞)
|
[16, 1024]
[0, 0.8]
– (0, 10]
(0, 10]
– |
LOG
LINEAR
– LOG
LOG
– |
DNN_LINEAR_
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (Standard)
EXPLAINED_VARIANCE
|
||||
BOOSTED_TREE_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (Standard)
|
LEARN_RATE
L1_REG
L2_REG
DROPOUT
MAX_TREE_DEPTHMAX_TREE_DEPTH
SUBSAMPLE
MIN_SPLIT_LOSS
NUM_PARALLEL_TREE
MIN_TREE_CHILD_WEIGHT
COLSAMPLE_BYTREE
COLSAMPLE_BYLEVEL
COLSAMPLE_BYNODE
BOOSTER_TYPE
DART_NORMALIZE_TYPE
TREE_METHOD
|
[0, ∞)
(0, ∞)
(0, ∞)
[0, 1]
[1, 20]
(0, 1]
[0, ∞)
[1, ∞)
[0, ∞)
[0, 1]
[0, 1]
[0, 1]
{ GBTREE , DART }
{ TREE , FOREST }
{ AUTO , EXACT , APPROX , HIST }
|
[0, 1]
(0, 10]
(0, 10]
– [1, 10]
(0, 1]
– – – – – – – – – |
LINEAR
LOG
LOG
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
– – – |
BOOSTED_TREE_ |
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (Standard)
EXPLAINED_VARIANCE
|
||||
RANDOM_FOREST_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (Standard)
|
L1_REG
L2_REG
MAX_TREE_DEPTH
SUBSAMPLE
MIN_SPLIT_LOSS
NUM_PARALLEL_TREE
MIN_TREE_CHILD_WEIGHT
COLSAMPLE_BYTREE
COLSAMPLE_BYLEVEL
COLSAMPLE_BYNODE
TREE_METHOD
|
(0, ∞)
(0, ∞)
[1, 20]
(0, 1)
[0, ∞)
[2, ∞)
[0, ∞)
[0, 1]
[0, 1]
[0, 1]
{ AUTO , EXACT , APPROX , HIST }
|
(0, 10]
(0, 10]
[1, 20]
(0, 1)
– [2, 200]
– – – – – |
LOG
LOG
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
– |
RANDOM_FOREST_ |
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (Standard)
EXPLAINED_VARIANCE
|
Die meisten Hyperparameter der Skalierung LOG
verwenden die offene untere Grenze von 0
. Sie können 0
auch als untere Grenze festlegen. Verwenden Sie dazu das Keyword HPARAM_RANGE
, um den Hyperparameter-Bereich festzulegen. In einem Boosted Tree-Klassifikationsmodell können Sie beispielsweise den Bereich für den Hyperparameter L1_REG
auf L1_REG = HPARAM_RANGE(0, 5)
setzen. Ein Wert von 0
wird in 1e-14
konvertiert.
Bedingte Hyperparameter werden unterstützt. In einem Boosted Tree-Regressormodell können Sie beispielsweise nur die Abstimmung der DART_NORMALIZE_TYPE
Hyperparameter vornehmen, wenn der Wert des Hyperparameters BOOSTER_TYPE
DART
ist. In diesem Fall geben Sie beide Suchbereiche an und die Bedingungen werden automatisch verarbeitet, wie im folgenden Beispiel gezeigt:
BOOSTER_TYPE = HPARAM_CANDIDATES(['DART', 'GBTREE'])
DART_NORMALIZE_TYPE = HPARAM_CANDIDATES(['TREE', 'FOREST'])
Ausgangspunkt für die Suche
Wenn Sie keinen Suchbereich für einen Hyperparameter mit HPARAM_RANGE
oder HPARAM_CANDIDATES
angeben, beginnt die Suche ab dem Standardwert dieses Hyperparameters, wie im Thema CREATE MODEL
für diesen Modelltyp dokumentiert. Wenn Sie beispielsweise Hyperparameter-Abstimmung für ein Boosted Tree-Modell ausführen und Sie keinen Wert für den Hyperparameter L1_REG
angeben, beginnt die Suche ab dem Standardwert 0
.
Wenn Sie mit HPARAM_RANGE
oder HPARAM_CANDIDATES
einen Suchbereich für einen Hyperparameter angeben, hängt der Startpunkt der Suche davon ab, ob der angegebene Suchbereich den Standardwert für diesen Hyperparameter enthält, wie im Thema CREATE MODEL
für diesen Modelltyp dokumentiert:
- Wenn der angegebene Bereich den Standardwert enthält, beginnt die Suche an dieser Stelle. Wenn Sie beispielsweise die Abstimmung der Hyperparameter für ein implizites Matrixfaktorisierungsmodell durchführen und den Wert
[20, 30, 40, 50]
für den HyperparameterWALS_ALPHA
angeben, beginnt die Suche bei dem Standardwert40
. - Wenn der angegebene Bereich nicht den Standardwert enthält, beginnt die Suche ab dem Punkt im angegebenen Bereich, der dem Standardwert am nächsten ist.
Wenn Sie beispielsweise den Wert
[10, 20, 30]
für den HyperparameterWALS_ALPHA
angeben, beginnt die Suche bei30
, dem nächstgelegenen Wert zum Standardwert von40
.
Datenaufteilung
Wenn Sie einen Wert für die Option NUM_TRIALS
angeben, erkennt der Dienst, dass Sie die Hyperparameter-Abstimmung durchführen, und führt automatisch eine dreifache Aufteilung der Eingabedaten durch, um sie in Trainings-, Auswertungs- und Test-Datasets aufzuteilen.
Standardmäßig werden die Eingabedaten nach dem Zufallsprinzip ausgewählt und dann in 80 % für das Training, 10 % für die Bewertung und 10 % für Tests aufgeteilt.
Die Trainings- und Bewertungs-Datasets werden in jedem Testtraining verwendet, genauso wie bei Modellen, die keine Hyperparameter-Abstimmung verwenden. Die Vorschläge für Test-Hyperparameter werden basierend auf den Modellbewertungsmesswerten für diesen Modelltyp berechnet. Am Ende jedes Testtrainings wird das Test-Dataset verwendet, um den Test zu testen und seine Messwerte im Modell aufzuzeichnen. Dadurch wird die Objektivität der Messwerte für die endgültige Berichterstellung sichergestellt, da Daten verwendet werden, die noch nicht vom Modell analysiert wurden. Die Auswertungsdaten werden verwendet, um die Zwischenmesswerte für den Vorschlag von Hyperparametern zu berechnen, während die Testdaten zur Berechnung der endgültigen, objektiven Modellmesswerte verwendet werden.
Wenn Sie nur ein Trainings-Dataset verwenden möchten, geben Sie NO_SPLIT
für die Option DATA_SPLIT_METHOD
der CREATE MODEL
-Anweisung an.
Wenn Sie nur Trainings- und Bewertungs-Datasets verwenden möchten, geben Sie 0
für die Option DATA_SPLIT_TEST_FRACTION
der CREATE MODEL
-Anweisung an. Wenn das Test-Dataset leer ist, wird das Bewertungs-Dataset als Test-Dataset für die endgültigen Berichte mit den Bewertungsmesswerten verwendet.
Die Messwerte aus Modellen, die von einem normalen Trainingsjob generiert werden, und die aus einem Hyperparameter-Abstimmungstrainingsjob sind nur vergleichbar, wenn die Datenaufteilungsanteile gleich sind. Die folgenden Modelle sind beispielsweise vergleichbar:
- Nicht-Hyperparameter-Abstimmung:
DATA_SPLIT_METHOD='RANDOM', DATA_SPLIT_EVAL_FRACTION=0.2
- Hyperparameter-Feinabstimmung:
DATA_SPLIT_METHOD='RANDOM', DATA_SPLIT_EVAL_FRACTION=0.2, DATA_SPLIT_TEST_FRACTION=0
Leistung
Die Modellleistung ist bei Verwendung der Hyperparameter-Abstimmung normalerweise nicht schlechter als die Modellleistung bei Verwendung des Standardsuchbereichs und ohne Hyperparameter-Abstimmung. Ein Modell, das den Standardsuchbereich und keine Hyperparameter-Abstimmung nutzt, verwendet immer die Standard-Hyperparameter im ersten Test.
Wenn Sie die von der Hyperparameter-Abstimmung bereitgestellten Modellleistung verbessern möchten, vergleichen Sie den optimalen Test für das Hyperparameter-Abstimmungsmodell mit dem ersten Test für das Nicht-Hyperparameter-Abstimmungsmodell.
Lerntransfer
Lerntransfer ist standardmäßig aktiviert, wenn Sie die Option HPARAM_TUNING_ALGORITHM
in der Anweisung CREATE MODEL
auf VIZIER_DEFAULT
setzen. Die Hyperparameter-Abstimmung für ein Modell profitiert von dem Nutzen von zuvor abgestimmten Modellen, wenn es die folgenden Anforderungen erfüllt:
- Es hat denselben Modelltyp wie zuvor abgestimmte Modelle.
- Es befindet sich im selben Projekt wie zuvor abgestimmte Modelle.
- Es verwendet denselben Hyperparameter-Suchbereich ODER eine Teilmenge des Hyperparameter-Suchbereichs zuvor abgestimmter Modelle. Eine Teilmenge verwendet dieselben Hyperparameternamen und -typen, muss jedoch nicht dieselben Bereiche haben.
Beispiel:
(a:[0, 10])
wird als Teilmenge von(a:[-1, 1], b:[0, 1])
betrachtet.
Für den Lerntransfer müssen die Eingabedaten nicht identisch sein.
Der Lerntransfer hilft, das Kaltstartproblem zu lösen, bei dem das System während des ersten Testbatches eine zufällige explorative Datenanalyse ausführt. Der Lerntransfer stellt dem System ein grundlegendes Wissen über die Hyperparameter und deren Ziele bereit. Um die Modellqualität kontinuierlich zu verbessern, trainieren Sie immer ein neues Hyperparameter-Abstimmungsmodell mit denselben oder einer Teilmenge von Hyperparametern.
Mit dem Lerntransfer wird die Hyperparameter-Abstimmung beschleunigt, anstatt Teilmodelle bei der Konvergenz zu unterstützen.
Fehlerbehandlung
Bei der Hyperparameter-Abstimmung werden Fehler auf folgende Weise gehandhabt:
Abbrechen: Wenn ein Trainingsjob während der Ausführung abgebrochen wird, können alle erfolgreichen Tests weiterhin verwendet werden.
Ungültige Eingabe: Wenn die Nutzereingabe ungültig ist, gibt der Dienst einen Nutzerfehler zurück.
Ungültige Hyperparameter: Wenn die Hyperparameter für einen Test ungültig sind, wird der Test übersprungen und in der Ausgabe der Funktion
ML.TRIAL_INFO
alsINFEASIBLE
markiert.Interner Testfehler: Wenn mehr als 10 % des Werts
NUM_TRIALS
aufgrund vonINTERNAL_ERROR
fehlschlagen, wird der Trainingsjob beendet und ein Nutzerfehler zurückgegeben.Wenn weniger als 10 % des
NUM_TRIALS
-Werts aufgrund vonINTERNAL_ERROR
fehlschlagen, wird das Training mit den fehlgeschlagenen Tests fortgesetzt, die in der Ausgabe der FunktionML.TRIAL_INFO
alsFAILED
markiert sind.
Modellbereitstellungsfunktionen
Sie können Ausgabemodelle der Hyperparameter-Abstimmung mit einer Reihe vorhandener Modellbereitstellungsfunktionen verwenden. Befolgen Sie die folgenden Regeln, um diese Funktionen zu verwenden:
Wenn die Funktion Eingabedaten verwendet, wird nur das Ergebnis eines Tests zurückgegeben. Standardmäßig ist dies der optimale Test. Sie können jedoch auch einen bestimmten Test auswählen, indem Sie
TRIAL_ID
als Argument für die angegebene Funktion angeben. Sie können dieTRIAL_ID
aus der Ausgabe der FunktionML.TRIAL_INFO
abrufen. Die folgenden Funktionen werden unterstützt:Wenn die Funktion keine Eingabedaten verwendet, werden alle Testergebnisse zurückgegeben und die erste Ausgabespalte ist
TRIAL_ID
. Die folgenden Funktionen werden unterstützt:
Die Ausgabe von ML.FEATURE_INFO
ändert sich nicht, da alle Tests dieselben Eingabedaten verwenden.
Die Bewertungsmesswerte von ML.EVALUATE
und ML.TRIAL_INFO
können aufgrund der Aufteilung der Eingabedaten unterschiedlich sein. Standardmäßig wird ML.EVALUATE
für die Testdaten ausgeführt, während ML.TRIAL_INFO
für die Bewertungsdaten ausgeführt wird. Weitere Informationen finden Sie unter Datenaufteilung.
Nicht unterstützte Funktionen
Die Funktion ML.TRAINING_INFO
gibt Informationen für jede Iteration zurück und die Iterationsergebnisse werden nicht in Hyperparameter-Abstimmungsmodellen gespeichert. Stattdessen werden die Testergebnisse gespeichert. Mit der Funktion ML.TRIAL_INFO
können Sie Informationen zu Testergebnissen abrufen.
Modellexport
Mit der Anweisung EXPORT MODEL
können Sie Modelle, die mit Hyperparameter-Abstimmung erstellt wurden, in Cloud Storage-Speicherorte exportieren.
Sie können den standardmäßigen optimalen Test oder einen bestimmten Test exportieren.
Preise
Die Kosten für das Training zur Hyperparameter-Abstimmung sind die Summe der Kosten aller ausgeführten Tests. Die Preise eines Testzeitraums entsprechen dem vorhandenen BigQuery ML-Preismodell.
FAQs
Wie viele Versuche brauche ich, um ein Modell zu optimieren?
Wir empfehlen, mindestens 10 Tests für einen Hyperparameter zu verwenden, sodass die Gesamtzahl der Tests mindestens 10 * num_hyperparameters
beträgt. Wenn Sie den Standardsuchbereich verwenden, finden Sie in der Spalte Hyperparameter in der Tabelle Hyperparameter und Ziele die Anzahl der Hyperparameter, die standardmäßig für einen bestimmten Modelltyp abgestimmt sind.
Was ist, wenn ich bei der Verwendung der Hyperparameter-Abstimmung keine Leistungsverbesserungen sehe?
Befolgen Sie die Anleitung in diesem Dokument, um einen fairen Vergleich zu erhalten. Wenn Sie immer noch keine Leistungsverbesserungen feststellen, bedeutet dies möglicherweise, dass die Standard-Hyperparameter bereits gut funktionieren. Sie können sich auf das Feature Engineering konzentrieren oder andere Modelltypen ausprobieren, bevor Sie eine weitere Hyperparameter-Abstimmung ausprobieren.
Wie kann ich ein Modell weiter optimieren?
Trainieren Sie ein neues Hyperparameter-Abstimmungsmodell mit demselben Suchbereich. Mit dem Lerntransfer können Sie die Abstimmung auf der Grundlage Ihrer zuvor abgestimmten Modelle fortsetzen.
Muss ich das Modell mit allen Daten und den optimalen Hyperparametern neu trainieren?
Dies hängt von folgenden Faktoren ab:
Da K-Means-Modelle bereits alle Daten als Trainingsdaten verwenden, müssen Sie das Modell nicht neu trainieren.
Bei Matrixfaktorisierungsmodellen können Sie das Modell mit den ausgewählten Hyperparametern und allen Eingabedaten neu trainieren, um eine bessere Abdeckung von Nutzern und Elementen zu erzielen.
Bei allen anderen Modelltypen ist das erneute Training in der Regel nicht erforderlich. Der Dienst behält bereits 80 % der Eingabedaten für das Training während der standardmäßigen zufälligen Datenaufteilung bei. Sie können das Modell immer noch mit mehr Trainingsdaten und den ausgewählten Hyperparametern neu trainieren, wenn Ihr Dataset klein ist. Wenn Sie jedoch nur wenige Auswertungsdaten für ein frühzeitiges Anhalten übrig lassen, kann dies zu einer Überanpassung führen.
Nächste Schritte
Informationen zum Ausführen der Hyperparameter-Abstimmung finden Sie unter BigQuery ML-Hyperparameter-Abstimmung zur Verbesserung der Modellleistung verwenden.