

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
<a name="nova-sft-2-smtj"></a>

## Voraussetzungen
<a name="nova-model-training-jobs-prerequisites2"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html).
+ 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](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html).
+ Grundlegende Amazon-Nova-Rezepte finden Sie unter [Abrufen von Amazon-Nova-Rezepten](nova-model-recipes.md#nova-model-get-recipes).

## Was ist SFT?
<a name="nova-2-what-is-sft"></a>

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)](nova-fine-tune.md)

## Einen Ausbildungsjob beginnen
<a name="nova-2-starting-training"></a>

### Aufbereitung Ihrer Daten
<a name="nova-2-data-preparation"></a>

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](nova-data-prep-sft-2.md).

### Hochladen Ihrer Daten
<a name="nova-2-uploading-data"></a>

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](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-general-prerequisites.html).

### Auswahl von Hyperparametern und Aktualisierung des Rezepts
<a name="nova-2-selecting-hyperparameters"></a>

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 ](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/nova) 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
<a name="nova-2-start-job"></a>

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