View a markdown version of this page

Überwachte Feinabstimmung (SFT) auf Nova 2.0 auf SageMaker HyperPod - Amazon Nova

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.

Überwachte Feinabstimmung (SFT) auf Nova 2.0 auf SageMaker HyperPod

Amazon Nova Lite 2.0 bietet erweiterte Funktionen für die überwachte Feinabstimmung, darunter einen erweiterten Denkmodus, ein verbessertes multimodales Verständnis und eine erweiterte Kontexthandhabung. SFT auf Nova Lite 2.0 ermöglicht es Ihnen, diese leistungsstarken Funktionen an Ihre spezifischen Anwendungsfälle anzupassen und gleichzeitig die überragende Leistung des Modells bei komplexen Aufgaben beizubehalten.

Die wichtigsten Funktionen von SFT auf Nova Lite 2.0 sind in zusammengefasst. Unterstützte Features

Informationen dazu, ob SFT für Ihren Anwendungsfall geeignet ist, finden Sie unter. Überwachte Optimierung (SFT)

Unten finden Sie ein Beispielrezept für SFT. Sie finden dieses Rezept und andere im SageMaker HyperPod Rezept-Repository unter GitHub.

run: name: my-full-rank-sft-run model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: nova-lite-2/prod data_s3_path: s3://my-bucket-name/train.jsonl # SageMaker HyperPod only and not compatible with SageMaker Training Jobs replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: s3://my-bucket-name/outputs/ # Output artifact path (HyperPod job-specific; not compatible with standard SageMaker Training Jobs) mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-full-rank-sft-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-full-rank-sft-run" # Optional for MLFlow. Note: leave this field non-empty training_config: max_steps: 100 # Maximum training steps. Minimal is 4. save_steps: ${oc.select:training_config.max_steps} # How many training steps the checkpoint will be saved save_top_k: 5 # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1. max_length: 32768 # Sequence length (options: 8192, 16384, 32768 [default], 65536) global_batch_size: 32 # Global batch size (options: 32, 64, 128) reasoning_enabled: true # If data has reasoningContent, set to true; otherwise False lr_scheduler: warmup_steps: 15 # Learning rate warmup steps. Recommend 15% of max_steps min_lr: 1e-6 # Minimum learning rate, must be between 0.0 and 1.0 optim_config: # Optimizer settings lr: 1e-5 # Learning rate, must be between 0.0 and 1.0 weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Exponential decay rate for first-moment estimates adam_beta2: 0.95 # Exponential decay rate for second-moment estimates peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "null" # Disable LoRA for PEFT

Auswahl des Denkmodus (nur Nova 2.0)

Amazon Nova 2.0 unterstützt den Argumentationsmodus für erweiterte Analysefunktionen:

  • Denkmodus (aktiviert):

    • reasoning_enabled: trueIn der Trainingskonfiguration einstellen

    • Modelleisenbahnen zur Generierung von Argumentationsspuren vor endgültigen Antworten

    • Verbessert die Leistung bei komplexen Denkaufgaben

  • Non-Reasoning Modus (deaktiviert):

    • Stellen Sie den Parameter ein reasoning_enabled: false oder lassen Sie ihn weg (Standard)

    • Standard-SFT ohne ausdrückliche Begründung

    • Geeignet für Aufgaben, bei denen eine schrittweise Argumentation nicht sinnvoll ist

Anmerkung
  • Wenn das Denken aktiviert ist, ist ein hoher Denkaufwand erforderlich. Bei SFT gibt es keine Option mit geringem Argumentationsaufwand.

  • Inhalte zum multimodalen Denken werden für SFT nicht unterstützt. Der Argumentationsmodus gilt für reine Texteingaben.

Das Training von Amazon Nova anhand eines Datensatzes ohne Argumentation mit ist zulässig. reasoning_enabled: true Dies kann jedoch dazu führen, dass das Modell seine Argumentationsfähigkeit verliert, da Amazon Nova in erster Linie lernt, die in den Daten enthaltenen Antworten zu generieren, ohne eine Argumentation anzuwenden.

