Iteratives Training - Amazon SageMaker KI

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.

Iteratives Training

-Übersicht

Iteratives Training ist der Prozess der wiederholten Feinabstimmung eines Modells durch mehrere Trainingszyklen mit unterschiedlichen Trainingsmethoden — Training, Bewertung, Fehleranalyse, Anpassung data/objectives/hyperparameters — wobei jede Runde am vorherigen Checkpoint beginnt. Dieser Ansatz ermöglicht es Ihnen, systematisch auf die Ursachen von Modellfehlern einzugehen, kuratierte Beispiele für spezifische Schwächen einzubeziehen und sich im Laufe der Zeit an sich ändernde Anforderungen anzupassen.

Vorteile gegenüber einer Schulung in nur einem Durchgang:

  • Gezielte Verbesserung: Behebung spezifischer Fehlermuster, die im Rahmen von Evaluierungen entdeckt wurden

  • Adaptive Verfeinerung: Reagieren Sie auf Veränderungen im Vertrieb oder sich ändernde Produktanforderungen

  • Risikominderung: Überprüfen Sie Verbesserungen schrittweise, anstatt sich auf einen einzigen langen Schulungslauf festzulegen

  • Dateneffizienz: Konzentrieren Sie die Datenerhebung auf Bereiche, in denen das Modell unterdurchschnittlich abschneidet

  • Lehrplanausbildung: Mehrere Schulungsrunden mit immer hochwertigeren Daten

Funktionsweise

Standort und Zugang zum Checkpoint

Nach Abschluss jedes Trainingsjobs wird eine Manifestdatei an dem durch den output_path Parameter in Ihrer Trainingskonfiguration angegebenen Ausgabespeicherort generiert.

Um auf Ihren Checkpoint zuzugreifen

  • Navigieren Sie zu Ihrem output_path in S3 angegebenen

  • Laden Sie die output.tar.gz Datei herunter und entpacken Sie sie

  • Öffnen Sie die manifest.json Datei im Inneren

  • Suchen Sie den checkpoint_s3_bucket Parameter, der die S3-URI Ihres trainierten Modells enthält

Beispiel für eine manifest.json-Struktur

{ "checkpoint_s3_bucket": "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>/stepID", ... }

Grundlegendes zu Treuhandbuckets

Da es sich bei Amazon Nova um firmeneigene Prüfpunkte handelt, werden die Prüfpunkte des trainierten Modells in Treuhand-S3-Buckets innerhalb AWS verwalteter Konten gespeichert, anstatt auf Ihr Konto kopiert zu werden. Diese Treuhandkonten:

  • Bewahren Sie die Gewichte Ihrer maßgeschneiderten Modelle sicher auf

  • Kann von anderen AWS Diensten referenziert werden (Inferenz-, Evaluierungs- und nachfolgende Schulungsaufträge)

  • Sind nur für Ihr AWS Konto über IAM-Berechtigungen zugänglich

  • Für Ihr Konto fallen die üblichen S3-Speichergebühren an (siehe Überlegungen zu den Kosten)

Sie können den Escrow-Bucket-Pfad als Pfad für Ihren nächsten model_name_or_path Trainingslauf verwenden, um das iterative Training fortzusetzen.

Checkpoints für iteratives Training verwenden

Konfigurieren Sie Ihren nächsten Trainingsjob so, dass er den vorherigen Checkpoint als Basismodell verwendet:

run: name: "my-iterative-training-job" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<previous-job-name>" data_s3_path: s3://<bucket>/<data-file>.jsonl replicas: 4

Wann sollte iteratives Training verwendet werden

Ideale Anwendungsfälle

Verwenden Sie iteratives Training, wenn Sie:

  • Feedbackschleifen — Fähigkeit, reale Fehlerfälle zu sammeln und diese systematisch zu behandeln

  • Dynamische Umgebungen — sich entwickelnde Dokumentations- oder Supportthemen APIs, die regelmäßige Modellaktualisierungen erfordern

  • Solide Evaluierung — Starke Benchmarks und Bewertungsrahmen (siehe Beispiele unten), um Verbesserungen zuverlässig messen zu können

  • ML-Operationsfähigkeit — Ressourcen zur Verwaltung mehrerer Trainingszyklen und zur Versionskontrolle

