

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.

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

Das Training von Amazon Nova-Modellen im Rahmen von SageMaker Training Jobs unterstützt 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**
+ [Nova 2.0 fein abstimmen](nova-fine-tune-2.md)
+ [Reinforcement Fine-Tuning (RFT) mit Amazon Nova-Modellen](nova-reinforcement-fine-tuning.md)

# Nova 2.0 fein abstimmen
<a name="nova-fine-tune-2"></a>

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

Bevor Sie einen Trainingsjob beginnen, sollten Sie Folgendes beachten.
+ Amazon-S3-Buckets zum Speichern Ihrer Eingabedaten und der Ausgabe von Trainingsjobs. Sie können entweder einen Bucket für beide oder separate Buckets für jeden Datentyp verwenden. Stellen Sie sicher, dass sich Ihre Bereiche dort befinden AWS-Region , wo Sie auch alle anderen Ressourcen für Schulungen erstellen. Weitere Informationen finden Sie unter [Erstellen eines Buckets für allgemeine Zwecke](https://docs.aws.amazon.com//AmazonS3/latest/userguide/create-bucket-overview.html).
+ Eine IAM-Rolle mit Berechtigungen zum Ausführen eines Trainingsjobs. Stellen Sie sicher, dass Sie eine IAM-Richtlinie mit `AmazonSageMakerFullAccess` anhängen. Weitere Informationen finden Sie unter [So verwenden Sie SageMaker KI-Ausführungsrollen](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-roles.html).
+ Grundlegende Amazon-Nova-Rezepte finden Sie unter [Abrufen von Amazon-Nova-Rezepten](nova-model-recipes.md#nova-model-get-recipes).

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

Supervised Fine-Tuning (SFT) trainiert ein Sprachmodell mithilfe von beschrifteten Eingabe-Ausgabe-Paaren. Das Modell lernt anhand von Demonstrationsbeispielen, die aus Eingabeaufforderungen und Antworten bestehen, und verfeinert seine Fähigkeiten, um es an bestimmte Aufgaben, Anweisungen oder erwünschte Verhaltensweisen anzupassen.

## Datenaufbereitung
<a name="nova-2-data-preparation"></a>

### -Übersicht
<a name="nova-2-data-overview"></a>

Nova 2.0-SFT-Daten verwenden dasselbe Converse-API-Format wie Nova 1.0, mit zusätzlichen optionalen Inhaltsfeldern für Argumentation. Vollständige Formatspezifikationen finden Sie unter:
+ Inhalt der Argumentation: [ReasoningContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html)
+ [Converse API-Schema: Converse API](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html)
+ [Datensatz-Einschränkungen: Datensatz-Einschränkungen](https://docs.aws.amazon.com/nova/latest/userguide/fine-tune-prepare-data-understanding.html)

### Unterstützte Features
<a name="nova-2-supported-features"></a>
+ **Eingabearten** — Text, Bild oder Video in Inhaltsblöcken für Benutzer
+ **Assistenteninhalte** — Reine Textantworten und Argumentationsinhalte
+ **Zusammensetzung des Datensatzes** — Muss homogen sein. Wählen Sie eine der folgenden Optionen:
  + Reine Text-Wendungen
  + Text- und Bilddrehungen
  + Text und Videodrehungen (unterstützt das Verständnis von Dokumenten)

**Wichtig**  
Sie können Bilder und Videos nicht innerhalb desselben Datensatzes oder in verschiedenen Zügen mischen.

### Aktuelle Einschränkungen
<a name="nova-2-current-limitations"></a>
+ **Inhalte zum multimodalen Denken — Obwohl das Converse-Format bildbasierte Argumentationsinhalte** unterstützt, unterstützt Nova 2.0 SFT nur textbasierte Argumentationsinhalte im Feld ReasoningText.
+ **Validierungssätze** — Sie können mit Nova 2.0 keinen Validierungsdatensatz für SFT bereitstellen. Wenn Sie einen Validierungsdatensatz angeben, wird dieser während des Trainings ignoriert. Diese Einschränkung gilt sowohl für UI-basierte als auch für programmatische Jobeinreichungen.

### Unterstützte Medienformate
<a name="nova-2-supported-media"></a>
+ **Bilder** — PNG, JPEG, GIF
+ **Videos** — MOV, MKV, MP4

### Beispiele für Datenformate
<a name="nova-2-data-examples"></a>

------
#### [ Text-only (Nova 1.0 compatible) ]

```
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "system": [  
    {  
      "text": "You are a digital assistant with a friendly personality"  
    }  
  ],  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "text": "What country is right next to Australia?"  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "text": "The closest country is New Zealand"  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Text with reasoning (Nova 2.0) ]

```
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "system": [  
    {  
      "text": "You are a digital assistant with a friendly personality"  
    }  
  ],  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "text": "What country is right next to Australia?"  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "reasoningContent": {  
            "reasoningText": {  
              "text": "I need to use my world knowledge of geography to answer this question"  
            }  
          }  
        },  
        {  
          "text": "The closest country to Australia is New Zealand, located to the southeast across the Tasman Sea."  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Image \$1 text input ]

```
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "system": [  
    {  
      "text": "You are a helpful assistant."  
    }  
  ],  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "image": {  
            "format": "jpeg",  
            "source": {  
              "s3Location": {  
                "uri": "s3://your-bucket/your-path/your-image.jpg",  
                "bucketOwner": "your-aws-account-id"  
              }  
            }  
          }  
        },  
        {  
          "text": "Which country is highlighted in the image?"  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "reasoningContent": {  
            "reasoningText": {  
              "text": "I will determine the highlighted country by examining its location on the map and using my geographical knowledge"  
            }  
          }  
        },  
        {  
          "text": "The highlighted country is New Zealand"  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Video \$1 text input ]

```
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "system": [  
    {  
      "text": "You are a helpful assistant."  
    }  
  ],  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "video": {  
            "format": "mp4",  
            "source": {  
              "s3Location": {  
                "uri": "s3://your-bucket/your-path/your-video.mp4",  
                "bucketOwner": "your-aws-account-id"  
              }  
            }  
          }  
        },  
        {  
          "text": "What is shown in this video?"  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "reasoningContent": {  
            "reasoningText": {  
              "text": "I will analyze the video content to identify key elements"  
            }  
          }  
        },  
        {  
          "text": "The video shows a map with New Zealand highlighted"  
        }  
      ]  
    }  
  ]  
}
```

------

## Aufrufen von Tools
<a name="nova-2-tool-calling"></a>

Nova 2.0 SFT unterstützt Trainingsmodelle anhand von Werkzeugaufrufmustern, sodass Ihr Modell lernen kann, wann und wie externe Tools oder Funktionen aufgerufen werden müssen.

### Datenformat für den Werkzeugaufruf
<a name="nova-2-tool-calling-format"></a>

Zu den Trainingsdaten für das Aufrufen von Tools gehört ein `toolConfig` Abschnitt, in dem die verfügbaren Tools definiert sind, sowie Konversationsrunden, in denen die Verwendungsmuster der Tools veranschaulicht werden.

**Beispieleingabe**

```
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "system": [  
    {  
      "text": "You are an expert in composing function calls."  
    }  
  ],  
  "toolConfig": {  
    "tools": [  
      {  
        "toolSpec": {  
          "name": "getItemCost",  
          "description": "Retrieve the cost of an item from the catalog",  
          "inputSchema": {  
            "json": {  
              "type": "object",  
              "properties": {  
                "item_name": {  
                  "type": "string",  
                  "description": "The name of the item to retrieve cost for"  
                },  
                "item_id": {  
                  "type": "string",  
                  "description": "The ASIN of item to retrieve cost for"  
                }  
              },  
              "required": [  
                "item_id"  
              ]  
            }  
          }  
        }  
      },  
      {  
        "toolSpec": {  
          "name": "getItemAvailability",  
          "description": "Retrieve whether an item is available in a given location",  
          "inputSchema": {  
            "json": {  
              "type": "object",  
              "properties": {  
                "zipcode": {  
                  "type": "string",  
                  "description": "The zipcode of the location to check in"  
                },  
                "quantity": {  
                  "type": "integer",  
                  "description": "The number of items to check availability for"  
                },  
                "item_id": {  
                  "type": "string",  
                  "description": "The ASIN of item to check availability for"  
                }  
              },  
              "required": [  
                "item_id", "zipcode"  
              ]  
            }  
          }  
        }  
      }  
    ]  
  },  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "text": "I need to check whether there are twenty pieces of the following item available. Here is the item ASIN on Amazon: id-123. Please check for the zipcode 94086"  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "reasoningContent": {  
            "reasoningText": {  
              "text": "The user wants to check how many pieces of the item with ASIN id-123 are available in the zipcode 94086"  
            }  
          }  
        },  
        {  
          "toolUse": {  
            "toolUseId": "getItemAvailability_0",  
            "name": "getItemAvailability",  
            "input": {  
              "zipcode": "94086",  
              "quantity": 20,  
              "item_id": "id-123"  
            }  
          }  
        }  
      ]  
    },  
    {  
      "role": "user",  
      "content": [  
        {  
          "toolResult": {  
            "toolUseId": "getItemAvailability_0",  
            "content": [  
              {  
                "text": "[{\"name\": \"getItemAvailability\", \"results\": {\"availability\": true}}]"  
              }  
            ]  
          }  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {  
          "text": "Yes, there are twenty pieces of item id-123 available at 94086. Would you like to place an order or know the total cost?"  
        }  
      ]  
    }  
  ]  
}
```

### Anforderungen für das Aufrufen von Tools
<a name="nova-2-tool-calling-requirements"></a>

Beachten Sie bei der Erstellung von Trainingsdaten für Tool-Calls die folgenden Anforderungen:


| Anforderung | Description | 
| --- | --- | 
| ToolUse Platzierung | ToolUse darf nur in der Runde des Assistenten erscheinen | 
| ToolResult Platzierung | ToolResult darf nur abwechselnd vom Benutzer angezeigt werden | 
| ToolResult Format | ToolResult sollte nur Text oder JSON sein. Andere Modalitäten werden für Nova-Modelle nicht unterstützt | 
| InputSchema-Format | Das InputSchema in der ToolSpec muss ein gültiges JSON-Schemaobjekt sein | 
| toolUseId übereinstimmend | Jeder ToolResult muss auf ein gültiges Element toolUseId eines vorhergehenden Assistenten verweisen ToolUse, wobei jeder Assistent genau einmal pro Konversation toolUseId verwendet wird | 

### Wichtige Hinweise
<a name="nova-2-tool-calling-notes"></a>
+ Stellen Sie sicher, dass Ihre Tooldefinitionen in allen Trainingsbeispielen konsistent sind
+ Das Modell lernt anhand der von Ihnen bereitgestellten Demonstrationen Muster für den Aufruf von Tools
+ Geben Sie verschiedene Beispiele an, wann die einzelnen Tools verwendet werden sollten und wann nicht

## Verstehen von Dokumenten
<a name="nova-2-document-understanding"></a>

Nova 2.0 SFT unterstützt Schulungen zu dokumentenbasierten Aufgaben, sodass Ihr Modell lernen kann, wie man PDF-Dokumente analysiert und Fragen zu ihnen beantwortet.

### Datenformat für das Verständnis von Dokumenten
<a name="nova-2-document-format"></a>

Zu den Trainingsdaten für das Dokumentenverständnis gehören Dokumentverweise in den Inhaltsblöcken für den Benutzer, wobei das Modell lernt, den Inhalt des Dokuments zu extrahieren und zu analysieren.

**Eingabebeispiel**

```
{  
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "text": "What are the ways in which a customer can experience issues during checkout on Amazon?"  
        },  
        {  
          "document": {  
            "format": "pdf",  
            "source": {  
              "s3Location": {  
                "uri": "s3://my-bucket-name/path/to/documents/customer_service_debugging.pdf",  
                "bucketOwner": "123456789012"  
              }  
            }  
          }  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {
          "reasoningContent": {  
            "reasoningText": {  
              "text": "I need to find the relevant section in the document to answer the question."  
            }  
          }
        },
        {  
          "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?"  
        }   
      ]
    }  
  ]  
}
}
```

### Einschränkungen beim Verständnis von Dokumenten
<a name="nova-2-document-limitations"></a>


| Einschränkung | Details | 
| --- | --- | 
| Unterstütztes Format | Nur PDF-Dateien | 
| Maximale Dokumentgröße | 10 MB | 
| Mischen von Modalitäten | Ein Beispiel kann Dokumente und Text enthalten, aber es ist nicht möglich, Dokumente mit anderen Modalitäten (Bilder, Videos) zu mischen | 

### Bewährte Methoden für das Verständnis von Dokumenten
<a name="nova-2-document-best-practices"></a>
+ Stellen Sie sicher, dass Dokumente klar formatiert sind und der Text extrahierbar ist
+ Geben Sie verschiedene Beispiele für verschiedene Dokumenttypen und Fragenformate an
+ Fügen Sie Argumentationsinhalte hinzu, um dem Modell zu helfen, Muster für die Dokumentenanalyse zu erlernen

## Video-Verständnis
<a name="nova-2-video-understanding"></a>

Nova 2.0 SFT unterstützt Schulungen zu videobasierten Aufgaben, sodass Ihr Modell lernen kann, wie es Fragen zu Videoinhalten analysiert und beantwortet.

### Datenformat für das Verständnis von Videos
<a name="nova-2-video-format"></a>

Zu den Trainingsdaten für das Verständnis von Videos gehören Videoreferenzen in den Inhaltsblöcken für den Nutzer. Dabei lernt das Modell, anhand von Videoinhalten Informationen und Argumentation zu extrahieren.

**Eingabe als Beispiel**

```
  
