

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.

# RFT-Evaluierung
<a name="nova-rft-evaluation"></a>

## Was ist eine RFT-Evaluierung?
<a name="nova-rft-eval-what-is"></a>

Mit der RFT-Evaluierung können Sie die Leistung Ihres Modells mithilfe benutzerdefinierter Belohnungsfunktionen vor, während oder nach dem Reinforcement-Learning-Training bewerten. Im Gegensatz zu Standardbewertungen, die vordefinierte Metriken verwenden, können Sie mit RFT Evaluation Ihre eigenen Erfolgskriterien mithilfe einer Lambda-Funktion definieren, die Modellergebnisse auf der Grundlage Ihrer spezifischen Anforderungen bewertet.

## Warum mit RFT evaluieren?
<a name="nova-rft-eval-why"></a>

Die Bewertung ist entscheidend, um festzustellen, ob der RL-Feinabstimmungsprozess Folgendes beinhaltet:
+ Verbesserte Abstimmung des Modells auf Ihren spezifischen Anwendungsfall und Ihre menschlichen Werte
+ Beibehaltung oder Verbesserung der Modellfunktionen bei wichtigen Aufgaben
+ Vermeidung unbeabsichtigter Nebenwirkungen wie verringerte Sachlichkeit, erhöhte Ausführlichkeit oder Leistungseinbußen bei anderen Aufgaben
+ Hat Ihre benutzerdefinierten Erfolgskriterien erfüllt, wie sie in Ihrer Belohnungsfunktion definiert sind

## Wann sollte die RFT-Evaluierung verwendet werden
<a name="nova-rft-eval-when"></a>

Verwenden Sie die RFT-Evaluierung in diesen Szenarien:
+ Vor dem RFT-Training: Legen Sie Basiskennzahlen für Ihren Bewertungsdatensatz fest
+ Während des RFT-Trainings: Überwachen Sie den Trainingsfortschritt mit Zwischenstationen
+ Nach dem RFT-Training: Stellen Sie sicher, dass das endgültige Modell Ihren Anforderungen entspricht
+ Modelle vergleichen: Evaluieren Sie mehrere Modellversionen anhand einheitlicher Prämienkriterien

**Anmerkung**  
Verwenden Sie RFT Evaluation, wenn Sie benutzerdefinierte, domänenspezifische Metriken benötigen. Verwenden Sie für allgemeine Bewertungsmethoden (Genauigkeit, Verwirrung, BLEU) die Standardauswertungsmethoden.

## Datenformatanforderungen
<a name="nova-rft-eval-data-format"></a>

### Struktur der Eingabedaten
<a name="nova-rft-eval-input-structure"></a>

Die Eingabedaten der RFT-Bewertung müssen dem OpenAI Reinforcement Fine-Tuning-Format entsprechen. Jedes Beispiel ist ein JSON-Objekt, das Folgendes enthält:
+ `messages`— Eine Reihe von Konversationswechseln mit `system` und Rollen `user`
+ `reference_answer`— Erwartete Leistung oder Ground-Truth-Daten, die von Ihrer Belohnungsfunktion für die Bewertung verwendet werden

### Beispiel für ein Datenformat
<a name="nova-rft-eval-data-example"></a>

```
{  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "type": "text",  
          "text": "Solve for x. Return only JSON like {\"x\": <number>}. Equation: 2x + 5 = 13"  
        }  
      ]  
    }  
  ],  
  "reference_answer": {  
    "x": 4  
  }  
}
```

### Aktuelle Einschränkungen
<a name="nova-rft-eval-limitations"></a>
+ Nur Text: Es werden keine multimodalen Eingaben (Bilder, Audio, Video) unterstützt
+ Single-Turn-Konversationen: Unterstützt nur Einzelbenutzernachrichten (keine Multi-Turn-Dialoge)
+ JSON-Format: Die Eingabedaten müssen im JSONL-Format vorliegen (ein JSON-Objekt pro Zeile)
+ Modellausgaben: Die Auswertung erfolgt anhand der generierten Vervollständigungen aus dem angegebenen Modell

## Vorbereitung Ihres Bewertungsrezepts
<a name="nova-rft-eval-recipe"></a>

### Beispiel-Notebook
<a name="nova-rft-eval-sample-notebook"></a>

Ein vollständiges Beispiel finden Sie unter [Test-Notizbücher](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-notebook).

### Beispiel für eine Rezeptkonfiguration
<a name="nova-rft-eval-sample-recipe"></a>

