Bewährte Modelltrainingsmethoden - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewährte Modelltrainingsmethoden

Sie können die Leistung von Neptune ML-Modellen auf verschiedene Arten verbessern.

Auswahl der richtigen Knoteneigenschaft

Möglicherweise sind nicht alle Eigenschaften im Diagramm für Ihre Machine-Learning-Aufgaben sinnvoll oder relevant. Irrelevante Eigenschaften sollten vom Datenexport ausgeschlossen werden.

Dies sind einige bewährte Methoden:

  • Lassen Sie sich von Fachexperten helfen, die Bedeutung von Features und die Möglichkeit ihrer Verwendung für Vorhersagen zu bewerten.

  • Entfernen Sie die Features, die Sie als überflüssig oder irrelevant betrachten, um das Datenrauschen und die Zahl der nicht wichtigen Korrelationen zu reduzieren.

  • Führen Sie während der Erstellung des Modells Iterationen durch. Passen Sie Features, Feature-Kombinationen und Optimierungsziele über die Zeit an.

im Abschnitt Feature-Verarbeitung im Amazon-Machine-Learning-Entwicklerhandbuch enthält weitere Anleitungen für die Feature-Verarbeitung, die für Neptune ML relevant sind.

Behandlung von Ausreißer-Datenpunkten

Ein Ausreißer ist ein Datenpunkt, der sich erheblich von den übrigen Daten unterscheidet. Datenausreißer können den Trainingsvorgang korrumpieren oder fehlleiten, was zu längeren Trainingszeiten oder weniger genauen Modellen führt. Wenn sie nicht wirklich wichtig sind, sollten Sie Ausreißer vor dem Exportieren der Daten entfernen.

Entfernen duplizierter Knoten und Kanten

In Neptune gespeicherte Diagramme können duplizierte Knoten oder Kanten enthalten. Diese redundanten Elemente führen beim Trainieren für ML-Modelle zu Rauschen. Entfernen Sie duplizierte Knoten oder Kanten, bevor Sie die Daten exportieren.

Optimieren der Diagrammstruktur

Wenn das Diagramm exportiert wird, können Sie die Verarbeitung von Features und die Konstruktion des Diagramms ändern, um die Modellleistung zu verbessern.

Dies sind einige bewährte Methoden:

  • Wenn eine Kanteneigenschaft die Bedeutung von Kantenkategorien hat, lohnt es sich in einigen Fällen, sie in Kantentypen zu konvertieren.

  • Die Standard-Normalisierungsrichtlinie für eine numerische Eigenschaft ist min-max. In einigen Fällen funktionieren andere Normalisierungsrichtlinien jedoch besser. Sie können die Eigenschaft vorab verarbeiten und die Normalisierungsrichtlinie wie in Elemente einer model-HPO-configuration.json-Datei beschrieben.

  • Beim Exportvorgang werden automatisch Feature-Typen basierend auf Eigenschaftstypen generiert. Beispielsweise werden String-Eigenschaften als kategorische Features und Float- und Int-Eigenschaften als numerische Features behandelt. Wenn notwendig, können Sie den Feature-Typ nach dem Export ändern (siehe Elemente einer model-HPO-configuration.json-Datei).

Optimieren von Hyperparameter-Bereichen und -Standardwerten

Die Datenverarbeitungsoperation leitet Hyperparameter-Konfigurationsbereiche aus dem Diagramm ab. Wenn die generierten Hyperparameterbereiche und Standardwerte des Modells für Ihre Diagrammdaten nicht gut funktionieren, können Sie die HPO-Konfigurationsdatei bearbeiten, um Ihre eigene Hyperparameter-Optimierungsstrategie zu erstellen.