{  
  "schemaVersion": "bedrock-conversation-2024",  
  "messages": [  
    {  
      "role": "user",  
      "content": [  
        {  
          "text": "What are the ways in which a customer can experience issues during checkout on Amazon?"  
        },  
        {  
          "video": {  
            "format": "mp4",  
            "source": {  
              "s3Location": {  
                "uri": "s3://my-bucket-name/path/to/videos/customer_service_debugging.mp4",  
                "bucketOwner": "123456789012"  
              }  
            }  
          }  
        }  
      ]  
    },  
    {  
      "role": "assistant",  
      "content": [  
        {
          "reasoningContent": {  
            "reasoningText": {  
              "text": "I need to find the relevant section in the video to answer the question."  
            }  
          }
        },
        {  
          "text": "Customers can experience issues with 1. Data entry, 2. Payment methods, 3. Connectivity while placing the order. Which one would you like to dive into?"  
        }   
      ]  
    }  
  ]  
}
```

### Einschränkungen beim Videoverständnis
<a name="nova-2-video-limitations"></a>


| Einschränkung | Details | 
| --- | --- | 
| Maximale Videogröße | 50 MB | 
| Maximale Videodauer | 15 Minuten | 
| Videos pro Probe | Pro Probe ist nur ein Video erlaubt. Mehrere Videos in derselben Stichprobe werden nicht unterstützt | 
| Mischen von Modalitäten | Ein Beispiel kann Video und Text enthalten, Video kann jedoch nicht mit anderen Modalitäten (Bildern, Dokumenten) kombiniert werden | 

### Unterstützte Videoformate
<a name="nova-2-video-formats"></a>
+ MOV
+ MKV
+ MP4

### Bewährte Methoden zum Verständnis von Videos
<a name="nova-2-video-best-practices"></a>
+ Halten Sie die Videos kurz und konzentrieren Sie sich auf den Inhalt, der für Ihre Aufgabe relevant ist
+ Stellen Sie sicher, dass die Videoqualität ausreicht, damit das Modell aussagekräftige Informationen extrahieren kann
+ Stellen Sie klare Fragen, die sich auf bestimmte Aspekte des Videoinhalts beziehen
+ Fügen Sie verschiedene Beispiele hinzu, die verschiedene Videotypen und Fragenformate abdecken

## Argumentationsmodus versus Modus ohne Argumentation
<a name="nova-2-reasoning-modes"></a>

### Inhalt des Denkens verstehen
<a name="nova-2-understanding-reasoning"></a>

Der Inhalt des Arguments (auch genannt chain-of-thought) erfasst die Zwischenschritte des Modells beim Denken, bevor eine endgültige Antwort generiert wird. Verwenden `assistant` Sie wiederum das `reasoningContent` Feld, um diese Argumentationsspuren einzufügen.

**Wie wird der Verlust berechnet**
+ **Mit Argumentationsinhalt — Der** Trainingsverlust umfasst sowohl Argumentationstoken als auch Token für das Endergebnis
+ **Ohne Inhalt zum Argumentieren — Der** Trainingsverlust wird nur anhand der endgültigen Ausgangstoken berechnet

Sie können mehrere Runden des Assistenten in Konversationen mit `reasoningContent` mehreren Runden einbeziehen.

**Richtlinien zur Formatierung**
+ Verwenden Sie Klartext, um Inhalte zu begründen
+ Vermeiden Sie Markup-Tags wie `<thinking>` und, `</thinking>` sofern dies nicht ausdrücklich für Ihre Aufgabe erforderlich ist
+ Stellen Sie sicher, dass der Inhalt der Argumentation klar und relevant für den Problemlösungsprozess ist

### Wann sollte der Argumentationsmodus aktiviert werden
<a name="nova-2-when-enable-reasoning"></a>

Stellen Sie `reasoning_enabled: true` in Ihrer Trainingskonfiguration ein, wann:
+ Deine Trainingsdaten enthalten Tokens zur Argumentation
+ Sie möchten, dass das Modell Denkansätze generiert, bevor die endgültigen Ergebnisse erstellt werden
+ Sie benötigen eine verbesserte Leistung bei komplexen Argumentationsaufgaben

Das Training von Nova mit `reasoning_enabled = true` einem Datensatz ohne Argumentation ist zulässig. Dies kann jedoch dazu führen, dass das Modell seine Argumentationsfähigkeit verliert, da Nova in erster Linie lernt, die in den Daten enthaltenen Antworten zu generieren, ohne Argumentation anzuwenden. Wenn Sie Nova anhand eines Datensatzes ohne Argumentation trainieren möchten, aber dennoch erwarten, dass bei Inferenz Argumentation stattfindet, können Sie das Argumentieren während des Trainings () `reasoning_enabled = false` deaktivieren, es aber für Inferenz aktivieren. Dieser Ansatz ermöglicht zwar die Verwendung von Argumenten zum Zeitpunkt der Inferenz, garantiert jedoch keine bessere Leistung im Vergleich zu Schlussfolgerungen ohne Argumentation. Generell sollten Sie Argumentation sowohl für Training als auch für Folgerungen aktivieren, wenn Sie Datensätze mit Argumentation verwenden, und deaktivieren Sie sie für beide, wenn Sie Datensätze ohne Argumentation verwenden.

Stellen Sie ein, wann: `reasoning_enabled: false`
+ In deinen Trainingsdaten gibt es keine Argumentationsnachweise
+ Sie trainieren an einfachen Aufgaben, für die keine expliziten Argumentationsschritte erforderlich sind
+ Sie möchten die Geschwindigkeit optimieren und die Token-Nutzung reduzieren

### Generierung von Argumentationsdaten
<a name="nova-2-generating-reasoning"></a>

Wenn es Ihrem Datensatz an Argumentationsspuren mangelt, können Sie diese mit einem Modell, das Argumentation ermöglicht, wie Nova Premier, erstellen. Stellen Sie dem Modell Ihre Input-Output-Paare zur Verfügung und erfassen Sie dessen Argumentationsprozess, um einen mit Argumenten erweiterten Datensatz zu erstellen.

### Verwendung von Argumentationstoken für das Training
<a name="nova-2-using-reasoning-training"></a>

Beim Training mit aktiviertem Argumentationsmodus lernt das Modell, internes Denken von der endgültigen Antwort zu trennen. Der Trainingsprozess:
+ Organisiert Daten als Tripel: Eingabe, Argumentation und Antwort
+ Optimiert mithilfe von standardmäßigen Verlusten bei der Vorhersage des nächsten Tokens sowohl bei Argumentations- als auch bei Antwort-Tokens
+ Ermutigt das Modell, intern zu argumentieren, bevor Antworten generiert werden

### Inhalte zum effektiven Denken
<a name="nova-2-effective-reasoning"></a>

Hochwertige Inhalte zum Argumentieren sollten Folgendes beinhalten:
+ Zwischengedanken und Analysen
+ Logische Ableitungen und Inferenzschritte
+ Step-by-step Ansätze zur Problemlösung
+ Explizite Zusammenhänge zwischen Schritten und Schlussfolgerungen

Dies hilft dem Modell, die Fähigkeit zu entwickeln, „erst nachzudenken, bevor man antwortet“.

## Richtlinien für die Vorbereitung von Datensätzen
<a name="nova-2-dataset-preparation"></a>

### Größe und Qualität
<a name="nova-2-size-quality"></a>
+ **Empfohlene Größe** — 2.000-10.000 Proben
+ **Mindestanzahl der Proben** — 200
+ **Priorität** — Qualität vor Quantität. Stellen Sie sicher, dass die Beispiele korrekt und gut kommentiert sind
+ **Abstimmung der Anwendungen** — Der Datensatz sollte Ihre Anwendungsfälle in der Produktion genau widerspiegeln

### Vielfalt
<a name="nova-2-diversity"></a>

Nennen Sie verschiedene Beispiele, die:
+ Decken Sie das gesamte Spektrum der erwarteten Eingaben ab
+ Stellen Sie verschiedene Schwierigkeitsgrade dar
+ Schließe Sonderfälle und Varianten mit ein
+ Vermeiden Sie eine Überanpassung an schmale Muster

### Formatierung der Ausgabe
<a name="nova-2-output-formatting"></a>

Geben Sie das gewünschte Ausgabeformat in den Antworten des Assistenten eindeutig an:
+ JSON-Strukturen
+ Tabellen
+ CSV-Format
+ Benutzerdefinierte Formate, die für Ihre Anwendung spezifisch sind

### Multi-turn-Konversationen
<a name="nova-2-multi-turn"></a>

Beachten Sie bei Multiturn-Datensätzen Folgendes:
+ Der Verlust wird nur für die Züge des Assistenten berechnet, nicht für die Züge eines Benutzers
+ Jede Antwort des Assistenten sollte korrekt formatiert sein
+ Sorgen Sie für Konsistenz in allen Gesprächsrunden

### Checkliste für Qualität
<a name="nova-2-quality-checklist"></a>
+ Ausreichende Datensatzgröße (2K-10.000 Stichproben)
+ Vielfältige Beispiele für alle Anwendungsfälle
+ Klare, konsistente Ausgabeformatierung
+ Präzise Beschriftungen und Anmerkungen
+ Repräsentativ für Produktionsszenarien
+ Frei von Widersprüchen oder Unklarheiten

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

Datensätze sollten in einen Bucket hochgeladen werden, auf den Trainingsjobs zugegriffen werden kann. SageMaker Informationen zum Einstellen der richtigen Berechtigungen finden Sie unter [Voraussetzungen](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-general-prerequisites.html).

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

### Hyperparameter auswählen und das Rezept aktualisieren
<a name="nova-2-selecting-hyperparameters"></a>

Das Setup für Nova 2.0 ist weitgehend das gleiche wie für Nova 1.0. Sobald die Eingabedaten auf S3 hochgeladen wurden, verwenden Sie das Rezept aus dem Ordner [SageMaker HyperPod Rezepte](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/nova) im Ordner Fine Tuning. Für Nova 2.0 sind im Folgenden einige der wichtigsten Hyperparameter aufgeführt, die Sie je nach Anwendungsfall aktualisieren können. Das Folgende ist ein Beispiel für das Nova 2.0 SFT PEFT-Rezept. Verwenden Sie den Container-Image-URI, `708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-V2-latest` um einen SFT-Feintuning-Job auszuführen.

Bitte verwenden Sie Version 2.254.1 von SageMaker AI PySDK, um die strikte Kompatibilität mit dem Nova-Training zu gewährleisten. Ein Upgrade des SDK auf Version 3.0 wird zu grundlegenden Änderungen führen. Support für Version 3 von SageMaker AI PySDK ist in Kürze verfügbar.

**Beispieleingabe**

```
!pip install sagemaker==2.254.1
```

```
run:  
  name: {peft_recipe_job_name}  
  model_type: amazon.nova-2-lite-v1:0:256k  
  model_name_or_path: {peft_model_name_or_path}  
  data_s3_path: {train_dataset_s3_path} # SageMaker HyperPod (SMHP) only and not compatible with SageMaker Training jobs. Note replace my-bucket-name with your real bucket name for SMHP job  
  replicas: 4                      # Number of compute instances for training, allowed values are 4, 8, 16, 32  
  output_s3_path: ""               # Output artifact path (Hyperpod job-specific; not compatible with standard SageMaker Training jobs). Note replace my-bucket-name with your real bucket name for SMHP job  
  