```
run:  
  name: nova-lite-rft-eval-job    
  model_type: amazon.nova-lite-v1:0:300k    
  model_name_or_path: s3://escrow_bucket/model_location # [MODIFIABLE] S3 path to your model or model identifier  
  replicas: 1 # [MODIFIABLE] For SageMaker Training jobs only; fixed for HyperPod jobs  
  data_s3_path: "" # [REQUIRED FOR HYPERPOD] Leave empty for SageMaker Training jobs and use TrainingInput in sagemaker python SDK  
  output_s3_path: "" # [REQUIRED] Output artifact S3 path for evaluation results  
  
evaluation:  
  task: rft_eval # [FIXED] Do not modify  
  strategy: rft_eval # [FIXED] Do not modify  
  metric: all # [FIXED] Do not modify  
  
# Inference Configuration  
inference:  
  max_new_tokens: 8192 # [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)  
  top_logprobs: 0 # [MODIFIABLE] Set between 1-20 to enable logprobs output  
  
# =============================================================================  
# Bring Your Own Reinforcement Learning Environment  
# =============================================================================  
rl_env:  
  reward_lambda_arn: arn:aws:lambda:<region>:<account_id>:function:<reward-function-name>
```

## Voreingestellte Belohnungsfunktionen
<a name="nova-rft-eval-preset-functions"></a>

Zwei voreingestellte Belohnungsfunktionen (`prime_code`und`prime_math`) sind als Lambda-Schicht für eine einfache Integration in Ihre RFT-Lambda-Funktionen verfügbar.

### -Übersicht
<a name="nova-rft-eval-preset-overview"></a>

Diese voreingestellten Funktionen bieten out-of-the-box Evaluierungsfunktionen für:
+ `prime_code`— Codegenerierung und Korrektheitsbewertung
+ `prime_math`— Mathematisches Denken und Bewertung der Problemlösung

### Quick Setup
<a name="nova-rft-eval-preset-setup"></a>

