

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.

# Amazon Nova-Anpassung auf SageMaker HyperPod
<a name="nova-hp"></a>

Sie können Amazon Nova-Modelle, einschließlich der erweiterten Nova 2.0-Modelle, mithilfe von [Amazon Nova-Rezepten](nova-model-recipes.md) anpassen und sie auf Hyperpod trainieren. Ein Rezept ist eine YAML-Konfigurationsdatei, die der SageMaker KI Einzelheiten zur Ausführung Ihrer Modellanpassung zur Verfügung stellt. SageMaker HyperPod unterstützt zwei Arten von Diensten: Forge und Non-Forge.

Hyperpod bietet Hochleistungsdatenverarbeitung mit optimierten GPU-Instances und Amazon FSx for Lustre-Speicher, robuste Überwachung durch Integration mit Tools wie flexiblem Checkpoint-Management für iterative Verbesserungen TensorBoard, nahtlose Bereitstellung auf Amazon Bedrock für Inferenz und effizientes, skalierbares, verteiltes Training mit mehreren Knoten — alles zusammen bietet Unternehmen eine sichere, leistungsstarke und flexible Umgebung, in der sie Nova-Modelle an ihre spezifischen Geschäftsanforderungen anpassen können.

Amazon Nova-Anpassung an SageMaker HyperPod speichert Modellartefakte, einschließlich Modell-Checkpoints, in einem serviceverwalteten Amazon S3 S3-Bucket. Artefakte im vom Service verwalteten Bucket werden mit SageMaker KI-verwalteten Schlüsseln verschlüsselt. AWS KMS Serviceverwaltete Amazon-S3-Buckets unterstützen derzeit keine Datenverschlüsselung mit kundenverwalteten KMS-Schlüsseln. Sie können diesen Checkpoint-Standort für Bewertungsjobs oder Amazon-Bedrock-Inferenz verwenden.