training_config:  
  max_steps: 10                   # Maximum training steps. Minimal is 4.  
  save_steps: 10                      # How many training steps the checkpoint will be saved. Should be less than or equal to max_steps  
  save_top_k: 1                    # Keep top K best checkpoints. Note supported only for SageMaker HyperPod jobs. Minimal is 1.  
  max_length: 32768                # Sequence length (options: 8192, 16384, 32768 [default], 65536)  
  global_batch_size: 32            # Global batch size (options: 32, 64, 128)  
  reasoning_enabled: true          # If data has reasoningContent, set to true; otherwise False  
  
  lr_scheduler:  
    warmup_steps: 15               # Learning rate warmup steps. Recommend 15% of max_steps  
    min_lr: 1e-6                   # Minimum learning rate, must be between 0.0 and 1.0  
  
  optim_config:                    # Optimizer settings  
    lr: 1e-5                       # Learning rate, must be between 0.0 and 1.0  
    weight_decay: 0.0              # L2 regularization strength, must be between 0.0 and 1.0  
    adam_beta1: 0.9                # Exponential decay rate for first-moment estimates, must be between 0.0 and 1.0  
    adam_beta2: 0.95               # Exponential decay rate for second-moment estimates, must be between 0.0 and 1.0  
  
  peft:                            # Parameter-efficient fine-tuning (LoRA)  
    peft_scheme: "lora"            # Enable LoRA for PEFT  
    lora_tuning:  
      alpha: 64                    # Scaling factor for LoRA weights ( options: 32, 64, 96, 128, 160, 192),  
      lora_plus_lr_ratio: 64.0