Wenn Sie Amazon Nova anhand eines Datensatzes trainieren, bei der Inferenz aber trotzdem Argumentation verwenden möchten:

  1. Deaktiviere das Denken während des Trainings () reasoning_enabled: false

  2. Aktiviere das Denken später während der Inferenz

Dieser Ansatz ermöglicht zwar das Denken zum Zeitpunkt der Inferenz, garantiert jedoch keine bessere Leistung im Vergleich zur Inferenz ohne Argumentation.

Bewährte Methode: Aktiviere die Argumentation sowohl für das Training als auch für die Inferenz, wenn du Datensätze verwendest, die Argumentation verwenden, und deaktiviere sie für beide, wenn du Datensätze ohne Argumentation verwendest.

Anmerkung

Weitere Informationen zu Container-Bildern und Beispielrezepten finden Sie unter Amazon Nova-Rezepte. Amazon-Nova-Rezepte

Einen Feinabstimmungsjob starten am SageMaker HyperPod

Aufbereitung Ihrer Daten

Informationen zum Datenformat, zu den unterstützten Funktionen, Einschränkungen und bewährten Methoden für die Vorbereitung von SFT-Trainingsdaten finden Sie unter. Daten für SFT auf Amazon Nova 2 vorbereiten

Hochladen Ihrer Daten

Laden Sie Trainings- und Validierungsdatensätze in einen S3-Bucket hoch. Geben Sie diese Speicherorte im run Rezeptblock an:

## Run config run: ... data_s3_path: "s3://<bucket-name>/<training-directory>/<training-file>.jsonl"
Anmerkung

Ersetzen Sie <bucket-name><training-directory>, <validation-directory><training-file>, und <validation-file> durch tatsächliche S3-Pfade.

Anmerkung

Validierungsdatensätze werden derzeit für SFT mit Amazon Nova 2.0 nicht unterstützt. Wenn ein Validierungsdatensatz bereitgestellt wird, wird er ignoriert.

Definieren Sie Ihre Konfiguration

Definieren Sie das Basismodell mithilfe der model_name_or_path Felder model_type und im run Block:

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

SFT-Tuning-Parameter

Zu den Parametern, die für das Tuning mit SFT verfügbar sind, gehören:

Ausführungskonfiguration

  • Name: Ein aussagekräftiger Name für Ihren Ausbildungsberuf. Dies hilft Ihnen, Ihren Job in der AWS Management Console zu identifizieren.

  • model_type: Die zu verwendende Amazon Nova-Modellvariante. Die verfügbaren Optionen sind. amazon.nova-2-lite-v1:0:256k

  • model_name_or_path: Der Pfad zum Basismodell, das Sie für Ihr Training verwenden möchten. Die verfügbaren Optionen sind nova-lite-2/prod oder der S3-Pfad für den Checkpoint nach dem Training (). s3://customer-escrow-bucket-unique_id/training_run_name

  • Repliken: Die Anzahl der Recheninstanzen, die für verteiltes Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Lite 2.0 unterstützt 4, 8, 16 oder 32 Replikate.

  • data_s3_path: Der S3-Speicherort des Trainingsdatensatzes, bei dem es sich um eine JSONL-Datei handelt. Diese Datei muss sich in demselben Konto und derselben Region wie AWS der Cluster befinden. Alle angegebenen S3-Standorte müssen sich im selben Konto und in derselben Region befinden.

  • validation_data_s3_path: (Optional) Der S3-Speicherort des Validierungsdatensatzes, bei dem es sich um eine JSONL-Datei handelt. Diese Datei muss sich im selben Konto und derselben Region wie der Cluster befinden. Alle angegebenen S3-Standorte müssen sich im selben Konto und in derselben Region befinden.

  • output_s3_path: Der S3-Speicherort, an dem das Manifest und die Protokolle gespeichert sind. TensorBoard Alle angegebenen S3-Speicherorte müssen sich in demselben Konto und derselben AWS Region befinden. AWS

  • mlflow_tracking_uri: Der ARN der MLflow-App, der für die MLflow-Protokollierung verwendet werden soll.

  • mlflow_experiment_name: Name des MLflow-Experiments.

  • mlflow_run_name: MLflow-Laufname.