1. Laden Sie die Lambda-Schicht aus den [nova-custom-eval-sdk Versionen](https://github.com/aws/nova-custom-eval-sdk/releases) herunter.

1. Veröffentlichen Sie die Lambda-Ebene mit der AWS Befehlszeilenschnittstelle (AWS CLI):

   ```
   aws lambda publish-layer-version \
       --layer-name preset-function-layer \
       --description "Preset reward function layer with dependencies" \
       --zip-file fileb://universal_reward_layer.zip \
       --compatible-runtimes python3.9 python3.10 python3.11 python3.12 \
       --compatible-architectures x86_64 arm64
   ```

1. Fügen Sie die Ebene zu Ihrer Lambda-Funktion in der AWS Management Console hinzu (Wählen Sie die benutzerdefinierte Ebene preset-function-layer aus und fügen Sie AWSSDKPandas-Python 312 für numpy-Abhängigkeiten hinzu).

1. Importieren und in Ihrem Lambda-Code verwenden:

   ```
   from prime_code import compute_score  # For code evaluation
   from prime_math import compute_score  # For math evaluation
   ```

### prime\$1code-Funktion
<a name="nova-rft-eval-preset-code"></a>

Evaluiert Aufgaben zur Python-Codegenerierung, indem Code anhand von Testfällen ausgeführt und die Richtigkeit gemessen wird.

**Beispiel für ein Eingabedatensatzformat**

```
{"messages":[{"role":"user","content":"Write a function that returns the sum of two numbers."}],"reference_answer":{"inputs":["3\n5","10\n-2","0\n0"],"outputs":["8","8","0"]}}
{"messages":[{"role":"user","content":"Write a function to check if a number is even."}],"reference_answer":{"inputs":["4","7","0","-2"],"outputs":["True","False","True","True"]}}
```

**Schlüssel-Features**
+ Automatische Codeextraktion aus Markdown-Codeblöcken
+ Funktionserkennung und anrufbasiertes Testen
+ Ausführung von Testfällen mit Timeout-Schutz
+ Syntaxvalidierung und Kompilierungsprüfungen
+ Detaillierte Fehlerberichterstattung mit Tracebacks

### prime\$1math-Funktion
<a name="nova-rft-eval-preset-math"></a>

Evaluiert die Fähigkeiten zum mathematischen Denken und zur Problemlösung mit Unterstützung symbolischer Mathematik.

**Eingabeformat**

```
{"messages":[{"role":"user","content":"What is the derivative of x^2 + 3x?."}],"reference_answer":"2*x + 3"}
```

**Schlüssel-Features**
+ Symbolische mathematische Bewertung mit SymPy
+ Mehrere Antwortformate (LaTeX, Klartext, symbolisch)
+ Mathematische Äquivalenzprüfung
+ Normalisierung und Vereinfachung von Ausdrücken

### Datenformatanforderungen
<a name="nova-rft-eval-preset-data-format"></a>

**Zur Codeauswertung**
+ Eingaben: Array von Funktionsargumenten (richtige Typen: Ganzzahlen, Zeichenketten usw.)
+ Ausgaben: Array erwarteter Rückgabewerte (richtige Typen: Boolesche Werte, Zahlen usw.)
+ Code: Muss in Python mit klaren Funktionsdefinitionen sein

**Für die mathematische Auswertung**
+ Referenzantwort: Mathematischer Ausdruck oder numerischer Wert
+ Antwort: Kann LaTe X, Klartext oder symbolische Notation sein
+ Äquivalenz: Wird symbolisch überprüft, nicht nur beim Abgleich von Zeichenketten

### Best Practices
<a name="nova-rft-eval-preset-best-practices"></a>
+ Verwenden Sie in Testfällen die richtigen Datentypen (Ganzzahlen im Vergleich zu Zeichenketten, boolesche Werte im Vergleich zu „True“)
+ Sorgen Sie bei Codeproblemen für klare Funktionssignaturen
+ Schließen Sie Grenzfälle in Testeingaben ein (Null, negative Zahlen, leere Eingaben)
+ Formatieren Sie mathematische Ausdrücke konsistent in Referenzantworten
+ Testen Sie Ihre Belohnungsfunktion vor der Bereitstellung mit Beispieldaten

### Fehlerbehandlung
<a name="nova-rft-eval-preset-error-handling"></a>

Beide Funktionen beinhalten eine robuste Fehlerbehandlung für:
+ Kompilierungsfehler im generierten Code
+ Laufzeitausnahmen während der Ausführung
+ Fehlerhaft formatierte Eingabedaten
+ Timeout-Szenarien für Endlosschleifen
+ Ungültige mathematische Ausdrücke

## Erstellen Sie Ihre Belohnungsfunktion
<a name="nova-rft-eval-custom-reward"></a>

### Lambda-ARN-Anforderungen
<a name="nova-rft-eval-lambda-arn"></a>

Ihr Lambda-ARN muss diesem Format folgen:

```
"arn:aws:lambda:*:*:function:*SageMaker*"
```

Wenn das Lambda dieses Benennungsschema nicht hat, schlägt der Job mit dem folgenden Fehler fehl:

```
[ERROR] Unexpected error: lambda_arn must contain one of: ['SageMaker', 'sagemaker', 'Sagemaker'] when running on SMHP platform (Key: lambda_arn)
```

### Lambda-Anforderungsformat
<a name="nova-rft-eval-lambda-request"></a>

Ihre Lambda-Funktion empfängt Daten in diesem Format:

```
[  
  {  
    "id": "sample-001",  
    "messages": [  
      {  
        "role": "user",  
        "content": [  
          {  
            "type": "text",  
            "text": "Do you have a dedicated security team?"  
          }  
        ]  
      },  
      {  
        "role": "nova_assistant",  
        "content": [  
          {  
            "type": "text",  
            "text": "As an AI developed by Company, I don't have a dedicated security team..."  
          }  
        ]  
      }  
    ],  
    "reference_answer": {  
      "compliant": "No",  
      "explanation": "As an AI developed by Company, I do not have a traditional security team..."  
    }  
  }  
]
```

**Anmerkung**  
Die Nachrichtenstruktur umfasst das verschachtelte `content` Array, das dem Eingabedatenformat entspricht. Die letzte Nachricht mit Rolle `nova_assistant` enthält die vom Modell generierte Antwort.

### Lambda-Antwortformat
<a name="nova-rft-eval-lambda-response"></a>

Ihre Lambda-Funktion muss Daten in diesem Format zurückgeben:

```
[  
  {  
    "id": "sample-001",  
    "aggregate_reward_score": 0.75,  
    "metrics_list": [  
      {  
        "name": "accuracy",  
        "value": 0.85,  
        "type": "Metric"  
      },  
      {  
        "name": "fluency",  
        "value": 0.90,  
        "type": "Reward"  
      }  
    ]  
  }  
]
```

**Antwortfelder**
+ `id`— Muss mit der eingegebenen Proben-ID übereinstimmen
+ `aggregate_reward_score`— Gesamtpunktzahl (normalerweise 0,0 bis 1,0)
+ `metrics_list`— Reihe von Einzelmetriken mit:
  + `name`— Kennzahl der Metrik (z. B. „Genauigkeit“, „Fließfähigkeit“)
  + `value`— Metrischer Wert (typischerweise 0,0 bis 1,0)
  + `type`— Entweder „Metrik“ (für Berichte) oder „Belohnung“ (wird in Schulungen verwendet)

## IAM-Berechtigungen
<a name="nova-rft-eval-iam"></a>

### Erforderliche Berechtigungen
<a name="nova-rft-eval-iam-required"></a>

Ihre SageMaker Ausführungsrolle muss über Berechtigungen zum Aufrufen Ihrer Lambda-Funktion verfügen. Fügen Sie diese Richtlinie zu Ihrer SageMaker Ausführungsrolle hinzu:

```
{  
  "Version": "2012-10-17",		 	 	   
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": [  
        "lambda:InvokeFunction"  
      ],  
      "Resource": "arn:aws:lambda:region:account-id:function:function-name"  
    }  
  ]  
}
```

### Lambda-Ausführungsrolle
<a name="nova-rft-eval-iam-lambda"></a>

Die Ausführungsrolle Ihrer Lambda-Funktion benötigt grundlegende Lambda-Ausführungsberechtigungen:

```
{  
  "Version": "2012-10-17",		 	 	   
  "Statement": [  
    {  
      "Effect": "Allow",  
      "Action": [  
        "logs:CreateLogGroup",  
        "logs:CreateLogStream",  
        "logs:PutLogEvents"  
      ],  
      "Resource": "arn:aws:logs:*:*:*"  
    }  
  ]  
}
```

Wenn Ihre Lambda-Funktion auf andere AWS Dienste zugreift (z. B. S3 für Referenzdaten, DynamoDB für die Protokollierung), fügen Sie diese Berechtigungen der Lambda-Ausführungsrolle hinzu.

## Ausführung des Evaluierungsjobs
<a name="nova-rft-eval-execute"></a>

1. **Bereiten Sie Ihre Daten** vor — Formatieren Sie Ihre Bewertungsdaten gemäß den Anforderungen an das Datenformat und laden Sie Ihre JSONL-Datei auf S3 hoch: `s3://your-bucket/eval-data/eval_data.jsonl`

1. **Konfigurieren Sie Ihr Rezept** — Aktualisieren Sie das Beispielrezept mit Ihrer Konfiguration:
   + Stellen Sie `model_name_or_path` den Standort Ihres Modells ein
   + Stellen `lambda_arn` Sie Ihre Belohnungsfunktion ARN ein
   + Stellen `output_s3_path` Sie den gewünschten Ausgabeort ein
   + Passen Sie die `inference` Parameter nach Bedarf an

   Speichern Sie das Rezept unter `rft_eval_recipe.yaml`

1. **Evaluierung ausführen** — Führen Sie den Evaluierungsjob mit dem mitgelieferten Notizbuch aus: [Evaluierungs-Notebooks](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-evaluation.html#nova-model-evaluation-notebook)

1. **Fortschritt überwachen** — Überwachen Sie Ihre Evaluierungsaufgabe durch:
   + SageMaker Konsole: Überprüfen Sie den Auftragsstatus und die Protokolle
   + CloudWatch Protokolle: Detaillierte Ausführungsprotokolle anzeigen
   + Lambda Logs: Probleme mit der Belohnungsfunktion debuggen

## Evaluierungsergebnisse verstehen
<a name="nova-rft-eval-results"></a>

### Ausgabeformat
<a name="nova-rft-eval-output-format"></a>

Der Evaluierungsjob gibt die Ergebnisse im JSONL-Format an Ihrem angegebenen S3-Speicherort aus. Jede Zeile enthält die Auswertungsergebnisse für eine Probe:

```
{  
  "id": "sample-001",  
  "aggregate_reward_score": 0.75,  
  "metrics_list": [  
    {  
      "name": "accuracy",  
      "value": 0.85,  
      "type": "Metric"  
    },  
    {  
      "name": "fluency",  
      "value": 0.90,  
      "type": "Reward"  
    }  
  ]  
}
```

**Anmerkung**  
Die Ausgabe des RFT-Evaluierungsjobs ist identisch mit dem Lambda Response-Format. Der Bewertungsservice durchläuft die Antwort Ihrer Lambda-Funktion unverändert und gewährleistet so die Konsistenz zwischen Ihren Belohnungsberechnungen und den Endergebnissen.

### Interpretation der Ergebnisse
<a name="nova-rft-eval-interpret"></a>

**Gesamter Prämienwert**
+ Bereich: In der Regel 0,0 (am schlechtesten) bis 1,0 (am besten), hängt jedoch von Ihrer Implementierung ab
+ Zweck: Eine einzelne Zahl, die die Gesamtleistung zusammenfasst
+ Verwendungszweck: Modelle vergleichen, Verbesserungen im Vergleich zu Schulungen verfolgen

**Individuelle Metriken**
+ Metriktyp: Informationsmetriken für die Analyse
+ Art der Belohnung: Metriken, die während des RFT-Trainings verwendet wurden
+ Interpretation: Höhere Werte bedeuten im Allgemeinen eine bessere Leistung (es sei denn, Sie entwerfen inverse Metriken)

### Leistungsmaßstäbe
<a name="nova-rft-eval-benchmarks"></a>

Was unter „guter“ Leistung zu verstehen ist, hängt von Ihrem Anwendungsfall ab:


| Punktebereich | Interpretation | Action | 
| --- | --- | --- | 
| 0,8 - 1,0 | Ausgezeichnet | Modell bereit für den Einsatz | 
| 0,6 - 0,8 | Gut | Geringfügige Verbesserungen können von Vorteil sein | 
| 0,4 - 0,6 | Fair | Signifikante Verbesserung erforderlich | 
| 0,0 - 0,4 | Schlecht | Überprüfen Sie die Trainingsdaten und die Belohnungsfunktion | 

**Wichtig**  
Dies sind allgemeine Richtlinien. Definieren Sie Ihre eigenen Schwellenwerte auf der Grundlage der Geschäftsanforderungen, der Leistung des Basismodells, der domänenspezifischen Einschränkungen und der Kosten-Nutzen-Analyse von Weiterbildungsmaßnahmen.

## Fehlerbehebung
<a name="nova-rft-eval-troubleshooting"></a>

### Häufige Probleme
<a name="nova-rft-eval-common-issues"></a>


| Problem | Ursache | Lösung | 
| --- | --- | --- | 
| Lambda-Zeitüberschreitung | Komplexe Prämienberechnung | Lambda-Timeout erhöhen oder Funktion optimieren | 
| Erlaubnis verweigert | Fehlende IAM-Berechtigungen | Stellen Sie sicher, dass die SageMaker Rolle Lambda aufrufen kann | 
| Inkonsistente Ergebnisse | Nichtdeterministische Belohnungsfunktion | Verwenden Sie feste Ausgangswerte oder deterministische Logik | 
| Fehlende Ergebnisse | Lambda-Fehler wurden nicht erkannt | Fügen Sie eine umfassende Fehlerbehandlung in Lambda hinzu | 

### Checkliste zum Debuggen
<a name="nova-rft-eval-debug-checklist"></a>
+ Stellen Sie sicher, dass die Eingabedaten bei verschachtelten Inhaltsarrays das richtige Format haben
+ Bestätigen Sie, dass der Lambda-ARN korrekt ist und die Funktion bereitgestellt wurde
+ Überprüfen Sie die IAM-Berechtigungen für den SageMaker → Lambda-Aufruf
+ Überprüfen Sie die CloudWatch Protokolle auf Lambda-Fehler
+ Überprüfen Sie, ob die Lambda-Antwort dem erwarteten Format entspricht

## Best Practices
<a name="nova-rft-eval-best-practices-section"></a>
+ Einfach starten: Beginnen Sie mit den grundlegenden Belohnungsfunktionen und wiederholen Sie den Vorgang
+ Lambda separat testen: Verwenden Sie Lambda-Testereignisse vor der vollständigen Auswertung
+ Bei kleinem Datensatz validieren: Führen Sie die Auswertung für eine Teilmenge vor dem vollständigen Datensatz durch
+ Versionskontrolle: Verfolgen Sie die Versionen der Belohnungsfunktionen zusammen mit den Modellversionen
+ Kosten überwachen: Lambda-Aufrufe und Rechenzeit wirken sich auf die Kosten aus
+ Umfangreich protokollieren: Verwenden Sie Print-Anweisungen in Lambda zum Debuggen
+ Richten Sie die Timeouts angemessen ein: Balance zwischen Geduld und Kosten
+ Dokumentieren Sie Kennzahlen: Definieren Sie klar, was jede Metrik misst

## Nächste Schritte
<a name="nova-rft-eval-next-steps"></a>

Nach Abschluss der RFT-Evaluierung:
+ Wenn die Ergebnisse zufriedenstellend sind: Modell in der Produktion einsetzen
+ Falls eine Verbesserung erforderlich ist:
  + Passen Sie die Belohnungsfunktion an
  + Sammle mehr Trainingsdaten
  + Ändern Sie die Trainingshyperparameter
  + Führen Sie zusätzliche RFT-Trainingsiterationen aus
+ Kontinuierliche Überwachung: Regelmäßige Neubewertung anhand neuer Daten