```

Das Rezept enthält auch weitgehend dieselben Hyperparameter wie Nova 1.0. Die bemerkenswerten Hyperparameter sind:
+ `max_steps`— Die Anzahl der Schritte, für die Sie den Job ausführen möchten. Im Allgemeinen gilt für eine Epoche (ein Durchlauf durch Ihren gesamten Datensatz) die Anzahl der Schritte = Anzahl der Datenstichproben/globale Batchgröße. Je größer die Anzahl der Schritte und je kleiner Ihre globale Batchgröße ist, desto länger dauert die Ausführung des Jobs.
+ `reasoning_enabled`— Steuert den Argumentationsmodus für Ihren Datensatz. Optionen:
  + `true`: Aktiviert den Argumentationsmodus (entspricht hohem Argumentationsvermögen)
  + `false`: Deaktiviert den Argumentationsmodus

  Hinweis: Bei SFT gibt es keine detaillierte Kontrolle über den Grad des Argumentationsaufwands. Die Einstellung `reasoning_enabled: true` ermöglicht die volle Argumentationsfähigkeit.
+ `peft.peft_scheme`— Die Einstellung „Lora“ ermöglicht eine PEFT-basierte Feinabstimmung. Wenn Sie es auf Null setzen (keine Anführungszeichen), wird die Full-Rank-Feinabstimmung aktiviert.

### Starte den Trainingsjob
<a name="nova-2-start-job"></a>

```
from sagemaker.pytorch import PyTorch  
  
# define OutputDataConfig path  
if default_prefix:  
    output_path = f"s3://{bucket_name}/{default_prefix}/{sm_training_job_name}"  