Konfiguration des Trainings

  • max_steps: Die Anzahl der auszuführenden Trainingsschritte. Bei jedem Schritt wird das Modell mit der global_batch_size Anzahl der Elemente trainiert.

  • save_steps: Die Häufigkeit (in Schritten), mit der Modell-Checkpoints während des Trainings gespeichert werden.

  • save_top_k: Die maximale Anzahl der besten Checkpoints, die auf der Grundlage von Validierungsmetriken beibehalten werden sollen.

  • max_length: Die maximale Sequenzlänge in Tokens. Dies bestimmt die Größe des Kontextfensters für das Training. Der maximal unterstützte Wert beträgt 32768 Token für SFT.

    Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen, dass Sie den Parameter max_length an Ihre Datenverteilung anpassen.

  • global_batch_size: Die Gesamtzahl der Trainingsproben, die zusammen in einem Vorwärts- oder Rückwärtsdurchgang auf allen Geräten und Mitarbeitern verarbeitet wurden.

    Dieser Wert multipliziert die Batchgröße pro Gerät und die Anzahl der Geräte. Er wirkt sich auf die Stabilität des Trainings und den Durchsatz aus. Wir empfehlen Ihnen, mit einer Batchgröße zu beginnen, die problemlos in Ihren Arbeitsspeicher passt, und anschließend hochzuskalieren. Bei Domain-spezifischen Daten können größere Batches zu einer übermäßigen Gradientenglättung führen.

  • reasoning_enabled: Boolesches Flag, um während des Trainings die Fähigkeit zum logischen Denken zu aktivieren.

Zeitplan für Lernraten

  • warmup_steps: Die Anzahl der Schritte, um die Lernrate schrittweise zu erhöhen. Dies verbessert die Trainingsstabilität.

  • min_lr: Die minimale Lernrate am Ende des Zerfalls. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.

Konfiguration des Optimierers

  • lr: Die Lernrate, die die Schrittgröße bei der Optimierung steuert. Für eine gute Leistung empfehlen wir Werte zwischen 1e-6 und 1e-4. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.

  • weight_decay: Die Stärke der L2-Regularisierung. Höhere Werte (zwischen 0,01 und 0,1) erhöhen die Regularisierung.

  • adam_beta1: Die exponentielle Abklingrate für den ersten Moment wird im Adam-Optimierer geschätzt. Die Standardeinstellung ist 0,9.

  • adam_beta2: Die exponentielle Zerfallsrate für den zweiten Moment wird im Adam-Optimierer geschätzt. Die Standardeinstellung ist 0,95.

PEFT-Konfiguration

  • peft_scheme: Das zu verwendende parametereffiziente Feinabstimmungsschema. Die Optionen sind für die vollständige Feinabstimmung oder 'null' für die Feinabstimmung vorgesehen. lora LoRA-based

LoRa-Tuning (wenn peft_scheme 'lora' ist)

  • alpha: Der LoRa-Skalierungsparameter. Steuert das Ausmaß der Low-Rank-Anpassung. Typische Werte liegen im Bereich von 8 bis 128.

  • lora_plus_lr_ratio: Das Lernratenverhältnis für die LoRA+-Optimierung. Dieser Multiplikator passt die Lernrate speziell für LoRa-Parameter an.

Anleitung zu Hyperparametern

Verwenden Sie je nach Trainingsansatz die folgenden empfohlenen Hyperparameter:

Training mit vollem Rang

  • Epochen: 1

  • Lernrate (lr): 1e-5

  • Minimale Lernrate (min_lr): 1e-6

LoRa (Anpassung) Low-Rank

  • Epochen: 2

  • Lernrate (lr): 5e-5

  • Minimale Lernrate (min_lr): 1e-6

Anmerkung

Passen Sie diese Werte je nach Datensatzgröße und Validierungsleistung an. Überwachen Sie die Trainingsmetriken, um eine Überanpassung zu verhindern.