Beispiele für robuste Bewertungsrahmen

  • Automatisierte Benchmark-Suiten mit pass/fail Schwellenwerten

  • Bewertungsprotokolle durch Menschen mit Zuverlässigkeitsmetriken verschiedener Prüfer

  • Testszenarien im RED-Team, die Sonderfälle und gegnerische Eingaben abdecken

  • A/B-Testinfrastruktur zur Messung der Auswirkungen auf die Produktion

Allgemeine Muster

SFT → RFT-Pipeline: Ein häufig verwendetes iteratives Muster beinhaltet:

  • Zuerst SFT — Bringen Sie dem Modell anhand von Demonstrationsbeispielen bei, wie Probleme gelöst werden können

  • RFT zweitens — Optimieren Sie die Leistung im breiteren Problembereich mithilfe von Belohnungssignalen

Diese Reihenfolge ist wichtig, wenn Modelle anfänglich schlecht abschneiden. RFT auf Modellen mit einer Genauigkeit von nahezu Null verbessert die Leistung nicht, wenn nicht zuerst grundlegende Problemlösungsfunktionen durch SFT eingerichtet wurden.

Wann sollte iteratives Training nicht verwendet werden

Vermeiden Sie iteratives Training für:

  • Stabile, klar definierte Aufgaben — Stationäre Daten mit konsistenten Anforderungen erreichen bereits nahezu maximale Leistung

  • Einfache Klassifizierungsprobleme — Eingeschränkte Aufgaben, bei denen eine Schulung in einem einzigen Durchgang ausreicht

  • Ressourcenengpässe — Es fehlen spezielle ML-Betriebsfunktionen zur Verwaltung mehrerer Trainingszyklen

  • Marginale Gewinne — Wenn der Overhead minimale Leistungsverbesserungen nicht rechtfertigt

Beispiel-Workflow: SFT → RFT

Dieses Beispiel zeigt ein gängiges iteratives Trainingsmuster für Argumentationsmodelle.

Schritt 1: Anfängliches SFT-Training

Konfigurieren und starten Sie Ihren SFT-Trainingsjob mit Ihrem Datensatz:

run: name: "initial-sft-training" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod" data_s3_path: s3://<bucket>/sft-training-data.jsonl validation_data_s3_path: s3://<bucket>/sft-validation-data.jsonl

Begründung: SFT bietet zusätzliche Demonstrationen, mit denen die Modellausgaben in das gewünschte Format und die gewünschte Sprache gebracht werden, wodurch grundlegende Funktionen vermittelt werden.

Nach Abschluss der Schulung

  • Notieren Sie sich die in Ihrem Trainingsjob output_path konfigurierten

  • Laden Sie es output.tar.gz von diesem Ort herunter

  • Extrahieren und lokalisieren manifest.json

  • Kopieren Sie den checkpoint_s3_bucket Wert

Schritt 2: RFT-Training am SFT-Checkpoint

Erstellen Sie mithilfe des SFT-Checkpoints einen neuen RFT-Trainingsjob:

run: name: "rft-on-sft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<initial-sft-training>" data_s3_path: s3://<bucket>/rft-training-data.jsonl reward_lambda_arn: <your-reward-function-arn>

Begründung: Das RFT-Training baut auf der SFT-Grundlage auf und ermöglicht es dem Modell, komplexere Argumentationsmuster zu entwickeln, die anhand Ihrer Belohnungsfunktion optimiert sind.

Schritt 3: Evaluieren und iterieren

Führen Sie die Bewertung am RFT-Checkpoint durch, um die Leistung zu bewerten:

run: name: "evaluate-rft-checkpoint" model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<rft-on-sft-checkpoint>" data_s3_path: s3://<bucket>/evaluation-data.jsonl

Wenn die Zielkennzahlen nicht erfüllt sind, fahren Sie mit der Iteration mit angepassten Daten oder Hyperparametern fort.

Wichtig

⚠️ Wichtig: Die Trainingstechnik (LoRa vs. Full Rank) muss in allen Iterationen konsistent bleiben:

  • Wenn Sie SFT mit LoRa verwenden, müssen Sie RFT mit LoRa verwenden

  • Wenn Sie SFT mit vollem Rang verwenden, müssen Sie RFT mit vollständigem Rang verwenden

  • Sie können nicht während der Pipeline zwischen LoRa und Full Rank wechseln