else:  
    output_path = f"s3://{bucket_name}/{sm_training_job_name}"  

output_kms_key = "<KMS key arn to encrypt trained model in Amazon-owned S3 bucket>" # optional, leave blank for Amazon managed encryption
  
recipe_overrides = {  
    "run": {  
        "replicas": instance_count,  # Required  
        "output_s3_path": output_path  
    },  
}  
  
estimator = PyTorch(  
    output_path=output_path,  
    base_job_name=sm_training_job_name,  
    role=role,  
    disable_profiler=True,  
    debugger_hook_config=False,  
    instance_count=instance_count,  
    instance_type=instance_type,  
    training_recipe=training_recipe,  
    recipe_overrides=recipe_overrides,  
    max_run=432000,  
    sagemaker_session=sagemaker_session,  
    image_uri=image_uri,
    output_kms_key=output_kms_key,
    tags=[  
        {'Key': 'model_name_or_path', 'Value': model_name_or_path},  
    ]  
)  
  
print(f"\nsm_training_job_name:\n{sm_training_job_name}\n")  
print(f"output_path:\n{output_path}")
```

```
from sagemaker.inputs import TrainingInput  
  
train_input = TrainingInput(  
    s3_data=train_dataset_s3_path,  
    distribution="FullyReplicated",  
    s3_data_type="Converse",  
)  
  
estimator.fit(inputs={"validation": val_input}, wait=False)
```

**Anmerkung**  
Die Weitergabe eines Validierungsdatensatzes wird für die überwachte Feinabstimmung von Nova 2.0 nicht unterstützt.

Um den Job zu beginnen:
+ Aktualisieren Sie das Rezept mit Ihren Datensatzpfaden und Hyperparametern
+ Führen Sie die angegebenen Zellen im Notizbuch aus, um den Trainingsjob abzusenden

Das Notizbuch verarbeitet die Auftragsübermittlung und ermöglicht die Statusverfolgung.

# Reinforcement Fine-Tuning (RFT) mit Amazon Nova-Modellen
<a name="nova-reinforcement-fine-tuning"></a>

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

**Was ist RFT?**

Die Feinabstimmung von Verstärkungen (Reinforcement Fine-Tuning, RFT) verbessert die Leistung des Modells, indem es anhand von Feedbacksignalen trainiert wird — messbare Werte oder Belohnungen, die angeben, wie gut das Modell abgeschnitten hat — und nicht anhand exakt richtiger Antworten. Im Gegensatz zur überwachten Feinabstimmung, die aus Input-Output-Paaren lernt, verwendet RFT Belohnungsfunktionen, um die Modellantworten zu bewerten, und optimiert das Modell iterativ, um diese Belohnungen zu maximieren. Dieser Ansatz zeichnet sich besonders dann aus, wenn es schwierig ist, den exakt richtigen Output zu definieren, aber Sie können die Antwortqualität zuverlässig messen.

**Wann sollte RFT verwendet werden**

Verwenden Sie RFT, wenn Sie klare, messbare Erfolgskriterien definieren können, aber Schwierigkeiten haben, exakt korrekte Ergebnisse für das Training zu liefern. Es ist ideal für:
+ Aufgaben, bei denen die Qualität subjektiv oder vielfältig ist (kreatives Schreiben, Codeoptimierung, komplexes Denken)
+ Szenarien mit mehreren gültigen Lösungen, bei denen einige eindeutig besser sind als andere
+ Anwendungen, die iterative Verbesserungen, Personalisierung oder die Einhaltung komplexer Geschäftsregeln erfordern
+ Fälle, in denen das Sammeln hochwertiger, beschrifteter Beispiele teuer oder unpraktisch ist

**Beste Anwendungsfälle**

RFT zeichnet sich besonders in Bereichen aus, in denen die Ausgabequalität objektiv gemessen werden kann, es jedoch schwierig ist, optimale Antworten im Voraus zu definieren:
+ Mathematische Problemlösung und Codegenerierung
+ Wissenschaftliches Denken und strukturierte Datenanalyse
+ Aufgaben, die step-by-step Argumentation oder mehrstufige Problemlösung erfordern
+ Anwendungen, die mehrere Ziele (Genauigkeit, Effizienz, Stil) unter einen Hut bringen
+ Szenarien, in denen der Erfolg programmatisch anhand von Ausführungsergebnissen oder Leistungskennzahlen verifiziert werden kann

**Unterstützte Modelle**

Nova Lite 2.0

## Überblick über das Datenformat
<a name="nova-rft-data-format"></a>

[RFT-Trainingsdaten müssen dem OpenAI Reinforcement Fine-Tuning-Format entsprechen.](https://platform.openai.com/docs/api-reference/fine-tuning/reinforcement-input) Jedes Trainingsbeispiel ist ein JSON-Objekt, das Folgendes enthält:
+ Ein `messages` Array mit abwechselnden Konversationen `system` und Rollen `user`
+ Ein `reference_answer` Feld, das die erwarteten Ergebnis- oder Bewertungskriterien für die Berechnung der Belohnung enthält

**Derzeitige Einschränkungen**
+ Nur Text

### Beispiele für Datenformate
<a name="nova-rft-data-examples"></a>

Jedes Beispiel sollte sich in einer einzigen Zeile in Ihrer JSONL-Datei befinden, mit einem JSON-Objekt pro Zeile.

------
#### [ Chemistry problem ]

```
{
  "id": "chem-01",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Calculate the molecular weight of caffeine (C8H10N4O2)"
    }
  ],
  "reference_answer": {
    "molecular_weight": 194.19,
    "unit": "g/mol",
    "calculation": "8(12.01) + 10(1.008) + 4(14.01) + 2(16.00) = 194.19"
  }
}
```

------
#### [ Math problem ]

```
{
  "id": "sample-001",  // Optional
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  }
}
```

------
#### [ Code problem ]

```
{
  "id": "code-002",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful programming assistant"
    },
    {
      "role": "user",
      "content": "Write a Python function that reverses a string without using built-in reverse methods"
    }
  ],
  "reference_answer": {
    "code": "def reverse_string(s):  \n    result = ''  \n    for i in range(len(s) - 1, -1, -1):  \n        result += s[i]  \n    return result",
    "test_cases": [
      {
        "input": "hello",
        "expected_output": "olleh"
      },
      {
        "input": "",
        "expected_output": ""
      },
      {
        "input": "a",
        "expected_output": "a"
      },
      {
        "input": "Python123",
        "expected_output": "321nohtyP"
      }
    ],
    "all_tests_pass": true
  }
}
```

------

Das `reference_answer` Feld enthält die erwarteten Ausgabe- oder Bewertungskriterien, anhand derer Ihre Belohnungsfunktion die Antwort des Modells bewertet. Es ist nicht auf strukturierte Ausgaben beschränkt — es kann jedes Format enthalten, das Ihrer Belohnungsfunktion bei der Bewertung der Qualität hilft.

## Empfehlungen zur Größe von Datensätzen
<a name="nova-rft-dataset-size"></a>

**Ausgangspunkt**
+ Mindestens 100 Trainingsbeispiele
+ Mindestens 100 Bewertungsbeispiele

**Der Ansatz steht bei der Bewertung an erster Stelle**

Bevor Sie in groß angelegte RFT-Schulungen investieren, sollten Sie die Ausgangsleistung Ihres Modells bewerten:
+ **Hohe Leistung (> 95% Belohnung)** — RFT ist möglicherweise unnötig — Ihr Modell schneidet bereits gut ab
+ **Sehr schlechte Leistung (Prämie von 0%)** — Wechseln Sie zuerst zu SFT, um die grundlegenden Funktionen zu verbessern
+ **Mäßige Leistung** — RFT ist wahrscheinlich angemessen

Wenn Sie mit einem kleinen Datensatz beginnen, können Sie:
+ Bestätigen Sie, dass Ihre Belohnungsfunktion fehlerfrei ist
+ Stellen Sie sicher, dass RFT der richtige Ansatz für Ihren Anwendungsfall ist
+ Identifizieren und beheben Sie Probleme frühzeitig
+ Testen Sie den Workflow, bevor Sie ihn skalieren

Nach der Validierung können Sie auf größere Datensätze expandieren, um die Leistung weiter zu verbessern.

## Merkmale effektiver Trainingsdaten
<a name="nova-rft-effective-data"></a>

**Klarheit und Kohärenz**

Gute RFT-Beispiele erfordern klare, eindeutige Eingabedaten, die eine genaue Berechnung der Belohnung für verschiedene Modellergebnisse ermöglichen. Vermeiden Sie Rauschen in Ihren Daten, einschließlich:
+ Inkonsistente Formatierung
+ Widersprüchliche Bezeichnungen oder Anweisungen
+ Mehrdeutige Aufforderungen
+ Widersprüchliche Referenzantworten

Jede Unklarheit führt den Trainingsprozess in die Irre und führt dazu, dass das Modell unbeabsichtigte Verhaltensweisen erlernt.

**Diversität**

Ihr Datensatz sollte die gesamte Vielfalt der Anwendungsfälle in der Produktion erfassen, um eine robuste Leistung unter realen Bedingungen zu gewährleisten. Enthalten sind:
+ Verschiedene Eingabeformate und Sonderfälle
+ Bilden Sie die tatsächlichen Nutzungsmuster in der Produktion anhand von Protokollen und Benutzeranalysen ab
+ Sehen Sie sich verschiedene Benutzertypen, geografische Regionen und saisonale Schwankungen an
+ Schließe Schwierigkeitsgrade von einfachen bis hin zu komplexen Problemen ein

**Überlegungen zur Belohnungsfunktion**

Gestalten Sie Ihre Belohnungsfunktion für effizientes Training:
+ Innerhalb von Sekunden (nicht Minuten) ausführen
+ Effektive Parallelisierung mit Lambda
+ Geben Sie konsistente, zuverlässige Ergebnisse zurück
+ Gehen Sie elegant mit verschiedenen Arten von Modellausgaben um

Schnelle, skalierbare Belohnungsfunktionen ermöglichen schnelle Iterationen und kostengünstiges Experimentieren.

## Zusätzliche Eigenschaften
<a name="nova-rft-additional-properties"></a>

Das RFT-Datenformat unterstützt benutzerdefinierte Felder, die über die grundlegenden Schemaanforderungen (`messages`und) hinausgehen. `reference_answer` Dank dieser Flexibilität können Sie alle zusätzlichen Daten hinzufügen, die Ihre Prämienfunktion für eine korrekte Auswertung benötigt.

**Anmerkung**  
Sie müssen dies nicht in Ihrem Rezept konfigurieren — das Datenformat unterstützt grundsätzlich zusätzliche Felder. Füge sie einfach in deine Trainingsdaten-JSON ein und sie werden an deine Belohnungsfunktion im Feld weitergegeben. `metadata`

**Allgemeine zusätzliche Eigenschaften**

Beispiele für Metadatenfelder:
+ `task_id`— Eindeutige Kennung für die Nachverfolgung
+ `difficulty_level`— Indikator für die Komplexität des Problems
+ `domain`— Fachgebiet oder Kategorie
+ `expected_reasoning_steps`— Anzahl der Lösungsschritte

**Beispiel mit zusätzlichen Eigenschaften**

```
{
  "messages": [
    {
      "role": "system",
      "content": "You are a math tutor"
    },
    {
      "role": "user",
      "content": "Solve: 2x + 5 = 13"
    }
  ],
  "reference_answer": {
    "solution": "x = 4",
    "steps": ["2x = 13 - 5", "2x = 8", "x = 4"]
  },
  "task_id": "algebra_001",
  "difficulty_level": "easy",
  "domain": "algebra",
  "expected_reasoning_steps": 3
}
```

Diese zusätzlichen Felder werden während der Auswertung an Ihre Belohnungsfunktion übergeben und ermöglichen so eine ausgeklügelte Bewertungslogik, die auf Ihren speziellen Anwendungsfall zugeschnitten ist.

## Konfiguration des Trainings
<a name="nova-rft-training-config"></a>

**Beispielrezept**

```
# Note:
# This recipe can run on p5.48xlarge and p5en.48xlarge instance types.
run:
  name: "my-rft-run"                           # Unique run name (appears in logs/artifacts).
  model_type: amazon.nova-2-lite-v1:0:256k
  model_name_or_path: nova-lite-2/prod
  data_s3_path: s3://<bucket>/<data file>      # Training dataset in JSONL;
  replicas: 4
  reward_lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name>

  ## MLFlow configs
  mlflow_tracking_uri: "" # Required for MLFlow
  mlflow_experiment_name: "my-rft-experiment" # Optional for MLFlow. Note: leave this field non-empty
  mlflow_run_name: "my-rft-run" # Optional for MLFlow. Note: leave this field non-empty