Standardpreise können für Compute-Instances, Amazon S3 S3-Speicher und FSx für Lustre gelten. Preisinformationen finden Sie unter [Hyperpod-Preise](https://aws.amazon.com/sagemaker-ai/pricing/), [Amazon S3 S3-Preise](https://aws.amazon.com/s3/pricing/) und [FSx Lustre-Preise](https://aws.amazon.com/fsx/lustre/pricing/).

## Rechenanforderungen für Amazon Nova 1-Modelle
<a name="nova-hp-compute-1"></a>

In den folgenden Tabellen sind die Rechenanforderungen für Nova 1.0-Modelle und die Ausbildung von SageMaker KI-Schulungsjobs zusammengefasst.


**Vortraining**  

| Modell | Länge der Reihenfolge | Knoten | Instance | Accelerator | 
| --- |--- |--- |--- |--- |
| Amazon Nova Micro | 8,192 | 8 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova Lite | 8,192 | 16 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova Pro | 8,192 | 12 | ml.p5.48xlarge | GPU H100 | 


**Direct Preference Optimization (DPO)**  

| Modell | Länge der Reihenfolge | Anzahl der Knoten | Instance | Accelerator | 
| --- |--- |--- |--- |--- |
| Direct Preference Optimization (vollständig) | 32.768 | 2, 4 oder 6 | ml.p5.48xlarge | GPU H100 | 
| Direct Preference Optimization (LoRA) | 32.768 | 2, 4 oder 6 | ml.p5.48xlarge | GPU H100 | 


**Feinabstimmung**  

| Modell | Technik | Länge der Reihenfolge | Anzahl der Knoten | Instance | Accelerator | 
| --- |--- |--- |--- |--- |--- |
| Amazon Nova 1 Mikro |  Überwachte Optimierung (LoRA)  | 65.536 | 2 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova 1 Mikro |  Überwachte Optimierung (vollständig)  | 65.536 | 2 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova 1 Lite |  Überwachte Feinabstimmung (LoRA)  | 32.768 | 4 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova 1 Lite |  Überwachte Optimierung (vollständig)  | 65.536 | 4 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova 1 Pro |  Überwachte Optimierung (LoRA)  | 65.536 | 6 | ml.p5.48xlarge | GPU H100 | 
| Amazon Nova 1 Pro |  Überwachte Optimierung (vollständig)  | 65.536 | 6 | ml.p5.48xlarge | GPU H100 | 


**Destillation**  

| Modell | Knoten | Instance | 
| --- |--- |--- |
| Modelldestillation nach dem Training | 1 | ml.r5.24xlarge | 


**Bewertung**  

| Modell | Länge der Reihenfolge | Knoten | Instance | Accelerator | 
| --- |--- |--- |--- |--- |
| Allgemeines Text-Benchmark-Rezept | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 
| Benchmark-Rezept mit eigenem Datensatz (gen\$1qa) | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 
| Rezept für Amazon Nova LLM-as-a-Judge | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 
| Standard-Text-Benchmarks | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 
| Benutzerdefinierte Datensatzbewertung | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 
| Multimodale Benchmarks | 8,192 | 1 | ml.p5.48xlarge | GPU H100 | 


**Proximal Policy Optimization**  

| Modell | Anzahl der Instances im kritischen Modell | Anzahl der Instances im Belohnungsmodell | Anzahl der Instances im Ankermodell | Akteurtraining | Akteurgenerierung | Anzahl der Instances | Gesamtstunden pro Lauf | P5-Stunden | Instance-Typ | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |--- |
| Amazon Nova Micro | 1 | 1 | 1 | 2 | 2 | 7 | 8 | 56 | ml.p5.48xlarge | 
| Amazon Nova Lite | 1 | 1 | 1 | 2 | 2 | 7 | 16 | 112 | ml.p5.48xlarge | 
| Amazon Nova Pro | 1 | 1 | 1 | 6 | 2 | 11 | 26 | 260 | ml.p5.48xlarge | 

**Topics**
+ [Rechenanforderungen für Amazon Nova 1-Modelle](#nova-hp-compute-1)
+ [NovaForge SDK](nova-hp-forge-sdk.md)
+ [Leitfaden SageMaker HyperPod für Amazon Essential Commands](nova-hp-essential-commands-guide.md)
+ [Erstellen eines SageMaker HyperPod EKS-Clusters mit eingeschränkter Instanzgruppe (RIG)](nova-hp-cluster.md)
+ [Zugang und Einrichtung von Nova Forge für](nova-forge-hp-access.md)
+ [Schulung für Amazon Nova-Modelle](nova-hp-training.md)
+ [Feinabstimmung der Amazon Nova-Modelle auf SageMaker HyperPod](nova-hp-fine-tune.md)
+ [Bewerten Ihres trainierten Modells](nova-hp-evaluate.md)
+ [Jobs überwachen mit HyperPod MLflow](nova-hp-mlflow.md)

# NovaForge SDK
<a name="nova-hp-forge-sdk"></a>

Das Nova Forge SDK ist ein umfassendes Python-SDK, das eine einheitliche, programmatische Oberfläche für den gesamten Lebenszyklus der Amazon Nova-Modellanpassung bietet. Das SDK vereinfacht die Modellanpassung, indem es eine einzige, konsistente API für Training, Bewertung, Überwachung, Bereitstellung und Inferenz auf den Plattformen Amazon SageMaker und Amazon Bedrock bietet.

Weitere Informationen finden Sie unter [Nova Forge SDK](nova-forge-sdk.md).

# Leitfaden SageMaker HyperPod für Amazon Essential Commands
<a name="nova-hp-essential-commands-guide"></a>

Amazon SageMaker HyperPod bietet umfangreiche Befehlszeilenfunktionen für die Verwaltung von Schulungsabläufen. Dieses Handbuch behandelt grundlegende Befehle für allgemeine Operationen, von der Verbindung mit Ihrem Cluster bis hin zur Überwachung des Auftragsfortschritts.

**Voraussetzungen**  
Bevor Sie diese Befehle verwenden, stellen Sie sicher, dass Sie die folgende Einrichtung abgeschlossen haben:
+ SageMaker HyperPod Cluster mit erstelltem RIG (normalerweise in us-east-1)
+ Ausgabe eines Amazon S3 S3-Buckets, der für Trainingsartefakte erstellt wurde
+ Mit entsprechenden Berechtigungen konfigurierte IAM-Rollen
+ Trainingsdaten wurden im richtigen JSONL-Format hochgeladen
+ FSx Die Lustre-Synchronisierung ist abgeschlossen (beim ersten Job in den Clusterprotokollen überprüfen)

**Topics**
+ [Recipe CLI installieren](#nova-hp-essential-commands-guide-install)
+ [Verbindungsaufbau mit Ihrem Cluster](#nova-hp-essential-commands-guide-connect)
+ [Einen Ausbildungsjob beginnen](#nova-hp-essential-commands-guide-start-job)
+ [Jobstatus wird überprüft](#nova-hp-essential-commands-guide-status)
+ [Job-Logs überwachen](#nova-hp-essential-commands-guide-logs)
+ [Aktive Jobs auflisten](#nova-hp-essential-commands-guide-list-jobs)
+ [Stornieren eines Auftrags](#nova-hp-essential-commands-guide-cancel-job)
+ [Einen Evaluierungsjob ausführen](#nova-hp-essential-commands-guide-evaluation)
+ [Häufige Probleme](#nova-hp-essential-commands-guide-troubleshooting)

## Recipe CLI installieren
<a name="nova-hp-essential-commands-guide-install"></a>

Navigieren Sie zum Stammverzeichnis Ihres Rezept-Repositorys, bevor Sie den Installationsbefehl ausführen.

**Verwenden Sie das Hyperpodrecipes-Repository, wenn Sie Anpassungstechniken verwenden, die nicht von Forge stammen. Informationen zur Forge-basierten Anpassung finden Sie im Forge-spezifischen Rezept-Repository.**  
Führen Sie die folgenden Befehle aus, um die SageMaker HyperPod CLI zu installieren:

**Anmerkung**  
Stellen Sie sicher, dass Sie sich nicht in einer aktiven Conda/Anaconda/Miniconda-Umgebung oder einer anderen virtuellen Umgebung befinden  
Wenn ja, verlassen Sie die Umgebung bitte mit:  
`conda deactivate`für Conda/Anaconda/Miniconda-Umgebungen
`deactivate`für virtuelle Python-Umgebungen

 Wenn Sie eine Technik zur Anpassung verwenden, die nicht von Forge stammt, laden Sie sagemaker-hyperpod-recipes sie wie folgt herunter:

```
git clone -b release_v2 https://github.com/aws/sagemaker-hyperpod-cli.git
cd sagemaker-hyperpod-cli
pip install -e .
cd ..
root_dir=$(pwd)
export PYTHONPATH=${root_dir}/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm -f ./get_helm.sh
```

Wenn Sie ein **Forge-Abonnent sind,** sollten Sie die Rezepte mithilfe des unten genannten Verfahrens herunterladen.

```
mkdir NovaForgeHyperpodCLI
cd NovaForgeHyperpodCLI
aws s3 cp s3://nova-forge-c7363-206080352451-us-east-1/v1/ ./ --recursive
pip install -e .

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm -f ./get_helm.sh
```

**Tipp**  
Um vor der Ausführung eine [neue virtuelle Umgebung](https://docs.python.org/3/library/venv.html) zu verwenden`pip install -e .`, führen Sie folgenden Befehl aus:  
`python -m venv nova_forge`
`source nova_forge/bin/activate`
In Ihrer Befehlszeile wird nun (nova\$1forge) am Anfang Ihrer Eingabeaufforderung angezeigt
Dadurch wird sichergestellt, dass bei der Verwendung der CLI keine konkurrierenden Abhängigkeiten bestehen

**Zweck**: Warum tun wir das`pip install -e .`?

Dieser Befehl installiert die SageMaker HyperPod CLI im bearbeitbaren Modus, sodass Sie aktualisierte Rezepte verwenden können, ohne sie jedes Mal neu installieren zu müssen. Außerdem können Sie neue Rezepte hinzufügen, die von der CLI automatisch abgerufen werden können.

## Verbindungsaufbau mit Ihrem Cluster
<a name="nova-hp-essential-commands-guide-connect"></a>

Connect die SageMaker HyperPod CLI mit Ihrem Cluster, bevor Sie Jobs ausführen:

```
export AWS_REGION=us-east-1 &&  hyperpod connect-cluster --cluster-name <your-cluster-name> --region us-east-1
```

**Wichtig**  
Dieser Befehl erstellt eine Kontextdatei (`/tmp/hyperpod_context.json`), die für nachfolgende Befehle erforderlich ist. Wenn Sie eine Fehlermeldung darüber erhalten, dass diese Datei nicht gefunden wurde, führen Sie den Befehl connect erneut aus.

**Profi-Tipp**: Sie können Ihren Cluster weiter so konfigurieren, dass er immer den `kubeflow` Namespace verwendet, indem Sie das `--namespace kubeflow` Argument wie folgt zu Ihrem Befehl hinzufügen:

```
export AWS_REGION=us-east-1 && \
hyperpod connect-cluster \
--cluster-name <your-cluster-name> \
--region us-east-1 \
--namespace kubeflow
```

Dies erspart Ihnen den Aufwand, das `-n kubeflow` bei der Interaktion mit Ihren Jobs in jedem Befehl hinzufügen zu müssen.

## Einen Ausbildungsjob beginnen
<a name="nova-hp-essential-commands-guide-start-job"></a>

**Anmerkung**  
Wenn Sie PPO/RFT Jobs ausführen, stellen Sie sicher, dass Sie Labelauswahl-Einstellungen hinzufügen, `src/hyperpod_cli/sagemaker_hyperpod_recipes/recipes_collection/cluster/k8s.yaml` sodass alle Pods auf demselben Knoten geplant sind.  

```
label_selector:
  required:
    sagemaker.amazonaws.com/instance-group-name:
      - <rig_group>
```

Starten Sie einen Trainingsjob mithilfe eines Rezepts mit optionalen Parameterüberschreibungen:

```
hyperpod start-job -n kubeflow \
--recipe fine-tuning/nova/nova_1_0/nova_micro/SFT/nova_micro_1_0_p5_p4d_gpu_lora_sft \
--override-parameters '{
"instance_type": "ml.p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-HP-SFT-latest"
  }'
```

**Erwartete Ausgabe**:

```
Final command: python3 <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/main.py recipes=fine-tuning/nova/nova_micro_p5_gpu_sft cluster_type=k8s cluster=k8s base_results_dir=/local/home/<username>/results cluster.pullPolicy="IfNotPresent" cluster.restartPolicy="OnFailure" cluster.namespace="kubeflow" container="708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:HP-SFT-DATAMIX-latest"

Prepared output directory at /local/home/<username>/results/<job-name>/k8s_templates
Found credentials in shared credentials file: ~/.aws/credentials
Helm script created at /local/home/<username>/results/<job-name>/<job-name>_launch.sh
Running Helm script: /local/home/<username>/results/<job-name>/<job-name>_launch.sh

NAME: <job-name>
LAST DEPLOYED: Mon Sep 15 20:56:50 2025
NAMESPACE: kubeflow
STATUS: deployed
REVISION: 1
TEST SUITE: None
Launcher successfully generated: <path_to_your_installation>/NovaForgeHyperpodCLI/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nova/k8s_templates/SFT

{
 "Console URL": "https://us-east-1.console.aws.amazon.com/sagemaker/home?region=us-east-1#/cluster-management/<your-cluster-name>"
}
```

## Jobstatus wird überprüft
<a name="nova-hp-essential-commands-guide-status"></a>

Überwachen Sie Ihre laufenden Jobs mit kubectl:

```
kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep <your-job-name>)
```

**Pod-Status verstehen**  
In der folgenden Tabelle werden die häufigsten Pod-Status erklärt:


| Status | Description | 
| --- |--- |
| `Pending` | Der Pod wurde akzeptiert, aber noch nicht für einen Knoten geplant oder wartet darauf, dass Container-Images abgerufen werden | 
| `Running` | Pod, der an einen Knoten gebunden ist, auf dem mindestens ein Container läuft oder gestartet wird | 
| `Succeeded` | Alle Container wurden erfolgreich abgeschlossen und werden nicht neu gestartet | 
| `Failed` | Alle Container wurden beendet, wobei mindestens einer mit einem Fehler endete | 
| `Unknown` | Der Pod-Status kann nicht bestimmt werden (normalerweise aufgrund von Problemen mit der Knotenkommunikation) | 
| `CrashLoopBackOff` | Container schlägt wiederholt fehl; Kubernetes zieht sich von Neustartversuchen zurück | 
| `ImagePullBackOff` / `ErrImagePull` | Das Container-Image konnte nicht aus der Registrierung abgerufen werden | 
| `OOMKilled` | Der Container wurde wegen Überschreitung der Speichergrenzen beendet | 
| `Completed` | Job oder Pod erfolgreich abgeschlossen (Batch-Job-Abschluss) | 

**Tipp**  
Verwenden Sie die `-w` Flagge, um sich die Aktualisierungen des Pod-Status in Echtzeit anzusehen. Drücken Sie`Ctrl+C`, um die Wiedergabe zu beenden.

## Job-Logs überwachen
<a name="nova-hp-essential-commands-guide-logs"></a>

Sie können Ihre Protokolle auf drei Arten anzeigen:

**Verwenden CloudWatch**  
Ihre Protokolle sind in Ihrem AWS Konto verfügbar, das den Hyperpodcluster unter enthält. CloudWatch Um sie in Ihrem Browser anzuzeigen, navigieren Sie in Ihrem Konto zur CloudWatch Startseite und suchen Sie nach Ihrem Clusternamen. Wenn Ihr Cluster beispielsweise aufgerufen würde, hätte `my-hyperpod-rig` die Protokollgruppe das Präfix:
+ **Protokollgruppe**: `/aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}`
+ Sobald Sie in der Protokollgruppe sind, können Sie Ihr spezifisches Protokoll anhand der Knoteninstanz-ID wie - finden`hyperpod-i-00b3d8a1bf25714e4`.
  + `i-00b3d8a1bf25714e4`steht hier für den Hyperpod-freundlichen Computernamen, auf dem Ihr Trainingsjob ausgeführt wird. **Erinnern Sie sich, wie wir in der vorherigen `kubectl get pods -o wide -w -n kubeflow | (head -n1 ; grep my-cpt-run)` Befehlsausgabe eine Spalte namens NODE erfasst haben.**
  + Der „Master“ -Knoten wurde in diesem Fall auf Hyperpod `i-00b3d8a1bf25714e4` - ausgeführt. Daher verwenden wir diese Zeichenfolge, um die anzuzeigende Protokollgruppe auszuwählen. Wählen Sie den aus, der sagt `SagemakerHyperPodTrainingJob/rig-group/[NODE]`

**CloudWatch Insights verwenden**  
Wenn Sie Ihren Jobnamen griffbereit haben und nicht alle oben genannten Schritte durchführen möchten, können Sie einfach alle Logs unter abfragen, `/aws/sagemaker/Clusters/my-hyperpod-rig/{UUID}` um das individuelle Protokoll zu finden.

CPT:

```
fields @timestamp, @message, @logStream, @log
| filter @message like /(?i)Starting CPT Job/
| sort @timestamp desc
| limit 100
```

Um den Auftrag abzuschließen, ersetzen Sie ihn durch `Starting CPT Job` `CPT Job completed`

Dann können Sie sich durch die Ergebnisse klicken und diejenige mit der Aufschrift „Epoche 0" auswählen, da dies Ihr Masternode sein wird.

**Mit dem AWS CLI**  
Sie können wählen, ob Sie Ihre Protokolle mit dem verfolgen möchten AWS CLI. Bevor Sie dies tun, überprüfen Sie bitte Ihre AWS CLI Version mit`aws --version`. Es wird auch empfohlen, dieses Utility-Skript zu verwenden, das bei der Live-Protokollverfolgung in Ihrem Terminal hilft

**für V1**:

```
aws logs get-log-events \
--log-group-name /aws/sagemaker/YourLogGroupName \
--log-stream-name YourLogStream \
--start-from-head | jq -r '.events[].message'
```

**für V2**:

```
aws logs tail /aws/sagemaker/YourLogGroupName \
 --log-stream-name YourLogStream \
--since 10m \
--follow
```

## Aktive Jobs auflisten
<a name="nova-hp-essential-commands-guide-list-jobs"></a>

Alle Jobs anzeigen, die in Ihrem Cluster ausgeführt werden:

```
hyperpod list-jobs -n kubeflow
```

**Beispielausgabe:**

```
{
  "jobs": [
    {
      "Name": "test-run-nhgza",
      "Namespace": "kubeflow",
      "CreationTime": "2025-10-29T16:50:57Z",
      "State": "Running"
    }
  ]
}
```

## Stornieren eines Auftrags
<a name="nova-hp-essential-commands-guide-cancel-job"></a>

Stoppen Sie einen laufenden Job jederzeit:

```
hyperpod cancel-job --job-name <job-name> -n kubeflow
```

**Finden Sie Ihren Jobnamen**  
**Option 1: Aus deinem Rezept**

Der Jobname ist im `run` Block Ihres Rezepts angegeben:

```
run:
  name: "my-test-run"                        # This is your job name
  model_type: "amazon.nova-micro-v1:0:128k"
  ...
```

**Option 2: Aus dem Befehl list-jobs**

Verwenden `hyperpod list-jobs -n kubeflow` und kopieren Sie das `Name` Feld aus der Ausgabe.

## Einen Evaluierungsjob ausführen
<a name="nova-hp-essential-commands-guide-evaluation"></a>

Evaluieren Sie ein trainiertes Modell oder Basismodell anhand eines Bewertungsrezepts.

**Voraussetzungen**  
Bevor Sie Evaluierungsjobs ausführen, stellen Sie sicher, dass Sie über Folgendes verfügen:
+ Checkpoint Amazon S3 S3-URI aus der `manifest.json` Datei Ihres Trainingsjobs (für trainierte Modelle)
+ Bewertungsdatensatz wurde im richtigen Format auf Amazon S3 hochgeladen
+ Amazon S3-Pfad für Evaluierungsergebnisse ausgeben

**Befehl**  
Führen Sie den folgenden Befehl aus, um einen Evaluierungsjob zu starten:

```
hyperpod start-job -n kubeflow \
  --recipe evaluation/nova/nova_2_0/nova_lite/nova_lite_2_0_p5_48xl_gpu_bring_your_own_dataset_eval \
  --override-parameters '{
    "instance_type": "p5.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-latest",
    "recipes.run.name": "<your-eval-job-name>",
    "recipes.run.model_name_or_path": "<checkpoint-s3-uri>",
    "recipes.run.output_s3_path": "s3://<your-bucket>/eval-results/",
    "recipes.run.data_s3_path": "s3://<your-bucket>/eval-data.jsonl"
  }'
```

**Beschreibungen der Parameter**:
+ `recipes.run.name`: Eindeutiger Name für Ihren Bewertungsjob
+ `recipes.run.model_name_or_path`: Amazon S3 S3-URI von `manifest.json` oder Basismodellpfad (z. B.`nova-micro/prod`)
+ `recipes.run.output_s3_path`: Amazon S3 S3-Standort für Evaluierungsergebnisse
+ `recipes.run.data_s3_path`: Amazon S3 S3-Speicherort Ihres Bewertungsdatensatzes

**Tipps**:
+ **Modellspezifische Rezepte**: Für jede Modellgröße (Micro, Lite, Pro) gibt es ein eigenes Bewertungsrezept
+ **Bewertung des Basismodells**: Verwenden Sie Basismodellpfade (z. B.`nova-micro/prod`) anstelle von Checkpoints, um Basismodelle URIs zu bewerten

**Format der Bewertungsdaten**  
**Eingabeformat (JSONL**):

```
{
  "metadata": "{key:4, category:'apple'}",
  "system": "arithmetic-patterns, please answer the following with no other words: ",
  "query": "What is the next number in this series? 1, 2, 4, 8, 16, ?",
  "response": "32"
}
```

**Ausgabeformat**:

```
{
  "prompt": "[{'role': 'system', 'content': 'arithmetic-patterns, please answer the following with no other words: '}, {'role': 'user', 'content': 'What is the next number in this series? 1, 2, 4, 8, 16, ?'}]",
  "inference": "['32']",
  "gold": "32",
  "metadata": "{key:4, category:'apple'}"
}
```

**Feldbeschreibungen**:
+ `prompt`: Formatierte Eingabe, die an das Modell gesendet wurde
+ `inference`: Die generierte Antwort des Modells
+ `gold`: Richtige Antwort aus dem Eingabedatensatz erwartet
+ `metadata`: Optionale Metadaten, die von der Eingabe übergeben wurden

## Häufige Probleme
<a name="nova-hp-essential-commands-guide-troubleshooting"></a>
+ `ModuleNotFoundError: No module named 'nemo_launcher'`, je nachdem, wo es installiert `hyperpod_cli` ist`nemo_launcher`, müssen Sie möglicherweise zu Ihrem Python-Pfad etwas hinzufügen. Beispielbefehl:

  ```
  export PYTHONPATH=<path_to_hyperpod_cli>/sagemaker-hyperpod-cli/src/hyperpod_cli/sagemaker_hyperpod_recipes/launcher/nemo/nemo_framework_launcher/launcher_scripts:$PYTHONPATH
  ```
+ `FileNotFoundError: [Errno 2] No such file or directory: '/tmp/hyperpod_current_context.json'`weist darauf hin, dass Sie den Befehl hyperpod connect cluster nicht ausgeführt haben.
+ Wenn Ihr Job nicht geplant ist, überprüfen Sie noch einmal, ob die Ausgabe Ihrer SageMaker HyperPod CLI diesen Abschnitt mit Jobnamen und anderen Metadaten enthält. Wenn nicht, installieren Sie helm chart erneut, indem Sie Folgendes ausführen:

  ```
  curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
  chmod 700 get_helm.sh
  ./get_helm.sh
  rm -f ./get_helm.sh
  ```

# Erstellen eines SageMaker HyperPod EKS-Clusters mit eingeschränkter Instanzgruppe (RIG)
<a name="nova-hp-cluster"></a>

Um ein Modell auf Hyperpod anzupassen, muss die erforderliche Infrastruktur eingerichtet werden. Einzelheiten zur Einrichtung eines SageMaker HyperPod EKS-Clusters mit einer eingeschränkten Instanzgruppe (RIG) finden Sie im [Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US), der eine detaillierte Anleitung zum Einrichtungsprozess bietet.

# Zugang und Einrichtung von Nova Forge für
<a name="nova-forge-hp-access"></a>

Um Amazon Nova Forge für die Verwendung mit Jobs einzurichten, müssen Sie:
+ Abonnieren Sie Amazon Nova Forge
+ Richten Sie einen Cluster ein

**Topics**
+ [Abonnieren Sie Amazon Nova Forge](nova-forge-subscribing.md)
+ [Infrastruktur einrichten](nova-forge-hyperpod-setup.md)
+ [Verantwortungsvolle KI](nova-forge-responsible-ai.md)

# Abonnieren Sie Amazon Nova Forge
<a name="nova-forge-subscribing"></a>

Gehen Sie wie folgt vor, um auf die Funktionen von Amazon Nova Forge zuzugreifen:

1. Überprüfen Sie den Administratorzugriff auf das AWS Konto.

1. Navigieren Sie zur SageMaker KI-Konsole und fordern Sie Zugriff auf Amazon Nova Forge an.

1. Warten Sie, bis das Amazon Nova-Team eine Bestätigung per E-Mail erhalten hat, nachdem die Abonnementanfrage genehmigt wurde.

1. Kennzeichnen Sie Ihre Ausführungsrolle mit dem `forge-subscription` Tag. Dieses Tag ist für den Zugriff auf Funktionen und Checkpoints von Amazon Nova Forge erforderlich. Fügen Sie Ihrer Ausführungsrolle das folgende Tag hinzu:
   + Schlüssel: `forge-subscription`
   + Wert: `true`

**Anmerkung**  
Die Standardfunktionen von Amazon Nova bleiben auch ohne ein Forge-Abonnement verfügbar. Amazon Nova Forge wurde für die Erstellung maßgeschneiderter Frontier-Modelle mit Kontrolle und Flexibilität in allen Modelltrainingsphasen entwickelt.

# Infrastruktur einrichten
<a name="nova-forge-hyperpod-setup"></a>

Sobald Ihr Amazon Nova Forge-Abonnement genehmigt wurde, richten Sie die erforderliche Infrastruktur ein, um Forge-fähige Funktionen nutzen zu können. Ausführliche Anweisungen zur Erstellung eines EKS-Clusters mit einer eingeschränkten Instanzgruppe (RIG) finden Sie in den [Workshop-Anweisungen](https://catalog.us-east-1.prod.workshops.aws/workshops/dcac6f7a-3c61-4978-8344-7535526bf743/en-US).

# Verantwortungsvolle KI
<a name="nova-forge-responsible-ai"></a>

**Einstellungen für die Inhaltsmoderation**: Kunden von Amazon Nova Forge haben Zugriff auf anpassbare Inhaltsmoderationseinstellungen (CCMS) für die Modelle Amazon Nova Lite 1.0 und Pro 1.0. Mit CCMS können Sie die Steuerung der Inhaltsmoderation an Ihre spezifischen Geschäftsanforderungen anpassen und gleichzeitig wichtige verantwortungsvolle KI-Sicherheitsvorkehrungen einhalten. Um festzustellen, ob Ihr geschäftlicher Anwendungsfall für CCMS in Frage kommt, wenden Sie sich an Ihren Amazon Web Services Services-Kundenbetreuer.

Amazon Nova Forge bietet ein Toolkit für verantwortungsvolle KI, das Trainingsdaten, Bewertungsbenchmarks und Laufzeitkontrollen umfasst, damit Sie Ihre Modelle an die Richtlinien für verantwortungsvolle KI von Amazon Nova anpassen können.

**Trainingsdaten**: Die Kategorie „RAI“ bei der Datenmischung umfasst Fälle und Szenarien, in denen verantwortungsvolle KI-Prinzipien, Sicherheitsüberlegungen und verantwortungsvoller Technologieeinsatz im Vordergrund stehen. Nutzen Sie diese Informationen, um Ihre Modelle während der weiteren Vorschulung verantwortungsbewusst aufeinander abzustimmen.

**Bewertungen**: Es stehen Benchmark-Aufgaben zur Verfügung, mit denen Sie die Fähigkeit Ihres Modells testen können, unangemessene, schädliche oder falsche Inhalte zu erkennen und abzulehnen. Verwenden Sie diese Bewertungen, um den Unterschied zwischen der Leistung des Basismodells und der Leistung Ihres benutzerdefinierten Modells zu messen.

**Laufzeitkontrollen**: Standardmäßig steuert die Laufzeit von Amazon Nova moderate Modellreaktionen während der Inferenz. Um diese Kontrollen für Ihren speziellen Geschäftsfall zu ändern, fordern Sie Customable Content Moderation Settings (CCMS) an, indem Sie sich an Ihren Amazon Web Services Services-Kundenbetreuer wenden.

## Gemeinsame Verantwortung für die Sicherheit
<a name="shared-responsibility"></a>

Sicherheit ist eine gemeinsame Verantwortung von Amazon Web Services und unseren Kunden. Wenn Sie das Basismodell ändern oder fortlaufende Vorschulungen durchführen, um die Leistung in einem bestimmten Anwendungsfall zu verbessern, kann sich dies auf die Sicherheit, Fairness und andere Eigenschaften des neuen Modells auswirken.

Wir verwenden eine robuste Anpassungsmethode, um Änderungen an den in unseren Basismodellen integrierten Sicherheits-, Fairness- und anderen Schutzmaßnahmen zu minimieren und gleichzeitig die Auswirkungen auf die Modellleistung bei Aufgaben, für die das Modell nicht maßgeschneidert wurde, zu minimieren.

Sie sind verantwortlich für:
+ End-to-end Testen ihrer Anwendungen an Datensätzen, die für ihre Anwendungsfälle repräsentativ sind
+ Entscheidung, ob die Testergebnisse ihren spezifischen Erwartungen in Bezug auf Sicherheit, Fairness und andere Eigenschaften sowie allgemeine Wirksamkeit entsprechen

Weitere Informationen finden Sie im Amazon Web Services Services-Leitfaden zur verantwortungsvollen Nutzung von KI, in der Amazon Web Services Services-Richtlinie für verantwortungsvolle KI, in der Richtlinie zur AWS akzeptablen Nutzung und in den AWS Servicebedingungen für die Services, die Sie nutzen möchten.

## Anpassbare Einstellungen für die Inhaltsmoderation (CCMS)
<a name="ccms"></a>

Mit CCMS können Sie die Kontrollen an Ihre Geschäftsanforderungen anpassen und gleichzeitig wichtige, nicht konfigurierbare Kontrollen beibehalten, die einen verantwortungsvollen Umgang mit KI sicherstellen.

Diese Einstellungen ermöglichen die Generierung von Inhalten über drei verfügbare Konfigurationen:
+ Nur Sicherheit
+ Sicherheit, sensible Inhalte und Fairness kombiniert
+ Alle Kategorien kombiniert

Die vier Kategorien für die Moderation von Inhalten sind:

1. **Sicherheit** — Umfasst gefährliche Aktivitäten, Waffen und kontrollierte Substanzen

1. **Vertraulicher Inhalt** — Beinhaltet Obszönitäten, Nacktheit und Mobbing

1. **Fairness** — Geht auf Vorurteile und kulturelle Überlegungen ein

1. **Sicherheit** — Beinhaltet Cyberkriminalität, Malware und bösartige Inhalte

Unabhängig von Ihrer CCMS-Konfiguration setzt Amazon Amazon Nova wichtige, nicht konfigurierbare Kontrollen durch, um einen verantwortungsvollen Umgang mit KI sicherzustellen, z. B. Kontrollen zur Vermeidung von Schäden für Kinder und zum Schutz der Privatsphäre.

### Empfehlungen für die Verwendung von CCMS
<a name="ccms-recommendations"></a>

Bei der Verwendung von CCMS empfehlen wir, Continuous Pre Training (CPT) zu verwenden und nicht am Checkpoint, sondern an einem Kontrollpunkt vor dem RAI (Pre-Training-Early, PRE-TRAINING-Mid oder) zu beginnen. PRE-TRAINING-Final GA/FINAL Diese Checkpoints wurden weder einer Sicherheitsschulung unterzogen noch wurden sie auf bestimmte RAI-Verhaltensweisen ausgerichtet, sodass Sie sie effizienter an Ihre Anforderungen an die Moderation von Inhalten anpassen können.

**Tipp**: Wenn Sie CCMS mit Datenmischung verwenden, sollten Sie erwägen, den Prozentsatz der Kategorie „RAI“ in Ihrer nova\$1data-Konfiguration an Ihre spezifischen Anforderungen an die Inhaltsmoderation anzupassen.

### Verfügbarkeit
<a name="ccms-availability"></a>

CCMS ist derzeit für zugelassene Kunden verfügbar, die Folgendes verwenden:
+ Modelle Nova Lite 1.0 und Pro 1.0
+ Amazon Bedrock On-Demand-Inferenz
+ Die Region us-east-1 (Nord-Virginia)

Um CCMS für Ihre Forge-Modelle zu aktivieren, wenden Sie sich an Ihren Amazon Web Services Account Manager.

# Schulung für Amazon Nova-Modelle
<a name="nova-hp-training"></a>

Das Training von Amazon Nova-Modellen auf SageMaker HyperPod unterstützt mehrere Techniken, darunter Continued Pre-Training (CPT), Supervised Fine-Tuning (SFT) und Reinforcement Fine-Tuning (RFT). Jede Technik erfüllt unterschiedliche Anpassungsanforderungen und kann auf verschiedene Amazon Nova-Modellversionen angewendet werden.

**Topics**
+ [Fortgesetztes Vortraining (CPT)](nova-cpt.md)

# Fortgesetztes Vortraining (CPT)
<a name="nova-cpt"></a>

Continued Pre-Training (CPT) ist eine Trainingstechnik, die die Vortrainingsphase eines Basismodells verlängert, indem es mit zusätzlichem unbeschriftetem Text aus bestimmten Bereichen oder Korpora vertraut gemacht wird. Im Gegensatz zur überwachten Feinabstimmung, für die beschriftete Input-Output-Paare erforderlich sind, trainiert CPT anhand von Rohdokumenten, um dem Modell zu helfen, sich tiefere Kenntnisse über neue Bereiche anzueignen, domänenspezifische Terminologie und Schreibmuster zu erlernen und sich an bestimmte Inhaltstypen oder Fachbereiche anzupassen.

Dieser Ansatz ist besonders nützlich, wenn Sie über große Mengen (zig Milliarden Tokens) domänenspezifischer Textdaten verfügen, wie z. B. Rechtsdokumente, medizinische Literatur, technische Dokumentation oder firmeneigene Geschäftsinhalte, und Sie möchten, dass das Modell in diesem Bereich systemeigene Sprachkenntnisse entwickelt. Im Allgemeinen muss das Modell nach der CPT-Phase weitere Stufen zur Anpassung der Anweisungen durchlaufen, damit das Modell das neu gewonnene Wissen nutzen und nützliche Aufgaben ausführen kann.

**Unterstützte Modelle**  
CPT ist für die folgenden Amazon Nova-Modelle verfügbar:
+ Nova 1.0 (Micro, Lite, Pro)
+ Nova 2.0 (Lite)

Wählen Sie Nova 1.0, wenn Folgendes zutrifft:
+ Ihr Anwendungsfall erfordert Standardsprachenkenntnisse ohne fortgeschrittene Argumentation.
+ Sie möchten für niedrigere Schulungs- und Inferenzkosten optimieren.
+ Ihr Schwerpunkt liegt eher darauf, dem Modell domänenspezifisches Wissen und Verhalten beizubringen, als komplexe Denkaufgaben.
+ Sie haben die Leistung von Nova 1.0 bereits validiert und benötigen keine zusätzlichen Funktionen.

**Anmerkung**  
Das größere Modell ist nicht immer besser. Berücksichtigen Sie bei der Auswahl zwischen den Modellen Nova 1.0 und Nova 2.0 den Kosten-Nutzen-Kompromiss und Ihre spezifischen Geschäftsanforderungen.

# CPT auf Nova 1.0
<a name="nova-cpt-1"></a>

Sie sollten CPT in den folgenden Szenarien verwenden:
+ Sie verfügen über umfangreiche, unbeschriftete Daten, die spezifisch für einen bestimmten Bereich sind (z. B. Medizin oder Finanzen).
+ Sie möchten, dass das Modell allgemeine Sprachfunktionen beibehält und betreffend bereichsspezifischer Inhalte verbessert wird.
+ Sie möchten die Zero-Shot- und Few-Shot-Leistung in speziellen Bereichen verbessern, ohne umfangreiche, aufgabenspezifische Optimierungen vornehmen zu müssen.

**Anforderungen an das Datenformat**  
Wir empfehlen, bei der Durchführung von CPT die folgenden Datensatzmerkmale einzuhalten:
+ **Diversität**: Ihre Daten sollten ein breites Spektrum von Ausdrücken innerhalb des Zielbereichs abdecken, um eine Überanpassung zu vermeiden.
+ **Repräsentation**: Ihre Daten sollten die Verteilung widerspiegeln, der das Modell bei der Inferenz ausgesetzt sein wird.
+ **Reinheit**: Rauschen und Redundanz in Ihren Daten können die Leistung beeinträchtigen. Deduplizierung und Textnormalisierung verbessern das Modelltraining.
+ **Skalierung**: Größere Datensätze sind hilfreich, aber ab einem bestimmten Schwellenwert (z. B. die Ausführung mehrerer Epochen mit begrenzten Daten) steigt das Risiko einer Überanpassung.

Bei den Trainings- und Validierungsdatensätzen muss es sich um JSONL-Dateien im unten angegebenen Format handeln, wobei jede Zeile ein JSON-Objekt enthält, das eine Konversation mit den erforderlichen Feldern und der erforderlichen Struktur darstellt. Ein Beispiel:

```
{"text": "AWS stands for Amazon Web Services"}
{"text": "Amazon SageMaker is a fully managed machine learning service"}
{"text": "Amazon Bedrock is a fully managed service for foundation models"}
```

Texteinträge sollten natürlich fließende, qualitativ hochwertige Inhalte enthalten, die Ihren Zielbereich repräsentieren.

**Datensatzvalidierung**  
Um Ihren Datensatz zu validieren, bevor Sie Ihren CPT-Job einreichen, überprüfen Sie die folgenden Bedingungen:
+ Jede Zeile muss ein gültiges JSON-Objekt enthalten.
+ Jedes Objekt hat ein „Text“-Feld, das Zeichenkettendaten enthält.
+ Es sind keine anderen Felder als „Text“ vorhanden.
+ Die Datei ist eine `.jsonl`-Erweiterung.

**Trainingsdauer**  
Wie viel Zeit für das Training aufgewendet wird, hängt stark von der Größe des Datensatzes, der Anzahl der verwendeten Instances und dem trainierten Modell ab. Die Trainingsdauer steigt gewöhnlich linear an. Die folgende Tabelle enthält einige Beispiele zur Trainingsdauer für verschiedene Modelle.


| Modelltyp | GB | Anzahl der Proben im Datensatz | Anzahl der P5-Instances | `max_length` Wert | Ungefähre Trainingsdauer in Stunden | 
| --- |--- |--- |--- |--- |--- |
| Amazon Nova Micro | 256 | 100 000 | 8 | 8,192 | 4 | 
| Amazon Nova Lite | 256 | 100 000 | 16 | 8,192 | 4 | 
| Amazon Nova Pro | 256 | 100 000 | 24 | 8,192 | 10 | 

Bei den Trainings- und Validierungsdatensätzen muss es sich um JSONL-Dateien im unten angegebenen Format handeln, wobei jede Zeile ein JSON-Objekt enthält, das eine Konversation mit den erforderlichen Feldern und der erforderlichen Struktur darstellt.

Zu den Amazon-Nova-Parametern, die für die Optimierung mit CPT verfügbar sind, gehören:
+ **Ausführungskonfiguration**
  + `name`: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft dabei, Ihren Job in der zu identifizieren. AWS-Managementkonsole
  + `model_type`: Die zu verwendende Amazon-Nova-Modellvariante. Die verfügbaren Optionen sind `amazon.nova-micro-v1:0:128k`, `amazon.nova-lite-v1:0:300k` oder `amazon.nova-pro-v1:0:300k`.
  + `model_name_or_path`: Der Pfad zum Basismodell, das Sie für Ihr Training verwenden. Die verfügbaren Optionen sind `nova-micro/prod`, `nova-lite/prod`, `nova-pro/prod`, oder der S3-Pfad für den Checkpoint nach dem Training (`s3://customer-escrow-bucket-unique_id/training_run_name`).
  + `replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate.
  + `data_s3_path`: Der S3-Speicherort des Trainingsdatensatzes, der eine JSONL-Datei ist. Diese Datei muss sich in derselben AWS-Konto Region wie 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, der eine JSONL-Datei ist. 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 TensorBoard Protokolle gespeichert sind. Alle angegebenen S3-Speicherorte müssen sich im selben AWS-Konto und in derselben AWS-Region befinden.
+ **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 Ihnen, den Parameter `max_length` an Ihre Datenverteilung anzupassen.
+ **Trainer-Einstellungen**
  + `global_batch_size`: Die Gesamtzahl der Trainingsproben, die zusammen in einem Vorwärts- oder Rückwärtsdurchlauf auf allen Geräten und Workern 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.
  + `max_epochs`: die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz

    Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Wir empfehlen, die Anzahl der Epochen an die Größe der Daten anzupassen, um eine Überanpassung zu vermeiden.
+ **Modelleinstellungen**
  + `hidden_dropout`: Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. 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 Aufmerksamkeitsgewichtungen verloren gehen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
  + `ffn_dropout`: Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
+ **Konfiguration des Optimierers**
  + `lr`: Die Lernrate, die die Schrittgröße während 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 zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.
  + `min_lr`: Die minimale Lernrate am Ende des Rückgangs. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.

**CPT-Rezept**  
Das Folgende ist ein Rezept für CPT.

```
## Run config
run:
  name: "my-cpt-run"             # A descriptive name for your training job
  model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification, do not change
  model_name_or_path: "nova-lite/prod"      # Base model path, do not change
  replicas: 4                     # Number of compute instances for training, allowed values are 4, 8, 16
  data_s3_path: [S3_PATH_TO_TRAIN_DATASET]
  validation_data_s3_path: (OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]
  output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## Training specific configs
training_config:
  max_length: 8192               # Maximum context window size (tokens).
  global_batch_size: 256           # Global batch size, allowed values are 32, 64, 128, 256.

  trainer:
      max_epochs: 2                # Number of training epochs

  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
      ffn_dropout: 0.0             # Dropout for feed-forward networks, must be between 0.0 and 1.0

      optim:
        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
        betas:                   # Adam optimizer betas, must be between 0.0 and 1.0
          - 0.9
          - 0.999
        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
```

**Einschränkungen**  
Für CPT gelten folgende Einschränkungen:
+ Multimodale Datensätze werden nicht unterstützt.
+ Zwischen-Checkpoints werden nicht zur Bewertung gespeichert und Sie können nicht von einem Zwischen-Checkpoint aus fortfahren. Nur der letzte Checkpoint wird gespeichert.

# Feinabstimmung der Amazon Nova-Modelle auf SageMaker HyperPod
<a name="nova-hp-fine-tune"></a>

Die folgenden Techniken zeigen Ihnen, wie Sie Amazon Nova 2-Modelle optimieren können. SageMaker HyperPod

**Topics**
+ [Überwachte Optimierung (SFT)](nova-fine-tune.md)
+ [Direct Preference Optimization (DPO)](nova-dpo.md)
+ [Proximal Policy Optimization (PPO)](nova-ppo.md)

# Überwachte Optimierung (SFT)
<a name="nova-fine-tune"></a>

Der SFT-Trainingsprozess besteht aus zwei Hauptphasen:
+ **Datenvorbereitung**: Folgen Sie den festgelegten Richtlinien, um Datensätze zu erstellen, zu bereinigen oder neu zu formatieren, sodass sie die erforderliche Struktur erhalten. Stellen Sie sicher, dass Eingaben, Ausgaben und Zusatzinformationen (wie Argumentationsspuren oder Metadaten) richtig aufeinander abgestimmt und formatiert sind.
+ **Trainingskonfiguration**: Definieren Sie, wie das Modell trainiert werden soll. Bei der Verwendung wird diese Konfiguration in eine YAML-Rezeptdatei geschrieben, die Folgendes beinhaltet:
  + Datenquellenpfade (Trainings- und Validierungsdatensätze)
  + Wichtige Hyperparameter (Epochen, Lernrate, Batchgröße)
  + Optionale Komponenten (verteilte Trainingsparameter usw.)

## Vergleich und Auswahl von Nova-Modellen
<a name="nova-model-comparison"></a>

Amazon Nova 2.0 ist ein Modell, das auf einem größeren und vielfältigeren Datensatz als Amazon Nova 1.0 trainiert wurde. Zu den Verbesserungen gehören:
+ **Verbesserte Argumentationsfähigkeiten** mit Unterstützung für den Modus „Explizites Denken“
+ **Umfassendere mehrsprachige Leistung** in weiteren Sprachen
+ **Verbesserte Leistung bei komplexen Aufgaben**, einschließlich Codierung und Verwendung von Tools
+ **Erweiterte Kontexthandhabung** mit besserer Genauigkeit und Stabilität bei längeren Kontextlängen

## Wann sollte Nova 1.0 im Vergleich zu Nova 2.0 verwendet werden
<a name="nova-model-selection"></a>

Wählen Sie Amazon Nova 1.0, wenn:
+ Der Anwendungsfall erfordert Standardsprachenkenntnisse ohne fortgeschrittene Argumentation
+ Die Leistung wurde bereits auf Amazon Nova 1.0 validiert und zusätzliche Funktionen sind nicht erforderlich

# SFT auf Nova 1.0
<a name="nova-sft-1"></a>

Die überwachte Optimierung (SFT, Supervised Fine-Tuning) ist ein Prozess, bei dem eine Sammlung von Prompt-Antwort-Paaren für ein Basismodell bereitgestellt wird, um die Leistung eines vortrainierten Basismodells für eine bestimmte Aufgabe zu verbessern. Die gekennzeichneten Beispiele sind als Prompt-Antwort-Paare formatiert und als Anweisungen formuliert. Durch diesen Feinabstimmungsprozess werden die Gewichtungen des Modells geändert.

Sie sollten SFT verwenden, wenn Sie über domainspezifische Daten verfügen, die für optimale Ergebnisse die Bereitstellung bestimmter Prompt-Antwort-Paare erfordern.

Beachten Sie, dass sich Ihre Trainings- und Validierungs-Eingabedatensätze in kundeneigenen Buckets befinden müssen, nicht in Escrow- oder serviceverwalteten S3-Buckets.

## Datenvoraussetzungen
<a name="nova-sft-1-data-requirements"></a>

Bei der Full-Rank-SFT und der Low-Rank Adapter (LoRA)-SFT sollten die Daten dem [Operationsformat von Amazon Bedrock Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) entsprechen. Beispiele und Einschränkungen dieses Formats finden Sie unter [Vorbereiten von Daten für die Optimierung von Modellen mit Verständnisfunktion](https://docs.aws.amazon.com/nova/latest/userguide/fine-tune-prepare-data-understanding.html).

Um Ihr Datensatzformat vor der Einreichung zu überprüfen, empfehlen wir, [das Validierungsskript aus dem Beispielrepository von Amazon Bedrock](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/bedrock-finetuning/understanding/dataset_validation/nova_ft_dataset_validator.py) zu verwenden. Mit diesem Validierungstool können Sie sicherstellen, dass Ihre JSONL-Dateien den erforderlichen Formatspezifikationen entsprechen, und mögliche Probleme identifizieren, bevor Sie Ihren Optimierungsjob einreichen.

Die Amazon-Nova-Parameter, die für die Optimierung mit SFT verfügbar sind, lauten wie folgt:
+ **Ausführungskonfiguration**
  + `name`: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft bei der Identifizierung Ihres Jobs in der AWS-Managementkonsole.
  + `model_type`: Die zu verwendende Amazon-Nova-Modellvariante. Die verfügbaren Optionen sind `amazon.nova-micro-v1:0:128k`, `amazon.nova-lite-v1:0:300k` oder `amazon.nova-pro-v1:0:300k`.
  + `model_name_or_path`: Der Pfad zum Basismodell, das Sie für Ihr Training verwenden. Wählen Sie das Modell aus `nova-micro/prod`, `nova-lite/prod`, `nova-pro/prod` oder dem S3-Pfad für den Checkpoint nach dem Training (`s3://<escrow bucket>/<job id>/outputs/checkpoints`) aus.
  + `replicas`: die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate.
  + `data_s3_path`: Der S3-Speicherort des Trainingsdatensatzes, der eine JSONL-Datei ist. Diese Datei muss sich in derselben AWS-Konto Region wie der Cluster befinden. Alle S3-Standorte innerhalb des angegebenen S3-Pfads müssen sich im selben Konto und in derselben Region befinden.
  + `validation_data_s3_path`: (Optional) Der S3-Speicherort des Validierungsdatensatzes, der eine JSONL-Datei ist. Diese Datei muss sich im selben Konto und derselben Region wie der Cluster befinden. Alle S3-Standorte innerhalb des angegebenen S3-Pfads müssen sich im selben Konto und in derselben Region befinden.
  + `output_s3_path`: Der S3-Speicherort, an dem das Manifest und die TensorBoard Protokolle gespeichert sind. Alle S3-Standorte innerhalb des angegebenen S3-Pfads müssen sich im selben Konto und in derselben Region befinden.
+ **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 65 536 Token für SFT.

    Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen Ihnen, den Parameter `max_length` an Ihre Datenverteilung anzupassen. 
+ **Trainer-Einstellungen**
  + `max_epochs`: die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz

    Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Wir empfehlen, dass Sie die Anzahl der Epochen an die Größe der Daten anpassen.
+ **Modelleinstellungen**
  + `hidden_dropout`: Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. 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 Aufmerksamkeitsgewichtungen verloren gehen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
  + `ffn_dropout`: Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
+ **Konfiguration des Optimierers**
  + `lr`: Die Lernrate, die die Schrittgröße während der Optimierung steuert. Gültige Werte liegen zwischen 1e-6 und 1e-3, beide inklusive. Für eine gute Leistung empfehlen wir Werte zwischen 1e-6 und 1e-4.
  + `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 zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.
  + `min_lr`: Die minimale Lernrate am Ende des Rückgangs. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.

## Schnellstart mit umfassendem SFT-Rezept
<a name="nova-sft-1-quick-start"></a>

Im Folgenden finden Sie ein Rezept für SFT mit vollem Rang, mit dem Sie schnell einen SFT-Job in einem Cluster starten können. SageMaker HyperPod Bei diesem Rezept wird auch davon ausgegangen, dass Sie mit den richtigen Anmeldeinformationen eine Verbindung zu Ihrem SageMaker HyperPod Cluster hergestellt haben. AWS 

```
run:
  name: "my-sft-micro-job" # gets appended with a unique ID for HP jobs
  model_type: "amazon.nova-micro-v1:0:128k"
  model_name_or_path: "nova-micro/prod"
  replicas: 2
  data_s3_path: s3:Replace with your S3 bucket name/input.jsonl
  validation_data_s3_path: [OPTIONAL] s3:your S3 bucket name/input.jsonl
  output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## training specific configs
training_config:
  max_length: 32768
  save_steps: 100000
  replicas: ${recipes.run.replicas}
  micro_batch_size: 1
  task_type: sft
  global_batch_size: 64
  weights_only: True
  allow_percentage_invalid_samples: 10

  exp_manager:
    exp_dir: null
    create_wandb_logger: False
    create_tensorboard_logger: True
      project: null
      name: null
    checkpoint_callback_params:
      monitor: step
      save_top_k: 10
      mode: max
      every_n_train_steps: ${recipes.training_config.save_steps}
      save_last: True
    create_early_stopping_callback: True
    early_stopping_callback_params:
      min_delta: 0.001
      mode: min
      monitor: "val_loss"
      patience: 2

  trainer:
    log_every_n_steps: 1
    max_epochs: -1
    max_steps: 16
    limit_test_batches: 0
    gradient_clip_val: 1.0
    num_nodes: ${recipes.training_config.replicas}

  model:
    hidden_dropout: 0.0 # Dropout probability for hidden state transformer.
    attention_dropout: 0.0 # Dropout probability in the attention layer.
    ffn_dropout: 0.0 # Dropout probability in the feed-forward layer.
    sequence_parallel: True
    optim:
      lr: 1e-5
      name: distributed_fused_adam
      bucket_cap_mb: 10
      contiguous_grad_buffer: False
      overlap_param_sync: False
      contiguous_param_buffer: False
      overlap_grad_sync: False
      adam_w_mode: true
      eps: 1e-06
      weight_decay: 0.0
      betas:
        - 0.9
        - 0.999
      sched:
        name: CosineAnnealing
        warmup_steps: 10
        constant_steps: 0
        min_lr: 1e-6

    mm_cfg:
      llm:
        freeze: false
      image_projector:
        freeze: true
        require_newline: true
      video_projector:
        freeze: true
        require_newline: false

    peft:
      peft_scheme: null

    training_validation:
      loader:
        args:
          data_loader_workers: 1
          prefetch_factor: 2
      collator:
        args:
          force_image_at_turn_beginning: false
```

## Beispiel für ein Full-Rank-Rezept
<a name="nova-sft-1-sample-recipe"></a>

Im Folgenden finden Sie ein Beispiel für ein Full-Rank-Rezept für SFT, bei dem alle Komponenten ordnungsgemäß konfiguriert sind.

```
## Run config
run:
    name: "my-sft-run"              # A descriptive name for your training job
    model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification
    model_name_or_path: "nova-lite/prod"      # Base model path
    replicas: 4                     # Number of compute instances for training
    data_s3_path: s3:Replace with your S3 bucket name/input.jsonl
    validation_data_s3_path: [OPTIONAL] s3:your S3 bucket name/input.jsonl
    output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## Training specific configs
training_config:
    max_length: 32768               # Maximum context window size (tokens)

    trainer:
        max_epochs: 2               # Number of training epochs

    model:
        hidden_dropout: 0.0          # Dropout for hidden states
        attention_dropout: 0.0       # Dropout for attention weights
        ffn_dropout: 0.0             # Dropout for feed-forward networks

        optim:
            lr: 1e-5                 # Learning rate
            name: distributed_fused_adam  # Optimizer algorithm
            adam_w_mode: true        # Enable AdamW mode
            eps: 1e-06               # Epsilon for numerical stability
            weight_decay: 0.0        # L2 regularization strength
            betas:                   # Adam optimizer betas
                - 0.9
                - 0.999
            sched:
                warmup_steps: 10     # Learning rate warmup steps
                constant_steps: 0    # Steps at constant learning rate
                min_lr: 1e-6         # Minimum learning rate

        peft:
            peft_scheme: null        # Set to null for full-parameter fine-tuning
```

## Einschränkungen
<a name="nova-sft-1-limitations"></a>

Das Veröffentlichen von Metriken in Weights & Biases wird nicht unterstützt.

Folgen Sie den Anweisungen unter [Auswählen von Hyperparametern](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune-hyperparameters.html), um die Hyperparameter anzupassen.

## Parametereffiziente Optimierung (PEFT)
<a name="nova-fine-tune-peft"></a>

Bei der parametereffizienten Optimierung (PEFT) wird eine kleine Anzahl zusätzlicher Gewichtungen neu trainiert, um ein Basismodell an neue Aufgaben oder Domains anzupassen. Insbesondere beim Low-Rank Adapter (LoRA)-PEFT werden Basismodelle effizient optimiert, indem trainierbare Gewichtsmatrizen mit niedrigem Rang in spezifische Modellebenen eingeführt werden, wodurch die Anzahl der trainierbaren Parameter reduziert wird und gleichzeitig die Modellqualität erhalten bleibt.

Ein LoRA-PEFT-Adapter erweitert das Basismodell durch die Integration leichter Adapterschichten, die die Gewichtungen des Modells während der Inferenz modifizieren und gleichzeitig die ursprünglichen Modellparameter beibehalten. Dieser Ansatz wird auch als eine der kostengünstigsten Optimierungstechniken angesehen. Weitere Informationen finden Sie unter [Optimieren von Modellen mit Adapter-Inferenzkomponenten](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-adapt.html).

Sie sollten LoRA PEFT in den folgenden Szenarien verwenden:
+ Sie möchten mit einem schnellen Trainingsverfahren beginnen.
+ Die Leistung des Basismodells ist bereits zufriedenstellend. In diesem Fall besteht das Ziel von LoRA PEFT darin, dessen Fähigkeiten für mehrere verwandte Aufgaben wie Textzusammenfassung oder Sprachübersetzung zu verbessern. Die Regularisierungseigenschaften von LoRA PEFT tragen dazu bei, Überanpassungen zu verhindern und das Risiko zu minimieren, dass das Modell die Quelldomain „vergisst“. Dadurch wird sichergestellt, dass das Modell vielseitig und an verschiedene Anwendungen anpassbar bleibt.
+ Sie möchten Szenarien zur Optimierung von Anweisungen mit relativ kleinen Datensätzen durchführen. LoRA PEFT schneidet bei kleineren, aufgabenspezifischen Datensätzen besser ab als bei breiteren, größeren Datensätzen.
+ Sie haben große, beschriftete Datensätze, die die Grenzwerte für Amazon-Bedrock-Anpassungsdaten überschreiten. In diesem Fall können Sie LoRa PEFT auf SageMaker KI verwenden, um bessere Ergebnisse zu erzielen.
+ Wenn Sie durch die Feinabstimmung von Amazon Bedrock bereits vielversprechende Ergebnisse erzielt haben, kann LoRa PEFT in SageMaker KI dazu beitragen, die Modell-Hyperparameter weiter zu optimieren.

Zu den Amazon-Nova-Parametern, die mit LoRA PEFT verfügbar sind, gehören:
+ **Ausführungskonfiguration**
  + `name`: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft Ihnen dabei, Ihren Job in der zu identifizieren. AWS-Managementkonsole
  + `model_type`: Die zu verwendende Nova-Modellvariante. Die verfügbaren Optionen sind `amazon.nova-micro-v1:0:128k`, `amazon.nova-lite-v1:0:300k` oder `amazon.nova-pro-v1:0:300k`.
  + `model_name_or_path`: Der Pfad zum Basismodell, das Sie für Ihr Training verwenden. Wählen Sie das Modell aus, das Sie verwenden möchten. Die verfügbaren Optionen sind `nova-micro/prod`, `nova-lite/prod`, `nova-pro/prod`, oder der S3-Pfad für den Checkpoint nach dem Training (`s3://<escrow bucket>/<job id>/outputs/checkpoints`).
  + `replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom verwendeten Modell. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate.
  + `output_s3_path`: Der S3-Speicherort, an dem das Manifest und die TensorBoard Protokolle gespeichert sind. Alle S3-Standorte innerhalb des angegebenen S3-Pfads müssen sich im selben Konto und in derselben Region befinden.
+ **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 65 536 Token für LoRA PEFT.

    Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen Ihnen, den Parameter `max_length` an Ihre Datenverteilung anzupassen.
+ **Trainer-Einstellungen**
  + `max_epochs`: die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz Sie können entweder `max_steps` oder `max_epochs` festlegen, wir empfehlen jedoch nicht, beide Werte festzulegen. Der Höchstwert ist 5.

    Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Wir empfehlen, dass Sie die Anzahl der Epochen an die Größe der Daten anpassen.
+ **Modelleinstellungen**
  + `hidden_dropout`: Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. 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 Aufmerksamkeitsgewichtungen verloren gehen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
  + `ffn_dropout`: Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
+ **Konfiguration des Optimierers**
  + `lr`: Die Lernrate, die die Schrittgröße während 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 zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.
  + `min_lr`: Die minimale Lernrate am Ende des Rückgangs. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.
+ **LoRA-Konfigurationsparameter**
  + `peft_scheme`: Wird auf `lora` gesetzt, um eine Anpassung auf niedrigen Rängen zu ermöglichen. 
  + `alpha`: Der Skalierungsfaktor für LoRA-Gewichtungen. Dieser Wert ist in der Regel auf denselben Wert wie `adapter_dim` gesetzt.
  + `adaptor_dropout`: Der Regularisierungsparameter für LoRA.

### PEFT-Rezept
<a name="nova-sft-1-peft-recipe"></a>

Das Folgende ist ein Rezept für LoRA PEFT.

```
## Run config
run:
    name: "my-lora-run"             # A descriptive name for your training job
    model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification
    model_name_or_path: "nova-lite/prod"      # Base model path
    replicas: 4                     # Number of compute instances for training
    output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## Training specific configs
training_config:
    max_length: 32768               # Maximum context window size (tokens)

    trainer:
        max_epochs: 2               # Number of training epochs

    model:
        hidden_dropout: 0.0          # Dropout for hidden states
        attention_dropout: 0.0       # Dropout for attention weights
        ffn_dropout: 0.0             # Dropout for feed-forward networks

        optim:
            lr: 1e-5                 # Learning rate
            name: distributed_fused_adam  # Optimizer algorithm
            adam_w_mode: true        # Enable AdamW mode
            eps: 1e-06               # Epsilon for numerical stability
            weight_decay: 0.0        # L2 regularization strength
            betas:                   # Adam optimizer betas
                - 0.9
                - 0.999
            sched:
                warmup_steps: 10     # Learning rate warmup steps
                constant_steps: 0    # Steps at constant learning rate
                min_lr: 1e-6         # Minimum learning rate

        peft:
            peft_scheme: "lora"      # Enable LoRA for parameter-efficient fine-tuning
            lora_tuning:
                loraplus_lr_ratio: 8.0  # LoRA+ learning rate scaling factor
                alpha: 32            # Scaling factor for LoRA weights
                adapter_dropout: 0.01  # Regularization for LoRA parameters
```

### Fehlerbehebung
<a name="nova-sft-1-troubleshooting"></a>

Verwenden Sie die folgenden Informationen, um Probleme zu lösen, die auftreten könnten:
+ Der Eingabedatensatz für Training und Validierung sollte sich in kundeneigenen Buckets befinden, nicht in Escrow- oder serviceverwalteten S3-Buckets.
+ Wenn Sie in der den Fehler Region nicht gefunden erhalten AWS CLI, senden Sie den Job erneut, wobei die Region dem Befehl start-job vorangestellt wird. Beispiel: `AWS_REGION=us-east-1 hyperpod start-job ...Job Parameters`.
+ Folgen Sie den Anweisungen unter [Auswählen von Hyperparametern](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune-hyperparameters.html), um die Hyperparameter anzupassen.

# Direct Preference Optimization (DPO)
<a name="nova-dpo"></a>

Direct Preference Optimization (DPO) ist eine effiziente Methode zur Optimierung von Basismodellen, bei der gepaarte Vergleichsdaten verwendet werden, um die Modellergebnisse an den menschlichen Präferenzen auszurichten. Dieser Ansatz ermöglicht eine direkte Optimierung des Modellverhaltens auf der Grundlage von menschlichem Feedback darüber, welche Reaktionen wünschenswerter sind.

Sowohl Full-Rank-DPO als auch Low-Rank Adapter (LoRA)-DPO sind verfügbar.

**Anforderungen an das Datenformat**  
Sowohl bei Full-Rank- als auch bei LoRA-DPO ähneln die Anforderungen an das Trainingsdatenformat denen von SFT. Bei DPO muss der letzte Zug jedoch Präferenzpaare haben. Hier ein Beispiel für das DPO-Datenformat:

```
// N-1 turns same as SFT format
{
    "role": "assistant",
    "candidates": [
        {
            "content": [
                {
                    "text": "..."
                } // content list can contain multiple 'text' objects
            ],
            "preferenceLabel": "preferred"
        },
        {
            "content": [
                {
                    "text": "..."
                } // content list can contain multiple 'text' objects
            ],
            "preferenceLabel": "non-preferred"
        }
    ]
}
```

Hier ein weiteres vollständiges DPO-Textbeispiel:

```
{
    "system": [
        {
            "text": "..."
        }
    ],
    "messages":[
        {
            "role": "user",
            "content": [
                {
                    "text": "..."
                }
            ]
        },
        {
            "role": "assistant",
            "content": [
                {
                    "text": "..."
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "text": "..."
                }
            ]
        },
        {
            "role": "assistant",
            "candidates": [
                {
                    "content": [
                        {
                            "text": "..."
                        }
                    ],
                    "preferenceLabel": "preferred"
                },
                {
                    "content": [
                        {
                            "text": "..."
                        }
                    ],
                    "preferenceLabel": "non-preferred"
                }
            ]
        }
    ],
}
```

Hier ein vollständiges DPO-Image-Beispiel:

```
{
    "system": [
        {
            "text": "..."
        }
    ],
    "messages":[
        {
            "role": "user",
            "content": [
                {
                    "text": "..."
                },
                {
                    "text": "..."
                },
                {
                    "image": {
                        "format": "jpeg",
                        "source": {
                            "s3Location": {
                                "uri": "s3://your-bucket/your-path/your-image.jpg",
                                "bucketOwner": "your-aws-account-id"
                            }
                        }
                    }
                } // "content" can have multiple "text" and "image" objects.
                 // max image count is 10
            ]
        },
        {
            "role": "assistant",
            "content": [
                {
                    "text": "..."
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "text": "..."
                },
                {
                    "text": "..."
                },
                {
                    "image": {
                        "format": "jpeg",
                        "source": {
                            "s3Location": {
                                "uri": "s3://your-bucket/your-path/your-image.jpg",
                                "bucketOwner": "your-aws-account-id"
                            }
                        }
                    }
                } // "content" can have multiple "text" and "image" objects.
                 // max image count is 10
            ]
        },
        {
            "role": "assistant",
            "candidates": [
                {
                    "content": [
                        {
                            "text": "..."
                        }
                    ],
                    "preferenceLabel": "preferred"
                },
                {
                    "content": [
                        {
                            "text": "..."
                        }
                    ],
                    "preferenceLabel": "non-preferred"
                }
            ]
        }
    ],
}
```

Es gelten weitere Einschränkungen für die Eingabedatensätze. Weitere Informationen finden Sie unter [Datensatzeinschränkungen](https://docs.aws.amazon.com/nova/latest/userguide/fine-tune-prepare-data-understanding.html#custom-fine-tune-constraints). Wir empfehlen, dass Sie mindestens 1 000 Präferenzpaare angeben, um ein effektives Training zu gewährleisten. Hochwertige Präferenzdaten führen zu effizienteren Ergebnissen.

Wir empfehlen, in den folgenden Szenarien DPO zu verwenden:
+ Optimierung für subjektive Ergebnisse, die eine Anpassung an spezifische menschliche Präferenzen erfordern
+ Anpassung der Tonalität, des Stils oder der inhaltlichen Merkmale des Modells an die gewünschten Reaktionsmuster
+ Vornahme gezielter Verbesserungen an einem bestehenden Modell auf der Grundlage von Benutzerfeedback und Fehleranalysen
+ Beibehaltung einer gleichbleibenden Ausgabequalität in verschiedenen Anwendungsfällen
+ Implementierung von Integritätsschutz durch bevorzugte Reaktionsmuster
+ Training mit belohnungsfreiem bestärkenden Lernen
+ Ausschließliche Verwendung von Präferenzdaten anstelle von bewerteten oder gekennzeichneten Daten
+ Verbesserung des Modells bei differenzierten Ausrichtungsaufgaben wie Nützlichkeit, Harmlosigkeit oder Ehrlichkeit

## Full-Rank-DPO
<a name="customize-fine-tune-hyperpod-dpo-fr"></a>

Die Amazon-Nova-Parameter, die für Full-Rank-DPO verfügbar sind, lauten wie folgt:
+ **Ausführungskonfiguration**
  + `name`: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft Ihnen dabei, Ihren Job in der zu identifizieren. AWS-Managementkonsole
  + `model_type`: Die zu verwendende Nova-Modellvariante. Die verfügbaren Optionen sind `amazon.nova-micro-v1:0:128k`, `amazon.nova-lite-v1:0:300k` oder `amazon.nova-pro-v1:0:300k`.
  + `model_name_or_path`: Der Pfad zum Basismodell. Wählen Sie das Modell aus `nova-micro/prod`, `nova-lite/prod`, `nova-pro/prod` oder dem S3-Pfad für den Checkpoint nach dem Training (`s3://<escrow bucket>/<job id>/outputs/checkpoints`) aus.
  + `replicas`: die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate.
  + `data_s3_path`: Der S3-Speicherort des Trainingsdatensatzes, der eine JSONL-Datei ist. 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.
  + `validation_data_s3_path`: Der S3-Speicherort des Validierungsdatensatzes, der eine JSONL-Datei ist. Diese Datei muss sich im selben AWS-Konto und derselben AWS-Region wie der Cluster befinden. Alle angegebenen S3-Standorte müssen sich im selben Konto und in derselben Region befinden.
+ **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 32 768 Token für DPO.

    Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen Ihnen, den Parameter `max_length` an Ihre Datenverteilung anzupassen.
+ **Trainer-Einstellungen**
  + `max_epochs`: die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz

    Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Wir empfehlen, dass Sie die Anzahl der Epochen an die Größe der Daten anpassen.
+ **Modelleinstellungen**
  + `hidden_dropout`: Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. 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 Aufmerksamkeitsgewichtungen verloren gehen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
  + `ffn_dropout`: Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
+ **Konfiguration des Optimierers**
  + `lr`: Die Lernrate, die die Schrittgröße während 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 zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.
  + `min_lr`: Die minimale Lernrate am Ende des Rückgangs. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.
+ **DPO-Konfiguration**
  + `beta`: Legt fest, wie genau das Modell an die Trainingsdaten oder das Originalmodell angepasst werden soll. Zulässig sind alle Werte zwischen 0,001 und 0,5, beide inklusive.

    Geben Sie größere Werte an (z. B. 0,5), um mehr vom Verhalten des Referenzmodells beizubehalten und neue Präferenzen langsamer zu erlernen. Geben Sie kleinere Werte an (z. B. 0,01–0,05), um neue Präferenzen schneller zu erlernen, auch wenn die Gefahr besteht, dass sie vom Verhalten des Referenzmodells abweichen.

**Full-Rank-Rezept für DPO**  
Im Folgenden finden Sie ein Full-Rank-Rezept für DPO

```
## Run config
run:
  name: "my-dpo-micro-job"             # A descriptive name for your training job
  model_type: "amazon.nova-micro-v1:0:128k"  # Model variant specification, do not change
  model_name_or_path: "nova-micro/prod"      # Base model path, do not change
  replicas: 2                     # Number of compute instances for training, allowed values are 2, 4, 8
  data_s3_path: s3:Replace with your S3 bucket name/input.jsonl
  validation_data_s3_path: [OPTIONAL] s3:your S3 bucket name/input.jsonl
  output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## Training specific configs
training_config:
  max_length: 32768               # Maximum context window size (tokens).
  global_batch_size: 64           # Global batch size, allowed values are 16, 32, 64.

  trainer:
    max_epochs: 2                # Number of training epochs

  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
    ffn_dropout: 0.0             # Dropout for feed-forward networks, must be between 0.0 and 1.0

    optim:
      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
      betas:                   # Adam optimizer betas, must be between 0.0 and 1.0
        - 0.9
        - 0.999
      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

    dpo_cfg:
        beta: 0.1               # Strength of preference enforcement. Limits: [0.001, 0.5]

    peft:
        peft_scheme: null        # Disable LoRA, trigger full rank fine tuning
```

## Low-Rank Adapter DPO
<a name="customize-fine-tune-hyperpod-dpo-lora"></a>

Die Amazon-Nova-Parameter, die für Low-Rank Adapter DPO verfügbar sind, lauten wie folgt:
+ **Ausführungskonfiguration**
  + `name`: Ein aussagekräftiger Name für Ihren Trainingsjob. Dies hilft bei der Identifizierung Ihres Jobs in der AWS-Managementkonsole.
  + `model_type`: Die zu verwendende Nova-Modellvariante. Die verfügbaren Optionen sind `amazon.nova-micro-v1:0:128k`, `amazon.nova-lite-v1:0:300k` oder `amazon.nova-pro-v1:0:300k`.
  + `model_name_or_path`: Der Pfad zum Basismodell. Wählen Sie das Modell aus `nova-micro/prod`, `nova-lite/prod`, `nova-pro/prod` oder dem S3-Pfad für den Checkpoint nach dem Training (`s3://<escrow bucket>/<job id>/outputs/checkpoints`) aus.
  + `replicas`: die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 2, 4 oder 8 Replikate. Amazon Nova Lite unterstützt 4, 8, 16 oder 32 Replikate. Amazon Nova Pro unterstützt 6, 12 oder 24 Replikate.
+ **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 32 768 Token für DPO.

    Längere Sequenzen verbessern die Trainingseffizienz auf Kosten eines erhöhten Speicherbedarfs. Wir empfehlen Ihnen, den Parameter `max_length` an Ihre Datenverteilung anzupassen.
+ **Trainer-Einstellungen**
  + `max_epochs`: die Anzahl abgeschlossener Durchläufe durch Ihren Trainingsdatensatz

    Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Wir empfehlen, dass Sie die Anzahl der Epochen an die Größe der Daten anpassen.
+ **Modelleinstellungen**
  + `hidden_dropout`: Die Wahrscheinlichkeit, dass versteckte Zustandsausgaben verloren gehen. 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 Aufmerksamkeitsgewichtungen verloren gehen. Dieser Parameter kann bei der Generalisierung helfen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
  + `ffn_dropout`: Die Wahrscheinlichkeit, dass Ausgaben eines Feed-Forward-Netzwerks verloren gehen. Zulässig sind alle Werte zwischen 0 und 1, beide inklusive.
+ **Konfiguration des Optimierers**
  + `lr`: Die Lernrate, die die Schrittgröße während 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 zur schrittweisen Erhöhung der Lernrate. Dies verbessert die Trainingsstabilität. Zulässig sind alle Werte zwischen 1 und 20, beide inklusive.
  + `min_lr`: Die minimale Lernrate am Ende des Rückgangs. Gültige Werte liegen zwischen 0 und 1 (beide inklusive), müssen jedoch unter der Lernrate liegen.
+ **DPO-Konfiguration**
  + `beta`: Legt fest, wie genau das Modell an die Trainingsdaten oder das Originalmodell angepasst werden soll. Zulässig sind alle Werte zwischen 0,001 und 0,5, beide inklusive.

    Geben Sie größere Werte an (z. B. 0,5), um mehr vom Verhalten des Referenzmodells beizubehalten und neue Präferenzen langsamer zu erlernen. Geben Sie kleinere Werte an (z. B. 0,01–0,05), um neue Präferenzen schneller zu erlernen, auch wenn die Gefahr besteht, dass sie vom Verhalten des Referenzmodells abweichen.
+ **LoRA-Konfigurationsparameter**
  + `peft_scheme`: Setzen Sie diesen Wert auf `lora`, um Low-Rank Adaptation zu aktivieren, wodurch ein effizienteres, kleineres Ausgabemodell generiert wird. Diese LoRA-spezifischen Eigenschaften sind ebenfalls verfügbar:
    + `alpha`: Der Skalierungsfaktor für LoRA-Gewichtungen. Dieser Wert ist in der Regel auf denselben Wert wie `adapter_dim` gesetzt.
    + `adapter_dropout`: Der Regularisierungsparameter für die LoRA-Parameter.

**LoRA-DPO-Rezept**  
Das Folgende ist ein Rezept für LoRA DPO.

```
## Run config
run:
    name: "my-lora-run"             # A descriptive name for your training job
    model_type: "amazon.nova-lite-v1:0:300k"  # Model variant specification, do not change
    model_name_or_path: "nova-lite/prod"      # Base model path, do not change
    replicas: 4                     # Number of compute instances for training. All supported values: {4, 8, 16}
    data_s3_path: s3:Replace with your S3 bucket name/input.jsonl
    validation_data_s3_path: [OPTIONAL] s3:your S3 bucket name/input.jsonl
    output_s3_path: [S3_PATH_TO_STORE_MANIFEST]

## Training specific configs
training_config:
    max_length: 16384               # Maximum context window size (tokens). Should be between [1024, 32768] and multiple of 1024.
                                    # Note: Image dataset for DPO has a limit on 20k samples and 16384 max_length
    global_batch_size: 64           # Total samples per step. Limits: {16, 32, 64, 128, 256}

    trainer:
        max_epochs: 2               # Number of training epochs

    model:
        hidden_dropout: 0.0          # Dropout for hidden states. Limits: [0.0, 1.0]
        attention_dropout: 0.0       # Dropout for attention weights. Limits: [0.0, 1.0]
        ffn_dropout: 0.0             # Dropout for feed-forward networks. Limits: [0.0, 1.0]

        optim:
            lr: 1e-5                 # Learning rate
            name: distributed_fused_adam  # Optimizer algorithm, do not change
            adam_w_mode: true        # Enable AdamW mode
            eps: 1e-08               # Epsilon for numerical stability
            weight_decay: 0.01       # L2 regularization strength
            betas:                   # Adam optimizer betas. Limits: [0.0, 1.0]
                - 0.9
                - 0.999
            sched:
                warmup_steps: 10     # Learning rate warmup steps
                constant_steps: 0    # Steps at constant learning rate
                min_lr: 1e-6         # Minimum learning rate

        dpo_cfg:
            beta: 0.01               # Strength of preference enforcement. Limits: [0.001, 0.5]

        peft:
            peft_scheme: "lora"      # Enable LoRA for parameter-efficient fine-tuning
            lora_tuning:
                loraplus_lr_ratio: 20.0  # LoRA+ learning rate scaling factor. Limits: [0.0, 100.0]
                alpha: 64            # Scaling factor for LoRA weights. [32, 64, 96, 128, 160, 192]
                adapter_dropout: 0.01  # Regularization for LoRA parameters. Limits: [0.0, 1.0]
```

**Einschränkungen**  
Für DPO gelten folgende Einschränkungen:
+ Zwischen-Checkpoints werden nicht zur Bewertung gespeichert und Sie können nicht von einem Zwischen-Checkpoint aus fortfahren. Nur der letzte Checkpoint wird gespeichert.
+ Folgen Sie den Anweisungen unter [Auswählen von Hyperparametern](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune-hyperparameters.html), um die Hyperparameter anzupassen.

# Proximal Policy Optimization (PPO)
<a name="nova-ppo"></a>

Proximal Policy Optimization (PPO) ist der Prozess, bei dem mehrere Machine-Learning-Modelle verwendet werden, um ein Modell zu trainieren und zu bewerten. Die folgenden Modelle sind Teil des PPO-Prozesses:
+ **Akteurtrainings- oder Richtlinienmodell**: Ein Modell der überwachten Optimierung (SFT), das in jeder Epoche optimiert und aktualisiert wird. Die Aktualisierungen erfolgen durch Stichproben von Prompts, Generierung von Vervollständigungen und Aktualisierung der Gewichtungen unter Verwendung eines beschnittenen Ersatzziels. Dadurch wird die Veränderung der Protokollrentabilität pro Token begrenzt, sodass jeder Richtlinienschritt *nahe am vorherigen* liegt und die Stabilität des Trainings gewahrt bleibt.
+ **Modell zur Akteurgenerierung**: Ein Modell, das Prompt-Ausführungen oder -Antworten generiert, die anhand des Belohnungs- und des kritischen Modells bewertet werden. Die Gewichtungen dieses Modells werden in jeder Epoche anhand des Akteurtrainings- oder Richtlinienmodells aktualisiert.
+ **Belohnungsmodell**: Ein Modell mit eingefrorenen Gewichtungen, das zur Bewertung des Modells zur Akteurgenerierung verwendet wird.
+ **Kritisches Modell**: Ein Modell mit nicht eingefrorenen Gewichtungen, das zur Bewertung des Modells zur Akteurgenerierung verwendet wird. Diese Bewertung wird oft als Schätzung der Gesamtbelohnung angesehen, die der Akteur erhält, wenn er die verbleibenden Token generiert.
+ **Ankermodell**: Ein SFT-Modell mit eingefrorenen Gewichtungen, das zur Berechnung der KL-Divergenz zwischen dem Akteurtrainingsmodell und dem Basismodell verwendet wird. Das Ankermodell stellt sicher, dass die Aktualisierungen des Akteurmodells im Vergleich zum Basismodell nicht zu drastisch ausfallen. Drastische Änderungen können zu Instabilität oder Leistungseinbußen führen.

Die Trainingsdaten müssen im JSONL-Format vorliegen, wobei jede Zeile ein einzelnes JSON-Objekt enthält, das ein Trainingsbeispiel darstellt. Ein Beispiel:

```
{
    "turns": ["string", "string", ...], // Required
    "turns_to_mask": [integer, integer, ...], // Required
    "reward_category": "string", // Required
    "meta_data": {} // Optional
}
```
+ `turns` ist ein Array von Konversationszeichenfolgen-Arrays, die die Dialogsequenz darstellen. Diese Zeile enthält System-Prompts, Benutzernachrichten und Bot-Antworten. Benutzernachrichten enden normalerweise mit „Bot:“, um anzugeben, wo die Modellausgabe beginnt. Beispiel, `[["System prompt"], ["User: Question Bot:"], ["Bot response"]]`.
+ `turns_to_mask` ist ein Array von 0-basierten Indizes, die angeben, für welche Züge keine Gradientenaktualisierungen vorgenommen werden sollen. Bei den maskierten Zügen handelt es sich in der Regel um System-Prompts und Benutzerzüge. `[0, 1, 3]` maskiert beispielsweise System-Prompts und Benutzernachrichten (die erste und dritte Nachricht).
+ `reward_category` ist eine Zeichenfolge, die angibt, welche Aspekte der Modellleistung bewertet werden sollen. Sie wird verwendet, um während des Trainings die passende Belohnungsmodellkategorie auszuwählen. Die folgenden Belohnungskategorien sind verfügbar: `default`, `math`, `coding`, `if`, `rag` und `rai`.
+ `meta_data` ist ein optionales Objekt, das zusätzliche Kontext- oder Ground-Truth-Informationen enthält. Dies kann Identifikatoren, Quellinformationen oder Konversationskontext beinhalten. Die Struktur ist je nach Ihren Datensatzanforderungen flexibel.

Hier ist ein Beispieldatensatz:

```
{
    "turns": ["You are a helpful AI assistant.",
        "User: What is ML? Bot:",
        "Machine learning is...", "User: Examples? Bot:",
        "Email spam filtering is..."
    ],
    "turns_to_mask": [0, 1, 3],
    "reward_category": "default",
    "meta_data": {
        "messages": [{
                "role": "system",
                "content": "You are a helpful AI assistant."
            },
            {
                "role": "user",
                "content": "What is ML?"
            },
            {
                "role": "assistant",
                "content": "Machine learning is..."
            },
            {
                "role": "user",
                "content": "Examples?"
            },
            {
                "role": "assistant",
                "content": "Email spam filtering is..."
            }
        ]
    }
}
```

Das Framework für die Belohnungsmodellierung implementiert eine mehrdimensionale Optimierung für unterschiedliche kategoriale Ziele, um eine robuste Modellkonvergenz zu ermöglichen. Die Belohnungskategorie sollte auf der Grundlage der Aufgabe ausgewählt werden, für die das Modell optimiert werden muss. 

Wir empfehlen die folgenden Richtlinien zur Auswahl des richtigen Frameworks für Ihre Aufgaben:
+ `default`: Ein Allzweck-Optimierer für Standard-Konversationsaufgaben und grundlegende Interaktionen. Wird für allgemeine Konversationen und Diskussionen, grundlegende Schreibaufgaben, die Beantwortung einfacher Fragen und nicht spezialisierte Wissensabfragen verwendet. 

  Ein Beispiel:

  ```
  {
      "turns": ["Write a summary of climate change"],
      "turns_to_mask": [0],
      "reward_category": "default"
  }
  ```
+ `math`: Ein spezialisierter Optimierer für mathematische Berechnungen und numerische Überlegungen. Wird für mathematische Problemlösungen, arithmetische Berechnungen, algebraische Gleichungen, geometrische Probleme und statistische Analysen verwendet.

  Ein Beispiel:

  ```
  {
      "turns": ["Calculate the derivative of x²"],
      "turns_to_mask": [0],
      "reward_category": "math"
  }
  ```
+ `coding`: Eine spezielle Kategorie für Abfragen im Zusammenhang mit der Programmierung und Softwareentwicklung. Wird für Codeimplementierung, Unterstützung beim Debuggen, Algorithmusdesign, technische Dokumentation und Fragen zur Systemarchitektur verwendet.

  Ein Beispiel:

  ```
  {
      "turns": ["Write a function to check if a string is palindrome"],
      "turns_to_mask": [0],
      "reward_category": "coding"
  }
  ```
+ `if`: Eine Kategorie für Aufgaben, die eine genaue verfahrenstechnische Ausführung und step-by-step Anleitung erfordern. Wird für mehrstufige Verfahren, sequentielle Anweisungen, die Zerlegung komplexer Aufgaben und die Prozessdokumentation verwendet.

  Ein Beispiel:

  ```
  {
      "turns": ["Provide steps to deploy a web application"],
      "turns_to_mask": [0],
      "reward_category": "if"
  }
  ```
+ `rag`: Eine Belohnungskategorie für Aufgaben, bei denen Abfragen speziell auf der Grundlage von abgerufenen Kontextinformationen beantwortet werden müssen. Wird verwendet, wenn Antworten direkt aus bereitgestellten Referenzmaterialien abgeleitet werden sollen, indem sachliche Inhalte zusammengefasst werden, ohne über die abgerufenen Informationen hinauszugehen. Dadurch wird sichergestellt, dass die Antworten auf dem bereitgestellten Kontext und nicht auf allgemeinem Wissen basieren.

  Ein Beispiel:

  ```
  {
              "turns": ["The Synthesis Report integrates findings from all six IPCC assessment cycles, revealing that global surface temperature has increased 1.1°C from 1850-1900 to 2011-2020, with human activities unequivocally identified as the cause of this warming. Alarmingly, current policies put the world on track for 3.2°C warming by 2100. The document identifies 5 key climate system "tipping points" approaching and emphasizes that greenhouse gas emissions must decline 43% by 2030 (compared to 2019 levels) to limit warming to 1.5°C. Climate-related risks will escalate with every increment of warming, with loss and damage disproportionately affecting vulnerable populations. Despite some progress, climate adaptation remains uneven with significant gaps, and financial flows continue to fall below levels needed for mitigation goals.",
              "What were the key findings of the latest IPCC climate report?"],
              "turns_to_mask": [0, 0],
              "reward_category": "rag"
              }
  ```
+ `rai`: Eine Belohnungskategorie für Aufgaben, die die Anwendung von Prinzipien verantwortungsvoller KI wie Fairness, Transparenz und Ethik erfordern. Wird verwendet, um mögliche Vorurteile in KI-Systemen zu bewerten, Datenschutzaspekte sicherzustellen, ethische Dilemmas anzugehen und inklusive Gestaltungsprinzipien zu fördern.

  Ein Beispiel:

  ```
  {
              "turns": ["Identify potential bias concerns when developing a loan approval algorithm and suggest mitigation strategies"],
              "turns_to_mask": [0],
              "reward_category": "rai"
              }
  ```

**Maskierung von Zügen**  
In Trainingsdatensätzen ist der Parameter `turns_to_mask` entscheidend, um zu steuern, welche Konversationszüge während des Trainings Gradientenaktualisierungen erhalten. Dieses Array von Indizes bestimmt, welche Teile des Dialogs das Modell generieren lernen soll und welche Teile nur als Kontext behandelt werden sollen. Durch die richtige Maskierung wird sichergestellt, dass das Modell geeignete Reaktionsmuster lernt, während das Training aufgrund von System-Prompts oder Benutzereingaben, die die Leistung beeinträchtigen könnten, vermieden wird.

Wir empfehlen, beim Maskieren Folgendes zu beachten:
+ **Index 0 immer maskieren** – System-Prompts sollten niemals Gradientenaktualisierungen erhalten.
+ **Benutzerzüge immer maskieren** – So wird verhindert, dass das Modell lernt, Benutzereingaben zu generieren.
+ **Musterkonsistenz** – Verwenden Sie identische Maskierungsmuster für ähnliche Konversationsstrukturen, z. B. (0, 1, 3, 5) für Dialoge mit mehreren Zügen.
+ **Selektives Training** – Maskieren Sie frühe Bot-Antworten, um das Training auf verbesserte Endreaktionen zu konzentrieren.
+ **Chain-of-thought Konservierung** — Nur Maskensystem und Benutzer wechseln sich beim Training mit Argumentationssequenzen ab.
+ **Qualitätsfilterung** – Maskieren Sie qualitativ minderwertige Assistentenantworten, um Leistungseinbußen zu vermeiden.
+ **Kontextoptimierung** – Stellen Sie sicher, dass durch maskierte Züge nicht der für nachfolgende Antworten benötigte Kontext entfernt wird.

Der Schlüssel zu einer effektiven Maskierung liegt in der Überwachung der Trainingsmetriken und der Validierungsleistung, um festzustellen, ob Ihre Maskierungsstrategie den erforderlichen Kontext beibehält, während Gradientenaktualisierungen auf die gewünschten Modellergebnisse ausgerichtet werden.

**Aktivieren des KL-Divergenzverlusts**  
Um den KL-Divergenzverlust zu aktivieren, muss der Ankerserver aktiviert werden, um die Abweichung der aktuellen Richtlinie von der ursprünglichen Verteilung zu berechnen. Der KL-Verlusttyp muss angegeben werden und die Koeffizienten müssen einen anderen Wert als Null haben. Höhere Koeffizientenwerte tragen dazu bei, dass das Modell nicht wesentlich von der ursprünglichen Richtlinie abweicht, was zu geringeren Änderungen der allgemeinen Leistung führt. Niedrigere Koeffizientenwerte ermöglichen größere Abweichungen von der bisherigen Richtlinie, was zu einer besseren Leistung der Zielkennzahlen führt, sich jedoch auf die allgemeine Leistung auswirkt.

```
ppo_anchor:
  max_length: 8192
  trainer:
    num_nodes: ${recipes.run.cm_replicas}
  model:
    global_batch_size: 32

ppo_actor_train:
  model:
    ######## Use KL in actor loss ########
    kl_loss_type: low_var_kl
    kl_loss_coeff: 0.1

    ######## Use KL in reward model ######
    kl_reward_penalty_coeff: 0.1
```

**Lernrate**  
Die Lernrate für kritische und Richtlinienmodelle kann angepasst werden, wobei 3e-6 der ausgewogene Standardwert ist. Höhere Lernraten führen in der Regel zu Instabilitäten beim Training, die sich anhand von Spitzenwerten der KL-Divergenz und unregelmäßigem Richtlinienverhalten erkennen lassen. Niedrigere Lernraten können zu Konvergenzproblemen und langsamem Lernen führen, was sich in stagnierenden Belohnungen und minimalen Richtlinienaktualisierungen äußert. Die regelmäßige Überwachung von KL-Divergenz, Belohnungswert und Wertverlust hilft bei der Entscheidung, ob die Lernrate während des Trainings angepasst werden sollte.

```
ppo_critic:
  model:
    optim:
      lr: 3e-6

ppo_actor_train:
  model:
    optim:
      lr: 3e-06
```

**Globale Batch-Größe**  
Die globale Batchgröße wirkt sich erheblich auf die PPO-Leistung in Amazon Nova aus, wobei größere Batches im Allgemeinen die Trainingsstabilität und die Steigungsschätzung verbessern und gleichzeitig eine effizientere parallele Verarbeitung ermöglichen. Sehr große Batchgrößen können jedoch zu sinkenden Renditen führen und durch den verfügbaren Speicherplatz eingeschränkt sein, sodass ein sorgfältiges Gleichgewicht mit der Lernrate und anderen Hyperparametern erforderlich ist.

```
ppo_actor_train:
  model:
    global_batch_size: 160
```

Zu den Amazon-Nova-Parametern, die für die Optimierung mit PPO verfügbar sind, gehören:
+ **Ausführungskonfiguration**
  + `actor_train_replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das Akteurtrianingsmodell verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 1 oder 2 Replikate. Amazon Nova Lite unterstützt 1, 2, oder 4 Replikate. Amazon Nova Pro unterstützt 3, 6 oder 12 Replikate.
  + `rm_replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das Belohnungsmodell verwendet werden sollen. Wir empfehlen, bei beliebiger Modellgröße ein Replikat zu verwenden.
  + `cm_replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das kritische Modell verwendet werden sollen. Wir empfehlen, bei beliebiger Modellgröße ein Replikat zu verwenden.
  + `actor_generation_replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das Modell zur Akteurgenerierung verwendet werden sollen. Die verfügbaren Werte variieren abhängig vom ausgewählten Modell. Amazon Nova Micro unterstützt 1 Replikat. Amazon Nova Lite unterstützt 1 oder 2 Replikate. Amazon Nova Pro unterstützt 1 oder 2 Replikate.
  + `am_replicas`: Die Anzahl der Datenverarbeitungs-Instances, die für das Ankermodell verwendet werden sollen. Wir empfehlen, bei beliebiger Modellgröße ein Replikat zu verwenden.
+ **Akteurtrainingskonfiguration (Richtlinienkonfiguration)**
  + `max_steps`: Die maximale Anzahl von Schritten zur Optimierung oder zum Trainieren des Akteurtrainingsmodells. Hier ist ein Schritt als Rollout definiert, gefolgt vom Training des Akteurtrainingsmodells anhand einer Anzahl von Stichproben gemäß `global_batch_size`. Eine Epoche ist als `global_batch_size * trajectory_buffer_scale` definiert.

    Der hier gewählte Wert hängt von Ihrem Anwendungsfall und der Komplexität des Datensatzes ab. Wir empfehlen, mit 65 Epochen oder 520 Schritten zu beginnen, was der Anzahl der Epochen multipliziert mit dem Wert für `trajectory_buffer_scale` entspricht. Einige Aufgaben erfordern jedoch eine längere PPO-Trainingszeit, um dieselbe Leistung zu erzielen.

    Bei PPO können die Trainingsmetriken, wie z. B. der Sättigungsgrad des Belohnungsmodells und die durchschnittliche Aktionsdauer aus der [ml-flow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server.html)-Konsole, dabei helfen, die optimalen Bewertungspunkte zu ermitteln.
  + `actor_model_max_length`: Die maximale Länge der Eingabedaten, die an die Akteurgenerierungskomponente gesendet werden, um Vervollständigungen zu generieren.
  + `reward_model_max_length`: Die maximale Länge der Eingabedaten, die an den Belohnungsserver gesendet werden, um Abschlüsse zu bewerten.
  + `trajectory_buffer_scale`: Dieser Puffer stellt die Anzahl der mit dem alten Akteurtrainingsmodell (Richtlinienmodell) generierten Rollouts dar, bevor die Gewichtungen aktualisiert und die neuen Rollouts generiert wurden. Die unterstützten Werte sind 1, 2, 4, 8 und 16.

    Wenn `trajectory_buffer_scale` auf 1 festgelegt ist, entspricht das Training den Richtlinien. Das bedeutet, dass die Rollouts mit den neuesten Modellgewichtungen generiert werden, jedoch leidet der Durchsatz darunter. Bei einem Wert von 16 weicht das Modell leicht von der Richtlinie ab, der Durchsatz ist jedoch höher. Wir empfehlen, für jedes Modell mit 8 zu beginnen.
  + `kl_reward_penalty_coeff`: Dieser KL-Divergenzbegriff stellt sicher, dass Aktualisierungen nicht zu drastisch sind und die Richtlinie nicht vom Basis- oder SFT-Modell abgeleitet wird.
  + `kl_loss_coeff`: Dieser Wert bestimmt, wie stark sich die KL-Divergenzstrafe auf das allgemeine Trainingsziel in PPO auswirkt.
  + `kl_loss_type`: Dieser Wert gibt an, wie die Divergenz zwischen aktuellen und Referenzrichtlinienverteilungen berechnet werden soll. Die verfügbaren `kl_loss_types` sind `kl` (Standard-KL-Divergenz), `mse` (mittlerer quadratischer Fehler), `abs` (absolute Differenz zwischen logarithmischen Wahrscheinlichkeiten) und `low_var_kl` (KL-Approximation mit niedriger Varianz).
  + `model.clip_ratio`: Das Akteur-Clipping-Verhältnis (ε) in PPO ist ein Hyperparameter, der begrenzt, wie stark sich die Richtlinie bei jeder Aktualisierung ändern kann.
  + `model.optim.lr`: Die Lernrate, die für das Verlusttraining des Ersatzmodells im Akteurmodell verwendet wird. 
  + `model.lam`: Teil des Prozesses zur Schätzung des Vorteils. Ein höherer λ-Wert verleiht längerfristigen Belohnungen mit höherer Varianz mehr Gewicht, während ein niedrigerer λ-Wert sich mehr auf unmittelbare Belohnungen mit geringerer Varianz, aber stärkerer Verzerrung konzentriert.
  + `model.ent_coeff`: Der Entropieverlust bei PPO fördert die Exploration, indem die Richtlinie bestraft wird, wenn sie zu deterministisch wird (d. h. immer dieselben Aktionen mit hohem Konfidenzwert auswählt).
+ **Konfiguration des Belohnungsmodells**
  + `global_batch_size`: Die Batchgröße für die Bewertung der Abschlüsse anhand des Belohnungsmodells. Wenn `ppo_actor_train.model.global_batch_size` größer als `ppo_reward.model.global_batch_size` ist, werden sie in mehreren Batches verarbeitet. Beachten Sie, dass `ppo_actor_train.model.global_batch_size % ppo_reward.model.global_batch_size` 0 entsprechen muss.
  + `max_length`: Die maximale Kontextlänge des Belohnungsmodells. Dies sollte dieselbe sein wie `ppo_actor_train.model.max_length`.
+ **Konfiguration des kritischen Modells**
  + `global_batch_size`: Die Batchgröße des kritischen Modellwerts. Das kritische Modell liefert Werteinschätzungen für jedes Token in den Antworten, die das Akteurmodell liefert. Die Batchgröße wird für die Inferenz und das Training verwendet.

    Beachten Sie, dass `ppo_actor_train.model.global_batch_size % ppo_critic.model.global_batch_size` 0 und `ppo_actor_train.model.global_batch_size * ppo_actor_train.model.trajectory_buffer_size % ppo_critic.model.global_batch_size == 0` entsprechen muss.
  + `max_length`: Die maximale Kontextlänge des kritischen Modells. Dies sollte dieselbe sein wie `ppo_actor_train.model.max_length`.
  + `model.optim.lr`: Die Lernrate, die für das Verlusttraining des Ersatzmodells im Akteurmodell verwendet wird.
+ **Konfiguration des Ankermodells**
  + `global_batch_size`: Die Batchgröße für die Generierung des logp des eingefrorenen SFT- oder Ankermodells. Beachten Sie, dass `ppo_actor_train.model.global_batch_size % ppo_anchor.model.global_batch_size` 0 entsprechen muss.
  + `max_length`: Die maximale Kontextlänge des Belohnungsmodells. Dies sollte dieselbe sein wie `ppo_actor_train.model.max_length`.
+ **Konfiguration des Modells zur Akteurgenerierung**
  + `actor_model_max_length`: Die maximale Kontextlänge der Komponente zur Generierung des Akteurmodells. Dies sollte dieselbe sein wie `ppo_actor_train.model.max_length`.

**PPO-Rezept**  
Das Folgende ist ein Rezept für PPO.

```
## Run config
run:
  name: ndry-ppo-pro
  model_type: amazon.nova-pro-v1:0:300k
  model_name_or_path: nova-pro/prod
  data_s3_path: s3://testing/train.jsonl # Your training data S3 path

  actor_train_replicas: 6 # Actor train model replicas
  rm_replicas: 1 # Reward model replicas
  cm_replicas: 1 # Critic model replicas
  actor_generation_replicas: 2 # Actor generation model replicas
  am_replicas: 1 # Anchor model replicas

## Training config for each PPO component
ppo_reward:
  max_length: 8192 # model architecture max length
  trainer:
    num_nodes: ${recipes.run.rm_replicas}
  model:
    global_batch_size: 16

ppo_critic:
  max_length: 8192
  trainer:
    num_nodes: ${recipes.run.cm_replicas}
  model:
    global_batch_size: 16
    optim:
      lr: 3e-6
      name: distributed_fused_adam
      adam_w_mode: true
      eps: 1e-06
      weight_decay: 0.0
      betas:
        - 0.9
        - 0.999

ppo_anchor:
  max_length: 8192
  trainer:
    num_nodes: ${recipes.run.am_replicas}
  model:
    global_batch_size: 16

ppo_actor_generation:
  actor_model_max_length: 8192
  trainer:
    num_nodes: ${recipes.run.actor_generation_replicas}

ppo_actor_train:
  max_length: 8192
  max_steps: 520 # Stopping criteria Desired epoch num * trajectory_buffer_scale
  actor_model_max_length: 8192 # truncate input data to max length
  reward_model_max_length: 8192 # truncate input data to max length
  trajectory_buffer_scale: 8
  trainer:
    num_nodes: ${recipes.run.actor_train_replicas}
  model:
    global_batch_size: 160
    ent_coeff: 0
    clip_ratio: 0.2
    lam: 1
    kl_loss_coeff: 0.0
    kl_loss_type: low_var_kl
    kl_reward_penalty_coeff: 0.0
    hidden_dropout: 0.0 # Dropout probability for hidden state transformer.
    attention_dropout: 0.0 # Dropout probability in the attention layer.
    ffn_dropout: 0.0 # Dropout probability in the feed-forward layer.
    optim:
      lr: 3e-06
      name: distributed_fused_adam # only this one is available for p0.
      adam_w_mode: true
      eps: 1e-08
      weight_decay: 0.0
      betas:
        - 0.9
        - 0.999
```

**Einschränkungen**  
Für PPO gelten folgende Einschränkungen:
+ Zwischen-Checkpoints werden nicht zur Bewertung gespeichert und Sie können nicht von einem Zwischen-Checkpoint aus fortfahren. Nur der letzte Checkpoint wird gespeichert.
+ Multimodale Datensätze werden nicht unterstützt.
+ Trainingsjobs werden nicht automatisch beendet. Sie müssen den Job mit der SageMaker HyperPod CLI beenden.
+ Trainingsmetriken für Kritiker werden auf TensorBoard nicht unterstützt.
+ Folgen Sie den Anweisungen unter [Auswählen von Hyperparametern](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune-hyperparameters.html), um die Hyperparameter anzupassen.

# Bewerten Ihres trainierten Modells
<a name="nova-hp-evaluate"></a>

Ein Bewertungsrezept ist eine YAML-Konfigurationsdatei, die definiert, wie Ihr Amazon-Nova-Modellbewertungsjob ausgeführt wird. Mit diesem Rezept können Sie die Leistung eines Basismodells oder eines trainierten Modells anhand gängiger Benchmarks oder Ihrer eigenen benutzerdefinierten Datensätze bewerten. Metriken können in Amazon S3 oder gespeichert werden TensorBoard. Die Bewertung bietet quantitative Metriken, anhand derer Sie die Modellleistung bei verschiedenen Aufgaben beurteilen können, um festzustellen, ob weitere Anpassungen erforderlich sind.

Die Modellbewertung ist ein Offline-Prozess, bei dem Modelle anhand festgelegter Benchmarks mit vordefinierten Antworten getestet werden. Sie werden nicht in Echtzeit oder anhand von Live-Benutzerinteraktionen bewertet. Für Evaluierungen in Echtzeit können Sie das Modell nach der Bereitstellung in Amazon Bedrock auswerten, indem Sie die Amazon Bedrock-Laufzeit aufrufen. APIs

**Wichtig**  
Der Evaluierungscontainer unterstützt nur Checkpoints, die von derselben Trainingsplattform erstellt wurden. Checkpoints, die mit erstellt wurden, SageMaker HyperPod können nur mithilfe des SageMaker HyperPod Evaluierungs-Workflows bewertet werden, und Checkpoints, die mit SageMaker Trainingsjobs erstellt wurden, können nur mithilfe des Workflows zur Bewertung von SageMaker Trainingsjobs bewertet werden. Der Versuch, einen Checkpoint von einer anderen Plattform aus zu bewerten, schlägt fehl.

**Topics**
+ [Verfügbare Benchmark-Aufgaben](customize-fine-tune-evaluate-available-tasks.md)
+ [Verstehen der Rezeptparameter](customize-fine-tune-evaluate-understand-modify.md)
+ [Beispiele für Bewertungsrezepte](customize-fine-tune-evaluate-recipe-examples.md)
+ [Starten eines Bewertungsjobs](customize-fine-tune-evaluate-start-job.md)
+ [Zugriff auf und Analyse der Bewertungsergebnisse](customize-fine-tune-evaluate-access-results.md)

# Verfügbare Benchmark-Aufgaben
<a name="customize-fine-tune-evaluate-available-tasks"></a>

Es ist ein Beispielcodepaket verfügbar, das zeigt, wie Benchmark-Metriken mithilfe der SageMaker KI-Modellbewertungsfunktion für Amazon Nova berechnet werden. Informationen zum Zugriff auf die Codepakete finden Sie unter [Sample-n ova-lighteval-custom-task](https://github.com/aws-samples/sample-Nova-lighteval-custom-task/).

Hier finden Sie eine Liste unterstützter, verfügbarer Industriestandard-Benchmarks. Sie können die folgenden Benchmarks für den Parameter `eval_task` angeben:


| Benchmark | Modalität | Description | Kennzahlen | Strategie | Unteraufgabe verfügbar | 
| --- |--- |--- |--- |--- |--- |
| mmlu | Text | Sprachverständnis für mehrere Aufgaben – testet Wissen in 57 Themen. | Richtigkeit | zs\$1cot | Ja | 
| mmlu\$1pro | Text | MMLU – professioneller Bereich – konzentriert sich auf Fachbereiche wie Recht, Medizin, Rechnungswesen und Ingenieurwesen. | Richtigkeit | zs\$1cot | Nein | 
| bbh | Text | Fortschrittliche Argumentationsaufgaben – eine Sammlung herausfordernder Probleme, die kognitive Fähigkeiten und Fähigkeiten zur Problemlösung auf höherem Niveau auf die Probe stellen. | Richtigkeit | zs\$1cot | Ja | 
| gpqa | Text | Beantwortung allgemeiner Fragen zur Physik – beurteilt das Verständnis physikalischer Konzepte und die damit verbundenen Fähigkeiten zur Problemlösung. | Richtigkeit | zs\$1cot | Nein | 
| math | Text | Mathematische Problemlösung – bewertet mathematische Überlegungen in verschiedenen Themenbereichen wie Algebra, Infinitesimalrechnung und Textaufgaben. | exact\$1match | zs\$1cot | Ja | 
| strong\$1reject | Text | Aufgabe zur Qualitätskontrolle – Testet die Fähigkeit des Modells, unangemessene, schädliche oder falsche Inhalte zu erkennen und abzulehnen. | deflection | zs | Ja | 
| IFEval | Text | Bewertung der Anweisungsbefolgung – Prüft, wie genau ein Modell die Anweisungen befolgt und die Aufgaben gemäß den Spezifikationen ausführt. | Richtigkeit | zs | Nein | 
| gen\$1qa | Text | Benutzerdefinierte Datensatzbewertung – Ermöglicht es Ihnen, Ihren eigenen Datensatz für das Benchmarking zu verwenden und Modellergebnisse mit Referenzantworten anhand von Metriken wie ROUGE und BLEU zu vergleichen. | all | gen\$1qa | Nein | 
| llm\$1judge | Text | LLM-as-a-Judge Präferenzvergleich — Verwendet ein Nova Judge-Modell, um die Präferenz zwischen Antwortpaaren (B im Vergleich zu A) für Ihre Eingabeaufforderungen zu ermitteln und die Wahrscheinlichkeit zu berechnen, dass B gegenüber A bevorzugt wird. | all | judge | Nein | 
| humaneval | Text | HumanEval - Ein Benchmark-Datensatz zur Bewertung der Fähigkeiten zur Codegenerierung großer Sprachmodelle | pass@1 | zs | Nein | 
|  mm\$1llm\$1judge  |  Multimodal (Bild)  |  Dieser neue Benchmark verhält sich genauso wie der obige textbasierte `llm_judge` Benchmark. Der einzige Unterschied besteht darin, dass er Bildinferenz unterstützt.  |  all  |  judge  |  Nein  | 
|  rubric\$1llm\$1judge  | Text |  Rubric Judge ist ein erweitertes LLM-as-a-judge Evaluierungsmodell, das auf Nova 2.0 Lite basiert. Im Gegensatz zum [ursprünglichen Richtermodell](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/), das nur Präferenzurteile vorsieht, generiert Rubric Judge dynamisch benutzerdefinierte Bewertungskriterien, die auf jede Aufforderung zugeschnitten sind, und weist detaillierte Bewertungen für mehrere Dimensionen zu.  |  all  |  judge  |  Nein  | 
|  aime\$12024  | Text |  AIME 2024 — Prüfungsaufgaben auf Einladung der American Invitational Mathematics zur Prüfung von fortgeschrittenem mathematischen Denken und Problemlösen  |  exact\$1match  |  zs\$1cot  | Nein | 
|  Calendar\$1Scheduling  | Text |  Natural Plan — Kalendar Scheduling — Aufgabe zum Testen von Planungsfunktionen für die Planung von Besprechungen für mehrere Tage und Personen  |  exact\$1match  |  fs  | Nein | 

Die folgenden `mmlu`-Unteraufgaben sind verfügbar:

```
MMLU_SUBTASKS = [
    "abstract_algebra",
    "anatomy",
    "astronomy",
    "business_ethics",
    "clinical_knowledge",
    "college_biology",
    "college_chemistry",
    "college_computer_science",
    "college_mathematics",
    "college_medicine",
    "college_physics",
    "computer_security",
    "conceptual_physics",
    "econometrics",
    "electrical_engineering",
    "elementary_mathematics",
    "formal_logic",
    "global_facts",
    "high_school_biology",
    "high_school_chemistry",
    "high_school_computer_science",
    "high_school_european_history",
    "high_school_geography",
    "high_school_government_and_politics",
    "high_school_macroeconomics",
    "high_school_mathematics",
    "high_school_microeconomics",
    "high_school_physics",
    "high_school_psychology",
    "high_school_statistics",
    "high_school_us_history",
    "high_school_world_history",
    "human_aging",
    "human_sexuality",
    "international_law",
    "jurisprudence",
    "logical_fallacies",
    "machine_learning",
    "management",
    "marketing",
    "medical_genetics",
    "miscellaneous",
    "moral_disputes",
    "moral_scenarios",
    "nutrition",
    "philosophy",
    "prehistory",
    "professional_accounting",
    "professional_law",
    "professional_medicine",
    "professional_psychology",
    "public_relations",
    "security_studies",
    "sociology",
    "us_foreign_policy",
    "virology",
    "world_religions"
]
```

Die folgenden `bbh`-Unteraufgaben sind verfügbar:

```
BBH_SUBTASKS = [
    "boolean_expressions",
    "causal_judgement",
    "date_understanding",
    "disambiguation_qa",
    "dyck_languages",
    "formal_fallacies",
    "geometric_shapes",
    "hyperbaton",
    "logical_deduction_five_objects",
    "logical_deduction_seven_objects",
    "logical_deduction_three_objects",
    "movie_recommendation",
    "multistep_arithmetic_two",
    "navigate",
    "object_counting",
    "penguins_in_a_table",
    "reasoning_about_colored_objects",
    "ruin_names",
    "salient_translation_error_detection",
    "snarks",
    "sports_understanding",
    "temporal_sequences",
    "tracking_shuffled_objects_five_objects",
    "tracking_shuffled_objects_seven_objects",
    "tracking_shuffled_objects_three_objects",
    "web_of_lies",
    "word_sorting"
]
```

Die folgenden `math`-Unteraufgaben sind verfügbar:

```
MATH_SUBTASKS = [
    "algebra",
    "counting_and_probability",
    "geometry",
    "intermediate_algebra",
    "number_theory",
    "prealgebra",
    "precalculus",
]
```

# Verstehen der Rezeptparameter
<a name="customize-fine-tune-evaluate-understand-modify"></a>

**Ausführungskonfiguration**  
Im Folgenden finden Sie eine allgemeine Ausführungskonfiguration und eine Erläuterung der jeweiligen Parameter.

```
run:
  name: eval_job_name
  model_type: amazon.nova-micro-v1:0:128k
  model_name_or_path: nova-micro/prod
  replicas: 1
  data_s3_path: ""
  output_s3_path: s3://output_path
  mlflow_tracking_uri: ""
  mlflow_experiment_name : ""
  mlflow_run_name : ""
```
+ `name`: (erforderlich) ein beschreibender Name für Ihren Bewertungsjob. Dies hilft Ihnen, Ihren Job in der AWS Konsole zu identifizieren.
+ `model_type`: (erforderlich) gibt die zu verwendende Amazon-Nova-Modellvariante an. Ändern Sie dieses Feld nicht manuell. Zu den Optionen gehören:
  + `amazon.nova-micro-v1:0:128k`
  + `amazon.nova-lite-v1:0:300k`
  + `amazon.nova-pro-v1:0:300k`
  + `amazon.nova-2-lite-v1:0:256k`
+ `model_name_or_path`: (erforderlich) der Pfad zum Basismodell oder zum S3-Pfad für den Checkpoint nach dem Training. Zu den Optionen gehören:
  + `nova-micro/prod`
  + `nova-lite/prod`
  + `nova-pro/prod`
  + `nova-lite-2/prod`
  + (S3-Pfad für den Checkpoint nach dem Training) `s3://<escrow bucket>/<job id>/outputs/checkpoints`
+ `replicas`: (erforderlich) die Anzahl der Datenverarbeitungs-Instances, die für das verteilte Training verwendet werden sollen. Sie müssen diesen Wert auf 1 setzen, da mehrere Knoten nicht unterstützt werden.
+ `data_s3_path`: (erforderlich) der S3-Pfad zum Eingabe-Datensatz. Lassen Sie diesen Parameter leer, es sei denn, Sie verwenden das Rezept *Eigenen Datensatz verwenden* oder *LLM-as-a-Judge*.
+ `output_s3_path`: (erforderlich) der S3-Pfad zum Speichern von Artefakten aus der Ausgabebewertung. Beachten Sie, dass der S3-Ausgabe-Bucket von demselben Konto erstellt werden muss, das den Job erstellt.
+ `mlflow_tracking_uri`: (Optional) MLflow Tracking-Server-ARN zum Verfolgen von MLFlow Läufen/Experimenten. Bitte stellen Sie sicher, dass Sie über die AI-Ausführungsrolle berechtigt sind, auf den Tracking-Server zuzugreifen SageMaker 

**Bewertungskonfiguration**  
Im Folgenden finden Sie eine Konfiguration für die Modellbewertung und eine Erläuterung der jeweiligen Parameter.

```
evaluation:
  task: mmlu
  strategy: zs_cot
  subtask: mathematics
  metric: accuracy
```
+ `task`: (erforderlich) gibt den Bewertungs-Benchmark oder die zu verwendende Aufgabe an.

  Liste unterstützter Aufgaben:
  + mmlu
  + mmlu\$1pro
  + bbh
  + gpqa
  + math
  + strong\$1reject
  + gen\$1qa
  + ifeval
  + llm\$1judge
  + humaneval
  + mm\$1llm\$1judge
  + rubric\$1llm\$1judge
  + aime\$12024
  + Kalender\$1Terminplanung
  + humaneval
+ `strategy`: (erforderlich) definiert den Bewertungsansatz:
  + zs\$1cot: Zero-shot Chain-of-Thought — Ein Ansatz zur Entwicklung umfangreicher Sprachmodelle, der zum Nachdenken anregt step-by-step, ohne dass explizite Beispiele erforderlich sind.
  + zs: Zero-shot – ein Ansatz zur Lösung eines Problems ohne vorherige Trainingsbeispiele
  + gen\$1qa: eine Strategie, die speziell für Rezepte mit eigenem Datensatz entwickelt wurde
  + judge: Eine spezifische Strategie für Amazon Nova LLM as Judge und mm\$1llm\$1judge.
+ `subtask`: (optional und entfernbar) legt eine spezifische Unteraufgabe für bestimmte Bewertungsaufgaben fest. Entfernen Sie dies aus Ihrem Rezept, wenn Ihre Aufgabe keine Unteraufgaben hat.
+ `metric`: (erforderlich) die zu verwendende Bewertungsmetrik
  + accuracy: Prozentsatz der richtigen Antworten
  + exact\$1match: (für `math`-Benchmark) gibt die Rate zurück, mit der die eingegebenen vorhergesagten Zeichenketten exakt mit ihren Referenzen übereinstimmen.
  + deflection: (für `strong reject`-Benchmark) gibt die relative Abweichung vom Basismodell und die Differenz der Signifikanzmetriken zurück.
  + pass@1: (für `humaneval`-Benchmark) ist eine Metrik, die verwendet wird, um den Prozentsatz der Fälle zu messen, in denen die Vorhersage des Modells mit der höchsten Konfidenz mit der richtigen Antwort übereinstimmt.
  + `all`: gibt die folgenden Metriken zurück:
    + Gibt für `gen_qa` und das Benchmarking mit eigenem Datensatz die folgenden Metriken zurück:
      + `rouge1`: misst die Überlappung von Unigrammen (einzelnen Wörtern) zwischen generiertem Text und Referenztext.
      + `rouge2`: misst die Überlappung von Bigrammen (zwei aufeinanderfolgenden Wörtern) zwischen generiertem Text und Referenztext.
      + `rougeL`: misst die längste gemeinsame Teilsequenz zwischen Texten und berücksichtigt Lücken beim Abgleich.
      + `exact_match`: binärer Wert (0 oder 1), der angibt, ob der generierte Text Zeichen für Zeichen exakt mit dem Referenztext übereinstimmt.
      + `quasi_exact_match`: ähnlich wie Exact Match, aber weniger strikt, wobei in der Regel Unterschiede zwischen Groß- und Kleinschreibung, Zeichensetzung und Leerzeichen ignoriert werden
      + `f1_score`: harmonisches Mittel zwischen Präzision und Erinnerungswert, das die Wortüberschneidung zwischen vorhergesagten Antworten und Referenzantworten misst
      + `f1_score_quasi`: ähnlich wie f1\$1score, jedoch mit weniger striktem Abgleich, bei dem normalisierter Text verglichen und geringfügige Unterschiede ignoriert werden
      + `bleu`: misst die Genauigkeit von N-Gramm-Übereinstimmungen zwischen generiertem Text und Referenztext, was häufig bei der Bewertung von Übersetzungen verwendet wird.
    + Geben Sie für `llm_judge` und`mm_llm_judge`, bringen Sie Ihren eigenen Datensatz-Benchmark mit, folgende Kennzahlen zurück:
      + `a_scores`: Anzahl der Siege von `response_A` bei Vorwärts- und Rückwärtsdurchläufen zur Bewertung
      + `a_scores_stderr`: Standardfehler von `response_A scores` bei paarweisen Beurteilungen.
      + `b_scores`: Anzahl der Siege von `response_B` bei Vorwärts- und Rückwärtsdurchläufen zur Bewertung.
      + `b_scores_stderr`: Standardfehler von `response_B scores` bei paarweisen Beurteilungen.
      + `ties`: Anzahl der Beurteilungen, bei denen `response_A` und `response_B` als gleichwertig bewertet wurden.
      + `ties_stderr`: Standardfehler von Verbindungen bei paarweisen Beurteilungen.
      + `inference_error`: Anzahl der Beurteilungen, die nicht richtig bewertet werden konnten.
      + `inference_error_stderr`: Standardfehler von Inferenzfehlern bei allen Beurteilungen.
      + `score`: Gesamtpunktzahl basierend auf Siegen aus Vorwärts- und Rückwärtsdurchläufen für `response_B`.
      + `score_stderr`: Standardfehler der Gesamtpunktzahl bei paarweisen Beurteilungen.
      + `winrate`: die Wahrscheinlichkeit, dass response\$1B gegenüber response\$1A vorgezogen wird, berechnet anhand der Bradley-Terry-Wahrscheinlichkeit.
      + `lower_rate`: Untergrenze (2,5. Perzentil) der geschätzten Gewinnrate aus dem Bootstrap-Sampling.

**Inferenzkonfiguration**  
Im Folgenden finden Sie eine Inferenzkonfiguration und eine Erläuterung der jeweiligen Parameter. Alle Parameter sind optional.

```
inference:
  max_new_tokens: 200
  top_k: -1
  top_p: 1.0
  temperature: 0
  top_logprobs: 10
  reasoning_effort: null  # options: low/high to enable reasoning or null to disable reasoning
```
+ `max_new_tokens`: die maximale Anzahl der zu generierenden Token. Dieser Wert muss eine Ganzzahl sein.
+ `top_k`: die Anzahl der zu berücksichtigenden Tokens mit der höchsten Wahrscheinlichkeit. Dieser Wert muss eine Ganzzahl sein.
+ `top_p`: der kumulative Wahrscheinlichkeitsschwellenwert für das Token-Sampling. Dies muss ein Gleitkommazahl zwischen 0,0 und höchstens 1,0 sein.
+ `temperature`: Zufälligkeit bei der Token-Auswahl. Größere Werte führen zu mehr Zufälligkeit. Verwenden Sie 0, um deterministische Ergebnisse zu erhalten. Dieser Wert muss eine Gleitkommazahl mit einem Mindestwert von 0 sein.
+ `top_logprobs`: Die Anzahl der wichtigsten Logprobs, die in der Inferenzantwort zurückgegeben werden sollen. Dieser Wert muss eine Ganzzahl zwischen 0 und 20 sein. Logprobs enthalten die betrachteten Ausgabetokens und die Protokollwahrscheinlichkeiten jedes im Nachrichteninhalt zurückgegebenen Ausgabetokens.
+ `reasoning_effort`: steuert das Argumentationsverhalten für Modelle, die zum Denken fähig sind. Wird `reasoning_effort` nur gesetzt, wenn (derzeit) ein `model_type` Modell angegeben wird, das zu Argumenten fähig ist. `amazon.nova-2-lite-v1:0:256k` Verfügbare Optionen sind `null` (Standardwert, falls nicht festgelegt; deaktiviert Argumentation), oder. `low` `high`

Beachten Sie, dass wir für `humaneval` die folgende Inferenzkonfiguration empfehlen:

```
inference:
  top_k: 1
  max_new_tokens: 1600
  temperature: 0.0
```

**MLFlow Konfiguration**  
Im Folgenden finden Sie eine MLFlow Konfiguration und eine Erläuterung der beteiligten Parameter. Alle Parameter sind optional.

```
run:
  mlflow_tracking_uri: ""
  mlflow_experiment_name: ""
  mlflow_run_name: ""
```
+ `mlflow_tracking_uri`: Optional) Der Standort des MLflow Tracking-Servers (nur auf SMHP erforderlich)
+ `mlflow_experiment_name`: (Optional) Name des Experiments zur Gruppierung verwandter ML-Läufe
+ `mlflow_run_name`: (Optional) Benutzerdefinierter Name für einen bestimmten Trainingslauf innerhalb eines Experiments

# Beispiele für Bewertungsrezepte
<a name="customize-fine-tune-evaluate-recipe-examples"></a>

Amazon Nova bietet vier Arten von Bewertungsrezepten, die im SageMaker HyperPod GitHub Rezepte-Repository verfügbar sind.

## Allgemeine Text-Benchmark-Rezepte
<a name="nova-model-hp-evaluation-config-example-text"></a>

Diese Rezepte ermöglichen es Ihnen, die grundlegenden Funktionen von Amazon-Nova-Modellen anhand einer umfassenden Suite von reinen Text-Benchmarks zu bewerten. Sie werden im Format `xxx_general_text_benchmark_eval.yaml` bereitgestellt.

## Benchmark-Rezepte mit eigenem Datensatz
<a name="nova-model-hp-evaluation-config-byo"></a>

Diese Rezepte ermöglichen es Ihnen, Ihren eigenen Datensatz für das Benchmarking zu verwenden und die Modellergebnisse anhand verschiedener Arten von Metriken mit Referenzantworten zu vergleichen. Sie werden im Format `xxx_bring_your_own_dataset_eval.yaml` bereitgestellt. 

Im Folgenden sind die Anforderungen für die Verwendung Ihres eigenen Datensatzes aufgeführt:
+ Anforderungen an das Dateiformat
  + Sie müssen eine einzige `gen_qa.jsonl`-Datei mit Bewertungsbeispielen beifügen.
  + Ihr Datensatz muss an einen S3-Speicherort hochgeladen werden, an dem der SageMaker Schulungsjob darauf zugreifen kann.
  + Die Datei muss dem erforderlichen Schemaformat für einen allgemeinen Q&A-Datensatz entsprechen.
+ Anforderungen an das Schemaformat – jede Zeile in der JSONL-Datei muss ein JSON-Objekt mit den folgenden Feldern sein:
  + `query`: (erforderlich) Zeichenfolge, die die Frage oder Anweisung enthält, für die eine Antwort erforderlich ist
  + `response`: (erforderlich) Zeichenfolge, die die erwartete Modellausgabe enthält
  + `system`: (optional) Zeichenfolge, die den System-Prompt enthält, der vor der Verarbeitung der Abfrage das Verhalten, die Rolle oder die Persönlichkeit des KI-Modells festlegt
  + `metadata`: (Optional) Zeichenfolge, die Metadaten enthält, die dem Eintrag zu Tagging-Zwecken zugeordnet sind.

Hier ein Beispieleintrag zur Verwendung des eigenen Datensatzes

```
{
   "system":"You are a english major with top marks in class who likes to give minimal word responses: ",
   "query":"What is the symbol that ends the sentence as a question",
   "response":"?"
}
{
   "system":"You are a pattern analysis specialist that provides succinct answers: ",
   "query":"What is the next number in this series? 1, 2, 4, 8, 16, ?",
   "response":"32"
}
{
   "system":"You have great attention to detail that follows instructions accurately: ",
   "query":"Repeat only the last two words of the following: I ate a hamburger today and it was kind of dry",
   "response":"of dry"
}
```

Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept mit den folgenden Pflichtfeldern, verändern Sie jedoch nicht den Inhalt:

```
evaluation:
  task: gen_qa
  strategy: gen_qa
  metric: all
```

Die folgenden Einschränkungen gelten:
+ Pro Bewertung ist nur eine JSONL-Datei zulässig.
+ Die Datei muss strikt dem definierten Schema folgen.
+ Begrenzung der Kontextlänge: Für jede Stichprobe im Datensatz sollte die Kontextlänge (einschließlich System- und Abfrageaufforderungen) weniger als 3,5 KB betragen.

## Benchmark-Rezepte für Nova LLM-as-a-Judge
<a name="nova-model-evaluation-config-llm-judge"></a>

Amazon Nova LLM-as-a-Judge ist eine Modellbewertungsfunktion, mit der Kunden die Qualität der Antworten eines Modells mit einer Antwort aus einem Basismodell anhand eines benutzerdefinierten Datensatzes vergleichen können. Sie verwendet einen Datensatz mit Prompts, Basisantworten und Herausforderungsantworten und stellt anhand eines Nova-Judge-Modells eine auf der [Bradley-Terry-Wahrscheinlichkeit](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model) basierende Gewinnratenmetrik mit paarweisen Vergleichen bereit.

Die Rezepte werden im Format `xxx_llm_judge_eval.yaml` bereitgestellt. 

Dies sind die Anforderungen für LLM-as-a-Judge:
+ Anforderungen an das Dateiformat
  + Fügen Sie eine einzige `llm_judge.jsonl`-Datei mit Bewertungsbeispielen hinzu. Der Dateiname muss `llm_judge.jsonl` lauten.
  + Ihr Datensatz muss an einen S3-Standort hochgeladen werden, auf den [SageMaker AI SageMaker HyperPod RIG zugreifen](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-hp-cluster.html) kann.
  + Die Datei muss dem für den `llm_judge.jsonl`-Datensatz erforderlichen Schemaformat entsprechen.
  + Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 000 haben.
+ Anforderungen an das Schemaformat – jede Zeile in der JSONL-Datei muss ein JSON-Objekt mit den folgenden Feldern sein:
  + `prompt`: (erforderlich) eine Zeichenfolge, die den Prompt für die generierte Antwort enthält
  + `response_A`: eine Zeichenfolge, die die Basisantwort enthält
  + `response_B`: eine Zeichenfolge, die die alternative Antwort enthält, die mit der Basisantwort verglichen wird

Hier ein Beispieleintrag für LLM-as-a-Judge

```
{
"prompt": "What is the most effective way to combat climate change?",
"response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.",
"response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."
}
{
"prompt": "Explain how a computer's CPU works",
"response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.",
"response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."
}
{
"prompt": "How does photosynthesis work?",
"response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.",
"response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."
}
```

Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept mit den folgenden Pflichtfeldern, verändern Sie jedoch nicht den Inhalt:

```
evaluation:
  task: llm_judge
  strategy: judge
  metric: all
```

Die folgenden Einschränkungen gelten:
+ Pro Bewertung ist nur eine JSONL-Datei zulässig.
+ Die Datei muss strikt dem definierten Schema folgen.
+ Die Modelle von Amazon Nova Judge sind für die Spezifikationen aller Modellfamilien (d. h. Lite, Micro und Pro) identisch.
+ Benutzerdefinierte Judge-Modelle werden derzeit nicht unterstützt.
+ Begrenzung der Kontextlänge: Für jede Stichprobe im Datensatz sollte die Kontextlänge (einschließlich System- und Abfrageaufforderungen) weniger als 7 KB betragen.

## Nova LLM als Jurorin für multimodale (Bild-) Benchmark-Rezepte
<a name="nova-model-hp-evaluation-mm-llm-judge"></a>

Nova LLM Judge for multi-modal (Bild), kurz für Nova MM\$1LLM Judge, ist eine Funktion zur Modellbewertung, mit der Sie die Qualität der Antworten eines Modells anhand eines benutzerdefinierten Datensatzes mit den Antworten eines Basismodells vergleichen können. Es akzeptiert einen Datensatz, der Eingabeaufforderungen, Basisantworten und Challenger-Antworten sowie Bilder in Form einer Base64-kodierten Zeichenfolge enthält, und verwendet dann ein Nova Judge-Modell, um durch paarweise Vergleiche eine Gewinnratenmetrik bereitzustellen, die auf der [Bradley-Terry-Wahrscheinlichkeit](https://en.wikipedia.org/wiki/Bradley%E2%80%93Terry_model) basiert. Rezeptformat: `xxx_mm_llm_judge _eval.yaml`.

**Anforderungen an den Nova-LLM-Datensatz**

Dateiformat: 
+ Eine einzige `mm_llm_judge.jsonl`-Datei mit Bewertungsbeispielen. Der Dateiname muss exakt sein. `llm_judge.jsonl`
+ Sie müssen Ihren Datensatz an einen S3-Speicherort hochladen, an dem SageMaker Training Jobs darauf zugreifen kann.
+ Die Datei muss dem für den `mm_llm_judge`-Datensatz erforderlichen Schemaformat entsprechen.
+ Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 k haben, mit Ausnahme des Bildattributs.

Schemaformat – Jede Zeile in der `.jsonl`-Datei muss ein JSON-Objekt mit den folgenden Feldern sein.
+ Pflichtfelder 

  `prompt`: Zeichenfolge, die den Prompt für die generierte Antwort enthält

  `images`: Array, das eine Liste von Objekten mit Datenattributen enthält (Werte sind Base64-kodierte Bildzeichenfolgen).

  `response_A`: Zeichenfolge, die die Basisantwort enthält

  `response_B`: Zeichenfolge, die die alternative Antwort enthält, die mit der Basisantwort verglichen wird

Beispieleintrag

Aus Gründen der besseren Lesbarkeit enthält das folgende Beispiel neue Zeilen und Einrückungen, aber im eigentlichen Datensatz sollte sich jeder Datensatz in einer einzigen Zeile befinden.

```
{
  "prompt": "what is in the image?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    }
  ],
  "response_A": "a dog.",
  "response_B": "a cat.",
}
{
  "prompt": "how many animals in echo of the images?",
  "images": [
    {
      "data": "data:image/jpeg;Base64,/9j/2wBDAAQDAwQDAwQEAwQFBAQFBgo..."
    },
    {
      "data": "data:image/jpeg;Base64,/DKEafe3gihn..."
    }
  ],
  "response_A": "The first image contains one cat and the second image contains one dog",
  "response_B": "The first image has one aminal and the second has one animal",
}
```

Um Ihren benutzerdefinierten Datensatz zu verwenden, ändern Sie Ihr Bewertungsrezept mit den folgenden Pflichtfeldern, verändern Sie jedoch nicht den Inhalt:

```
evaluation:
  task: mm_llm_judge
  strategy: judge
  metric: all
```

**Einschränkungen**
+ Pro Bewertung ist nur eine `.jsonl`-Datei zulässig.
+ Die Datei muss strikt dem definierten Schema folgen.
+ Nova MM Judge-Modelle unterstützen nur Bildreferenzen.
+ Die Nova MM Judge-Modelle sind in allen Amazon Nova Lite-Spezifikationen identisch.
+ Benutzerdefinierte Judge-Modelle werden derzeit nicht unterstützt.
+ Der Amazon S3 S3-Image-URI wird nicht unterstützt.
+ Der Eingabedatensatz sollte sicherstellen, dass alle Datensätze eine Kontextlänge von weniger als 12 k haben, mit Ausnahme des Bildattributs.

## Auf Rubriken basierender Richter
<a name="nova-hp-evaluate-rubric-judge"></a>

Rubric Judge ist ein erweitertes LLM-as-a-judge Bewertungsmodell, das auf Nova 2.0 Lite basiert. Im Gegensatz zum [ursprünglichen Richtermodell](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/), das nur Präferenzurteile (A>B, B>A oder Unentschieden) vorsieht, generiert Rubric Judge dynamisch benutzerdefinierte Bewertungskriterien, die auf jede Aufforderung zugeschnitten sind, und weist detaillierte Bewertungen für mehrere Dimensionen zu.

Die wichtigsten Funktionen:
+ **Dynamische Kriteriengenerierung**: Erstellt automatisch relevante Bewertungsdimensionen auf der Grundlage der Eingabeaufforderung
+ **Gewichtete Bewertung**: Weist jedem Kriterium Wichtigkeitsgewichte zu, um dessen relative Signifikanz widerzuspiegeln
+ **Granulare Bewertung**: Stellt detaillierte Punktzahlen auf binärer (Wahr/Falsch) oder Skala (1-5) für jedes Kriterium bereit
+ **Qualitätskennzahlen**: Berechnet kontinuierliche Qualitätswerte (Skala 0-1), die das Ausmaß der Unterschiede zwischen den Antworten quantifizieren

Vom Modell generiertes Beispielkriterium:

```
price_validation:
  description: "The response includes validation to ensure price is a positive value."
  type: "scale"
  weight: 0.3
```

Das Modell bewertet beide Antworten anhand aller generierten Kriterien und verwendet dann diese Punktzahlen auf Kriterienebene als Grundlage für die endgültige Präferenzentscheidung.

**Topics**
+ [Konfiguration des Rezepts](#nova-hp-evaluate-rubric-judge-recipe)
+ [Format des Eingabedatensatzes](#nova-hp-evaluate-rubric-judge-input)
+ [Ergebnis der Bewertung](#nova-hp-evaluate-rubric-judge-output)
+ [Unterstützung von Argumentationsmodellen](#nova-hp-evaluate-rubric-judge-reasoning)

### Konfiguration des Rezepts
<a name="nova-hp-evaluate-rubric-judge-recipe"></a>

**Rezept für Rubrik Judge**  
Aktiviere Rubric Judge, indem `task: rubric_llm_judge` du in deinem Rezept Folgendes eingibst:

```
run:
  name: nova-eval-job-name                              # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k              # [FIXED] Rubric Judge model type
  model_name_or_path: "nova-lite-2/prod"                # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: rubric_llm_judge                                # [FIXED] Evaluation task - enables Rubric Judge
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**Originalrezept für LLM als Judge (zum Vergleich)**  
Das ursprüngliche Richtermodell verwendet`task: llm_judge`:

```
run:
  name: eval-job-name                                   # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-micro-v1:0:128k               # [FIXED] Model type
  model_name_or_path: "nova-micro/prod"                 # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                           # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                      # [FIXED] Leave empty for SageMaker Training job
  output_s3_path: ""                                    # [FIXED] Leave empty for SageMaker Training job

evaluation:
  task: llm_judge                                       # [FIXED] Original judge task
  strategy: judge                                       # [FIXED] Evaluation strategy
  metric: all                                           # [FIXED] Metric calculation method

inference:
  max_new_tokens: 12000                                 # [MODIFIABLE] Maximum tokens to generate
  top_k: -1                                             # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                            # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                        # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

### Format des Eingabedatensatzes
<a name="nova-hp-evaluate-rubric-judge-input"></a>

Das Format des Eingabedatensatzes ist identisch mit dem [ursprünglichen Richtermodell](https://aws.amazon.com/blogs/machine-learning/evaluating-generative-ai-models-with-amazon-nova-llm-as-a-judge-on-amazon-sagemaker-ai/):

**Erforderliche Felder:**
+ `prompt`: Zeichenfolge, die die Eingabeaufforderung und Anweisungen enthält
+ `response_A`: Zeichenfolge, die die Ausgabe des Basismodells enthält
+ `response_B`: Zeichenfolge, die die benutzerdefinierte Modellausgabe enthält

**Beispieldatensatz (JSONL-Format):**

```
{"prompt": "What is the most effective way to combat climate change?", "response_A": "The most effective way to combat climate change is through a combination of transitioning to renewable energy sources and implementing strict carbon pricing policies. This creates economic incentives for businesses to reduce emissions while promoting clean energy adoption.", "response_B": "We should focus on renewable energy. Solar and wind power are good. People should drive electric cars. Companies need to pollute less."}
{"prompt": "Explain how a computer's CPU works", "response_A": "CPU is like brain of computer. It does math and makes computer work fast. Has lots of tiny parts inside.", "response_B": "A CPU (Central Processing Unit) functions through a fetch-execute cycle, where instructions are retrieved from memory, decoded, and executed through its arithmetic logic unit (ALU). It coordinates with cache memory and registers to process data efficiently using binary operations."}
{"prompt": "How does photosynthesis work?", "response_A": "Plants do photosynthesis to make food. They use sunlight and water. It happens in leaves.", "response_B": "Photosynthesis is a complex biochemical process where plants convert light energy into chemical energy. They utilize chlorophyll to absorb sunlight, combining CO2 and water to produce glucose and oxygen through a series of chemical reactions in chloroplasts."}
```

**Anforderungen an das Format:**
+ Jeder Eintrag muss ein einzeiliges JSON-Objekt sein
+ Trennen Sie Einträge durch Zeilenumbrüche
+ Folgen Sie der genauen Feldbenennung, wie in den Beispielen gezeigt

### Ergebnis der Bewertung
<a name="nova-hp-evaluate-rubric-judge-output"></a>

**Struktur der Ausgabe**  
Rubric Judge bietet im Vergleich zum ursprünglichen Richtermodell verbesserte Bewertungskennzahlen:

```
{
  "config_general": {
    "lighteval_sha": "string",
    "num_fewshot_seeds": "int",
    "max_samples": "int | null",
    "job_id": "int",
    "start_time": "float",
    "end_time": "float",
    "total_evaluation_time_secondes": "string",
    "model_name": "string",
    "model_sha": "string",
    "model_dtype": "string | null",
    "model_size": "string"
  },
  "results": {
    "custom|rubric_llm_judge_judge|0": {
      "a_scores": "float",
      "a_scores_stderr": "float",
      "b_scores": "float",
      "b_scores_stderr": "float",
      "ties": "float",
      "ties_stderr": "float",
      "inference_error": "float",
      "inference_error_stderr": "float",
      "score": "float",
      "score_stderr": "float",
      "weighted_score_A": "float",
      "weighted_score_A_stderr": "float",
      "weighted_score_B": "float",
      "weighted_score_B_stderr": "float",
      "score_margin": "float",
      "score_margin_stderr": "float",
      "winrate": "float",
      "lower_rate": "float",
      "upper_rate": "float"
    }
  },
  "versions": {
    "custom|rubric_llm_judge_judge|0": "int"
  }
}
```

**Neue Metriken in Rubrik Judge**  
Die folgenden sechs Kennzahlen sind einzigartig für Rubric Judge und ermöglichen eine detaillierte Qualitätsbeurteilung:


| Metrik | Description | 
| --- |--- |
| Weighted\$1Score\$1A | Durchschnittlicher normalisierter Qualitätsfaktor für Response\$1A für alle modellgenerierten Bewertungskriterien. Die Ergebnisse werden nach der Wichtigkeit der Kriterien gewichtet und auf eine Skala von 0 bis 1 normalisiert (höher = bessere Qualität) | 
| Weighted\$1Score\$1A\$1StdErr | Standardfehler des Mittelwerts für Weighted\$1Score\$1A, was auf statistische Unsicherheit hinweist | 
| Weighted\$1Score\$1B | Durchschnittlicher normalisierter Qualitätsfaktor für Response\$1B für alle modellgenerierten Bewertungskriterien. Die Ergebnisse werden nach der Wichtigkeit der Kriterien gewichtet und auf eine Skala von 0 bis 1 normalisiert (höher = bessere Qualität) | 
| Weighted\$1Score\$1B\$1StdErr | Standardfehler des Mittelwerts für Weighted\$1Score\$1B, was auf statistische Unsicherheit hinweist | 
| score\$1margin | Unterschied zwischen gewichteten Ergebnissen (berechnet als Weighted\$1Score\$1A — Weighted\$1Score\$1B). Bereich: -1,0 bis 1,0. Positiv = Antwort\$1A ist besser; negativ = Antwort\$1B ist besser; nahe Null = ähnliche Qualität | 
| score\$1margin\$1stderr | Standardfehler des Mittelwerts für score\$1margin, was auf eine Unsicherheit bei der Messung von Qualitätsunterschieden hinweist | 

**Kennzahlen zur gewichteten Punktzahl verstehen**  
**Zweck**: Gewichtete Werte ermöglichen kontinuierliche Qualitätsmessungen, die binäre Präferenzurteile ergänzen und so tiefere Einblicke in die Modellleistung ermöglichen.

**Wesentliche Unterschiede zum ursprünglichen Richter**:
+ **Ursprünglicher Richter**: Gibt nur diskrete Präferenzen aus (A>B, B>A, A=B)
+ **Rubrik Judge**: Gibt sowohl Präferenzen als auch kontinuierliche Qualitätswerte (Skala 0-1) auf der Grundlage benutzerdefinierter Kriterien aus

**Interpretation von score\$1margin:**
+ `score_margin = -0.128`: Response\$1B erzielte 12,8 Prozentpunkte mehr als Response\$1A
+ `|score_margin| < 0.1`: Geringer Qualitätsunterschied (knappe Entscheidung)
+ `|score_margin| > 0.2`: Deutlicher Qualitätsunterschied (sichere Entscheidung)

**Anwendungsfälle**:
+ **Modellverbesserung**: Identifizieren Sie bestimmte Bereiche, in denen Ihr Modell unterdurchschnittlich abschneidet
+ **Quantifizierung der Qualität**: Messen Sie das Ausmaß von Leistungslücken, nicht nur Kennzahlen win/loss 
+ **Vertrauensbeurteilung**: Unterscheiden Sie zwischen knappen Entscheidungen und deutlichen Qualitätsunterschieden

**Wichtig**  
Endgültige Urteile basieren immer noch auf den ausdrücklichen Präferenzbezeichnungen des Richtermodells, um eine ganzheitliche Argumentation zu wahren und eine angemessene Minderung von Positionsverzerrungen durch Bewertung sicherzustellen. forward/backward Gewichtete Punktzahlen dienen als Instrumente zur Beobachtung und nicht als Ersatz für das erste Urteil.

**Berechnungsmethodik**  
Die gewichteten Punktzahlen werden nach dem folgenden Verfahren berechnet:
+ **Kriteriendaten extrahieren: Analysieren** Sie die YAML-Ausgabe des Richters, um die Punktzahlen und Gewichtungen der Kriterien zu extrahieren
+ **Ergebnisse normalisieren**:
  + Kriterien vom Typ Skala (1-5): Durch Berechnung auf 0-1 normalisieren `(score - 1) / 4`
  + Binäre Kriterien (wahr/falsch): In 1,0/0,0 umwandeln
+ **Gewichtungen anwenden**: Multiplizieren Sie jedes normalisierte Ergebnis mit der Gewichtung des Kriteriums
+ **Aggregieren**: Summieren Sie alle gewichteten Werte für jede Antwort
+ **Marge berechnen**: Berechne `score_margin = weighted_score_A - weighted_score_B`

**Beispiel**: Wenn Antworte\$1A eine gewichtete Summe von 0,65 und Antworte\$1B eine gewichtete Summe von 0,78 hat, `score_margin` wäre das -0,13, was bedeutet, dass Antworte\$1B bei allen gewichteten Kriterien eine um 13 Prozentpunkte höhere Qualität aufweist.

### Unterstützung von Argumentationsmodellen
<a name="nova-hp-evaluate-rubric-judge-reasoning"></a>

Die Unterstützung von Argumentationsmodellen ermöglicht die Evaluierung mit Hilfe von Nova-Modellen, die eine explizite interne Argumentation durchführen, bevor endgültige Antworten generiert werden. Diese Funktion nutzt die Steuerung auf API-Ebene über den `reasoning_effort` Parameter, um die Argumentationsfunktion dynamisch zu aktivieren oder zu deaktivieren, wodurch möglicherweise die Antwortqualität bei komplexen Analyseaufgaben verbessert wird.

**Unterstützte Modelle:**
+ amazon.nova-2-lite-v 1:0:256 k

**Konfiguration des Rezepts**  
Ermöglichen Sie die Argumentation, indem Sie den `reasoning_effort` Parameter zum `inference` Abschnitt Ihres Rezepts hinzufügen:

```
run:
  name: eval-job-name                                    # [MODIFIABLE] Unique identifier for your evaluation job
  model_type: amazon.nova-2-lite-v1:0:256k               # [FIXED] Must be a reasoning-supported model
  model_name_or_path: nova-lite-2/prod                   # [FIXED] Path to model checkpoint or identifier
  replicas: 1                                            # [MODIFIABLE] Number of replicas for SageMaker Training job
  data_s3_path: ""                                       # [MODIFIABLE] Leave empty for SageMaker Training job; optional for  job
  output_s3_path: ""                                     # [MODIFIABLE] Output path for  job (not compatible with SageMaker Training jobs)

evaluation:
  task: mmlu                                             # [MODIFIABLE] Evaluation task
  strategy: generate                                     # [MODIFIABLE] Evaluation strategy
  metric: all                                            # [MODIFIABLE] Metric calculation method

inference:
  reasoning_effort: high                                 # [MODIFIABLE] Enables reasoning mode; options: low/medium/high or null to disable
  max_new_tokens: 200                                    # [MODIFIABLE] Maximum tokens to generate
  top_k: 50                                              # [MODIFIABLE] Top-k sampling parameter
  top_p: 1.0                                             # [MODIFIABLE] Nucleus sampling parameter
  temperature: 0                                         # [MODIFIABLE] Sampling temperature (0 = deterministic)
```

**Verwenden Sie den Parameter reasoning\$1effort**  
Der `reasoning_effort` Parameter steuert das Argumentationsverhalten für Modelle, die zur Argumentation fähig sind.

**Voraussetzungen:**
+ **Modellkompatibilität**: Wird `reasoning_effort` nur gesetzt, wenn (derzeit) ein Modell `model_type` angegeben wird, das zu Argumenten fähig ist `amazon.nova-2-lite-v1:0:256k`
+ **Fehlerbehandlung**: Die Verwendung `reasoning_effort` mit nicht unterstützten Modellen schlägt fehl mit `ConfigValidationError: "Reasoning mode is enabled but model '{model_type}' does not support reasoning. Please use a reasoning-capable model or disable reasoning mode."`

**Verfügbare Optionen**:


| Option | Behavior | Token-Limit | Anwendungsfall | 
| --- |--- |--- |--- |
| null (Standard) | Deaktiviert den Argumentationsmodus | – | Standardauswertung ohne Mehraufwand bei der Argumentation | 
| low | Ermöglicht Argumentation mit Einschränkungen | 4.000 Tokens für internes Denken | Szenarien, die eine präzise Argumentation erfordern; optimiert im Hinblick auf Geschwindigkeit und Kosten | 
| high | Ermöglicht Argumentation ohne Einschränkungen | Keine Tokenbegrenzung für internes Denken | Komplexe Probleme, die umfangreiche Analysen und step-by-step Überlegungen erfordern | 

**Wann soll das Denken aktiviert werden**  
**Verwenden Sie den Argumentationsmodus (`low`,`medium`, oder`high`)** für:
+ Komplexe Problemlösungsaufgaben (Mathematik, Logikrätsel, Programmieren)
+ Mehrstufige analytische Fragen, die eine gründliche Argumentation erfordern
+ Aufgaben, bei denen detaillierte Erklärungen oder step-by-step Überlegungen die Genauigkeit verbessern
+ Szenarien, in denen die Qualität der Antworten Vorrang vor der Geschwindigkeit hat

**Verwenden Sie den Modus ohne Argumentation (Parameter auslassen)** für:
+ Einfache Fragen und Antworten oder sachliche Fragen
+ Kreative Schreibaufgaben
+ Wenn schnellere Reaktionszeiten entscheidend sind
+ Leistungsbenchmarking, bei dem der Argumentationsaufwand ausgeschlossen werden sollte
+ Kostenoptimierung, wenn Argumentation die Aufgabenleistung nicht verbessert

**Fehlerbehebung**  
**Fehler: „Der Argumentationsmodus ist aktiviert, aber das Modell unterstützt kein Argumentieren“**

**Ursache**: Der `reasoning_effort` Parameter ist auf einen Wert ungleich Null gesetzt, aber der angegebene Wert unterstützt `model_type` keine Argumentation.

**Auflösung**
+ Stellen Sie sicher, dass Ihr Modelltyp `amazon.nova-2-lite-v1:0:256k`
+ Wenn Sie ein anderes Modell verwenden, wechseln Sie entweder zu einem Modell, das vernünftiges Denken ermöglicht, oder entfernen Sie den `reasoning_effort` Parameter aus Ihrem Rezept

# Starten eines Bewertungsjobs
<a name="customize-fine-tune-evaluate-start-job"></a>

Im Folgenden finden Sie einen Vorschlag für die Konfiguration des Bewertungs-Instance-Typs und des Modelltyps:

```
# Install Dependencies (Helm - https://helm.sh/docs/intro/install/)
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
rm -f ./get_helm.sh

# Install the SageMaker HyperPod CLI
git clone --recurse-submodules https://github.com/aws/sagemaker-hyperpod-cli.git
git checkout -b release_v2
cd sagemaker-hyperpod-cli
pip install .

# Verify the installation
hyperpod --help

# Connect to a SageMaker HyperPod Cluster
hyperpod connect-cluster --cluster-name cluster-name


# Submit the Job using the recipe for eval
# Namespace by default should be kubeflow
hyperpod start-job [--namespace namespace] --recipe evaluation/nova/nova_micro_p5_48xl_general_text_benchmark_eval --override-parameters \
'{
    "instance_type":"p5d.48xlarge",
    "container": "708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-evaluation-repo:SM-HP-Eval-V2-latest",
    "recipes.run.name": custom-run-name,
    "recipes.run.model_type": model_type,
    "recipes.run.model_name_or_path" " model name or finetune checkpoint s3uri,
    "recipes.run.data_s3_path": s3 for input data only for genqa and llm_judge, must be full S3 path that include filename,
}'

# List jobs
hyperpod list-jobs [--namespace namespace] [--all-namespaces]

# Getting Job details
hyperpod get-job --job-name job-name [--namespace namespace] [--verbose]

# Listing Pods
hyperpod list-pods --job-name job-name --namespace namespace

# Cancel Job
hyperpod cancel-job --job-name job-name [--namespace namespace]
```

Sie sollten den Jobstatus auch über die Konsole des Amazon-EKS-Clusters einsehen können.

# Zugriff auf und Analyse der Bewertungsergebnisse
<a name="customize-fine-tune-evaluate-access-results"></a>

Nachdem Ihr Bewertungsjob erfolgreich abgeschlossen wurde, können Sie mithilfe der Informationen in diesem Abschnitt auf die Ergebnisse zugreifen und sie analysieren. Basierend auf dem im Rezept definierten `output_s3_path` (wie `s3://output_path/`) sieht die Ausgabestruktur wie folgt aus:

```
job_name/
├── eval-result/
│    └── results_[timestamp].json
│    └── inference_output.jsonl (only present for gen_qa)
│    └── details/
│        └── model/
│            └── execution-date-time/
│                └──details_task_name_#_datetime.parquet
└── tensorboard-results/
    └── eval/
        └── events.out.tfevents.[timestamp]
```

Die Metrikergebnisse werden am angegebenen S3-Ausgabespeicherort `s3://output_path/job_name/eval-result/result-timestamp.json` gespeichert.

Tensorboard-Ergebnisse werden im S3-Pfad `s3://output_path/job_name/eval-tensorboard-result/eval/event.out.tfevents.epoch+ip` gespeichert.

Alle Inferenzausgaben, mit Ausnahme von `llm_judge` und `strong_reject`, werden im S3-Pfad gespeichert: `s3://output_path/job_name/eval-result/details/model/taskname.parquet`.

Für `gen_qa` enthält die Datei `inference_output.jsonl` die folgenden Felder für jedes JSON-Objekt:
+ Prompt – der letzte Prompt, der an das Modell gesendet wurde
+ Inferenz – die unformatierte Inferenzausgabe des Modells
+ gold — Die Zielantwort aus dem Eingabedatensatz
+ metadata — Die Metadatenzeichenfolge aus dem Eingabedatensatz, falls angegeben

Führen Sie die folgenden Schritte aus, um Ihre Bewertungskennzahlen in Tensorboard zu visualisieren:

1. Navigieren Sie zu SageMaker AI Tensorboard.

1. Wählen Sie **S3-Ordner** aus.

1. Fügen Sie Ihren S3-Ordnerpfad hinzu, z. B. `s3://output_path/job-name/eval-tensorboard-result/eval`.

1. Warten Sie, bis die Synchronisation abgeschlossen ist.

Die Zeitreihen, Skalare und Textvisualisierungen sind verfügbar.

Wir empfehlen Ihnen, die folgenden bewährten Methoden:
+ Organisieren Sie Ihre Ausgabepfade nach Modell und Benchmark-Typ.
+ Halten Sie konsistente Namenskonventionen ein, um die Nachverfolgung zu vereinfachen.
+ Speichern Sie die extrahierten Ergebnisse an einem sicheren Ort.
+ Überwachen Sie den TensorBoard Synchronisierungsstatus, um ein erfolgreiches Laden der Daten sicherzustellen.

Sie finden SageMaker HyperPod Auftragsfehlerprotokolle in der CloudWatch Protokollgruppe`/aws/sagemaker/Clusters/cluster-id`.

## Ausgabeformat für Log Probability
<a name="nova-hp-access-results-logprobs"></a>

Wenn `top_logprobs` es in Ihren Inferenzeinstellungen konfiguriert ist, enthält die Evaluationsausgabe Protokollwahrscheinlichkeiten auf Tokenebene in den Parquet-Dateien. Jede Token-Position enthält ein Wörterbuch der wichtigsten Token-Kandidaten mit ihren Log-Wahrscheinlichkeiten in der folgenden Struktur:

```
{
"Ġint": {"logprob_value": -17.8125, "decoded_value": " int"},
"Ġthe": {"logprob_value": -2.345, "decoded_value": " the"}
}
```

Jeder Token-Eintrag enthält:
+ `logprob_value`: Der Log-Wahrscheinlichkeitswert für das Token
+ `decoded_value`: Die menschenlesbare dekodierte Zeichenkettendarstellung des Tokens

Das rohe Tokenizer-Token wird als Wörterbuchschlüssel verwendet, um die Einzigartigkeit zu gewährleisten und bietet gleichzeitig eine lesbare Interpretation. `decoded_value`

# Jobs überwachen mit HyperPod MLflow
<a name="nova-hp-mlflow"></a>

Sie können MLflow es verwenden, um Ihre Trainingsjobs auf zu verfolgen und zu überwachen SageMaker HyperPod. Folgen Sie diesen Schritten, um es einzurichten MLflow und mit Ihren Trainingsrezepten zu verbinden.

***Erstelle die MLflow App***

Beispiel für einen AWS CLI Befehl

```
aws sagemaker-mlflow create-mlflow-app \
    --name <app-name> \
    --artifact-store-uri <s3-bucket-name> \
    --role-arn <role-arn> \
    --region <region-name>
```

Beispielausgabe

```
{
    "Arn": "arn:aws:sagemaker:us-east-1:111122223333:mlflow-app/app-LGZEOZ2UY4NZ"
}
```

***Generieren Sie eine vorsignierte URL***

Beispiel für AWS CLI einen Befehl

```
aws sagemaker-mlflow create-presigned-mlflow-app-url \
    --arn <app-arn> \
    --region <region-name> \
    --output text
```

Beispielausgabe

```
https://app-LGZEOZ2UY4NZ.mlflow.sagemaker.us-east-1.app.aws/auth?authToken=eyJhbGciOiJIUzI1NiJ9.eyJhdXRoVG9rZW5JZCI6IkxETVBPUyIsImZhc0NyZWRlbnRpYWxzIjoiQWdWNGhDM1VvZ0VYSUVsT2lZOVlLNmxjRHVxWm1BMnNhZ3JDWEd3aFpOSmdXbzBBWHdBQkFCVmhkM010WTNKNWNIUnZMWEIxWW14cFl5MXJaWGtBUkVFd09IQmtVbU5IUzJJMU1VTnVaVEl3UVhkUE5uVm9Ra2xHTkZsNVRqTTNXRVJuTTNsalowNHhRVFZvZERneVdrMWlkRlZXVWpGTWMyWlRUV1JQWmpSS2R6MDlBQUVBQjJGM2N5MXJiWE1BUzJGeWJqcGhkM002YTIxek9uVnpMV1ZoYzNRdE1Ub3pNVFF4TkRZek1EWTBPREk2YTJWNUx6Y3dOMkpoTmpjeExUUXpZamd0TkRFeU5DMWhaVFUzTFRrMFlqTXdZbUptT1RJNU13QzRBUUlCQUhnQjRVMDBTK3ErVE51d1gydlFlaGtxQnVneWQ3YnNrb0pWdWQ2NmZjVENVd0ZzRTV4VHRGVllHUXdxUWZoeXE2RkJBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1yOEh4MXhwczFBbmEzL1JKQWdFUWdEdTI0K1M5c2VOUUNFV0hJRXJwdmYxa25MZTJteitlT29pTEZYNTJaeHZsY3AyZHFQL09tY3RJajFqTWFuRjMxZkJyY004MmpTWFVmUHRhTWdJQUFCQUE3L1pGT05DRi8rWnVPOVlCVnhoaVppSEFSLy8zR1I0TmR3QWVxcDdneHNkd2lwTDJsVWdhU3ZGNVRCbW9uMUJnLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBUTdBMHN6dUhGbEs1NHdZbmZmWEFlYkhlNmN5OWpYOGV3T2x1NWhzUWhGWFllRXNVaENaQlBXdlQrVWp5WFY0ZHZRNE8xVDJmNGdTRUFOMmtGSUx0YitQa0tmM0ZUQkJxUFNUQWZ3S1oyeHN6a1lDZXdwRlNpalFVTGtxemhXbXBVcmVDakJCOHNGT3hQL2hjK0JQalY3bUhOL29qcnVOejFhUHhjNSt6bHFuak9CMHljYy8zL2JuSHA3NVFjRE8xd2NMbFJBdU5KZ2RMNUJMOWw1YVVPM0FFMlhBYVF3YWY1bkpwTmZidHowWUtGaWZHMm94SDJSNUxWSjNkbG40aGVRbVk4OTZhdXdsellQV253N2lTTDkvTWNidDAzdVZGN0JpUnRwYmZMN09JQm8wZlpYSS9wK1pUNWVUS2wzM2tQajBIU3F6NisvamliY0FXMWV4VTE4N1QwNHpicTNRcFhYMkhqcDEvQnFnMVdabkZoaEwrekZIaUV0Qjd4U1RaZkZsS2xRUUhNK0ZkTDNkOHIyRWhCMjFya2FBUElIQVBFUk5Pd1lnNmFzM2pVaFRwZWtuZVhxSDl3QzAyWU15R0djaTVzUEx6ejh3ZTExZVduanVTai9DZVJpZFQ1akNRcjdGMUdKWjBVREZFbnpNakFuL3Y3ajA5c2FMczZnemlCc2FLQXZZOWpib0JEYkdKdGZ0N2JjVjl4eUp4amptaW56TGtoVG5pV2dxV3g5MFZPUHlWNWpGZVk1QTFrMmw3bDArUjZRTFNleHg4d1FrK0FqVGJuLzFsczNHUTBndUtESmZKTWVGUVczVEVrdkp5VlpjOC9xUlpIODhybEpKOW1FSVdOd1BMU21yY1l6TmZwVTlVOGdoUDBPUWZvQ3FvcW1WaUhEYldaT294bGpmb295cS8yTDFKNGM3NTJUaVpFd1hnaG9haFBYdGFjRnA2NTVUYjY5eGxTN25FaXZjTTlzUjdTT3REMEMrVHIyd0cxNEJ3Zm9NZTdKOFhQeVRtcmQ0QmNKOEdOYnVZTHNRNU9DcFlsV3pVNCtEcStEWUI4WHk1UWFzaDF0dzJ6dGVjVVQyc0hsZmwzUVlrQ0d3Z1hWam5Ia2hKVitFRDIrR3Fpc3BkYjRSTC83RytCRzRHTWNaUE02Q3VtTFJkMnZLbnozN3dUWkxwNzdZNTdMQlJySm9Tak9idWdNUWdhOElLNnpWL2VtcFlSbXJsVjZ5VjZ6S1h5aXFKWFk3TTBXd3dSRzd5Q0xYUFRtTGt3WGE5cXF4NkcvZDY1RS83V3RWMVUrNFIxMlZIUmVUMVJmeWw2SnBmL2FXWFVCbFQ2ampUR0M5TU1uTk5OVTQwZHRCUTArZ001S1d2WGhvMmdmbnhVcU1OdnFHblRFTWdZMG5ZL1FaM0RWNFozWUNqdkFOVWVsS1NCdkxFbnY4SEx0WU9uajIrTkRValZOV1h5T1c4WFowMFFWeXU0ZU5LaUpLQ1hJbnI1N3RrWHE3WXl3b0lZV0hKeHQwWis2MFNQMjBZZktYYlhHK1luZ3F6NjFqMkhIM1RQUmt6dW5rMkxLbzFnK1ZDZnhVWFByeFFmNUVyTm9aT2RFUHhjaklKZ1FxRzJ2eWJjbFRNZ0M5ZXc1QURVcE9KL1RrNCt2dkhJMDNjM1g0UXcrT3lmZHFUUzJWb3N4Y0hJdG5iSkZmdXliZi9lRlZWRlM2L3lURkRRckhtQ1RZYlB3VXlRNWZpR20zWkRhNDBQUTY1RGJSKzZSbzl0S3c0eWFlaXdDVzYwZzFiNkNjNUhnQm5GclMyYytFbkNEUFcrVXRXTEF1azlISXZ6QnR3MytuMjdRb1cvSWZmamJucjVCSXk3MDZRTVR4SzhuMHQ3WUZuMTBGTjVEWHZiZzBvTnZuUFFVYld1TjhFbE11NUdpenZxamJmeVZRWXdBSERCcDkzTENsUUJuTUdVQ01GWkNHUGRPazJ2ZzJoUmtxcWQ3SmtDaEpiTmszSVlyanBPL0h2Z2NZQ2RjK2daM3lGRjMyTllBMVRYN1FXUkJYZ0l4QU5xU21ZTHMyeU9uekRFenBtMUtnL0tvYmNqRTJvSDJkZHcxNnFqT0hRSkhkVWRhVzlZL0NQYTRTbWxpN2pPbGdRPT0iLCJjaXBoZXJUZXh0IjoiQVFJQkFIZ0I0VTAwUytxK1ROdXdYMnZRZWhrcUJ1Z3lkN2Jza29KVnVkNjZmY1RDVXdHeDExRlBFUG5xU1ZFbE5YVUNrQnRBQUFBQW9qQ0Jud1lKS29aSWh2Y05BUWNHb0lHUk1JR09BZ0VBTUlHSUJna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURHemdQNnJFSWNEb2dWSTl1d0lCRUlCYitXekkvbVpuZkdkTnNYV0VCM3Y4NDF1SVJUNjBLcmt2OTY2Q1JCYmdsdXo1N1lMTnZUTkk4MEdkVXdpYVA5NlZwK0VhL3R6aGgxbTl5dzhjcWdCYU1pOVQrTVQxdzdmZW5xaXFpUnRRMmhvN0tlS2NkMmNmK3YvOHVnPT0iLCJzdWIiOiJhcm46YXdzOnNhZ2VtYWtlcjp1cy1lYXN0LTE6MDYwNzk1OTE1MzUzOm1sZmxvdy1hcHAvYXBwLUxHWkVPWjJVWTROWiIsImlhdCI6MTc2NDM2NDYxNSwiZXhwIjoxNzY0MzY0OTE1fQ.HNvZOfqft4m7pUS52MlDwoi1BA8Vsj3cOfa_CvlT4uw
```

***Öffnen Sie die vorsignierte URL und sehen Sie sich die App an***

Klick 

```
https://app-LGZEOZ2UY4NZ.mlflow.sagemaker.us-east-1.app.aws/auth?authToken=eyJhbGciOiJIUzI1NiJ9.eyJhdXRoVG9rZW5JZCI6IkxETVBPUyIsImZhc0NyZWRlbnRpYWxzIjoiQWdWNGhDM1VvZ0VYSUVsT2lZOVlLNmxjRHVxWm1BMnNhZ3JDWEd3aFpOSmdXbzBBWHdBQkFCVmhkM010WTNKNWNIUnZMWEIxWW14cFl5MXJaWGtBUkVFd09IQmtVbU5IUzJJMU1VTnVaVEl3UVhkUE5uVm9Ra2xHTkZsNVRqTTNXRVJuTTNsalowNHhRVFZvZERneVdrMWlkRlZXVWpGTWMyWlRUV1JQWmpSS2R6MDlBQUVBQjJGM2N5MXJiWE1BUzJGeWJqcGhkM002YTIxek9uVnpMV1ZoYzNRdE1Ub3pNVFF4TkRZek1EWTBPREk2YTJWNUx6Y3dOMkpoTmpjeExUUXpZamd0TkRFeU5DMWhaVFUzTFRrMFlqTXdZbUptT1RJNU13QzRBUUlCQUhnQjRVMDBTK3ErVE51d1gydlFlaGtxQnVneWQ3YnNrb0pWdWQ2NmZjVENVd0ZzRTV4VHRGVllHUXdxUWZoeXE2RkJBQUFBZmpCOEJna3Foa2lHOXcwQkJ3YWdiekJ0QWdFQU1HZ0dDU3FHU0liM0RRRUhBVEFlQmdsZ2hrZ0JaUU1FQVM0d0VRUU1yOEh4MXhwczFBbmEzL1JKQWdFUWdEdTI0K1M5c2VOUUNFV0hJRXJwdmYxa25MZTJteitlT29pTEZYNTJaeHZsY3AyZHFQL09tY3RJajFqTWFuRjMxZkJyY004MmpTWFVmUHRhTWdJQUFCQUE3L1pGT05DRi8rWnVPOVlCVnhoaVppSEFSLy8zR1I0TmR3QWVxcDdneHNkd2lwTDJsVWdhU3ZGNVRCbW9uMUJnLy8vLy93QUFBQUVBQUFBQUFBQUFBQUFBQUFFQUFBUTdBMHN6dUhGbEs1NHdZbmZmWEFlYkhlNmN5OWpYOGV3T2x1NWhzUWhGWFllRXNVaENaQlBXdlQrVWp5WFY0ZHZRNE8xVDJmNGdTRUFOMmtGSUx0YitQa0tmM0ZUQkJxUFNUQWZ3S1oyeHN6a1lDZXdwRlNpalFVTGtxemhXbXBVcmVDakJCOHNGT3hQL2hjK0JQalY3bUhOL29qcnVOejFhUHhjNSt6bHFuak9CMHljYy8zL2JuSHA3NVFjRE8xd2NMbFJBdU5KZ2RMNUJMOWw1YVVPM0FFMlhBYVF3YWY1bkpwTmZidHowWUtGaWZHMm94SDJSNUxWSjNkbG40aGVRbVk4OTZhdXdsellQV253N2lTTDkvTWNidDAzdVZGN0JpUnRwYmZMN09JQm8wZlpYSS9wK1pUNWVUS2wzM2tQajBIU3F6NisvamliY0FXMWV4VTE4N1QwNHpicTNRcFhYMkhqcDEvQnFnMVdabkZoaEwrekZIaUV0Qjd4U1RaZkZsS2xRUUhNK0ZkTDNkOHIyRWhCMjFya2FBUElIQVBFUk5Pd1lnNmFzM2pVaFRwZWtuZVhxSDl3QzAyWU15R0djaTVzUEx6ejh3ZTExZVduanVTai9DZVJpZFQ1akNRcjdGMUdKWjBVREZFbnpNakFuL3Y3ajA5c2FMczZnemlCc2FLQXZZOWpib0JEYkdKdGZ0N2JjVjl4eUp4amptaW56TGtoVG5pV2dxV3g5MFZPUHlWNWpGZVk1QTFrMmw3bDArUjZRTFNleHg4d1FrK0FqVGJuLzFsczNHUTBndUtESmZKTWVGUVczVEVrdkp5VlpjOC9xUlpIODhybEpKOW1FSVdOd1BMU21yY1l6TmZwVTlVOGdoUDBPUWZvQ3FvcW1WaUhEYldaT294bGpmb295cS8yTDFKNGM3NTJUaVpFd1hnaG9haFBYdGFjRnA2NTVUYjY5eGxTN25FaXZjTTlzUjdTT3REMEMrVHIyd0cxNEJ3Zm9NZTdKOFhQeVRtcmQ0QmNKOEdOYnVZTHNRNU9DcFlsV3pVNCtEcStEWUI4WHk1UWFzaDF0dzJ6dGVjVVQyc0hsZmwzUVlrQ0d3Z1hWam5Ia2hKVitFRDIrR3Fpc3BkYjRSTC83RytCRzRHTWNaUE02Q3VtTFJkMnZLbnozN3dUWkxwNzdZNTdMQlJySm9Tak9idWdNUWdhOElLNnpWL2VtcFlSbXJsVjZ5VjZ6S1h5aXFKWFk3TTBXd3dSRzd5Q0xYUFRtTGt3WGE5cXF4NkcvZDY1RS83V3RWMVUrNFIxMlZIUmVUMVJmeWw2SnBmL2FXWFVCbFQ2ampUR0M5TU1uTk5OVTQwZHRCUTArZ001S1d2WGhvMmdmbnhVcU1OdnFHblRFTWdZMG5ZL1FaM0RWNFozWUNqdkFOVWVsS1NCdkxFbnY4SEx0WU9uajIrTkRValZOV1h5T1c4WFowMFFWeXU0ZU5LaUpLQ1hJbnI1N3RrWHE3WXl3b0lZV0hKeHQwWis2MFNQMjBZZktYYlhHK1luZ3F6NjFqMkhIM1RQUmt6dW5rMkxLbzFnK1ZDZnhVWFByeFFmNUVyTm9aT2RFUHhjaklKZ1FxRzJ2eWJjbFRNZ0M5ZXc1QURVcE9KL1RrNCt2dkhJMDNjM1g0UXcrT3lmZHFUUzJWb3N4Y0hJdG5iSkZmdXliZi9lRlZWRlM2L3lURkRRckhtQ1RZYlB3VXlRNWZpR20zWkRhNDBQUTY1RGJSKzZSbzl0S3c0eWFlaXdDVzYwZzFiNkNjNUhnQm5GclMyYytFbkNEUFcrVXRXTEF1azlISXZ6QnR3MytuMjdRb1cvSWZmamJucjVCSXk3MDZRTVR4SzhuMHQ3WUZuMTBGTjVEWHZiZzBvTnZuUFFVYld1TjhFbE11NUdpenZxamJmeVZRWXdBSERCcDkzTENsUUJuTUdVQ01GWkNHUGRPazJ2ZzJoUmtxcWQ3SmtDaEpiTmszSVlyanBPL0h2Z2NZQ2RjK2daM3lGRjMyTllBMVRYN1FXUkJYZ0l4QU5xU21ZTHMyeU9uekRFenBtMUtnL0tvYmNqRTJvSDJkZHcxNnFqT0hRSkhkVWRhVzlZL0NQYTRTbWxpN2pPbGdRPT0iLCJjaXBoZXJUZXh0IjoiQVFJQkFIZ0I0VTAwUytxK1ROdXdYMnZRZWhrcUJ1Z3lkN2Jza29KVnVkNjZmY1RDVXdHeDExRlBFUG5xU1ZFbE5YVUNrQnRBQUFBQW9qQ0Jud1lKS29aSWh2Y05BUWNHb0lHUk1JR09BZ0VBTUlHSUJna3Foa2lHOXcwQkJ3RXdIZ1lKWUlaSUFXVURCQUV1TUJFRURHemdQNnJFSWNEb2dWSTl1d0lCRUlCYitXekkvbVpuZkdkTnNYV0VCM3Y4NDF1SVJUNjBLcmt2OTY2Q1JCYmdsdXo1N1lMTnZUTkk4MEdkVXdpYVA5NlZwK0VhL3R6aGgxbTl5dzhjcWdCYU1pOVQrTVQxdzdmZW5xaXFpUnRRMmhvN0tlS2NkMmNmK3YvOHVnPT0iLCJzdWIiOiJhcm46YXdzOnNhZ2VtYWtlcjp1cy1lYXN0LTE6MDYwNzk1OTE1MzUzOm1sZmxvdy1hcHAvYXBwLUxHWkVPWjJVWTROWiIsImlhdCI6MTc2NDM2NDYxNSwiZXhwIjoxNzY0MzY0OTE1fQ.HNvZOfqft4m7pUS52MlDwoi1BA8Vsj3cOfa_CvlT4uw
```

Anzeigen 

![\[Beispiel für ein Nova-Bild.\]](http://docs.aws.amazon.com/de_de/nova/latest/userguide/images/screenshot-nova-model-1.png)


***Gehen Sie zum Rezept unter dem Ausführungsblock Ihres SageMaker HyperPod Rezepts***

Rezept

```
run
    mlflow_tracking_uri: arn:aws:sagemaker:us-east-1:111122223333:mlflow-app/app-LGZEOZ2UY4NZ
```

Anzeigen

![\[Beispiel für ein Nova-Bild.\]](http://docs.aws.amazon.com/de_de/nova/latest/userguide/images/screenshot-nova-model-2.png)
