View a markdown version of this page

Fortgesetztes Vortraining (CPT) auf Nova 2.0 am 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.

Fortgesetztes Vortraining (CPT) auf Nova 2.0 am SageMaker HyperPod

Amazon Nova Lite 2.0 ist ein Argumentationsmodell, das auf größeren und vielfältigeren Datensätzen als Nova Lite 1.0 trainiert wurde. Obwohl Nova Lite 2.0 ein größeres Modell ist, liefert es schnellere Inferenzen als Nova Lite 1.0 und bietet gleichzeitig erweiterte Argumentationsfunktionen, längere Kontextlängen und eine verbesserte mehrsprachige Leistung.

Mit CPT auf Nova 2.0 Lite können Sie diese erweiterten Funktionen mit Ihren domänenspezifischen Daten erweitern und fundiertes Fachwissen in speziellen Bereichen entwickeln, während Sie gleichzeitig die überlegenen Denk- und Analysefähigkeiten des Modells beibehalten.

Im Folgenden finden Sie ein Beispielrezept für CPT. Sie finden dieses Rezept und andere im SageMaker HyperPod Rezept-Repository unter GitHub.

# Note: # This recipe can run on p5.48xlarge # Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-2-lite-v1:0:256k" # Model variant specification, do not change model_name_or_path: "nova-lite-2/prod" # Base model path, do not change replicas: 8 # Number of compute instances for training, allowed values are 4, 8, 16, 32 data_s3_path: "" # Customer data paths validation_data_s3_path: "" # Customer validation data paths output_s3_path: "" # Output artifact path, SageMaker HyperPod job-specific configuration - not compatible with standard SageMaker Training Jobs mlflow_tracking_uri: "" # Required for MLFlow mlflow_experiment_name: "my-cpt-experiment" # Optional for MLFlow. Note: leave this field non-empty mlflow_run_name: "my-cpt-run" # Optional for MLFlow. Note: leave this field non-empty ## Training specific configs training_config: task_type: cpt max_length: 8192 # Maximum context window size (tokens) global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_steps: 10 # The number of training steps to run total val_check_interval: 10 # The number of steps between running validation. Integer count or float percentage limit_val_batches: 2 # Batches of the validation set to use each trigger model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 optim: optimizer: adam lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 adam_beta1: 0.9 # Beta1 for Adam optimizer adam_beta2: 0.95 # Beta2 for Adam optimizer sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr

Ich beginne einen weiteren Job vor dem Training 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 CPT-Trainingsdaten finden Sie unter. Daten für CPT 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" validation_data_s3_path: "s3://<bucket-name>/<validation-directory>/<validation-file>.jsonl"
Anmerkung

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

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 ...

CPT-Tuning-Parameter

Zu den Parametern, die für die Feinabstimmung mit CPT 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_length: Die maximale Sequenzlänge in Token. Dies bestimmt die Größe des Kontextfensters für das Training. Der maximal unterstützte Wert beträgt 8192 Token für CPT.

    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.

Trainer-Einstellungen

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

Modelleinstellungen

  • hidden_dropout: Die Wahrscheinlichkeit, versteckte State-Ausgaben zu löschen. Erhöhen Sie diesen Wert um etwa 0,0 bis 0,2, um eine Überanpassung bei kleineren Datensätzen zu vermeiden. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.

  • attention_dropout: Die Wahrscheinlichkeit, dass Aufmerksamkeitsgewichte fallen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.

Konfiguration des Optimierers

  • lr: Die Lernrate, die die Schrittweite 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.

  • Name: Der Optimierer-Algorithmus. Derzeit wird nur distributed_fused_adam unterstützt.

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

  • warmup_steps: Die Anzahl der Schritte, um die Lernrate schrittweise zu erhöhen. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.

  • 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.