## SMTJ GRPO Training specific configs
training_config:
  max_length: 8192                              # Context window (tokens) for inputs+prompt;
  global_batch_size: 16                         # Total samples per optimizer step across all replicas (16/32/64/128/256).
  reasoning_effort: high                        # Enables reasoning mode high / low / or null for non-reasoning

  rollout:                                      # How responses are generated for GRPO/advantage calc.
    advantage_strategy:
      number_generation: 2                      # N samples per prompt to estimate advantages (variance vs cost).
    generator:
      max_new_tokens: 6000                      # Cap on tokens generated per sample
      set_random_seed: true                     # Seed generation for reproducibility across runs.
      temperature: 1                            # Softmax temperature;
      top_k: 1                                  # Sample only from top-K logits
    rewards:
      preset_reward_function: null              # Usage of preset reward functions [exact_match]
      api_endpoint:
        lambda_arn: arn:aws:lambda:<region>:<account-id>:function:<function-name>
        lambda_concurrency_limit: 12             # Max concurrent Lambda invocations (throughput vs. throttling).

  trainer:
    max_steps: 2                                 # Steps to train for. One Step = global_batch_size
    save_steps: 5
    test_steps: 1

    # RL parameters
    ent_coeff: 0.0                              # A bonus added to the policy loss that rewards higher-output entropy.
    kl_loss_coef: 0.001                         # Weight on the KL penalty between the actor (trainable policy) and a frozen reference model

    optim_config:                    # Optimizer settings
        lr: 5e-5                       # Learning rate
        weight_decay: 0.0              # L2 regularization strength (0.0–1.0)
        adam_beta1: 0.9
        adam_beta2: 0.95

    peft:                            # Parameter-efficient fine-tuning (LoRA)
        peft_scheme: "lora"            # Enable LoRA for PEFT
        lora_tuning:
            alpha: 32
            lora_plus_lr_ratio: 64.0     # LoRA+ learning rate scaling factor (0.0–100.0)