Überwachung des Fortschritts über Iterationen hinweg

Sie können Metriken verfolgen über MLFlow.

Erstellen Sie eine MLflow App

Verwenden der Studio-Benutzeroberfläche: Wenn Sie einen Schulungsjob über die Studio-Benutzeroberfläche erstellen, wird automatisch eine MLflow Standard-App erstellt und standardmäßig unter Erweiterte Optionen ausgewählt.

CLI verwenden: Wenn Sie die CLI verwenden, müssen Sie eine MLflow App erstellen und sie als Eingabe an die API-Anfrage für den Trainingsjob übergeben.

mlflow_app_name="<enter your MLflow app name>" role_arn="<enter your role ARN>" bucket_name="<enter your bucket name>" region="<enter your region>" mlflow_app_arn=$(aws sagemaker create-mlflow-app \ --name $mlflow_app_name \ --artifact-store-uri "s3://$bucket_name" \ --role-arn $role_arn \ --region $region)

Greifen Sie auf die MLflow App zu

Verwenden von CLI: Erstellen Sie eine vorsignierte URL für den Zugriff auf die MLflow App-Benutzeroberfläche:

aws sagemaker create-presigned-mlflow-app-url \ --arn $mlflow_app_arn \ --region $region \ --output text

Verwenden der Studio-Benutzeroberfläche: Die Studio-Benutzeroberfläche zeigt wichtige Kennzahlen an, die in der App-Benutzeroberfläche gespeichert sind, MLflow und bietet einen Link zur MLflow App-Benutzeroberfläche.

Wichtige Kennzahlen, die es zu verfolgen gilt

Überwachen Sie diese Kennzahlen in allen Iterationen, um die Verbesserung zu bewerten und den Arbeitsfortschritt zu verfolgen:

Für SFT

  • Verlustkurven beim Training

  • Anzahl der verbrauchten Proben und Dauer der Probenverarbeitung

  • Leistungsgenauigkeit bei ausgestreckten Testgeräten

  • Formatkonformität (z. B. gültige JSON-Ausgaberate)

  • Unklarheit in Bezug auf domänenspezifische Bewertungsdaten

Für RFT

  • Durchschnittliche Belohnungspunktzahl im Vergleich zum Training

  • Verteilung der Prämien (Prozentsatz der Antworten mit hoher Prämie)

  • Trends bei der Validierung von Prämien (achten Sie auf Überbelegungen)

  • Aufgabenspezifische Erfolgsquoten (z. B. Erfolgsquote bei der Codeausführung, Genauigkeit mathematischer Probleme)

General

  • Vergleichen Sie Leistungsdeltas zwischen Iterationen

  • Bewertungsergebnisse am Menschen anhand repräsentativer Stichproben

  • Produktionskennzahlen (bei iterativer Bereitstellung)

Feststellen, wann gestoppt werden soll

Beenden Sie die Iteration, wenn:

  • Leistungsplateaus — Zusätzliche Schulungen verbessern die Zielkennzahlen nicht mehr nennenswert

  • Technikwechsel hilft — Wenn eine Technik ein Plateau erreicht, versuchen Sie es mit einem Wechsel (z. B. SFT → RFT → SFT), um die Leistungsobergrenzen zu durchbrechen

  • Zielkennzahlen erreicht — Ihre Erfolgskriterien sind erfüllt

  • Regression erkannt — Neue Iterationen verschlechtern die Leistung (siehe Rollback-Verfahren unten)

Ausführliche Bewertungsverfahren finden Sie im Abschnitt Bewertung.

Best Practices

Fangen Sie klein an und skalieren Sie schrittweise

Beginnen Sie mit minimalen Datensätzen und einzelnen Trainingsepochen, um Ihren Ansatz zu validieren, bevor Sie ihn skalieren. Das schafft Vertrauen und hilft, Probleme frühzeitig zu erkennen.

Legen Sie klare Erfolgskennzahlen fest

Definieren Sie quantitative und qualitative Indikatoren, bevor Sie beginnen:

Beispiele für Erfolgskennzahlen nach Anwendungsfall

  • Beantwortung von Fragen — Genaue Treffergenauigkeit, F1-Ergebnis, menschliche Präferenzwerte

  • Codegenerierung — Erfolgsquote bei Komponententests, Erfolg bei der Kompilierung, Ausführungszeit

  • Aufgaben zum Argumentieren — Genauigkeit der einzelnen Schritte, Richtigkeit der endgültigen Antwort, Punktzahlen

  • Generierung von Inhalten — Kohärenzwerte, sachliche Genauigkeit, Einhaltung des Stils

Implementieren Sie eine automatisierte Bewertung

Richten Sie automatisierte Evaluierungspipelines ein, um die Leistung nach jeder Runde zu verfolgen und so eine schnelle Iteration und einen objektiven Vergleich zu ermöglichen.

Sorgen Sie für eine strenge Versionskontrolle

Dokument für jede Iteration:

  • Versionen und Änderungen von Datensätzen

  • Modellieren Sie die Standorte von Checkpoints

  • Änderungen der Hyperparameter

  • Leistungskennzahlen und Deltas

  • Qualitative Beobachtungen

Dadurch wird institutionelles Wissen aufgebaut und das Debuggen ermöglicht.

Konzentrieren Sie sich auf Datenqualität statt Quantität

Analysieren Sie Fehlerfälle aus früheren Runden und fügen Sie gezielte, qualitativ hochwertige Beispiele hinzu, anstatt einfach die Datensatzgröße zu erhöhen.

Planen Sie das Budget für die Iteration

Planen Sie für einen typischen Zeitraum von 3 bis 5 Iterationen ein:

  • 1—2 Iterationen — Oft ausreichend für einfache Verbesserungen oder den letzten Feinschliff

  • 3—5 Iterationen — Geeignet für komplexe Aufgaben, die mehrere Verfeinerungszyklen erfordern

  • Mehr als 5 Iterationen — Kann auf sinkende Renditen oder auf die Notwendigkeit unterschiedlicher Ansätze hindeuten

Passen Sie die Anpassung auf der Grundlage des rechnerischen Budgets und der Leistungsverbesserungsraten an.

Implementieren Sie Rollback-Funktionen

Wenn eine Iteration Regressionen einführt:

  • Identifizieren Sie die Regression — Vergleichen Sie die Bewertungskennzahlen der Checkpoints

  • Zurück zum vorherigen Checkpoint — Verwenden Sie den S3-Pfad des früheren Checkpoints als model_name_or_path

  • Trainingsansatz anpassen — Ändern Sie Daten, Hyperparameter oder Technik, bevor Sie es erneut versuchen

  • Dokumentieren Sie den Fehler — Notieren Sie, was die Regression verursacht hat, um eine Wiederholung zu vermeiden

Beispiel für einen Rollback

run: name: "rollback-to-iteration-2" model_type: amazon.nova-2-lite-v1:0:256k # Use iteration 2 checkpoint instead of failed iteration 3 model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<iteration-2-job-name>"

Kostenüberlegungen

Checkpoint-Speicher

  • Standort — Für Checkpoints, die in Treuhandbuchern gespeichert sind, fallen die üblichen S3-Speichergebühren an, die Ihrem Konto in Rechnung gestellt werden AWS

  • Aufbewahrung — Checkpoints werden auf unbestimmte Zeit aufbewahrt, sofern sie nicht ausdrücklich gelöscht werden

  • Verwaltung — Implementieren Sie Lebenszyklusrichtlinien, um alte Checkpoints, die Sie nicht mehr benötigen, zu archivieren oder zu löschen

Tipps zur Kostenoptimierung

  • Löschen Sie Zwischen-Checkpoints, nachdem Sie neuere Iterationen validiert haben

  • Archivieren Sie Checkpoints auf S3 Glacier für eine langfristige Aufbewahrung zu geringeren Kosten

  • Legen Sie Aufbewahrungsrichtlinien auf der Grundlage Ihrer Compliance- und Testanforderungen fest

Einschränkungen

Modellieren Sie die Konsistenz der Familie

Beim iterativen Training müssen Sie in allen Iterationen denselben Modelltyp verwenden.

Anfängliches Training

run: model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: "nova-lite-2/prod"

