View a markdown version of this page

Betreute Feinabstimmung (SFT) an Nova 2.0 bei Ausbildungsjobs SageMaker - 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.

Betreute Feinabstimmung (SFT) an Nova 2.0 bei Ausbildungsjobs SageMaker

Voraussetzungen

Bevor Sie einen Trainingsjob beginnen, sollten Sie Folgendes beachten.

  • Amazon-S3-Buckets zum Speichern Ihrer Eingabedaten und der Ausgabe von Trainingsjobs. Sie können entweder einen Bucket für beide oder separate Buckets für jeden Datentyp verwenden. Stellen Sie sicher, dass sich Ihre Buckets AWS-Region dort befinden, wo Sie alle anderen Ressourcen für das Training erstellt haben. Weitere Informationen finden Sie unter Erstellen eines Buckets für allgemeine Zwecke.

  • Eine IAM-Rolle mit Berechtigungen zum Ausführen eines Trainingsjobs. Stellen Sie sicher, dass Sie eine IAM-Richtlinie mit AmazonSageMakerFullAccess anhängen. Weitere Informationen finden Sie unter So verwenden Sie SageMaker KI-Ausführungsrollen.

  • Grundlegende Amazon-Nova-Rezepte finden Sie unter Abrufen von Amazon-Nova-Rezepten.

Was ist SFT?

Bei der überwachten Feinabstimmung (SFT) wird ein Sprachmodell mithilfe von beschrifteten Eingabe-Ausgabe-Paaren trainiert. Das Modell lernt anhand von Demonstrationsbeispielen, die aus Aufforderungen und Antworten bestehen, und verfeinert seine Fähigkeiten, um es auf bestimmte Aufgaben, Anweisungen oder gewünschte Verhaltensweisen abzustimmen.

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

Einen Ausbildungsjob beginnen

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 unterDaten für SFT auf Amazon Nova 2 vorbereiten.

Hochladen Ihrer Daten

Datensätze sollten in einen Bucket hochgeladen werden, auf den SageMaker Trainingsjobs zugegriffen werden kann. Informationen zum Einstellen der richtigen Berechtigungen finden Sie unter Voraussetzungen.

Auswahl von Hyperparametern und Aktualisierung des Rezepts

Das Setup für Nova 2.0 ist weitgehend dasselbe wie für Nova 1.0. Sobald die Eingabedaten auf S3 hochgeladen wurden, verwenden Sie das Rezept aus SageMaker HyperPod Recipes GitHub im Ordner Fine Tuning. Für Nova 2.0 Lite sind im Folgenden einige der wichtigsten Hyperparameter aufgeführt, die Sie je nach Anwendungsfall aktualisieren können. Das Folgende ist ein Beispiel für das Nova 2.0 Lite SFT PEFT-Rezept. Verwenden Sie den Container-Image-URI, 708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-V2-latest um einen SFT-Feinabstimmungsjob auszuführen.

Beispiel für eine Eingabe

run: name: {peft_recipe_job_name} model_type: amazon.nova-2-lite-v1:0:256k model_name_or_path: {peft_model_name_or_path} data_s3_path: {train_dataset_s3_path} # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16, 32 output_s3_path: "" # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job training_config: max_steps: 10 # Maximum training steps. Minimal is 4. save_steps: 10 # How many training steps the checkpoint will be saved. Should be less than or equal to max_steps save_top_k: 1 # 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, must be between 0.0 and 1.0 adam_beta2: 0.95 # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0 peft: # Parameter-efficient fine-tuning (LoRA) peft_scheme: "lora" # Enable LoRA for PEFT lora_tuning: alpha: 64 # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192), lora_plus_lr_ratio: 64.0

Das Rezept enthält auch weitgehend die gleichen Hyperparameter wie Nova 1.0. Die wichtigsten Hyperparameter sind:

  • max_steps— Die Anzahl der Schritte, für die Sie den Job ausführen möchten. Im Allgemeinen gilt für eine Epoche (ein Durchlauf durch Ihren gesamten Datensatz), die Anzahl der Schritte = Anzahl der Datenproben /globale Batchgröße. Je größer die Anzahl der Schritte und je kleiner Ihre globale Batchgröße ist, desto länger dauert die Ausführung des Jobs.

  • reasoning_enabled— Steuert den Argumentationsmodus für Ihren Datensatz. Optionen:

    • true: Aktiviert den Argumentationsmodus (entspricht dem Modus „Viel Denken“)

    • false: Deaktiviert den Denkmodus

    Hinweis: Bei SFT gibt es keine detaillierte Kontrolle über den Grad des Denkaufwands. Die Einstellung reasoning_enabled: true ermöglicht die vollständige Argumentationsfähigkeit.

  • peft.peft_scheme— Wenn Sie dies auf „Lora“ setzen, wird eine PEFT-based Feinabstimmung ermöglicht. Wenn Sie es auf Null setzen (keine Anführungszeichen), wird eine Full-Rank Feinabstimmung ermöglicht.

Starte den Trainingsjob

from sagemaker.pytorch import PyTorch # define OutputDataConfig path if default_prefix: output_path = f"s3://{bucket_name}/{default_prefix}/{sm_training_job_name}" else: output_path = f"s3://{bucket_name}/{sm_training_job_name}" output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption recipe_overrides = { "run": { "replicas": instance_count, # Required "output_s3_path": output_path }, } estimator = PyTorch( output_path=output_path, base_job_name=sm_training_job_name, role=role, disable_profiler=True, debugger_hook_config=False, instance_count=instance_count, instance_type=instance_type, training_recipe=training_recipe, recipe_overrides=recipe_overrides, max_run=432000, sagemaker_session=sagemaker_session, image_uri=image_uri, output_kms_key=output_kms_key, tags=[ {'Key': 'model_name_or_path', 'Value': model_name_or_path}, ] ) print(f"\nsm_training_job_name:\n{sm_training_job_name}\n") print(f"output_path:\n{output_path}")
from sagemaker.inputs import TrainingInput train_input = TrainingInput( s3_data=train_dataset_s3_path, distribution="FullyReplicated", s3_data_type="Converse", ) estimator.fit(inputs={"validation": val_input}, wait=False)
Anmerkung

Die Übergabe eines Validierungsdatensatzes wird für die überwachte Feinabstimmung von Nova 2.0 Lite nicht unterstützt.

Um den Job zu starten:

  • Aktualisieren Sie das Rezept mit Ihren Datensatzpfaden und Hyperparametern

  • Führen Sie die angegebenen Zellen im Notizbuch aus, um den Trainingsjob einzureichen

Das Notizbuch verarbeitet die Einreichung von Aufträgen und ermöglicht die Statusverfolgung.