```

## RFT-Training mit LLM als Richter
<a name="nova-rft-llm-judge"></a>

### -Übersicht
<a name="nova-rft-llm-judge-overview"></a>

Große Sprachmodelle (LLMs) werden zunehmend als Richter in Workflows zur Reinforcement-Feinabstimmung (RFT) eingesetzt, da sie automatisierte Belohnungssignale liefern, die als Richtschnur für die Modelloptimierung dienen. Bei diesem Ansatz bewertet ein LLM die Ergebnisse des Modells anhand bestimmter Kriterien — sei es bei der Bewertung von Korrektheit, Qualität, Stiltreue oder semantischer Gleichwertigkeit — und vergibt Belohnungen, die den Reinforcement-Learning-Prozess vorantreiben.

Dies ist besonders nützlich für Aufgaben, bei denen traditionelle Belohnungsfunktionen programmatisch schwer zu definieren sind, z. B. um festzustellen, ob verschiedene Repräsentationen (wie „1/3“, „0,333“ und „ein Drittel“) semantisch gleichwertig sind, oder um nuancierte Eigenschaften wie Kohärenz und Relevanz zu bewerten. Durch die Verwendung von LLM-basierten Juroren als Belohnungsfunktionen können Sie RFT auf komplexe Bereiche skalieren, ohne dass umfangreiche menschliche Anmerkungen erforderlich sind. Dies ermöglicht eine schnelle Iteration und kontinuierliche Verbesserung Ihrer Modelle für verschiedene Anwendungsfälle, die über herkömmliche Ausrichtungsprobleme hinausgehen.

### Auswahl des Argumentationsmodus
<a name="nova-rft-reasoning-mode"></a>

**Verfügbare Modi**
+ none — Keine Begründung (lassen Sie das Feld reasoning\$1effort weg)
+ niedrig — Minimaler Argumentationsaufwand
+ hoch — Maximales Argumentationsvermögen (Standard, wenn reasoning\$1effort angegeben ist)

**Anmerkung**  
Es gibt keine mittlere Option für RFT. Wenn das Feld reasoning\$1effort in Ihrer Konfiguration nicht vorhanden ist, ist Reasoning deaktiviert. Wenn Argumentation aktiviert ist, sollten Sie den Wert auf 32768 setzen, um die Ausgabe erweiterter Argumentation `max_new_tokens` zu berücksichtigen.

**Wann sollten die einzelnen Modi verwendet werden**

Verwenden Sie gute Argumentation für:
+ Komplexe analytische Aufgaben
+ Mathematische Problemlösung
+ Mehrstufige logische Deduktion
+ Aufgaben, bei denen step-by-step Denken einen Mehrwert bietet

Verwende keine Argumentation (weglasse reasoning\$1effort) oder niedrige Argumentation für:
+ Einfache sachliche Fragen
+ Direkte Klassifizierungen
+ Geschwindigkeits- und Kostenoptimierung
+ Unkomplizierte Beantwortung von Fragen

**Kompromisse bei Kosten und Leistung**

Höhere Denkweisen nehmen zu:
+ Dauer und Kosten der Schulung
+ Latenz und Kosten von Inferenzen
+ Modellfähigkeit für komplexe Denkaufgaben

### Validierung Ihres LLM-Richters
<a name="nova-rft-validating-judge"></a>

Bevor Sie einen LLM-as-a-judge in der Produktion einsetzen, überprüfen Sie, ob die Bewertungen des Richtermodells dem menschlichen Urteilsvermögen entsprechen. Dies beinhaltet:
+ Messen Sie die Übereinstimmungsraten zwischen dem LLM-Richter und menschlichen Gutachtern anhand repräsentativer Stichproben Ihrer Aufgabe
+ Sicherstellung, dass die Übereinstimmung zwischen dem LLM und den Menschen die zwischen den Menschen erzielten Übereinstimmungsraten erreicht oder sogar übertrifft
+ Identifizierung potenzieller Vorurteile im Richtermodell
+ Schaffen Sie die Gewissheit, dass das Belohnungssignal Ihr Modell in die beabsichtigte Richtung lenkt

Dieser Validierungsschritt trägt dazu bei, dass im Rahmen des automatisierten Bewertungsprozesses Modelle erstellt werden, die Ihren Qualitätskriterien für die Produktion entsprechen.

### Lambda-Konfiguration für LLM Judge
<a name="nova-rft-lambda-config"></a>

Die Verwendung eines LLM als Richter ist eine Erweiterung der Verwendung von Lambda-Funktionen für Reinforcement Learning with Verifiable Rewards (RLVR). In der Lambda-Funktion rufen Sie eines der in Amazon Bedrock gehosteten Modelle auf.

**Wichtige Konfigurationsanforderungen:**


| Konfiguration | Anforderung | Details | 
| --- | --- | --- | 
| Amazon Bedrock-Durchsatz | Ausreichende Quote | Stellen Sie sicher, dass Ihr Durchsatzkontingent für das verwendete Amazon Bedrock-Modell für Ihren Trainingsaufwand ausreicht | 
| Lambda-Zeitüberschreitung | Verlängertes Timeout | Konfigurieren Sie Ihr Lambda-Funktions-Timeout auf maximal 15 Minuten. Die Standardeinstellung ist 3 Sekunden, was für Amazon Bedrock-Modellantworten nicht ausreichend ist | 
| Lambda-Gleichzeitigkeit | Höhere Parallelität | Das Lambda wird während des Trainings parallel aufgerufen. Erhöhen Sie die Parallelität, um den verfügbaren Durchsatz zu maximieren | 
| Konfiguration des Rezepts | Lambda-Einstellungen anpassen | Das Parallelitätslimit muss in Ihrem Rezept konfiguriert sein | 

## Jobs erstellen und ausführen
<a name="nova-rft-creating-jobs"></a>

**Einen Ausbildungsjob beginnen**

Verwenden Sie die Vorlage für ein SageMaker Trainingsjob-Notizbuch: [https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-fine-tuning-training-job.html#nova-model-training-jobs-notebook)

**Anforderungen an die Instanz**

Der Container unterstützt sowohl Full-Rank- als auch LoRa-Schulungen:
+ **LoRa-Schulung** — 2/4/6/8 × p5.48xlarge- oder p5en.48xlarge-Instances
+ **Schulung mit vollem** Rang — 2/4/6/8 × p5.48xlarge-Instances (erforderlich)

## Überwachung der Schulung
<a name="nova-rft-monitoring"></a>

Die Trainingsprotokolle enthalten bei jedem Schritt umfassende Kennzahlen. Kategorien der wichtigsten Kennzahlen:

**Kennzahlen belohnen**
+ `critic/rewards/mean`,`critic/rewards/max`, `critic/rewards/min` — Verteilung der Prämien
+ `val-score/rewards/mean@1`— Prämien für die Validierung

**Verhalten modellieren**
+ `actor/entropy`— Politische Variation (höher = eher explorativ)

**Gesundheit trainieren**
+ `actor/pg_loss`— Politischer Gradientenverlust
+ `actor/pg_clipfrac`— Häufigkeit abgeschnittener Aktualisierungen
+ `actor/grad_norm`— Größe des Gradienten

**Eigenschaften der Reaktion**
+ `prompt_length/mean`,`prompt_length/max`, `prompt_length/min` — Token-Statistiken eingeben
+ `response_length/mean`,`response_length/max`, `response_length/min` — Token-Statistiken ausgeben
+ `response/aborted_ratio`— Unvollständige Generierungsrate (0 = alles abgeschlossen)

**Leistung**
+ `perf/throughput`— Durchsatz des Trainings
+ `perf/time_per_step`— Zeit pro Trainingsschritt
+ `timing_per_token_ms/*`— Verarbeitungszeiten pro Token

**Nutzung von Ressourcen**
+ `perf/max_memory_allocated_gb`, `perf/max_memory_reserved_gb` — GPU-Speicher
+ `perf/cpu_memory_used_gb`— CPU-Speicher

## Verwendung fein abgestimmter Modelle
<a name="nova-rft-using-models"></a>

Nach Abschluss des Trainings wird der endgültige Modellprüfpunkt am angegebenen Ausgabeort gespeichert. Der Checkpoint-Pfad ist verfügbar in:
+ Trainingsprotokolle
+ `manifest.json`Datei im Amazon S3 S3-Ausgabespeicherort (definiert durch `output_s3_uri` in Ihrem Notizbuch)

## Einschränkungen und bewährte Methoden
<a name="nova-rft-limitations"></a>

**Einschränkungen**
+ **Lambda-Timeout** — Belohnungsfunktionen müssen innerhalb von 15 Minuten abgeschlossen sein (verhindert außer Kontrolle geratene Prozesse und verwaltet die Kosten)
+ **Nur Single-Turn-Konversationen — Konversationen** mit mehreren Turns werden nicht unterstützt
+ **Datenanforderungen** — Benötigt ausreichend Vielfalt; hat Probleme mit spärlichen Belohnungen (< 5% positive Beispiele)
+ **Rechenkosten** — Teurer als überwachte Feinabstimmung
+ **Keine multimodalen Daten** — Es wird nur der Textdatentyp unterstützt

**Best Practices**

**Fangen Sie klein an**
+ Beginnen Sie mit 100-200 Beispielen
+ Überprüfen Sie die Richtigkeit der Belohnungsfunktion
+ Skalieren Sie schrittweise auf der Grundlage der Ergebnisse

**Bewertung vor dem Training**
+ Testen Sie die Leistung des Basismodells vor der RFT
+ Liegen die Prämien durchweg bei 0%, verwenden Sie zunächst SFT, um die grundlegenden Funktionen festzulegen
+ Wenn die Prämien > 95% sind, ist RFT möglicherweise unnötig

**Überwachen Sie das Training**
+ Verfolge die durchschnittlichen Punktzahlen und die Verteilung der Prämien
+ Achten Sie auf Überanpassung (die Trainingsbelohnungen steigen, während die Validierungsprämien sinken)
+ Achten Sie auf besorgniserregende Muster:
  + Die Belohnungen bewegen sich auf einem Plateau unter 0,15
  + Zunehmende Varianz der Belohnungen im Laufe der Zeit
  + Sinkende Validierungsleistung

**Optimieren Sie die Belohnungsfunktionen**
+ Innerhalb von Sekunden (nicht Minuten) ausführen
+ Minimiere externe API-Aufrufe
+ Verwenden Sie effiziente Algorithmen
+ Implementieren Sie die richtige Fehlerbehandlung
+ Nutzen Sie die parallel Skalierung von Lambda

**Iterationsstrategie**

Wenn sich die Belohnungen nicht verbessern:
+ Passen Sie das Design der Belohnungsfunktion an
+ Erhöhen Sie die Vielfalt der Datensätze
+ Fügen Sie weitere repräsentative Beispiele hinzu
+ Stellen Sie sicher, dass die Belohnungssignale klar und konsistent sind

## Erweiterte Funktionen: Nova Forge
<a name="nova-rft-advanced"></a>

Für Benutzer, die erweiterte Funktionen benötigen, die über die standardmäßigen RFT-Beschränkungen hinausgehen, ist Nova Forge als kostenpflichtiger Abonnementdienst erhältlich und bietet:
+ Unterstützung für Multi-Turn-Konversationen
+ Belohnen Sie Funktionen mit einer Ausführungszeit von > 15 Minuten
+ Zusätzliche Algorithmen und Optimierungsoptionen
+ Änderungen an benutzerdefinierten Trainingsrezepten
+ State-of-the-art KI-Techniken

Nova Forge läuft auf SageMaker HyperPod und wurde entwickelt, um Unternehmenskunden dabei zu unterstützen, ihre eigenen Grenzmodelle zu entwickeln.

## Nützliche Befehle und Tipps
<a name="nova-rft-useful-commands"></a>

Es steht eine Sammlung von [Observability-Skripten](https://github.com/aws-samples/amazon-nova-samples/tree/main/customization/SageMakerUilts/SageMakerJobsMonitoring) zur Verfügung, mit deren Hilfe der Status und Fortschritt von Schulungsaufgaben überwacht werden kann.

Verfügbare Skripte sind:
+ Aktivierung von E-Mail-Benachrichtigungen für Statusaktualisierungen von Schulungsaufträgen
+ Abrufen von Schätzungen der Schulungszeit auf der Grundlage von Jobkonfigurationen
+ Einholung von Näherungswerten darüber, wie lange die Schulung für laufende Tätigkeiten voraussichtlich dauern wird

**Installation**

**Anmerkung**  
Stellen Sie sicher, dass Sie Ihre AWS Anmeldeinformationen aktualisieren, bevor Sie eines der folgenden Skripts verwenden.

```
pip install boto3
git clone https://github.com/aws-samples/amazon-nova-samples.git
cd amazon-nova-samples/customization/SageMakerUilts/SageMakerJobsMonitoring/
```

**Grundlegende Verwendung**

```
# Enabling email notifications for training job status updates
python enable_sagemaker_job_notifs.py --email test@amazon.com test2@gmail.com --region us-east-1 --platform SMTJ

Creating resources........
Please check your email for a subscription confirmation email, and click 'Confirm subscription' to start receiving job status email notifications!
You'll receive the confirmation email within a few minutes.
```

```
# Obtaining training time estimates based on job configurations
python get_training_time_estimate.py
```

```
# Obtaining approximations for how long training is expected to take for in-progress jobs
python get-training-job-progress.py --region us-east-1 --job-name my-training-job --num-dataset-samples 1000
```

Weitere Details und Beispiele finden Sie [hier](https://github.com/aws-samples/amazon-nova-samples/blob/main/customization/SageMakerUilts/SageMakerJobsMonitoring/README.md).