Nachfolgende Iterationen müssen denselben Model_Type verwenden

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match original model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Konsistenz der Trainingstechnik

Die Trainingstechnik muss in allen Iterationen konsistent bleiben:

  • Mit LoRa trainierte Modelle können nur iterativ mit LoRa trainiert werden

  • Full-Rank-trained Modelle können nur iterativ mit Full-Rank trainiert werden

Wie funktionieren LoRa-Adapter im iterativen Training

  • Jede LoRa-Trainingsitation produziert neue Adaptergewichte

  • Neue Adapter ersetzen frühere Adapter (nicht im Stapel)

  • Das Basismodell bleibt eingefroren; nur Adapter werden aktualisiert

Kompatibilitätsmatrix für die Technik

Erstausbildung Kann mit iterieren
SFT (Vollrangiger Rang) SFT (voller Rang), RFT (voller Rang)
SFT (LoRa) SFT (LoRa), RFT (LoRa)
RFT (voller Rang) RFT (voller Rang)
RFT (LoRa) RFT (LoRa)

Überprüfung der Kompatibilität vor Beginn eines Jobs

  • Überprüfe dein vorheriges Trainingsrezept, um den Modelltyp und die Trainingstechnik zu ermitteln (LoRa oder Full-Rank)

  • Vergewissere dich, dass dein neues Rezept sowohl dem Modelltyp als auch der Technik entspricht

  • Überprüfen Sie die Datei manifest.json, um sicherzustellen, dass der Checkpoint-Pfad korrekt ist

Fehlerbehebung

Fehler: „Inkompatible Modelltrainingstechniken erkannt“

Ursache: Die Trainingstechnik (LoRa vs. Full-Rank) stimmt nicht mit der Technik des Checkpoints überein.

Lösung: Stellen Sie sicher, dass Ihr Rezept dieselbe Trainingstechnik wie das Originalmodell verwendet:

  • Wenn der Checkpoint mit LoRa trainiert wurde, verwenden Sie LoRa in Ihrem neuen Rezept

  • Wenn der Checkpoint mit Full-Rank trainiert wurde, verwende Full-Rank in deinem neuen Rezept

Fehler: „Das Basismodell für den Job, der aus model_name_or_path extrahiert wurde, stimmt nicht mit model_type überein“

Ursache: Der in angegebene Modelltyp stimmt model_type nicht mit dem tatsächlichen Modell im Checkpoint überein.

Lösung: Stellen Sie sicher, dass:

  • Der model_type in Ihrem Rezept angegebene Typ entspricht dem ursprünglichen Modelltyp

  • Der Checkpoint S3-Pfad model_name_or_path ist korrekt

  • Sie verwenden den Pfad aus der richtigen manifest.json-Datei

Beispiel für eine korrekte Konfiguration

run: model_type: amazon.nova-2-lite-v1:0:256k # Must match checkpoint's model model_name_or_path: "s3://customer-escrow-<account-number>-smtj-<unique-identifier>/<job-name>"

Fehler: „Modellkonfiguration nicht gefunden“

Ursache: Der S3-Pfad in model_name_or_path ist ungültig oder es kann nicht darauf zugegriffen werden.

Auflösung

  • Stellen Sie sicher, dass der S3-Pfad korrekt aus der Datei manifest.json kopiert wurde

  • Stellen Sie sicher, dass Ihre IAM-Rolle über Berechtigungen für den Zugriff auf den Treuhandbereich verfügt

  • Bestätigen Sie, dass der vorherige Schulungsjob erfolgreich abgeschlossen wurde

  • Überprüfen Sie den Pfad auf Tippfehler

Leistungsrückgang nach der Iteration

Symptome: Die Bewertungskennzahlen nehmen nach einer neuen Trainingsiteration ab.

Auflösung

  • Rollback — Verwenden Sie den vorherigen Checkpoint als Basismodell

  • Analysieren — Überprüfen Sie die Trainingsprotokolle und die Datenqualität für die fehlgeschlagene Iteration

  • Anpassen — Ändern Sie Hyperparameter (reduzieren Sie die Lernrate), verbessern Sie die Datenqualität oder verkürzen Sie Trainingsepochen

  • Wiederholen — Startet eine neue Iteration mit Anpassungen