Dies sind einige bewährte Methoden:

  • Wenn das Diagramm groß wird, reicht die Standardgröße ausgeblendeter Dimensionen möglicherweise nicht aus, um alle Informationen aufzunehmen. Sie können den Hyperparameter num-hidden ändern, um die Größe ausgeblendeter Dimensionen zu steuern.

  • Bei Knowledge Graph Embedding (KGE)-Modellen sollten Sie vielleicht das spezifische verwendete Modell auf der Basis von Diagrammstruktur und Budget ändern.

    TrainsE-Modelle haben Probleme mit Eins-zu-Viele-Beziehungen (1-N), Viele-zu-Eins-Beziehungen (N-1) und Viele-zu-Viele-Beziehungen (N-N). DistMult-Modelle haben Probleme mit symmetrischen Beziehungen. RotatE ist gut für die Modellierung aller Arten von Beziehungen geeignet, jedoch kostspieliger als TrainsE und DistMult während des Trainings.

  • In einigen Fällen, in denen sowohl die Knoten-ID als auch Informationen zu Knoten-Features wichtig sind, sollten Sie das Neptune-ML-Modell mit `concat-node-embed` anweisen, die anfängliche Darstellung eines Knotens durch die Verkettung seiner Features mit den anfänglichen Einbettungen abzurufen.

  • Wenn Sie für einige Hyperparameter eine angemessene Leistung erzielen, können Sie die Hyperparameter-Suchumgebung entsprechend diesen Ergebnissen anpassen.

Vorzeitiges Stoppen des Modelltrainings in Neptune ML

Ein vorzeitiger Stopp kann die Ausführungszeit und die Kosten für das Modelltraining deutlich reduzieren, ohne die Modellleistung zu beeinträchtigen. Dies verhindert auch, dass sich das Modell zu stark an die Trainingsdaten anpasst.

Ein vorzeitiger Abbruch ist von regelmäßigen Messungen der Validierungssatzleistung abhängig. Zunächst wird die Leistung mit fortschreitendem Training besser. Wenn sich das Modell jedoch zu stark anpasst, nimmt sie wieder ab. Das Feature für vorzeitige Stopps identifiziert den Punkt, ab dem sich ein Modell zu sehr anpasst, und stoppt das Modelltraining an diesem Punkt.

Neptune ML überwacht die Validierungsmetrikaufrufe und vergleicht die neueste Validierungsmetrik mit dem Durchschnitt der Validierungsmetriken der letzten n Auswertungen, wobei n ein Zahlensatz ist, der den Parameter window-for-early-stop verwendet. Sobald die Validierungsmetrik schlechter als dieser Durchschnitt ist, stoppt Neptune ML das Modelltraining und speichert das bisher beste Modell.

Sie können das vorzeitige Stoppen wie folgt mit den folgenden Parametern steuern:

  • window-for-early-stop   –   Der Wert dieses Parameters ist eine Ganzzahl und gibt die Zahl der letzten Validierungsergebnisse an, die für die Berechnung des Durchschnitts verwendet werden sollen, um über einen vorzeitigen Stopp zu entscheiden. Der Standardwert ist 3.

  • enable-early-stop   –   Mit diesem booleschen Parameter können Sie das Feature für vorzeitiges Stoppen deaktivieren. Der Standardwert ist true.

Vorzeitiges Stoppen des HPO-Vorgangs in Neptune ML

Das Feature für vorzeitige Stopps in Neptune ML stoppt über das SageMaker-HPO-Warmstart-Feature auch Trainingsaufträge mit einer schlechteren Leistung als andere Trainingsaufträge. Auch dies kann die Kosten senken und die HPO-Qualität verbessern.

In Ausführen eines Warmstart-Optimierungsaufgabe für Hyperparameter finden Sie eine Beschreibung der Funktionsweise.

Der Warmstart ermöglicht die Übergabe von Informationen aus früheren Trainingsaufträgen an nachfolgende Trainingsaufträge und hat zwei entscheidende Vorteile:

  • Erstens werden die Ergebnisse vorheriger Trainingsaufträge für die Auswahl guter Kombinationen von Hyperparametern verwendet, um sie im neuen Optimierungsauftrag zu durchsuchen.

  • Zweitens ermöglicht der Warmstart vorzeitige Stopps, um auf weitere Modellausführungen zugreifen zu können, was die Optimierungszeit reduziert.

Dieses Feature ist in Neptune ML automatisch aktiviert und ermöglicht Ihnen, ein Gleichgewicht zwischen Trainingszeit und Leistung herzustellen. Wenn Sie mit der Leistung des aktuellen Modells zufrieden sind, können Sie dieses Modell verwenden. Andernfalls führen Sie anhand der Ergebnisse früherer Ausführungen weitere Warmstart-HPOs aus, um ein besseres Modell zu finden.

Professionelle Support-Services

AWS stellt professionelle Support-Services bereit, um Sie bei Problemen mit dem Machine Learning für Neptune-Projekte zu unterstützen. Wenn Sie nicht weiterkommen, nehmen Sie bitte Kontakt mit dem AWS-Support auf.