

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.

# Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall
<a name="custom-models"></a>

Modellanpassung ist der Prozess, bei dem einem Modell Trainingsdaten zur Verfügung gestellt werden, um seine Leistung für bestimmte Anwendungsfälle zu verbessern. Sie können Amazon-Bedrock-Basismodelle anpassen, um ihre Leistung zu steigern und ein besseres Kundenerlebnis zu schaffen. Amazon Bedrock bietet derzeit die folgenden Anpassungsmethoden.
+ **Betreute Feinabstimmung**

  Stellen Sie *beschriftete* Daten zur Verfügung, um ein Modell für eine bessere Leistung bei bestimmten Aufgaben zu trainieren. Durch die Bereitstellung eines Trainingsdatensatzes mit beschrifteten Beispielen lernt das Modell, welche Arten von Ausgaben für bestimmte Arten von Eingaben generiert werden sollen. Die Modellparameter werden in diesem Prozess angepasst und die Modellleistung für die durch den Trainingsdatensatz dargestellten Aufgaben wird verbessert.

  Weitere Hinweise zur Verwendung der überwachten Feinabstimmung finden Sie unter. [Passen Sie ein Modell mit Feinabstimmungen in Amazon Bedrock an](custom-model-fine-tuning.md)
+ **Feinabstimmung der Verstärkung**

  Die Feinabstimmung von Reinforcement verbessert die Abstimmung des Fundamentmodells auf Ihren spezifischen Anwendungsfall durch Feedback-basiertes Lernen. Anstatt beschriftete Input-Output-Paare bereitzustellen, definieren Sie Belohnungsfunktionen, mit denen die Qualität der Antworten bewertet wird. Das Modell lernt iterativ, indem es Feedbackwerte aus diesen Belohnungsfunktionen erhält.

  Sie können die Datensätze Ihrer Trainingsanweisungen hochladen oder vorhandene Bedrock-Aufrufprotokolle bereitstellen. Sie können Belohnungsfunktionen definieren, anhand AWS Lambda derer die Qualität der Antworten bewertet wird. Amazon Bedrock automatisiert den Schulungsablauf und bietet Echtzeitmetriken zur Überwachung des Lernfortschritts der Modelle.

  Weitere Informationen zur Feinabstimmung von Verstärkungen finden Sie unter. [Passen Sie ein Modell mit Verstärkungsfeinabstimmung in Amazon Bedrock an](reinforcement-fine-tuning.md)
+ **Destillation**

  Mit der Destillation können Sie Wissen von einem größeren, intelligenteren Modell (Lehrer) auf ein kleineres, schnelleres und kostengünstigeres Modell (Schüler) übertragen. Amazon Bedrock automatisiert den Destillationsprozess mithilfe der neuesten Datensynthesetechniken, um anhand des Lehrermodells vielfältige, qualitativ hochwertige Antworten zu generieren und das Schülermodell zu optimieren. 

  Wenn Sie die Destillation verwenden möchten, wählen Sie ein Lehrermodell aus, dessen Genauigkeit Sie für Ihren Anwendungsfall erreichen möchten, und ein Schülermodell für die Feinabstimmung. Dann geben Sie anwendungsfallspezifische Prompts als Eingabedaten an. Für die bereitgestellten Prompts generiert Amazon Bedrock Antworten aus dem Lehrermodell und optimiert das Schülermodell dann anhand der Antworten. Sie können optional beschriftete Eingabedaten als Prompt-Antwort-Paare bereitstellen. 

  Weitere Informationen zur Verwendung der Destillation finden Sie unter [Anpassen eines Modells mit Destillation in Amazon Bedrock](model-distillation.md).

Informationen zu Kontingenten für Modellanpassungen finden Sie unter [Amazon-Bedrock-Endpunkte und -Kontingente](https://docs.aws.amazon.com/general/latest/gr/bedrock.html) in der Allgemeine AWS-Referenz.

**Anmerkung**  
Die Kosten für das Modelltraining basieren auf der Anzahl der vom Modell verarbeiteten Token (Anzahl der Token im Trainingsdatenkorpus × Anzahl der Epochen) und auf dem pro Monat und Modell berechneten Modellspeicher. Weitere Informationen finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing/).

# Passen Sie ein Modell mit Feinabstimmungen in Amazon Bedrock an
<a name="custom-model-fine-tuning"></a>

Mit Amazon Bedrock können Sie ein Basismodell trainieren, um die Leistung bei bestimmten Aufgaben zu verbessern (bekannt als Feinabstimmung). Weitere Informationen zur Feinabstimmung von Amazon Nova-Modellen finden Sie unter [Feinabstimmung von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

## Unterstützte Modelle und Regionen für die Feinabstimmung
<a name="custom-model-supported"></a>

In der folgenden Tabelle sind die Basismodelle aufgeführt, die Sie verfeinern können:


| Anbieter | Modell | Modell-ID | Unterstützung von Modellen für einzelne Regionen | 
| --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v 1:0:256 k |  us-east-1  | 
| Amazon | Nova Canvas | Amazonas. nova-canvas-v1:0 |  us-east-1  | 
| Amazon | Nova Lite | Amazonas. nova-lite-v1:0:300 k |  us-east-1  | 
| Amazon | Nova Micro | Amazonas. nova-micro-v1:0:128 k |  us-east-1  | 
| Amazon | Nova Pro | Amazonas. nova-pro-v1:0:300 k |  us-east-1  | 
| Amazon | Titan Image Generator G1 v2 | Amazonas. titan-image-generator-v2:0 |  us-east-1 us-west-2  | 
| Amazon | Titan Multimodal Embeddings G1 | Amazonas. titan-embed-image-v1:0 |  us-east-1 us-west-2  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0:200k |  us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.llama3-1-70 1:0:128 k b-instruct-v |  us-west-2  | 
| Meta | Llama 3,1 8B Instruct | meta.llama3-1-8 1:0:128 k b-instruct-v |  us-west-2  | 
| Meta | Llama 3.2 11B Instruct | meta.llama3-2-11 1:0:128 k b-instruct-v |  us-west-2  | 
| Meta | Llama 3.2 1B Instruct | meta.llama3-2-1 1:0:128 k b-instruct-v |  us-west-2  | 
| Meta | Llama 3.2 3B Instruct | meta.llama3-2-3 b-instruct-v 1:0:128 k |  us-west-2  | 
| Meta | Llama 3.2 90B Instruct | meta.llama3-2-90 b-instruct-v 1:0:128 k |  us-west-2  | 
| Meta | Llama 3.3 70B Instruct | meta.llama3-3-70 1:0:128 k b-instruct-v |  us-west-2  | 

Hinweise zu Hyperparametern zur Modellanpassung für jedes Modell finden Sie unter. [Hyperparameter für benutzerdefinierte Modelle](custom-models-hp.md)

# Bereiten Sie Daten für die Feinabstimmung Ihrer Modelle vor
<a name="model-customization-prepare"></a>

Zum Vorbereiten von Trainings- und Validierungsdatensätzen für Ihr benutzerdefiniertes Modell erstellen Sie `.jsonl`-Dateien, bei denen jede Zeile ein JSON-Objekt ist, das einem Datensatz entspricht. Bevor Sie mit einer Modellanpassung beginnen können, müssen Sie mindestens einen Trainingsdatensatz vorbereiten. Die von Ihnen erstellten Dateien müssen dem Format für die Anpassung und das ausgewählte Modell entsprechen. Die darin enthaltenen Datensätze müssen die Größenanforderungen je nach Modell erfüllen. 

Weitere Informationen zu den Modellanforderungen finden Sie unter [Modellanforderungen für Trainings- und Validierungsdatensätze](#model-training-validation-requirements). Die Standardkontingente, die für Trainings- und Validierungsdatensätze gelten, welche für die Anpassung verschiedener Modelle verwendet werden, finden Sie unter **Summe der Trainings- und Validierungsdatensätze** unter [Endpunkte und Kontingente von Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html) in der Allgemeine AWS-Referenz. 

Ob ein Validierungsdatensatz unterstützt wird und welches Format Ihr Trainings- und Validierungsdatensatz hat, hängt von den folgenden Faktoren ab. 
+ Die Art des Anpassungsauftrags zur Feinabstimmung.
+ Die Eingabe- und Ausgabemodalitäten der Daten

Informationen zur Feinabstimmung der Modelle von Amazon Nova finden Sie unter [Feinabstimmung der Modelle von Amazon Nova](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

## Unterstützte Modalitäten für die Feinabstimmung
<a name="model-customization-data-support"></a>

In den folgenden Abschnitten werden die verschiedenen Funktionen zur Feinabstimmung beschrieben, die von den einzelnen Modellen unterstützt werden, geordnet nach ihren Eingabe- und Ausgabemodalitäten. Weitere Informationen zur Feinabstimmung von Amazon Nova-Modellen finden Sie unter [Feinabstimmung von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

**Text-to-Text -**-Modelle

Text-to-Text Modelle können für verschiedene textbasierte Aufgaben optimiert werden, sowohl für Konversationsanwendungen als auch für Anwendungen, die nicht auf Konversation basieren. Hinweise zur Vorbereitung von Daten für die Feinabstimmung von Modellen finden Sie unter. Text-to-Text [Bereiten Sie Daten für die Feinabstimmung von Modellen vor text-to-text](#preparing-text-data) 

Die folgenden Modelle ohne Konversationen sind für Aufgaben wie Zusammenfassung, Übersetzung und Beantwortung von Fragen optimiert:
+ Amazon Titan Text G1 - Express
+ Amazon Titan Text G1 - Lite
+ Amazon Titan Text Premier
+ Cohere Command
+ Cohere Command Light
+ Meta Llama 3.1 8B Instruct
+ Meta Llama 3.1 70B Instruct

Die folgenden Konversationsmodelle sind für Single-Turn- und Multi-Turn-Interaktionen konzipiert. Wenn ein Modell die Converse-API verwendet, muss Ihr Datensatz zur Feinabstimmung dem Nachrichtenformat der Converse-API entsprechen und System-, Benutzer- und Assistentennachrichten enthalten. Beispiele finden Sie unter [Bereiten Sie Daten für die Feinabstimmung von Modellen vor text-to-text](#preparing-text-data). Weitere Informationen über Converse-API-Operationen finden Sie im Abschnitt [Führen einer Konversation mit den Converse-API-Operationen](conversation-inference.md).
+ Anthropic Claude 3 Haiku
+ Meta Llama 3.2 1B Instruct (Converse-API-Format)
+ Meta Llama 3.2 3B Instruct (Converse-API-Format)
+ Meta Llama 3.2 11B Instruct Vision (Converse-API-Format)
+ Meta Llama 3.2 90B Instruct Vision (Converse-API-Format)
+ Meta Llama 3.3 70B Vision Instruct (Converse-API-Format)

**Text-Image-to-Text & Text-to-Image Modelle**

Die folgenden Modelle unterstützen die Feinabstimmung für die Bildgenerierung und die Text-Bild-Verarbeitung. Diese Modelle verarbeiten oder generieren Bilder auf der Grundlage von Texteingaben oder generieren Text, der sowohl auf Text- als auch auf Bildeingaben basiert. Informationen zur Vorbereitung von Daten für die Feinabstimmung von Text-to-Image Modellen Text-Image-to-Text und Modellen finden Sie unter[Vorbereiten von Daten für die Feinabstimmung von Bild- und Textverarbeitungsmodellen](#preparing-image-text-data).
+ Amazon Titan Image Generator G1 V1
+ Meta Llama 3.2 11B Instruct Vision
+ Meta Llama 3.2 90B Instruct Vision
+ Meta Llama 3,3 70B Vision Instruct

**Bild-zu-Einbettungen**

Die folgenden Modelle unterstützen die Feinabstimmung für Aufgaben wie Klassifizierung und Abruf. Diese Modelle erzeugen numerische Repräsentationen (Einbettungen) aus Bildeingaben. Informationen zur Vorbereitung von Daten für die Feinabstimmung von Image-to-Embeddings Modellen finden Sie unter. [Vorbereiten von Daten für die Feinabstimmung der Bildgenerierung und das Einbetten von Modellen](#preparing-image-generation-data)
+ Amazon Titan Multimodal Embeddings G1
+ Amazon Titan Image Generator G1 V1

## Modellanforderungen für Trainings- und Validierungsdatensätze
<a name="model-training-validation-requirements"></a>

In den folgenden Abschnitten werden die Anforderungen an Trainings- und Validierungsdatensätze für ein Modell aufgeführt. Informationen zu Datensatzeinschränkungen für Modelle von Amazon Nova finden Sie unter [Feinabstimmung von Modellen in Amazon Nova](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

### Amazon Titan Text Premier
<a name="quotas-cm-titan-premier"></a>


****  

| Description | Maximum (Feinabstimmung) | 
| --- | --- | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 1 ist | 4.096 | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 2, 3 oder 4 ist | – | 
| Zeichenkontingent pro Stichprobe im Datensatz | Token-Kontingent x 6 (geschätzt) | 
| Dateigröße des Trainingsdatensatzes | 1 GB | 
| Dateigröße des Validierungsdatensatzes | 100 MB | 

### Amazon Titan Text G1 - Express
<a name="quotas-cm-titan-text"></a>


****  

| Description | Maximum (Feinabstimmung) | 
| --- | --- | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 1 ist | 4.096 | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 2, 3 oder 4 ist | 2 048 | 
| Zeichenkontingent pro Stichprobe im Datensatz | Token-Kontingent x 6 (geschätzt) | 
| Dateigröße des Trainingsdatensatzes | 1 GB | 
| Dateigröße des Validierungsdatensatzes | 100 MB | 

### Amazon Titan Text G1 - Lite
<a name="quotas-cm-titan-text-lite"></a>


****  

| Description | Maximum (Feinabstimmung) | 
| --- | --- | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 1 oder 2 ist | 4.096 | 
| Summe der Ein- und Ausgabetoken, wenn die Batchgröße 3, 4, 5 oder 6 ist | 2 048 | 
| Zeichenkontingent pro Stichprobe im Datensatz | Token-Kontingent x 6 (geschätzt) | 
| Dateigröße des Trainingsdatensatzes | 1 GB | 
| Dateigröße des Validierungsdatensatzes | 100 MB | 

### Amazon Titan Image Generator G1 V1
<a name="quotas-cm-titan-image"></a>


****  

| Description | Minimum (Feinabstimmung) | Maximum (Feinabstimmung) | 
| --- | --- | --- | 
| Länge der Text-Prompts im Trainingsbeispiel, in Zeichen | 3 | 1,024 | 
| Einträge in einem Trainingsdatensatz | 5 | 10.000 | 
| Größe des Eingabebilds | 0 | 50 MB | 
| Höhe des Eingabebilds in Pixel | 512 | 4.096 | 
| Breite des Eingabebilds in Pixel | 512 | 4.096 | 
| Gesamtzahl der Pixel für das Eingabebild | 0 | 12.582.912 | 
| Seitenverhältnis des Eingabebilds | 1:4 | 4:1 | 

### Amazon Titan Multimodal Embeddings G1
<a name="quotas-cm-titan-mm-embed"></a>


****  

| Description | Minimum (Feinabstimmung) | Maximum (Feinabstimmung) | 
| --- | --- | --- | 
| Länge der Text-Prompts im Trainingsbeispiel, in Zeichen | 0 | 2.560 | 
| Einträge in einem Trainingsdatensatz | 1.000 | 500 000 | 
| Größe des Eingabebilds | 0 | 5 MB | 
| Höhe des Eingabebilds in Pixel | 128 | 4096 | 
| Breite des Eingabebilds in Pixel | 128 | 4096 | 
| Gesamtzahl der Pixel für das Eingabebild | 0 | 12.528.912 | 
| Seitenverhältnis des Eingabebilds | 1:4 | 4:1 | 

### Meta Llama 3.1
<a name="quotas-cm-meta-llama-3-1"></a>


****  

| Description | Minimum (Feinabstimmung) | Maximum (Feinabstimmung) | 
| --- | --- | --- | 
| Eingabe-Token | 0 | 16,000 | 
| Ausgabe-Token | 0 | 16,000 | 
| Zeichenkontingent pro Stichprobe im Datensatz | 0 | Token-Kontingent x 6 (geschätzt) | 
| Summe der Eingabe- und Ausgabetoken | 0 | 16,000 | 
| Summe der Trainings- und Validierungsdatensätze | 100 | 10 000 (einstellbar über Service Quotas) | 

### Meta Llama 3.2
<a name="quotas-cm-meta-llama-3-2"></a>

Zu den unterstützten Bildformaten für Meta Llama-3.2 11B Vision Instruct und Meta Llama-3.2 90B Vision Instruct gehören: `gif`, `jpeg`, `png` und `webp`. Um die image-to-token Umrechnung bei der Feinabstimmung dieser Modelle abzuschätzen, können Sie diese Formel als Näherung verwenden:. `Tokens = min(2, max(Height // 560, 1)) * min(2, max(Width // 560, 1)) * 1601` Bilder werden basierend auf ihrer Größe in ungefähr 1 601 bis 6 404 Token konvertiert.


****  

| Description | Minimum (Feinabstimmung) | Maximum (Feinabstimmung) | 
| --- | --- | --- | 
| Summe der Eingabe- und Ausgabetoken | 0 | 16 000 (10 000 für Meta Llama 3.2 90B) | 
| Summe der Trainings- und Validierungsdatensätze | 100 | 10 000 (einstellbar über Service Quotas) | 
| Eingabebildgröße (für Modelle von Meta Llama 11B and 90B instruct) | 0 | 10 MB | 
| Höhe des Eingabebilds in Pixel für Modelle von Meta Llama 11B and 90B instruct | 10 | 8192 | 
| Breite des Eingabebilds in Pixel für Modelle von Meta Llama 11B and 90B90B instruct | 10 | 8192 | 

### Meta Llama 3.3
<a name="quotas-cm-meta-llama-3-3"></a>


****  

| Description | Minimum (Feinabstimmung) | Maximum (Feinabstimmung) | 
| --- | --- | --- | 
| Summe der Eingabe- und Ausgabetoken | 0 | 16000 | 
| Summe der Trainings- und Validierungsdatensätze | 100 | 10 000 (einstellbar über Service Quotas) | 

### CohereCommand
<a name="quotas-cm-cohere-command"></a>


****  

| Description | Maximum (Feinabstimmung) | 
| --- | --- | 
| Eingabe-Token | 4.096 | 
| Ausgabe-Token | 2 048 | 
| Zeichenkontingent pro Stichprobe im Datensatz | Token-Kontingent x 6 (geschätzt) | 
| Einträge in einem Trainingsdatensatz | 10.000 | 
| Datensätze in einem Validierungsdatensatz | 1.000 | 

### Anthropic Claude 3 Haiku
<a name="anthropic-claude-3-haiku"></a>


****  

| Description | Maximum (Feinabstimmung) | 
| --- | --- | 
| Mindestanzahl von Datensätzen | 32 | 
| Maximale Anzahl von Trainingsdatensätzen | 10.000 | 
| Maximale Anzahl von Validierungsdatensätzen | 1.000 | 
| Maximale Gesamtzahl der Datensätze | 10 000 (einstellbar über Service Quotas) | 
| Maximale Anzahl von Token | 32 000 | 
| Maximale Größe des Trainingsdatensatzes | 10 GB | 
| Maximale Größe des Validierungsdatensatzes | 1 GB | 

## Bereiten Sie Daten für die Feinabstimmung von Modellen vor text-to-text
<a name="preparing-text-data"></a>

**Anmerkung**  
Weitere Informationen zur Feinabstimmung von Amazon Nova-Modellen finden Sie unter [Feinabstimmung von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

Bei der Feinabstimmung von text-to-text Modellen handelt es sich bei jedem JSON-Objekt um ein Beispiel mit strukturierten Feldern, die das Modell dazu anleiten sollen, die gewünschte Textausgabe auf der Grundlage einer bereitgestellten Textaufforderung zu generieren. Das Datenformat variiert je nach Anwendungsfall und wird grob in konversationsbezogene und nicht konversationsbezogene Anwendungsfälle unterteilt.

------
#### [ Non-conversational tasks ]

Nicht konversationsbezogene Aufgaben umfassen die Generierung einer einzigen Ausgabe für eine bestimmte Eingabe. Jedes Datensatzbeispiel enthält ein `prompt`-Feld mit dem Eingabetext und ein `completion`-Feld mit der erwarteten Ausgabe. Dieses Format unterstützt eine Reihe von Aufgaben wie die Beantwortung von Fragen, die Zusammenfassung, Übersetzung, Textvervollständigung und Informationsextraktion.

Beispielformat

```
{"prompt": "What is the capital of France?", "completion": "The capital of France is Paris."}
{"prompt": "Summarize the article about climate change.", "completion": "Climate change refers to the long-term alteration of temperature and typical weather patterns in a place."}
```

Verwenden Sie ungefähr 6 Zeichen pro Token, um die Anzahl der Token für die Planung der Datensatzgröße zu schätzen.

------
#### [ Converse API format (Single turn and Multi turn) ]

Wenn Sie die Converse-API verwenden möchten, rufen Sie die Operationen `Converse` oder `ConverseStream` auf, um Nachrichten an ein Modell zu senden. Für den Aufruf von `Converse` ist die Berechtigung für die Operation `bedrock:InvokeModel` erforderlich. Für den Aufruf von `ConverseStream` ist die Berechtigung für die Operation `bedrock:InvokeModelWithResponseStream` erforderlich. Weitere Informationen finden Sie unter [Verwenden der Converse-API](conversation-inference-call.md). Weitere Informationen über Converse-API-Operationen finden Sie im Abschnitt [Führen einer Konversation mit den Converse-API-Operationen](conversation-inference.md).

Beispielformat

```
{
    "schemaVersion": "bedrock-conversation-2024",
    "system": [
        {
            "text": "You are a digital assistant with a friendly personality"
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "text": "What is the capital of Mars?"
                }
            ]
        },
        {
            "role": "assistant",
            "content": [
                {
                    "text": "Mars does not have a capital. Perhaps it will one day."
                }
            ]
        }
    ]
}
```

------
#### [ Anthropic Claude 3 Haiku: Single-turn conversations ]

Single-Turn-Konversationsaufgaben umfassen isolierte Austausche, bei denen das Modell eine Antwort generiert, die ausschließlich auf den aktuellen Benutzereingaben basiert, ohne den vorherigen Kontext zu berücksichtigen. Jedes Datensatzbeispiel verwendet ein Nachrichten-Array mit abwechselnden Rollen von `user` und `assistant`.

Format

```
{"system": "<system message>","messages":[{"role": "user", "content": "<user query>"},{"role": "assistant", "content": "<expected generated text>"}]}
```

Beispiel

```
{"system": "You are an helpful assistant.","messages":[{"role": "user", "content": "what is AWS"},{"role": "assistant", "content": "it's Amazon Web Services."}]}
```

------
#### [ Anthropic Claude 3 Haiku: Multi-turn conversations ]

Multi-Turn-Konversationsaufgaben beinhalten ausgedehnte Dialoge, bei denen das Modell Antworten generieren und gleichzeitig den Kontext früherer Austausche beibehalten muss. Dieses Format erfasst die Dynamik interaktiver Aufgaben wie Kundensupport oder komplexe Diskussionen.

Format

```
{"system": "<system message>","messages":[{"role": "user", "content": "<user query 1>"},{"role": "assistant", "content": "<expected generated text 1>"}, {"role": "user", "content": "<user query 2>"},{"role": "assistant", "content": "<expected generated text 2>"}]}
```

Beispiel

```
{"system": "system message","messages":[{"role": "user", "content": "Hello there."},{"role": "assistant", "content": "Hi, how can I help you?"},{"role": "user", "content": "what are LLMs?"},{"role": "assistant", "content": "LLM means large language model."},]}  
```

------

## Vorbereiten von Daten für die Feinabstimmung von Bild- und Textverarbeitungsmodellen
<a name="preparing-image-text-data"></a>

**Anmerkung**  
Weitere Informationen zur Feinabstimmung von Amazon Nova-Modellen finden Sie unter [Feinabstimmung von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

Für die Feinabstimmung von image-text-to-text Modellen ist jedes JSON-Objekt ein Beispiel, das eine als `messages` Array strukturierte Konversation enthält, die aus abwechselnden JSON-Objekten besteht, die die Eingaben des Benutzers und die Antworten des Assistenten darstellen. Benutzereingaben können sowohl Text als auch Bilder enthalten, während die Antworten des Assistenten immer in Textform erfolgen. Diese Struktur unterstützt sowohl Single-Turn- als auch Multi-Turn-Konversationsabläufe, sodass das Modell verschiedene Aufgaben effektiv bewältigen kann. Zu den unterstützten Bildformaten für Meta Llama-3.2 11B Vision Instruct und Meta Llama-3.2 90B Vision Instruct gehören: `gif`, `jpeg`, `png` und `webp`.

Damit Amazon Bedrock auf die Bilddateien zugreifen kann, fügen Sie eine IAM-Richtlinie hinzu, die der Servicerolle für die Amazon-Bedrock-Modellanpassung in [Berechtigungen zum Zugriff auf Trainings- und Validierungsdateien und zum Schreiben von Ausgabedateien in S3](model-customization-iam-role.md#model-customization-iam-role-s3) ähnelt, die Sie eingerichtet haben oder die automatisch für Sie in der Konsole eingerichtet wurde. Die Amazon-S3-Pfade, die Sie im Trainingsdatensatz angeben, müssen sich in Ordnern befinden, die Sie in der Richtlinie angeben.

**Single-Turn-Konversationen**

Jedes JSON-Objekt für Single-Turn-Konversationen besteht aus einer Benutzernachricht und einer Assistentennachricht. Die Benutzernachricht umfasst ein auf *Benutzer* festgelegtes Rollenfeld und ein *Inhaltsfeld*, das ein Array mit einem `type`-Feld (*Text* oder *Bild*) zur Beschreibung der Eingabemodalität enthält. Bei Texteingaben enthält das `content`-Feld ein `text`-Feld mit der Frage oder dem Prompt des Benutzers. Bei Bildeingaben spezifiziert das `content`-Feld das Bild `format` (z. B. *JPEG* oder *PNG*) und seinen `uri` mit einer `source`, die auf den Amazon-S3-Speicherort des Bilds zeigt. Der `uri` steht für den eindeutigen Pfad zu dem in einem Amazon-S3-Bucket gespeicherten Bild, in der Regel im Format `s3://<bucket-name>/<path-to-file>`. Die Assistentennachricht umfasst ein `role`-Feld, das auf *Assistent* eingestellt ist, ein `content`-Feld, das ein Array mit einem `type`-Feld enthält, das auf *Text* festgelegt ist, und ein `text`-Feld mit der vom Assistenten generierten Antwort.

Beispielformat

```
{
    "schemaVersion": "bedrock-conversation-2024",
    "system": [{
        "text": "You are a smart assistant that answers questions respectfully"
    }],
    "messages": [{
            "role": "user",
            "content": [{
                    "text": "What does the text in this image say?"
                },
                {
                    "image": {
                        "format": "png",
                        "source": {
                            "s3Location": {
                                "uri": "s3://your-bucket/your-path/your-image.png",
                                "bucketOwner": "your-aws-account-id"
                            }
                        }
                    }
                }
            ]
        },
        {
            "role": "assistant",
            "content": [{
                "text": "The text in the attached image says 'LOL'."
            }]
        }
    ]
}
```

**Multi-turn-Konversationen**

Jedes JSON-Objekt für Multi-Turn-Konversationen enthält eine Abfolge von Nachrichten mit wechselnden Rollen, wobei Benutzernachrichten und Assistentennachrichten einheitlich strukturiert sind, um einen kohärenten Austausch zu ermöglichen. Benutzernachrichten enthalten ein `role`-Feld, das auf *Benutzer* festgelegt ist, und ein `content`-Feld, das die Eingabemodalität beschreibt. Bei Texteingaben enthält das `content`-Feld ein `text`-Feld mit der Frage oder dem Follow-up des Benutzers. Bei Bildeingaben spezifiziert es hingegen das Bild-`format` und seine `source` mit einem `uri`, der auf den Amazon-S3-Speicherort des Bildes verweist. Das `uri` dient als eindeutige Kennung im Format s3://<bucket-name>/< path-to-file > und ermöglicht dem Modell den Zugriff auf das Bild aus dem angegebenen Amazon S3 S3-Bucket. Assistentennachrichten umfassen ein `role`-Feld, das auf *Assistent* eingestellt ist, ein `content`-Feld, das ein Array mit einem `type`-Feld enthält, das auf *Text* festgelegt ist, und ein `text`-Feld mit der vom Assistenten generierten Antwort. Konversationen können sich über mehrere Austausche erstrecken, sodass der Assistent den Kontext beibehalten und durchgehend kohärente Antworten geben kann.

Beispielformat

```
{
    "schemaVersion": "bedrock-conversation-2024",
    "system": [{
        "text": "You are a smart assistant that answers questions respectfully"
    }],
    "messages": [{
            "role": "user",
            "content": [{
                    "text": "What does the text in this image say?"
                },
                {
                    "image": {
                        "format": "png",
                        "source": {
                            "s3Location": {
                                "uri": "s3://your-bucket/your-path/your-image.png",
                                "bucketOwner": "your-aws-account-id"
                            }
                        }
                    }
                }
            ]
        },
        {
            "role": "assistant",
            "content": [{
                "text": "The text in the attached image says 'LOL'."
            }]
        },
        {
            "role": "user",
            "content": [{
                    "text": "What does the text in this image say?"
                }
            ]
        },
        {
            "role": "assistant",
            "content": [{
                "text": "The text in the attached image says 'LOL'."
            }]
        }
        
    ]
}
```

## Vorbereiten von Daten für die Feinabstimmung der Bildgenerierung und das Einbetten von Modellen
<a name="preparing-image-generation-data"></a>

**Anmerkung**  
Modelle von Amazon Nova haben unterschiedliche Anforderungen an die Feinabstimmung. Folgen Sie zur Feinabstimmung dieser Modelle den Anweisungen unter [Feinabstimmung von Modellen in Amazon Nova](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

Bereiten Sie für text-to-image image-to-embedding unsere Modelle einen Trainingsdatensatz vor. Validierungsdatensätze werden nicht unterstützt. Jedes JSON-Objekt ist ein Beispiel mit einer `image-ref`, dem Amazon-S3-URI für ein Bild und einer `caption`, die ein Prompt für das Bild sein könnte.

Die Bilder müssen im JPEG- oder PNG-Format vorliegen. 

```
{"image-ref": "s3://bucket/path/to/image001.png", "caption": "<prompt text>"}
{"image-ref": "s3://bucket/path/to/image002.png", "caption": "<prompt text>"}{"image-ref": "s3://bucket/path/to/image003.png", "caption": "<prompt text>"}
```

Im Folgenden wird ein Beispielelement gezeigt:

```
{"image-ref": "s3://amzn-s3-demo-bucket/my-pets/cat.png", "caption": "an orange cat with white spots"}
```

Damit Amazon Bedrock auf die Bilddateien zugreifen kann, fügen Sie eine IAM-Richtlinie hinzu, die der Servicerolle für die Amazon-Bedrock-Modellanpassung in [Berechtigungen zum Zugriff auf Trainings- und Validierungsdateien und zum Schreiben von Ausgabedateien in S3](model-customization-iam-role.md#model-customization-iam-role-s3) ähnelt, die Sie eingerichtet haben oder die automatisch für Sie in der Konsole eingerichtet wurde. Die Amazon-S3-Pfade, die Sie im Trainingsdatensatz angeben, müssen sich in Ordnern befinden, die Sie in der Richtlinie angeben.

# Feinabstimmung von Amazon Nova Modellen mit überwachter Feinabstimmung
<a name="nova-2-sft-data-prep"></a>

Amazon Nova2.0-SFT-Daten verwenden dasselbe Converse-API-Format wie Amazon Nova 1.0, mit zusätzlichen optionalen Inhaltsfeldern zur Argumentation. Vollständige Formatspezifikationen finden Sie unter [ReasoningContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ReasoningContentBlock.html)und das [Converse](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-call.html) API-Schema.

**Unterstützte Funktionen:**
+ **Eingabetypen** — Text, Bild oder Video in Benutzerinhaltsblöcken
+ **Assistenteninhalte** — Reine Textantworten und Argumentationsinhalte
+ **Zusammensetzung des Datensatzes** — Muss homogen sein. Wählen Sie eine der folgenden Optionen: Nur-Text-Wendungen, Text-\$1Bild-Wendungen oder Text-\$1Videoumblendungen

**Wichtig**  
Es ist nicht möglich, Bilder und Videos innerhalb desselben Datensatzes oder über mehrere Runden hinweg zu mischen.

**Aktuelle Einschränkungen:**
+ **Verwendung von Tools** — Obwohl die Verwendung von Tools im Eingabeformat unterstützt wird, wird sie derzeit von Amazon Nova 2.0 SFT nicht unterstützt. Das Hinzufügen von Werkzeugabschnitten kann dazu führen, dass Ihr Job fehlschlägt.
+ **Inhalte zum multimodalen Denken** — Das Converse-Format unterstützt zwar bildbasierte Argumentationsinhalte, diese werden jedoch von 2.0 SFT nicht unterstützt. Amazon Nova
+ **Validierungssätze** — Die Bereitstellung eines Validierungssatzes wird möglicherweise über die Benutzeroberfläche unterstützt, während der SFT-Schulung jedoch nicht.

**Unterstützte Medienformate:**
+ **Bilder** — PNG, JPEG, GIF
+ **Videos** — MOV, MKV, MP4

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

------
#### [ Text-only ]

Dieses Beispiel zeigt ein einfaches Nur-Text-Format, das mit Amazon Nova 1.0 kompatibel ist.

```
{
  "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 ]

Dieses Beispiel zeigt Text mit optionalem Argumentationsinhalt für Amazon 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."
        }
      ]
    }
  ]
}
```

**Anmerkung**  
Derzeit `reasoningText` wird nur innerhalb `reasoningContent` unterstützt. Inhalte zum multimodalen Denken sind noch nicht verfügbar.

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

Dieses Beispiel zeigt, wie Bildeingaben in Text integriert werden.

```
{
  "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 ]

Dieses Beispiel zeigt, wie Videoeingaben mit Text verknüpft werden.

```
{
  "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"
        }
      ]
    }
  ]
}
```

------

## Inhalt begründen
<a name="nova-2-reasoning-modes"></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.

**So 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

**Wann der Argumentationsmodus aktiviert werden soll:** Legen Sie `reasoning_enabled: true` in Ihrer Trainingskonfiguration fest, wann das Modell Denkmuster generieren soll, bevor es endgültige Ergebnisse liefert, oder ob Sie bei komplexen Denkaufgaben eine verbesserte Leistung benötigen. Legen Sie fest`reasoning_enabled: false`, wann Sie an einfachen Aufgaben trainieren, für die keine expliziten Argumentationsschritte erforderlich sind.

**Anmerkung**  
Du kannst den Argumentationsmodus unabhängig davon aktivieren, ob deine Trainingsdaten Inhalte zum Denken enthalten. Es wird jedoch empfohlen, Argumentationsspuren in Ihre Trainingsdaten aufzunehmen, damit das Modell aus diesen Beispielen lernen und die Qualität der Argumentation verbessern kann.

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

**Der Inhalt effektiver Argumentation sollte Folgendes beinhalten:**
+ Zwischengedanken und Analysen
+ Logische Ableitungen und Inferenzschritte
+ Step-by-step Ansätze zur Problemlösung
+ Explizite Zusammenhänge zwischen Schritten und Schlussfolgerungen

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.

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

Die folgende Tabelle enthält Richtlinien für die Vorbereitung Ihres Trainingsdatensatzes.


**Richtlinien für die Vorbereitung von Datensätzen**  

| Richtlinie | Description | 
| --- | --- | 
| Größe und Qualität |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/nova-2-sft-data-prep.html)  | 
| Diversität |  Fügen Sie verschiedene Beispiele hinzu, die Folgendes bewirken: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/nova-2-sft-data-prep.html)  | 
| Formatierung der Ausgabe |  Geben Sie das gewünschte Ausgabeformat in den Antworten des Assistenten eindeutig an. Beispiele hierfür sind JSON-Strukturen, Tabellen, das CSV-Format oder benutzerdefinierte Formate, die für Ihre Anwendung spezifisch sind.  | 
| Multi-turn-Konversationen |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/nova-2-sft-data-prep.html)  | 
| Checkliste für Qualität |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/nova-2-sft-data-prep.html)  | 

# Hyperparameter für benutzerdefinierte Modelle
<a name="custom-models-hp"></a>

Der folgende Referenzinhalt behandelt die Hyperparameter, die für das Training der einzelnen benutzerdefinierten Amazon-Bedrock-Modelle verfügbar sind.

Ein Hyperparameter ist ein Parameter, der den Trainingsprozess steuert, z. B. die Lernrate oder die Anzahl der Epochen. Sie legen Hyperparameter für das Training benutzerdefinierter Modelle fest, wenn Sie den Feinabstimmungsauftrag mit der Amazon Bedrock-Konsole oder durch Aufrufen der [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API-Operation [einreichen](model-customization-submit.md).

## Amazon Nova – Grundlagen zu den Hyperparametern zur Modellanpassung
<a name="cm-hp-nova-mm"></a>

Die Amazon Nova Lite-Amazon Nova Micro- und Amazon Nova Pro-Modelle unterstützen die folgenden drei Hyperparameter zur Anpassung des Modells. Weitere Informationen finden Sie unter [Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall](custom-models.md).

 Informationen zur Optimierung der Amazon-Nova-Modelle finden Sie unter [Optimierung von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-fine-tune.html).

Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Typ | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | Ganzzahl | 1 | 5 | 2 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | float | 1.00E-6 | 1.00E-4 | 1.00E-5 | 
| Aufwärmschritte für die Lernrate | learningRateWarmupSchritte | Die Anzahl der Iterationen, mit denen die Lernrate schrittweise auf die angegebene Rate erhöht wird | Ganzzahl | 0 | 100 | 10 | 

Die Standardepochenanzahl lautet 2 und ist für die meisten Fällen gut geeignet. Im Allgemeinen benötigen größere Datensätze weniger Epochen zum Konvergieren und kleinere Datensätze mehr Epochen. Eine schnellere Konvergenz könnte auch durch eine Erhöhung der Lernrate erreicht werden, was jedoch weniger wünschenswert ist, da dies zu einer Instabilität im Konvergenztraining führen könnte. Wir empfehlen, mit den Standard-Hyperparametern zu beginnen, die auf unserer Bewertung verschiedener Aufgaben mit unterschiedlicher Komplexität und Datenmenge basieren.

Die Lernrate wird beim Aufwärmen allmählich auf den eingestellten Wert steigen. Daher sollten Sie eine große Aufwärmzahl für eine kleine Trainingsstichprobe vermeiden, da Ihre Lernrate während des Trainingsprozesses möglicherweise nie den festgelegten Wert erreicht. Wir empfehlen, für die Festlegung der Aufwärmstufen die Datensatzgröße für Amazon Nova Micro durch 640, für Amazon Nova Lite durch 160 und für Amazon Nova Pro durch 320 zu dividieren.

## Hyperparameter zur Anpassung des Amazon Nova-Canvas-Modells
<a name="cm-hp-nova-canvas"></a>

Das Amazon Nova Canvas-Modell unterstützt die folgenden Hyperparameter für die Modellanpassung.


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | 
| Batch-Größe | batchSize | Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | 8 | 192 | 8 | 
| Schritte | stepCount | Häufigkeit, mit der das Modell den einzelnen Batches ausgesetzt wurde | 10 | 20 000 | 500 | 
| Lernrate | learningRate | Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | 1.00E-7 | 1.00E-4 | 1.00E-5 | 

## Hyperparameter zur Anpassung des Amazon-Titan-Textmodells
<a name="cm-hp-titan-text"></a>

Das Modell von Amazon Titan Text Premier unterstützt die folgenden Hyperparameter zur Anpassung des Modells. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Typ | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | Ganzzahl | 1 | 5 | 2 | 
| Batchgröße (Mikro) | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | Ganzzahl | 1 | 1 | 1 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | float | 1.00E-07 | 1.00E-05 | 1.00E-06 | 
| Aufwärmschritte für die Lernrate | learningRateWarmupSchritte | Die Anzahl der Iterationen, mit denen die Lernrate schrittweise auf die angegebene Rate erhöht wird | Ganzzahl | 0 | 20 | 5 | 

Modelle von Amazon Titan Text wie Lite und Express unterstützen die folgenden Hyperparameter für die Modellanpassung. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Typ | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | Ganzzahl | 1 | 10 | 5 | 
| Batchgröße (Mikro) | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | Ganzzahl | 1 | 64 | 1 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | float | 0.0 | 1 | 1.00E-5 | 
| Aufwärmschritte für die Lernrate | learningRateWarmupSchritte | Die Anzahl der Iterationen, mit denen die Lernrate schrittweise auf die angegebene Rate erhöht wird | Ganzzahl | 0 | 250 | 5 | 

## Hyperparameter zur Anpassung von Amazon Titan Image Generator G1
<a name="cm-hp-titan-image"></a>

Das Modell von Amazon Titan Image Generator G1 unterstützt die folgenden Hyperparameter zur Anpassung des Modells.

**Anmerkung**  
`stepCount` hat keinen Standardwert und muss angegeben werden. `stepCount` unterstützt den Wert `auto`. In `auto` wird die Modellleistung gegenüber den Trainingskosten priorisiert, indem automatisch eine Anzahl auf der Grundlage der Datensatzgröße bestimmt wird. Die Kosten für den Trainingsjob hängen von der Anzahl ab, die vom Wert `auto` bestimmt wird. Informationen zur Berechnung der Auftragskosten und Beispiele finden Sie unter [Amazon-Bedrock-Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | 
| Batch-Größe | batchSize | Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | 8 | 192 | 8 | 
| Schritte | stepCount | Häufigkeit, mit der das Modell den einzelnen Batches ausgesetzt wurde | 10 | 40 000 | – | 
| Lernrate | learningRate | Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | 1.00E-7 | 1 | 1.00E-5 | 

## Hyperparameter zur Anpassung von Amazon Titan Multimodal Embeddings G1
<a name="cm-hp-titan-mm"></a>

Das Amazon Titan Multimodal Embeddings G1-Modell unterstützt die folgenden Hyperparameter zur Anpassung des Modells. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing).

**Anmerkung**  
`epochCount` hat keinen Standardwert und muss angegeben werden. `epochCount` unterstützt den Wert `Auto`. In `Auto` wird die Modellleistung gegenüber den Trainingskosten priorisiert, indem automatisch eine Anzahl auf der Grundlage der Datensatzgröße bestimmt wird. Die Kosten für den Trainingsjob hängen von der Anzahl ab, die vom Wert `Auto` bestimmt wird. Informationen zur Berechnung der Auftragskosten und Beispiele finden Sie unter [Amazon-Bedrock-Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Typ | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | Ganzzahl | 1 | 100 | – | 
| Batch-Größe | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | Ganzzahl | 256 | 9 216 | 576 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | float | 5,00E-8 | 1 | 5,00E-5 | 

## Hyperparameter zur Anpassung des Anthropic-Claude-3-Modells
<a name="cm-hp-anth-claude-3"></a>

Anthropic-Claude-3-Modelle unterstützen die folgenden Hyperparameter zur Anpassung des Modells. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing).


****  

| Name der Konsole | API-Name | Definition | Standard | Minimum | Maximum | 
| --- | --- | --- | --- | --- | --- | 
| Anzahl der Epochen | epochCount | Die maximale Anzahl der Iterationen im gesamten Trainingsdatensatz | 2 | 1 | 10 | 
| Batch-Größe  | batchSize | Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | 32 | 4 | 256 | 
| Multiplikator für Lerngeschwindigkeit | learningRateMultiplier | Der Multiplikator, der die Lerngeschwindigkeit beeinflusst, mit der Modellparameter nach jedem Batch aktualisiert werden | 1 | 0.1 | 2 | 
| Schwellenwert für frühzeitiges Stoppen | earlyStoppingThreshold | Die mindestens erforderlich Verbesserung des Verlusts, um ein vorzeitiges Abbrechen des Trainingsprozesses zu verhindern | 0.001 | 0 | 0.1 | 
| Frühzeitiges Stoppen | earlyStoppingPatience | Die Toleranz gegenüber Stagnation in der Verlustmetrik vor dem Abbruch des Trainingsprozesses | 2 | 1 | 10 | 

## Hyperparameter zur Anpassung des Cohere Command-Modells
<a name="cm-hp-cohere-command"></a>

Die Cohere-Command- und Cohere-Command Light-Modelle unterstützen die folgenden Hyperparameter zur Anpassung des Modells. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing). Weitere Informationen finden Sie unter [Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall](custom-models.md).

 [Informationen zur Feinabstimmung von Cohere Modellen finden Sie in der Cohere Dokumentation unter Feinabstimmung. https://docs.cohere.com/docs/](https://docs.cohere.com/docs/fine-tuning)

**Anmerkung**  
Das `epochCount`-Kontingent kann angepasst werden.


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Typ | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | Ganzzahl | 1 | 100 | 1 | 
| Batch-Größe | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | Ganzzahl | 8 | 8 (Command)32 (Light) | 8 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden. Wenn Sie einen Validierungsdatensatz verwenden, empfehlen wir, keinen Wert für learningRate anzugeben. | float | 5.00E-6 | 0.1 | 1.00E-5 | 
| Schwellenwert für frühzeitiges Stoppen | earlyStoppingThreshold | Die mindestens erforderlich Verbesserung des Verlusts, um ein vorzeitiges Abbrechen des Trainingsprozesses zu verhindern. | float | 0 | 0.1 | 0.01 | 
| Frühzeitiges Stoppen | earlyStoppingPatience | Die Toleranz gegenüber Stagnation in der Verlustmetrik vor dem Abbruch des Trainingsprozesses. | Ganzzahl | 1 | 10 | 6 | 
| Bewertungsprozentsatz | evalPercentage |  Der Prozentsatz des Datensatzes, der der Modellbewertung zugewiesen ist, wenn Sie keinen separaten Validierungsdatensatz bereitstellen.  | float | 5 | 50 | 20 | 

## Hyperparameter zur Anpassung des Meta Llama 3.1-Modells
<a name="cm-hp-meta-llama31"></a>

Die Modelle Meta Llama 3.1 8B und 70B unterstützen die folgenden Hyperparameter für die Modellanpassung. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing). Weitere Informationen finden Sie unter [Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall](custom-models.md).

 [Informationen zur Feinabstimmung von Meta Lama-Modellen finden Sie in der Meta Dokumentation unter https://ai.meta.com/llama/ get-started/ \$1fine -tuning.](https://ai.meta.com/llama/get-started/#fine-tuning)

**Anmerkung**  
Das `epochCount`-Kontingent kann angepasst werden.


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | 1 | 10 | 5 | 
| Batch-Größe | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | 1 | 1 | 1 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | 5.00E-6 | 0.1 | 1,00E-4 | 

## Hyperparameter zur Anpassung des Meta Llama 3.2-Modells
<a name="cm-hp-meta-llama32"></a>

Die Modelle Meta Llama 3.2 1B, 3B, 11B und 90B unterstützen die folgenden Hyperparameter für die Modellanpassung. Durch die Anzahl der angegebenen Epochen erhöhen sich die Kosten für die Modellanpassung, da mehr Token verarbeitet werden. Jede Epoche verarbeitet den gesamten Trainingsdatensatz einmal. Weitere Informationen zur Preisgestaltung finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing). Weitere Informationen finden Sie unter [Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall](custom-models.md).

 Informationen zur Feinabstimmung von Meta Lama-Modellen finden Sie in der Meta Dokumentation unter [https://ai.meta.com/llama/get-started/](https://ai.meta.com/llama/get-started/#fine-tuning) \$1fine -tuning.


****  

| Hyperparameter (Konsole) | Hyperparameter (API) | Definition | Minimum | Maximum | Standard | 
| --- | --- | --- | --- | --- | --- | 
| Epochen | epochCount | Die Anzahl der Iterationen durch den gesamten Trainingsdatensatz | 1 | 10 | 5 | 
| Batch-Größe | batchSize | Die Anzahl der Stichproben, die vor der Aktualisierung der Modellparameter verarbeitet wurden | 1 | 1 | 1 | 
| Lernrate | learningRate | Die Geschwindigkeit, mit der Modellparameter nach jedem Batch aktualisiert werden | 5.00E-6 | 0.1 | 1,00E-4 | 

# Reichen Sie einen Auftrag zur Modellanpassung zur Feinabstimmung ein
<a name="model-customization-submit"></a>

Sie können ein benutzerdefiniertes Modell erstellen, indem Sie die Feinabstimmung in der Amazon Bedrock-Konsole oder API verwenden. Sie können ein vorhandenes benutzerdefiniertes Modell weiter optimieren. Der Anpassungsauftrag kann mehrere Stunden dauern. Die Dauer des Auftrags hängt von der Größe der Trainingsdaten (Anzahl der Datensätze, Eingabe- und Ausgabetoken), der Anzahl der Epochen und der Batch-Größe ab.

## Voraussetzungen
<a name="submit-model-customization-job-prerequisites"></a>
+ Erstellen Sie eine AWS Identity and Access Management (IAM) -Servicerolle, um auf den S3-Bucket zuzugreifen, in dem Sie Ihre Trainings- und Validierungsdaten zur Modellanpassung speichern möchten. Sie können diese Rolle automatisch mithilfe von AWS-Managementkonsole oder manuell erstellen. Weitere Informationen zur manuellen Option finden Sie unter [Erstellen einer IAM-Servicerolle für die Modellanpassung](custom-model-job-access-security.md#custom-model-job-service-role).
+ (Optional) Verschlüsseln Sie die Eingabe- und Ausgabedaten, Anpassungsaufträge oder Inferenzanforderungen für benutzerdefinierte Modelle. Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).
+ (Optional) Erstellen Sie eine Virtual Private Cloud (VPC), um Ihren Anpassungsauftrag zu schützen. Weitere Informationen finden Sie unter [(Optional) Schützen der Modellanpassungsaufträge mit einer VPC](custom-model-job-access-security.md#vpc-model-customization).

## Übermitteln Ihres Auftrags
<a name="submit-model-customization-job-how-to"></a>

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

------
#### [ Console ]

Gehen Sie wie folgt vor, um einen Modellanpassungsauftrag in der Konsole zu übermitteln.

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie auf der Registerkarte **Modelle** die Option **Modell anpassen** und anschließend Feinabstimmungsauftrag **erstellen** aus.

1. Gehen Sie im Abschnitt **Modelldetails** wie folgt vor.

   1. Wählen Sie das Modell aus, das Sie mit Ihren eigenen Daten anpassen möchten, und geben Sie Ihrem resultierenden Modell einen Namen. Sie können entweder ein Basismodell oder ein zuvor angepasstes Modell (fein abgestimmt oder destilliert) als Basismodell auswählen.

   1. (Optional) Standardmäßig verschlüsselt Amazon Bedrock Ihr Modell mit einem Schlüssel, der von AWS besessen und verwaltet wird. Wenn Sie einen [benutzerdefinierten KMS-Schlüssel](encryption-custom-job.md) verwenden möchten, wählen Sie **Modellverschlüsselung** und einen Schlüssel aus.

   1. (Optional) Sie können den Abschnitt **Tags** erweitern und **Neues Tag hinzufügen** auswählen, um dem benutzerdefinierten Modell [Tags](tagging.md) zuzuordnen.

1. Geben Sie im Abschnitt **Auftragskonfiguration** einen Namen für den Auftrag ein und fügen Sie wahlweise Tags hinzu, die mit dem Auftrag verknüpft werden sollen.

1. **(Optional) Wenn Sie eine [Virtual Private Cloud (VPC) zum Schutz Ihrer Trainingsdaten und Ihres Anpassungsauftrags](custom-model-job-access-security.md#vpc-model-customization) verwenden möchten, wählen Sie im Bereich VPC-Einstellungen** eine VPC aus, die die Eingabe- und Ausgabedaten der Amazon-S3-Speicherorte, deren Subnetze und Sicherheitsgruppen enthält.
**Anmerkung**  
Wenn Sie eine VPC-Konfiguration einschließen, kann die Konsole keine neue Servicerolle für den Auftrag erstellen. [Erstellen Sie eine benutzerdefinierte Servicerolle](model-customization-iam-role.md) und fügen Sie Berechtigungen hinzu, ähnlich dem unter [Anfügen von VPC-Berechtigungen an eine Modelanpassungsrolle](custom-model-job-access-security.md#vpc-data-access-role) beschriebenen Beispiel.

1. Wählen Sie im Abschnitt **Eingabedaten** den S3-Speicherort der Trainingsdatensatzdatei und gegebenenfalls der Validierungsdatensatzdatei aus.

1. Geben Sie im Abschnitt **Hyperparameter** die Eingabewerte für [Hyperparameter](custom-models-hp.md) ein, die beim Training verwendet werden sollen.

1. Geben Sie im Abschnitt **Ausgabedaten** den Amazon-S3-Speicherort ein, an dem Amazon Bedrock die Ausgabe des Auftrags speichern soll. Amazon Bedrock speichert die Trainings- und Validierungsverluste für jede Epoche werden in separaten Dateien an dem von Ihnen angegebenen Speicherort.

1. Wählen Sie im Abschnitt **Servicezugriff** eine der folgenden Optionen aus: 
   + **Vorhandene Servicerolle nutzen** – Wählen Sie eine Servicerolle aus der Dropdown-Liste aus. Weitere Informationen zum Einrichten einer benutzerdefinierten Rolle mit den entsprechenden Berechtigungen finden Sie unter [Erstellen einer Servicerolle für die Modellanpassung](model-customization-iam-role.md).
   + **Neue Servicerolle erstellen und verwenden** – Geben Sie einen Namen für die Servicerolle ein.

1. Wählen Sie „**Modell feinabstimmen“**, um mit dem Job zu beginnen.

------
#### [ API ]

**Anforderung**

Senden Sie eine Anfrage [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)(siehe Link für Anfrage- und Antwortformate und Felddetails) mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp), um einen Auftrag zur Modellanpassung einzureichen. Sie müssen mindestens die folgenden Felder angeben:
+ `roleArn` – Der ARN der Servicerolle mit den Berechtigungen zum Importieren von Modellen. Amazon Bedrock kann automatisch eine Rolle mit den entsprechenden Berechtigungen erstellen, wenn Sie die Konsole verwenden. Sie können auch eine benutzerdefinierte Rolle erstellen, indem Sie den Schritten unter [Erstellen einer Servicerolle für die Modellanpassung](model-customization-iam-role.md) folgen.
**Anmerkung**  
Wenn Sie ein `vpcConfig`-Feld einschließen, stellen Sie sicher, dass die Rolle über die erforderlichen Berechtigungen für den Zugriff auf die VPC verfügt. Ein Beispiel finden Sie unter [Anfügen von VPC-Berechtigungen an eine Modelanpassungsrolle](custom-model-job-access-security.md#vpc-data-access-role).
+ `baseModelIdentifier` – Die [Modell-ID](models-supported.md) oder der ARN des Basismodells oder des zuvor benutzerdefinierten Modells (optimiert oder destilliert), das angepasst werden soll
+ `customModelName` – Der Name für das neu angepasste Modell.
+ `jobName` – Der Name, den der Trainingsjob erhalten soll.
+ `hyperParameters` – [Hyperparameter](custom-models-hp.md), die den Prozess der Modellanpassung beeinflussen
+ `trainingDataConfig` – Ein Objekt, das den Amazon-S3-URI des Trainingsdatensatzes enthält. Abhängig von der Anpassungsmethode und dem Modell können Sie auch eine `validationDataConfig` hinzufügen. Weitere Informationen zur Vorbereitung des Datensatzes finden Sie unter [Bereiten Sie Daten für die Feinabstimmung Ihrer Modelle vor](model-customization-prepare.md).
+ `validationDataconfig` – Ein Objekt, das den Amazon-S3-URI des Validierungsdatensatzes enthält
+ `outputDataConfig` – Ein Objekt, das den Amazon-S3-URI enthält, an dem die Ausgabedaten abgelegt werden sollen.

Wenn Sie den `customizationType` nicht angeben, ist die Modellanpassungsmethode standardmäßig auf `FINE_TUNING` eingestellt.

Wenn Sie verhindern möchten, dass die Anforderung mehr als einmal abgeschlossen wird, fügen Sie einen `clientRequestToken` hinzu.

Sie können die folgenden optionalen Felder für zusätzliche Konfigurationen einschließen.
+ `jobTags` and/or `customModelTags`— Ordnen Sie [Tags](tagging.md) dem Anpassungsauftrag oder dem daraus resultierenden benutzerdefinierten Modell zu.
+ `customModelKmsKeyId` – Fügen Sie einen [benutzerdefinierten KMS-Schlüssel](encryption-custom-job.md) hinzu, um Ihr benutzerdefiniertes Modell zu verschlüsseln.
+ `vpcConfig` – Fügen Sie die Konfiguration für eine [Virtual Private Cloud (VPC)](custom-model-job-access-security.md#vpc-model-customization) hinzu, um Ihre Trainingsdaten und Anpassungsauftrag zu schützen

**Antwort**

Die Antwort gibt einen `jobArn` zurück, mit dem Sie den Auftrag zur Modellanpassung [überwachen](model-customization-monitor.md) oder [beenden](model-customization-stop.md) können.

[Siehe Codebeispiele](model-customization-code-samples.md)

------

# Passen Sie ein Modell mit Verstärkungsfeinabstimmung in Amazon Bedrock an
<a name="reinforcement-fine-tuning"></a>

Die Feinabstimmung von Verstärkungen ist eine Technik zur Anpassung von Modellen in Amazon Bedrock, mit der die Leistung des Basismodells verbessert wird, indem Modellen anhand von Feedbacksignalen, sogenannten Belohnungen, vermittelt wird, was eine „gute“ Reaktion ausmacht. Im Gegensatz zu herkömmlichen Methoden zur Feinabstimmung, die auf markierten Datensätzen basieren, verwendet die Feinabstimmung von Verstärkungen einen feedbackgestützten Ansatz, bei dem das Modell iterativ optimiert wird, um diese Vorteile zu maximieren.

## Verstärkung, Feinabstimmung von Anwendungen und Szenarien
<a name="reinforcement-fine-tuning-when"></a>

Verwenden Sie die Feinabstimmung der Verstärkung, wenn Sie klare, messbare Erfolgskriterien für die Bewertung der Antwortqualität definieren können. Die Feinabstimmung von Verstärkungen eignet sich hervorragend in Bereichen, in denen die Qualität der Ergebnisse objektiv gemessen werden kann, insbesondere wenn mehrere gültige Antworten vorliegen oder wenn optimale Antworten im Voraus schwer zu definieren sind. Es ist ideal für:
+ Mathematische Problemlösung und Codegenerierung (Verwendung von regelbasierten Korrektoren zur objektiven Bewertung)
+ Wissenschaftliches Denken und strukturierte Datenanalyse
+ Subjektive Aufgaben wie Befolgung von Anweisungen, Moderation von Inhalten und kreatives Schreiben (mithilfe von KI-basierten Richtern)
+ Aufgaben, die step-by-step Argumentation oder mehrstufige Problemlösung erfordern
+ Szenarien mit mehreren gültigen Lösungen, bei denen einige eindeutig besser sind als andere
+ Anwendungen, die mehrere Ziele (Genauigkeit, Effizienz, Stil) unter einen Hut bringen
+ Anwendungen, die iterative Verbesserungen, Personalisierung oder die Einhaltung komplexer Geschäftsregeln erfordern
+ Szenarien, in denen der Erfolg programmatisch anhand von Ausführungsergebnissen oder Leistungskennzahlen verifiziert werden kann
+ Fälle, in denen das Sammeln hochwertiger, beschrifteter Beispiele teuer oder unpraktisch ist

## Vorteile der Feinabstimmung von Verstärkungen
<a name="reinforcement-fine-tuning-benefits"></a>
+ **Verbesserte Modellleistung** — Die Feinabstimmung von Verstärkungen verbessert die Modellgenauigkeit im Vergleich zu Basismodellen im Durchschnitt um bis zu 66% Dies ermöglicht eine Optimierung von Preis und Leistung durch die Feinabstimmung kleinerer, schnellerer und effizienterer Modellvarianten.
+ **Benutzerfreundlichkeit** — Amazon Bedrock automatisiert die Komplexität der Feinabstimmung von Verstärkungen und macht sie für Entwickler zugänglich, die KI-Anwendungen entwickeln. Sie können Modelle mithilfe Ihrer hochgeladenen Datensätze oder vorhandener API-Aufrufprotokolle fein abstimmen. Sie können Belohnungsfunktionen definieren, die Modellausgaben mit benutzerdefiniertem Code mithilfe von Lambda oder model-as-a-judge Grader bewerten. Integrierte Vorlagen helfen bei der schnellen Einrichtung.
+ **Sicherheit und Compliance** — Ihre firmeneigenen Daten verlassen während AWS des Anpassungsprozesses niemals die sichere, verwaltete Umgebung.

## Unterstützte Modelle für die Feinabstimmung von Verstärkungen
<a name="rft-supported-models"></a>

In der folgenden Tabelle sind die Fundamentmodelle aufgeführt, die Sie mit der Feinabstimmung der Bewehrung anpassen können:


**Unterstützte Modelle für die Feinabstimmung von Bewehrungen**  

| Anbieter | Modell | Modell-ID | Name der Region | Region | 
| --- | --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v 1:0:256 k |  USA Ost (Nord-Virginia)  |  us-east-1  | 
| OpenAI | GPT-OSS-20b | openai.gpt-oss-20b | USA West (Oregon) | us-west-2 | 
| Qwen | Qwen 3 32 B | qwen.qwen3-32b | USA West (Oregon) | us-west-2 | 

## So funktioniert die Feinabstimmung von Verstärkungen
<a name="rft-how-it-works"></a>

Amazon Bedrock automatisiert den Workflow zur Feinabstimmung von Verstärkungen vollständig. Das Modell empfängt Eingabeaufforderungen aus Ihrem Trainingsdatensatz und generiert mehrere Antworten pro Aufforderung. Diese Antworten werden dann mit einer Belohnungsfunktion bewertet. Amazon Bedrock verwendet die Prompt-Response-Paare mit Punktzahlen, um das Modell mithilfe von Group Relative Policy Optimization (GRPO) durch richtlinienbasiertes Lernen zu trainieren. Die Trainingsschleife wird fortgesetzt, bis das Ende Ihrer Trainingsdaten erreicht ist oder Sie den Job an einem ausgewählten Checkpoint beenden, wodurch ein Modell erstellt wird, das für die für Sie wichtige Metrik optimiert ist.

## Verstärkung, Feinabstimmung der bewährten Verfahren
<a name="rft-best-practices"></a>
+ **Fangen Sie klein an** — Beginnen Sie mit 100 bis 200 Beispielen, überprüfen Sie die Richtigkeit der Belohnungsfunktionen und skalieren Sie schrittweise auf der Grundlage der Ergebnisse
+ **Bewertung vor der Feinabstimmung** — Testen Sie die Leistung des Basismodells, bevor Sie die Feinabstimmung der Verstärkung vornehmen. Liegen die Prämien durchweg bei 0 Prozent, sollten Sie zunächst eine überwachte Feinabstimmung durchführen, um die grundlegenden Funktionen festzulegen. Wenn die Prämien mehr als 95 Prozent betragen, ist eine Feinabstimmung der Verstärkung möglicherweise unnötig
+ **Überwachen Sie das Training** — Verfolgen Sie die durchschnittlichen Punktzahlen und die Verteilung der Prämien. Achten Sie auf Überanpassung (die Trainingsbelohnungen steigen, während die Validierungsprämien sinken). Halte Ausschau nach besorgniserregenden Mustern wie einem Plateau der Prämien unter 0,15, einer zunehmenden Varianz der Belohnungen im Laufe der Zeit und einer sinkenden Validierungsleistung
+ **Optimieren Sie die Belohnungsfunktionen** — Führen Sie sie innerhalb von Sekunden (nicht Minuten) aus, minimieren Sie externe API-Aufrufe, verwenden Sie effiziente Algorithmen, implementieren Sie die richtige Fehlerbehandlung und nutzen Sie die Vorteile der parallel Skalierung von Lambda
+ **Iterationsstrategie** — Wenn sich die Belohnungen nicht verbessern, passen Sie das Design der Belohnungsfunktionen an, erhöhen Sie die Datensatzvielfalt, fügen Sie repräsentativere Beispiele hinzu und überprüfen Sie, ob die Belohnungssignale klar und konsistent sind

**Topics**
+ [Verstärkung, Feinabstimmung von Anwendungen und Szenarien](#reinforcement-fine-tuning-when)
+ [Vorteile der Feinabstimmung von Verstärkungen](#reinforcement-fine-tuning-benefits)
+ [Unterstützte Modelle für die Feinabstimmung von Verstärkungen](#rft-supported-models)
+ [So funktioniert die Feinabstimmung von Verstärkungen](#rft-how-it-works)
+ [Verstärkung, Feinabstimmung der bewährten Verfahren](#rft-best-practices)
+ [Feinabstimmung von Amazon Nova-Modellen mit Verstärkungs-Feinabstimmung](rft-nova-models.md)
+ [Feinabstimmung von Modellen mit offenem Gewicht mithilfe von -compatible OpenAI APIs](fine-tuning-openai-apis.md)
+ [Evaluieren Sie Ihr RFT-Modell](rft-evaluate-model.md)

# Feinabstimmung von Amazon Nova-Modellen mit Verstärkungs-Feinabstimmung
<a name="rft-nova-models"></a>

Stellen Sie vor der Feinabstimmung sicher, dass Sie über die Voraussetzungen verfügen, da Amazon Bedrock spezielle Berechtigungen benötigt, um den Feinabstimmungsprozess zu erstellen und zu verwalten. Umfassende Informationen zu Sicherheit und Berechtigungen finden Sie unter. [Zugriff und Sicherheit für Amazon Nova-Modelle](rft-access-security.md)

Führen Sie die Feinabstimmung der Verstärkung für Amazon Nova-Modelle in 5 Schritten durch:

1. **Trainingsdatensatz bereitstellen** — Laden Sie Eingabeaufforderungen im erforderlichen Format (z. B. JSONL) als Trainingsdatensatz für die Feinabstimmung von Verstärkungen hoch. Weitere Informationen finden Sie unter [Daten für Amazon Nova-Modelle vorbereiten](rft-prepare-data.md).

1. **Belohnungsfunktion konfigurieren (Grader)** — Definieren Sie einen Grader, der die Antworten des Modells anhand von Korrektheit, Struktur, Tonalität oder anderen Zielen bewertet. Die Belohnungsfunktion kann mit Lambda ausgeführt werden, um Zielwerte zu berechnen. Sie können auch ein Modell als Richter auswählen (über die Konsole) und Antworten anhand von Kriterien und Prinzipien bewerten, die Sie konfigurieren (die Konsole wandelt diese automatisch in Lambda-Funktionen um). Weitere Informationen finden Sie unter [Prämienfunktionen für Amazon Nova-Modelle einrichten](reward-functions.md).

1. **Job zur Feinabstimmung der Bewehrung einreichen** — Starten Sie den Auftrag zur Feinabstimmung der Bewehrung, indem Sie das Basismodell, den Datensatz, die Belohnungsfunktion und andere optionale Einstellungen wie Hyperparameter angeben. Weitere Informationen finden Sie unter [Feinabstimmungsaufträge für Amazon Nova-Modelle erstellen und verwalten](rft-submit-job.md).

1. **Schulung überwachen** — Verfolgen Sie den Jobstatus, die Vergütungskennzahlen und den Trainingsfortschritt bis zum Abschluss. Weitere Informationen finden Sie unter [Überwachen Sie Ihren RFT-Trainingsjob](rft-submit-job.md#rft-monitor-job).

1. Fein **abgestimmtes Modell verwenden** — Stellen Sie nach Abschluss des Auftrags das resultierende RFT-Modell mit einem Klick bereit, um bei Bedarf Inferenzen zu erhalten. Sie können Provisioned Throughput auch für unternehmenskritische Workloads verwenden, die eine konsistente Leistung erfordern. Siehe [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md). Verwenden Sie **Test in Playground**, um die Antworten zu bewerten und mit dem Basismodell zu vergleichen.

**Wichtig**  
Sie können Amazon Bedrock maximal 20.000 Eingabeaufforderungen zur Feinabstimmung des Modells zur Verstärkung senden.

## Unterstützte Nova-Modelle
<a name="rft-nova-supported-models"></a>

Die folgende Tabelle zeigt die Amazon Nova-Modelle, die Sie mit der Feinabstimmung der Verstärkung anpassen können:

**Anmerkung**  
Informationen zu weiteren unterstützten Modellen, einschließlich Modellen mit offenem Gewicht, finden Sie unter. [Feinabstimmung von Modellen mit offenem Gewicht mithilfe von -compatible OpenAI APIs](fine-tuning-openai-apis.md)


**Unterstützte Modelle für die Feinabstimmung von Verstärkungen**  

| Anbieter | Modell | Modell-ID | Unterstützung von Modellen für einzelne Regionen | 
| --- | --- | --- | --- | 
| Amazon | Nova 2 Lite | amazon.nova-2-lite-v 1:0:256 k | us-east-1 | 

# Zugriff und Sicherheit für Amazon Nova-Modelle
<a name="rft-access-security"></a>

Bevor Sie mit der Feinabstimmung der Verstärkung beginnen, stellen Sie sicher, dass Sie wissen, welche Art von Zugriff Amazon Bedrock für RFT-spezifische Operationen benötigt. RFT benötigt aufgrund seiner Funktionen zur Ausführung von Prämienfunktionen zusätzliche Berechtigungen, die über die standardmäßige Feinabstimmung hinausgehen.

Informationen zur grundlegenden Sicherheitseinrichtung für die Modellanpassung, einschließlich Vertrauensbeziehungen, Amazon S3 S3-Berechtigungen und KMS-Verschlüsselung, finden Sie unter[Erstellen einer IAM-Servicerolle für die Modellanpassung](custom-model-job-access-security.md#custom-model-job-service-role).

## Voraussetzungen
<a name="rft-access-prerequisites"></a>

Bevor Sie RFT-spezifische IAM-Berechtigungen hinzufügen, müssen Sie die folgenden IAM-Servicerollen hinzufügen:
+ [Vertrauensstellung](custom-model-job-access-security.md#custom-model-job-service-role-trust-relationship)
+ [Berechtigungen zum Zugriff auf Trainings- und Validierungsdateien und zum Schreiben von Ausgabedateien in S3](custom-model-job-access-security.md#custom-model-job-service-role-s3-permissions)

## RFT-spezifische IAM-Berechtigungen
<a name="rft-iam-permissions"></a>

Fügen Sie diese Berechtigungen zu Ihrer bestehenden Servicerolle für Modellanpassungen für RFT-Funktionen hinzu.

### Lambda-Berechtigungen für Belohnungsfunktionen
<a name="rft-lambda-permissions"></a>

Sie müssen Lambda-Aufrufberechtigungen hinzufügen. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die Sie verwenden können:

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

### Zugriff auf das Aufruf-Protokoll
<a name="rft-api-log-permissions"></a>

Um bestehende Aufrufprotokolle des Amazon Bedrock-Modells als Trainingsdaten zu verwenden, fügen Sie Berechtigungen für den Zugriff auf Ihren Amazon S3 S3-Bucket hinzu, in dem Aufrufprotokolle gespeichert sind. 

Sie müssen Amazon S3 S3-Bucket-Zugriffsberechtigungen für den Eingabe-Bucket bereitstellen. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die Sie verwenden können:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::s3-invocation-logs-bucket",
                "arn:aws:s3:::s3-invocation-logs-bucket/*"
            ]
        }
    ]
}
```

Informationen zur Sicherheitseinrichtung, einschließlich grundlegender IAM-Rollen, Amazon S3 S3-Berechtigungen und Verschlüsselung, finden Sie unter[Erstellen einer IAM-Servicerolle für die Modellanpassung](custom-model-job-access-security.md#custom-model-job-service-role).

## Grader Lambda-Funktionsberechtigungen für RLAIF
<a name="rft-grader-lambda-permissions"></a>

Wenn Sie Ihre eigene Lambda-Funktion für RLAIF-Belohnungsfunktionen (Reinforcement Learning from AI Feedback) erstellen, müssen Sie der Lambda-Ausführungsrolle spezifische Berechtigungen hinzufügen.

### Grundlegende Genehmigungen für LLM-Richter
<a name="rft-bedrock-permissions"></a>

Fügen Sie für LLM-as-Judge Belohnungsfunktionen (RLAIF) Berechtigungen hinzu, um Foundation-Modelle aufzurufen. Im Folgenden finden Sie eine Beispielrichtlinie, die Sie für Ihre Lambda-Ausführungsrolle verwenden können.

**Anmerkung**  
Fügen Sie diese Berechtigungen Ihrer Lambda-Ausführungsrolle nur hinzu, wenn Sie Ihre eigene Lambda-Funktion erstellen. Die Konsole verarbeitet dies automatisch, wenn Lambda-Funktionen über die Konsole erstellt werden.

Im Folgenden finden Sie ein Beispiel für die Berufung von Bedrock LLM als Richter unter Verwendung von Foundation-Modellen:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

Im Folgenden finden Sie ein Beispiel für LLM aus dem Grundgestein als Richteraufruf unter Verwendung eines Inferenzprofils:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-east-2::foundation-model/amazon.nova-premier-v1:0",
                "arn:aws:bedrock:us-west-2::foundation-model/amazon.nova-premier-v1:0"
            ],
            "Condition": {
                "StringLike": {
                    "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:111122223333:inference-profile/us.amazon.nova-premier-v1:0"
            ]
        }
    ]
}
```

[Informationen zu den Voraussetzungen für Inferenzprofile finden Sie unter Voraussetzungen für Inferenzprofile.](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-prereq.html)

# Daten für Amazon Nova-Modelle vorbereiten
<a name="rft-prepare-data"></a>

Bei der Feinabstimmung eines Amazon Nova-Modells mit Verstärkungs-Feinabstimmung können Sie Ihre eigenen Eingabeaufforderungen verwenden oder vorhandene Amazon Bedrock API-Aufrufprotokolle als Trainingsdaten verwenden.

## Anforderungen und Quellen für Trainingsdaten
<a name="rft-data-source-options"></a>

Sie können Trainingsdaten über eine der folgenden Optionen bereitstellen:

**Anmerkung**  
Wir unterstützen nur das OpenAI-Chat-Abschlussformat.

### Option 1: Geben Sie Ihre eigenen Eingabeaufforderungen ein
<a name="w2aac15c25c17c15b5b7b1"></a>

Sammeln Sie Ihre Prompts und speichern Sie sie im Dateiformat `.jsonl`. Sie können benutzerdefinierte Datensätze im JSONL-Format hochladen oder vorhandene Datensätze aus Amazon S3 auswählen. Jeder Datensatz in der JSONL muss das OpenAI-Chat-Abschlussformat in der folgenden Struktur verwenden:
+ `messages`: Geben Sie in dieses Feld die Benutzer-, System- oder Assistentenrolle ein, die die für das Modell bereitgestellte Eingabeaufforderung enthält.
+ `reference_answer`: In diesem Feld sollte es die erwarteten Ergebnis- oder Bewertungskriterien enthalten, anhand derer Ihre Belohnungsfunktion die Antwort des Modells bewertet. Es ist nicht auf strukturierte Ergebnisse beschränkt — es kann jedes Format enthalten, das Ihrer Belohnungsfunktion bei der Bewertung der Qualität hilft.
+ [Optional] Sie können Felder hinzufügen, die vom Grader Lambda für die Benotung verwendet werden.

**Voraussetzungen:**
+ JSONL-Format mit Eingabeaufforderungen im OpenAI-Chat-Abschlussformat (eine Aufforderung pro Zeile)
+ Mindestens 100 Datensätze im Trainingsdatensatz
+ Amazon Bedrock validiert automatisch das Format der Trainingsdatensätze

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "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"]
  }
}
```

------

### Option 2: Verwenden Sie Aufruf-Logs
<a name="w2aac15c25c17c15b5b7b3"></a>

Wenn Sie einen Auftrag zur Feinabstimmung von Verstärkungen erstellen, können Sie Amazon Bedrock veranlassen, vorhandene Aufrufprotokolle aus Ihrem S3-Bucket als Trainingsdaten zu verwenden. Für Amazon Bedrock ist ein Aufrufprotokoll eine detaillierte Aufzeichnung von Modellaufrufen.

Sie können kundenseitig gespeicherte Invoke/Converse API-Aufrufprotokolle von Amazon S3 für Schulungen verwenden.

**Voraussetzungen:**
+ Die API-Protokollierung muss für Ihre Nutzung von Amazon Bedrock aktiviert sein
+ Protokolle müssen in einem unterstützten Format vorliegen (Amazon Bedrock Invoke/Converse API)
+ Mindestens 100 Beispiele für Eingabeaufforderungen

Um Aufrufprotokolle für die Feinabstimmung der Verstärkung zu verwenden, richten Sie die Modellaufruf-Protokollierung ein, verwenden Sie einen der Modellaufrufvorgänge und stellen Sie sicher, dass Sie einen Amazon S3 S3-Bucket als Ziel für die Protokolle eingerichtet haben. Weitere Informationen zum Einrichten der Aufrufprotokolle finden Sie unter [Überwachen des Modellaufrufs mithilfe von CloudWatch Protokollen und Amazon S3](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html).

Bevor Sie den Verstärkungs-Feintuning-Job mit Aufrufprotokollen aus einem S3-Bucket als Eingabe starten können, müssen Sie Amazon Bedrock-Berechtigungen für den Zugriff auf die Protokolle aus einem S3-Bucket bereitstellen. Weitere Informationen finden Sie unter [Zugriff und Sicherheit bei der Modellanpassung](custom-model-job-access-security.md).

Sie können optional mithilfe eines der Modellaufrufvorgänge Anforderungsmetadaten zu den Prompt-Antwort-Paaren im Aufrufprotokoll hinzufügen und diese dann später zum Filtern der Protokolle verwenden. Amazon Bedrock kann die gefilterten Protokolle zur Feinabstimmung des Modells verwenden.

#### Fügen Sie Anforderungsmetadaten zu Aufforderungen und Antworten in Ihren Aufrufprotokollen hinzu
<a name="rft-request-metadata"></a>

Mithilfe von Aufrufprotokollen können Sie anhand von Anforderungsmetadaten, die den Aufrufprotokollen angehängt sind, die Aufforderungen des Trainingsdatensatzes identifizieren, die Amazon Bedrock für die Feinabstimmung der Verstärkung verwenden soll. 

Im Folgenden finden Sie ein Beispiel für ein Aufrufprotokoll eines Anrufs mit: `InvokeModel` `requestMetadata`

```
{
"schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "2024-09-11T17:16:18Z",
    "accountId": "XXXXX",
    "identity": {
"arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX"
    },
    "region": "us-east-1",
    "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5",
    "operation": "InvokeModel",
    "modelId": "meta.llama3-1-405b-instruct-v1:0",
    "input": {
"inputContentType": "application/json",
        "inputBodyJson": {
"prompt": "story of two dogs",
            "max_tokens_to_sample": 300
        },
        "inputTokenCount": 13
    },
    "output": {
"outputContentType": "application/json",
        "outputBodyJson": {
"type": "completion",
            "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little",
            "stop_reason": "max_tokens",
            "stop": null
        },
        "outputTokenCount": 300
    },
    "requestMetadata": {
"project": "CustomerService",
        "intent": "ComplaintResolution",
        "priority": "High"
    }
}
```

Sie können das Aufrufprotokoll als Eingabedatenquelle angeben, wenn Sie einen Auftrag zur Feinabstimmung von Verstärkungen starten. Sie können einen Job zur Feinabstimmung von Verstärkungen über die Amazon Bedrock-Konsole starten, indem Sie die API oder das AWS CLI SDK verwenden.

##### Anforderungen für die Bereitstellung von Anforderungsmetadaten
<a name="rft-metadata-requirements"></a>

Die Anforderungsmetadaten müssen die folgenden Anforderungen erfüllen:
+ Sie müssen im JSON-Format für `key:value` bereitgestellt werden.
+ Das Schlüssel/Wert-Paar muss eine Zeichenfolge mit maximal 256 Zeichen sein.
+ Es dürfen maximal 16 Schlüssel/Wert-Paare bereitgestellt werden.

##### Verwenden von Filtern für Anforderungsmetadaten
<a name="rft-metadata-filters"></a>

Sobald Aufrufprotokolle mit Anforderungsmetadaten verfügbar sind, können Sie Filter auf der Grundlage der Anforderungsmetadaten anwenden, um selektiv auszuwählen, welche Eingabeaufforderungen zur Feinabstimmung des Modells aufgenommen werden sollen. Beispielsweise möchten Sie möglicherweise nur solche mit `"project": "CustomerService"` Metadaten und Anforderungsmetadaten einbeziehen. `"priority": "High"`

Um die Protokolle anhand mehrerer Anforderungsmetadaten zu filtern, verwenden Sie einen einzigen booleschen Operator `AND` oder. `OR` Sie können diese Operatoren nicht kombinieren. Verwenden Sie für die Filterung von Metadaten für einzelne Anfragen den `Equals` `Not Equals` Operator oder.

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

Effektive RFT-Trainingsdaten erfordern drei Hauptmerkmale:
+ **Klarheit und Konsistenz** — Verwenden Sie klare, eindeutige Eingabeaufforderungen mit einheitlicher Formatierung. Vermeiden Sie widersprüchliche Bezeichnungen, mehrdeutige Anweisungen oder widersprüchliche Referenzantworten, die das Training irreführen könnten.
+ **Vielfalt** — Geben Sie unterschiedliche Eingabeformate, Sonderfälle und Schwierigkeitsgrade an, die die Nutzungsmuster in der Produktion für verschiedene Benutzertypen und Szenarien widerspiegeln.
+ **Effiziente Belohnungsfunktionen** — Entwerfen Sie Funktionen, die schnell (Sekunden, nicht Minuten) ausgeführt werden, parallelisiert werden und konsistente Ergebnisse AWS Lambda liefern, um ein kostengünstiges Training zu ermöglichen.

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

Das RFT-Datenformat unterstützt benutzerdefinierte Felder, die über die grundlegenden Schemaanforderungen (`messages`und) hinausgehen. `reference_answer` Diese Flexibilität ermöglicht es Ihnen, zusätzliche Daten hinzuzufü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 von Natur aus zusätzliche Felder. Nehmen Sie sie einfach in Ihre JSON-Trainingsdaten auf und sie werden an Ihre Belohnungsfunktion im `metadata` Feld weitergegeben.

**Allgemeine zusätzliche Eigenschaften**
+ `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

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

**Beispiele mit zusätzlichen Eigenschaften**

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

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

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.

------
#### [ Math problem with metadata ]

```
{
  "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
}
```

------

# Prämienfunktionen für Amazon Nova-Modelle einrichten
<a name="reward-functions"></a>

Belohnungsfunktionen bewerten die Antwortqualität und liefern Feedbacksignale für das Modelltraining. Sie können Prämienfunktionen einrichten, indem Sie benutzerdefinierte Lambda-Funktionen oder von Amazon Bedrock gehostete Foundation-Modelle als Juroren verwenden. Es stehen Vorlagen mit Anleitung zur Verfügung, um die Erstellung von Prämienfunktionen für allgemeine Aufgaben wie die Befolgung von Anweisungen und die Validierung von Formaten zu vereinfachen. Wählen Sie den Ansatz, der Ihren Aufgabenanforderungen entspricht.

## Verstärkendes Lernen durch verifizierbare Prämien (RLVR)
<a name="rft-rlvr"></a>

RLVR optimiert Modelle für objektive Aufgaben wie Codegenerierung oder mathematisches Denken mithilfe überprüfbarer regelbasierter Korrektoren oder Vorlagen. ready-to-use

Sie haben zwei Optionen für RLVR (Benutzerdefinierter Code):

### Option 1: Verwenden Sie von der Konsole bereitgestellte Vorlagen
<a name="w2aac15c25c17c17b5b7b1"></a>

Die Amazon Bedrock-Konsole bietet Beispielvorlagen für Grader-Lambda-Funktionen:
+ Mathematisches Denken mit Überprüfung der Grundwahrheit
+ Formatvalidierung und Überprüfung von Einschränkungen
+ Generische Lambda-Vorlage für Grader mit Boilerplate-Code

Folgen Sie den Anweisungen in der bereitgestellten Vorlage auf der Seite **RFT-Job erstellen** in der [Amazon Bedrock-Konsole](https://console.aws.amazon.com/bedrock).

### Option 2: Bringen Sie Ihre eigene Lambda-Funktion mit
<a name="w2aac15c25c17c17b5b7b3"></a>

Erstellen Sie benutzerdefinierte Belohnungsfunktionen mit Ihrem eigenen Lambda-ARN für komplexe Logik, externe APIs, mehrstufige Berechnungen oder die Kombination mehrerer Bewertungskriterien.

**Anmerkung**  
Wenn Sie Ihre eigene Lambda-Funktion mitbringen, beachten Sie Folgendes:  
Erhöhen Sie das Lambda-Timeout für komplexe Auswertungen von standardmäßig 3 Sekunden auf maximal 15 Minuten.
Die Lambda-Ausführungsrolle benötigt Berechtigungen zum Aufrufen von Modellen, wie unter beschrieben. [Zugriff und Sicherheit für Amazon Nova-Modelle](rft-access-security.md)

## Verstärktes Lernen durch KI-Feedback (RLAIF)
<a name="rft-rlaif"></a>

RLAIF optimiert Modelle für subjektive Aufgaben wie die Befolgung von Anweisungen oder Chatbot-Interaktionen mithilfe von KI-basierten Richtern mit Vorlagen. ready-to-use

**Für RLAIF (Model as Judge):**
+ Wählen Sie ein von Amazon Bedrock gehostetes Basismodell als Judge aus
+ Konfigurieren Sie die Anweisungen für die Evaluierung
+ Definieren Sie Bewertungskriterien und Bewertungsrichtlinien

Verfügbare Vorlagen für LLM-as-Judge Eingabeaufforderungen in der Amazon Bedrock-Konsole:
+ Folgender Unterricht (Schulung im Judge-Modell)
+ Zusammenfassung (Dialoge mit mehreren Turns)
+ Bewertung der Argumentation (CoT für Spezialgebiete)
+ Treue zur RAG (kontextbezogene Fragen und Antworten)

**Anmerkung**  
Die Option **Model as Judge** der Konsole wandelt Ihre Konfiguration während des Trainings automatisch in eine Lambda-Funktion um.

## Einzelheiten zur Implementierung der Lambda-Funktion
<a name="rft-lambda-implementation"></a>

Bei der Implementierung benutzerdefinierter Lambda-Belohnungsfunktionen muss Ihre Funktion Daten im folgenden Format akzeptieren und zurückgeben.

------
#### [ Input structure ]

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

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Richtlinien für das Design**
+ **Antworten einordnen** — Geben Sie der besten Antwort eine deutlich höhere Punktzahl
+ **Verwenden Sie konsistente Prüfungen** — Beurteilen Sie die Erledigung der Aufgaben, die Einhaltung des Formats, die Sicherheit und die angemessene Dauer
+ **Beibehaltung einer stabilen Skalierung** — Sorgen Sie dafür, dass die Ergebnisse normalisiert werden und nicht ausgenutzt werden können

# Feinabstimmungsaufträge für Amazon Nova-Modelle erstellen und verwalten
<a name="rft-submit-job"></a>

Sie können einen RFT-Job (Reinforcement Fine-Tuning) mithilfe der Amazon Bedrock-Konsole oder API erstellen. Der RFT-Job kann je nach Größe Ihrer Trainingsdaten, Anzahl der Epochen und Komplexität Ihrer Belohnungsfunktionen einige Stunden dauern.

## Voraussetzungen
<a name="rft-prerequisites"></a>
+ Erstellen Sie eine IAM-Servicerolle mit den erforderlichen Berechtigungen. Umfassende Informationen zu Sicherheit und Berechtigungen, einschließlich RFT-spezifischer Berechtigungen, finden Sie unter. [Zugriff und Sicherheit für Amazon Nova-Modelle](rft-access-security.md)
+ (Optional) Verschlüsseln Sie Eingabe- und Ausgabedaten, Ihren RFT-Job oder Inferenzanfragen für benutzerdefinierte Modelle. Weitere Informationen finden Sie unter [Verschlüsselung von benutzerdefinierten Modellen.](https://docs.aws.amazon.com/bedrock/latest/userguide/encryption-custom-job.html)

## Erstellen Sie Ihren RFT-Job
<a name="rft-submit-job-how-to"></a>

Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie dann die Schritte:

------
#### [ Console ]

Gehen Sie wie folgt vor, um einen RFT-Job in der Konsole einzureichen:

1. Öffnen Sie die Amazon Bedrock-Konsole und navigieren Sie unter **Tune** zu **Custom Models**.

1. Wählen Sie „**Erstellen**“ und dann „Auftrag zur **Feinabstimmung von Bewehrungen erstellen**“.

1. Wählen Sie im Abschnitt **Modelldetails** **Amazon Nova 2 Lite** als Basismodell aus.

1. Geben Sie im Abschnitt **Anpassungsdetails** den Namen der Anpassung ein.

1. Wählen Sie im Abschnitt **Trainingsdaten** Ihre Datenquelle aus. Wählen Sie entweder aus Ihren verfügbaren Aufrufprotokollen, die in Amazon S3 gespeichert sind, oder wählen Sie den Amazon S3 S3-Speicherort Ihrer Trainingsdatensatz-Datei aus oder laden Sie eine Datei direkt von Ihrem Gerät hoch.
**Anmerkung**  
Ihr Trainingsdatensatz sollte im OpenAI Chat Completions-Datenformat vorliegen. Wenn Sie Aufrufprotokolle im Amazon Bedrock Invoke- oder Converse-Format bereitstellen, konvertiert Amazon Bedrock sie automatisch in das Format Chat Completions.

1. Richten Sie im Bereich **Prämienfunktion Ihren Belohnungsmechanismus** ein:
   + **Model as Judge (RLAIF)** — Wählen Sie ein von Bedrock gehostetes Basismodell als Richter aus und konfigurieren Sie die Anweisungen für die Bewertung. Verwenden Sie dies für subjektive Aufgaben wie die Moderation von Inhalten.
**Anmerkung**  
Die Option **Model as Judge** der Konsole wandelt Ihre Konfiguration während des Trainings automatisch in eine Lambda-Funktion um.
   + **Benutzerdefinierter Code (RLVR)** — Erstellen Sie benutzerdefinierte Belohnungsfunktionen mithilfe von Python-Code, der über Lambda-Funktionen ausgeführt wird. Verwenden Sie dies für objektive Aufgaben wie die Codegenerierung.

   Weitere Informationen finden Sie unter [Prämienfunktionen für Amazon Nova-Modelle einrichten](reward-functions.md).

1. (Optional) Passen Sie im Bereich **Hyperparameter** die Trainingsparameter an oder verwenden Sie Standardwerte.

1. Geben Sie im Abschnitt **Ausgabedaten** den Amazon S3 S3-Speicherort ein, an dem Amazon Bedrock die Jobausgaben speichern soll.

1. Wählen Sie im Abschnitt **Rollenkonfiguration** entweder eine vorhandene Rolle aus der Dropdownliste aus oder geben Sie einen Namen für die zu erstellende Servicerolle ein.

1. (Optional) Konfigurieren Sie im Abschnitt **Zusätzliche Konfiguration** die Validierungsdaten, indem Sie auf einen Amazon S3 S3-Bucket, KMS-Verschlüsselungseinstellungen sowie Job- und Model-Tags verweisen.

1. Wählen Sie „Auftrag zur **Feinabstimmung der Bewehrung erstellen“, um mit dem Auftrag** zu beginnen.

------
#### [ API ]

Senden Sie eine CreateModelCustomizationJob Anfrage mit der `customizationType` Einstellung auf`REINFORCEMENT_FINE_TUNING`.

**Erforderliche Felder:** `roleArn``baseModelIdentifier`,`customModelName`,`jobName`,`trainingDataConfig`,`outputDataConfig`, `rftConfig`

**Beispiel für eine Anfrage:**

```
{
    "roleArn": "arn:aws:iam::123456789012:role/BedrockRFTRole",
    "baseModelIdentifier": "amazon.nova-2.0",
    "customModelName": "my-rft-model",
    "jobName": "my-rft-job",
    "customizationType": "REINFORCEMENT_FINE_TUNING",
    "trainingDataConfig": {
        "s3Uri": "s3://my-bucket/training-data.jsonl"
    },
    "customizationConfig": {
        "rftConfig" : {
            "graderConfig": {
                "lambdaGrader": {
                    "lambdaArn": "arn:aws:lambda:us-east-1:123456789012:function:function-name"
                }
            },
            "hyperParameters": {
                "batchSize": 64,
                "epochCount": 2,
                "evalInterval": 10,
                "inferenceMaxTokens": 8192,
                "learningRate": 0.00001,
                "maxPromptLength": 4096,
                "reasoningEffort": "high",
                "trainingSamplePerPrompt": 4
            }
        }
    },
    "outputDataConfig": {
        "s3Uri": "s3://my-bucket/rft-output/"
    }
}
```

**Python-API-Beispielanfrage:**

```
import boto3

bedrock = boto3.client(service_name='bedrock')
    
# Set parameters
customizationType = "REINFORCEMENT_FINE_TUNING"
baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-2-lite-v1:0:256k"
roleArn = "${your-customization-role-arn}"
jobName = "MyFineTuningJob"
customModelName = "MyCustomModel"

customizationConfig = {
    'rftConfig' : {
        'graderConfig': {
            'lambdaGrader': {
                'lambdaArn': 'arn:aws:lambda:us-east-1:123456789012:function:function-name'
            }
        },
        'hyperParameters': {
            'batchSize': 64,
            'epochCount': 2,
            'evalInterval': 10,
            'inferenceMaxTokens': 8192,
            'learningRate':0.00001,
            'maxPromptLength': 4096,
            'reasoningEffort': 'high',
            'trainingSamplePerPrompt':4
        }
    }
}

trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"}
outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"}

# Create job
response_ft = bedrock.create_model_customization_job(
    jobName=jobName, 
    customModelName=customModelName,
    roleArn=roleArn,
    baseModelIdentifier=baseModelIdentifier,
    customizationConfig=customizationConfig,
    trainingDataConfig=trainingDataConfig,
    outputDataConfig=outputDataConfig,
    customizationType=customizationType
)

jobArn = response_ft['jobArn']
```

------

## Überwachen Sie Ihren RFT-Trainingsjob
<a name="rft-monitor-job"></a>

Amazon Bedrock bietet Echtzeitüberwachung mit visuellen Grafiken und Metriken während des RFT-Trainings. Diese Kennzahlen helfen Ihnen zu verstehen, ob das Modell richtig konvergiert und ob die Belohnungsfunktion den Lernprozess effektiv steuert.

### Nachverfolgung des Jobstatus
<a name="rft-job-status"></a>

Sie können Ihren RFT-Jobstatus während der Validierungs- und Schulungsphasen in der Amazon Bedrock-Konsole überwachen.

**Indikatoren für den Abschluss:**
+ Der Jobstatus ändert sich zu **Abgeschlossen**, wenn die Schulung erfolgreich abgeschlossen wurde
+ ARN für ein benutzerdefiniertes Modell wird für die Bereitstellung verfügbar
+ Trainingsmetriken erreichen Konvergenzschwellenwerte

### Trainingsmetriken in Echtzeit
<a name="rft-real-time-metrics"></a>

Amazon Bedrock bietet Echtzeitüberwachung während des RFT-Trainings mit visuellen Grafiken, die Trainings- und Validierungsmetriken anzeigen.

#### Wichtigste Trainingsmetriken
<a name="rft-core-metrics"></a>
+ **Trainingsverlust** — Misst, wie gut das Modell aus den Trainingsdaten lernt
+ **Statistik der Trainingsbelohnungen** — Zeigt die von deinen Belohnungsfunktionen zugewiesenen Prämienwerte an
+ **Prämienspanne** — Misst den Unterschied zwischen Prämien mit guten und schlechten Antworten
+ **Genauigkeit bei Trainings- und Validierungssätzen** — Zeigt die Leistung des Modells sowohl bei den Trainings- als auch bei den ausgegebenen Daten

**Detaillierte metrische Kategorien**
+ **Prämienmetriken** — `critic/rewards/mean``critic/rewards/max`, `critic/rewards/min` (Prämienverteilung) und `val-score/rewards/mean@1` (Validierungsprämien)
+ **Modellverhalten** — `actor/entropy` (politische Variation; je höher, desto eher explorativ)
+ **Gesundheit der Ausbildung** — `actor/pg_loss` (Verlust des politischen Gradienten), `actor/pg_clipfrac` (Häufigkeit abgeschnittener Aktualisierungen) und `actor/grad_norm` (Gradientengröße)
+ **Antwortmerkmale** —`prompt_length/mean`,`prompt_length/max`, `prompt_length/min` (Eingabe-Token-Statistiken),, `response_length/mean``response_length/max`, `response_length/min` (Output-Token-Statistiken) und `response/aborted_ratio` (unvollständige Generierungsrate; 0 steht für „Alles abgeschlossen“)
+ **Leistung** — `perf/throughput` (Trainingsdurchsatz), `perf/time_per_step` (Zeit pro Trainingsschritt) und `timing_per_token_ms/*` (Verarbeitungszeiten pro Token)
+ **Ressourcennutzung** —`perf/max_memory_allocated_gb`, `perf/max_memory_reserved_gb` (GPU-Speicher) und `perf/cpu_memory_used_gb` (CPU-Speicher)

#### Visualisierung des Trainingsfortschritts
<a name="rft-progress-visualization"></a>

Die Konsole zeigt interaktive Grafiken an, die im Verlauf Ihres RFT-Jobs in Echtzeit aktualisiert werden. Diese Visualisierungen können Ihnen helfen:
+ Verfolgen Sie die Konvergenz in Richtung optimaler Leistung
+ Identifizieren Sie frühzeitig potenzielle Schulungsprobleme
+ Ermitteln Sie optimale Haltepunkte
+ Vergleichen Sie die Leistung verschiedener Epochen

## Inferenz einrichten
<a name="rft-setup-inference"></a>

Stellen Sie nach Abschluss des Jobs das RFT-Modell für On-Demand-Inferenzen bereit oder verwenden Sie Provisioned Throughput für eine konsistente Leistung. Informationen zum Einrichten von Inferenzen finden Sie unter. [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md)

Verwenden Sie **Test in Playground**, um die Antworten mit dem Basismodell auszuwerten und zu vergleichen. Informationen zur Bewertung Ihres fertigen RFT-Modells finden Sie unter[Evaluieren Sie Ihr RFT-Modell](rft-evaluate-model.md).

# Feinabstimmung von Modellen mit offenem Gewicht mithilfe von -compatible OpenAI APIs
<a name="fine-tuning-openai-apis"></a>

Amazon Bedrock bietet OpenAI kompatible API-Endpunkte für die Feinabstimmung von Fundamentmodellen. Mit diesen Endpunkten können Sie vertraute OpenAI SDKs Tools verwenden, um Feinabstimmungsaufträge mit Amazon Bedrock-Modellen zu erstellen, zu überwachen und zu verwalten. Auf dieser Seite wird beschrieben, wie diese APIs für die Feinabstimmung von Verstärkungen verwendet werden.

## Die wichtigsten Funktionen
<a name="fine-tuning-openai-key-capabilities"></a>
+ **Trainingsdateien hochladen** — Verwenden Sie die Files-API, um Trainingsdaten hochzuladen und zu verwalten, um Aufgaben zu optimieren
+ **Jobs zur Feinabstimmung erstellen** — Beginne mit der Feinabstimmung von Jobs mit benutzerdefinierten Trainingsdaten und Belohnungsfunktionen
+ Jobs **auflisten und abrufen — Sieh dir alle Jobs** zur Feinabstimmung an und erhalte detaillierte Informationen zu bestimmten Jobs
+ **Auftragsereignisse überwachen** — Verfolgen Sie den Fortschritt der Feinabstimmung anhand detaillierter Ereignisprotokolle
+ **Zugriffs-Checkpoints** — Rufen Sie während des Trainings erstellte Zwischen-Modell-Checkpoints ab
+ **Sofortige Inferenz** — Verwenden Sie nach Abschluss der Feinabstimmung das daraus resultierende fein abgestimmte Modell für On-Demand-Inferenzen über die OpenAI-kompatible API APIs (Responses/Chat Completions API) von Amazon Bedrock ohne zusätzliche Bereitstellungsschritte
+ **Einfache** Migration OpenAI — Kompatibel mit bestehenden SDK-Codebasen

## Verstärkter Arbeitsablauf zur Feinabstimmung bei Modellen mit offenem Gewicht
<a name="fine-tuning-openai-workflow"></a>

Stellen Sie vor der Feinabstimmung sicher, dass Sie über die Voraussetzungen verfügen, da Amazon Bedrock spezielle Berechtigungen benötigt, um den Feinabstimmungsprozess zu erstellen und zu verwalten. Umfassende Informationen zu Sicherheit und Berechtigungen finden Sie unter. [Zugang und Sicherheit für Modelle mit offenem Gewicht](rft-open-weight-access-security.md)

Führen Sie die Feinabstimmung der Bewehrung für Modelle mit offenem Gewicht in 5 Schritten durch:

1. **Trainingsdatensatz hochladen** — Verwenden Sie die Files-API, um Eingabeaufforderungen im erforderlichen Format (z. B. JSONL) hochzuladen, wobei der Zweck der Feinabstimmung als Trainingsdatensatz zur Feinabstimmung von Verstärkungen dient. Weitere Informationen finden Sie unter [Daten für Modelle mit offenem Gewicht vorbereiten](rft-prepare-data-open-weight.md).

1. **Belohnungsfunktion konfigurieren** — Definieren Sie einen Prüfer, der anhand von Lambda-Funktionen Modellantworten anhand von Korrektheit, Struktur, Tonalität oder anderen Zielen bewertet. Weitere Informationen finden Sie unter [Einrichtung von Belohnungsfunktionen für Modelle mit offenem Gewicht](reward-functions-open-weight.md).

1. **Feinabstimmungsauftrag erstellen** — Starten Sie den Auftrag zur Feinabstimmung der Verstärkung mithilfe der OpenAI -kompatiblen API, indem Sie das Basismodell, den Datensatz, die Belohnungsfunktion und andere optionale Einstellungen wie Hyperparameter angeben. Weitere Informationen finden Sie unter [Erstellen Sie einen Feinabstimmungsauftrag](fine-tuning-openai-job-create.md#fine-tuning-openai-create-job).

1. **Überwachen Sie den Trainingsfortschritt** — Verfolgen Sie den Jobstatus, Ereignisse und Trainingsmetriken mithilfe der Feinabstimmungsjobs. APIs Weitere Informationen finden Sie unter [Führt Feinabstimmungsereignisse auf](fine-tuning-openai-job-create.md#fine-tuning-openai-list-events). Greifen Sie auf Prüfpunkte des Zwischenmodells zu, um die Leistung in verschiedenen Trainingsphasen zu bewerten, siehe. [Listet Checkpoints für die Feinabstimmung auf](fine-tuning-openai-job-create.md#fine-tuning-openai-list-checkpoints)

1. **Inferenz ausführen** — Verwenden Sie die fein abgestimmte Modell-ID direkt für Inferenzen über die mit Amazon Bedrock OpenAI kompatiblen Antworten oder Chat-Abschlüsse. APIs Weitere Informationen finden Sie unter [Führen Sie die Inferenz mit einem fein abgestimmten Modell aus](fine-tuning-openai-job-create.md#fine-tuning-openai-inference).

## Unterstützte Regionen und Endpunkte
<a name="fine-tuning-openai-supported-regions"></a>

Die folgende Tabelle zeigt die Foundation-Modelle und Regionen, die eine OpenAI kompatible Feinabstimmung APIs unterstützen:


**Unterstützte Modelle und Regionen für eine OpenAI kompatible Feinabstimmung APIs**  

| Anbieter | Modell | Modell-ID | Name der Region | Region | Endpoint | 
| --- | --- | --- | --- | --- | --- | 
| OpenAI | GPT-OSS-20b | openai.gpt-oss-20b | USA West (Oregon) | us-west-2 | grundsteinmantel.us-west-2.api.aws | 
| Königin | Qwen 3 32 B | qwen.qwen3-32b | USA West (Oregon) | us-west-2 | bedrock-mantle.us-west-2.api.aws | 

# Zugang und Sicherheit für Modelle mit offenem Gewicht
<a name="rft-open-weight-access-security"></a>

Bevor Sie mit der Reinforcement Fine-Tuning (RFT) beginnen, stellen Sie sicher, dass Sie wissen, welche Art von Zugriff Amazon Bedrock für RFT-spezifische Operationen benötigt. RFT benötigt aufgrund seiner Funktionen zur Ausführung von Prämienfunktionen zusätzliche Berechtigungen, die über die standardmäßige Feinabstimmung hinausgehen.

## Voraussetzungen
<a name="fine-tuning-openai-prereq"></a>

Bevor Sie die mit Amazon Bedrock OpenAI kompatible Feinabstimmung verwenden APIs, stellen Sie sicher, dass Sie über Folgendes verfügen:

1. Ein AWS Konto mit entsprechenden Berechtigungen für den Zugriff auf Amazon Bedrock

1. **Authentifizierung** — Sie können sich authentifizieren mit:
   + Amazon Bedrock API-Schlüssel (für OpenAI SDK erforderlich und für HTTP-Anfragen verfügbar)
   + AWS Anmeldeinformationen (unterstützt für HTTP-Anfragen)
**Anmerkung**  
[Wenn Sie kurz- und langfristige API-Schlüssel von Amazon Bedrock verwenden, stellen Sie sicher, dass Ihre Rolle Zugriff auf die folgenden IAM-Richtlinienberechtigungen hat: und Rolle. `AmazonBedrockMantleFullAccess` AWSLambda](https://docs.aws.amazon.com/bedrock/latest/ug/rft-open-weight-access-security#openai-fine-tuning-lambda-permissions)

1. **OpenAISDK (optional)** — Installieren Sie das OpenAI Python-SDK, wenn Sie SDK-basierte Anfragen verwenden.

1. **Umgebungsvariablen** — Legen Sie die folgenden Umgebungsvariablen fest:
   + `OPENAI_API_KEY`— Stellen Sie Ihren Amazon Bedrock API-Schlüssel ein
   + `OPENAI_BASE_URL`— Stellen Sie den Amazon Bedrock-Endpunkt für Ihre Region ein (z. B.`https://bedrock-mantle.us-west-2.api.aws/v1`)

   Weitere Informationen finden Sie unter [Antworten-API](bedrock-mantle.md#bedrock-mantle-responses).

1. **Trainingsdaten**, die zu diesem Zweck als JSONL-Dateien formatiert wurden. `fine-tune` Weitere Informationen finden Sie unter [Daten für Modelle mit offenem Gewicht vorbereiten](rft-prepare-data-open-weight.md).

## Lambda-Berechtigungen für Belohnungsfunktionen
<a name="openai-fine-tuning-lambda-permissions"></a>

Sie müssen Lambda-Aufrufberechtigungen hinzufügen. Im Folgenden finden Sie ein Beispiel für eine Richtlinie, die Sie verwenden können:

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

Sie können auch von Amazon Bedrock gehostete Modelle als Judges für die Einrichtung von Prämienfunktionen verwenden. Sie müssen der Lambda-Ausführungsrolle spezifische Berechtigungen hinzufügen, um Foundation-Modelle aufzurufen. In Ihrer Lambda-Rolle können Sie diese verwalteten Richtlinien für LLMs die Benotung konfigurieren. Siehe [AmazonBedrockLimitedAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockLimitedAccess.html).

Im Folgenden finden Sie ein Beispiel für den Aufruf von Amazon Bedrock Foundation-Modellen als Judge mithilfe der Invoke API:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:*:*:foundation-model/*"
            ]
        }
    ]
}
```

# Daten für Modelle mit offenem Gewicht vorbereiten
<a name="rft-prepare-data-open-weight"></a>

Wenn Sie Open-Weight-Modelle mit Verstärkungsfeinabstimmung mithilfe von OpenAI-Compatible verfeinern APIs, stellen Sie Trainingsdaten bereit, indem Sie zu diesem Zweck Ihre eigenen Eingabeaufforderungen im JSONL-Format mitbringen. `fine-tune`

## Format und Anforderungen der Trainingsdaten
<a name="rft-data-format-open-weight"></a>

Die Trainingsdaten müssen dem OpenAI-Format für Chat-Vervollständigungen mit 100-20.000 Beispielen entsprechen. Jedes Trainingsbeispiel enthält:
+ `messages`: Geben Sie in dieses Feld die Benutzer-, System- oder Assistentenrolle ein, die die Eingabeaufforderung für das Modell enthält.
+ `reference_answer`: In diesem Feld sollte es die erwarteten Ergebnis- oder Bewertungskriterien enthalten, anhand derer Ihre Belohnungsfunktion die Antwort des Modells bewertet. Es ist nicht auf strukturierte Ergebnisse beschränkt — es kann jedes Format enthalten, das Ihrer Belohnungsfunktion bei der Bewertung der Qualität hilft.
+ [Optional] Sie können Felder hinzufügen, die vom Grader Lambda für die Benotung verwendet werden.

**Voraussetzungen:**
+ JSONL-Format mit Eingabeaufforderungen im OpenAI-Chat-Abschlussformat (eine Aufforderung pro Zeile)
+ Der Zweck muss auf eingestellt sein `fine-tune`
+ Mindestens 100 Datensätze im Trainingsdatensatz
+ Amazon Bedrock validiert automatisch das Format der Trainingsdatensätze

------
#### [ Example: General question-answering ]

```
{
            "messages": [
                {
                    "role": "system", 
                    "content": "You are a helpful assistant"
                },
                {
                    role": "user", 
                    "content": "What is machine learning?"}
            ],
            "reference_answer": "Machine learning is a subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed."
            }
```

------
#### [ Example: Math problem ]

```
{
  "id": "sample-001",
  "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"]
  }
}
```

------

## Datei-API
<a name="fine-tuning-openai-files-api"></a>

Sie können die OpenAI-kompatible Datei-API verwenden, um Ihre Trainingsdaten für die Feinabstimmung von Jobs hochzuladen. Dateien werden sicher in Amazon Bedrock gespeichert und bei der Erstellung von Feinabstimmungsaufträgen verwendet. Vollständige API-Details finden Sie in der Dokumentation zu [OpenAIDateien](https://platform.openai.com/docs/api-reference/files).

### Laden Sie die Trainingsdatei hoch
<a name="fine-tuning-openai-upload-file"></a>

Um eine Trainingsdatei hochzuladen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Upload training file
with open(TRAINING_FILE_PATH, 'rb') as f:
    file_response = client.files.create(
        file=f,
        purpose='fine-tune'
    )

# Store file ID for next steps
training_file_id = file_response.id
print(f"✅ Training file uploaded successfully: {training_file_id}")
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F purpose="fine-tune" \
  -F file="@training_data.jsonl"
```

------

### Dateidetails abrufen
<a name="fine-tuning-openai-retrieve-file"></a>

Um Details zu einer bestimmten Datei abzurufen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve file details
file_details = client.files.retrieve(training_file_id)

# Print raw response
print(json.dumps(file_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an`/v1/files/{file_id}`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Dateien auflisten
<a name="fine-tuning-openai-list-files"></a>

Um hochgeladene Dateien aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List files
files_response = client.files.list(purpose='fine-tune')

# Print raw response
print(json.dumps(files_response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an`/v1/files`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/files?purpose=fine-tune \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

### Datei löschen
<a name="fine-tuning-openai-delete-file"></a>

Um eine Datei zu löschen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Delete file
delete_response = client.files.delete(training_file_id)
```

------
#### [ HTTP request ]

Stellen Sie eine DELETE-Anfrage an`/v1/files/{file_id}`:

```
curl -X DELETE https://bedrock-mantle.us-west-2.api.aws/v1/files/file-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Eigenschaften effektiver Trainingsdaten
<a name="rft-data-characteristics-open-weight"></a>

Effektive RFT-Trainingsdaten erfordern drei Hauptmerkmale:
+ **Klarheit und Konsistenz** — Verwenden Sie klare, eindeutige Eingabeaufforderungen mit einheitlicher Formatierung. Vermeiden Sie widersprüchliche Bezeichnungen, mehrdeutige Anweisungen oder widersprüchliche Referenzantworten, die das Training irreführen könnten.
+ **Vielfalt** — Geben Sie unterschiedliche Eingabeformate, Sonderfälle und Schwierigkeitsgrade an, die die Nutzungsmuster in der Produktion für verschiedene Benutzertypen und Szenarien widerspiegeln.
+ **Effiziente Belohnungsfunktionen** — Entwerfen Sie Funktionen, die schnell (Sekunden, nicht Minuten) ausgeführt werden, parallelisiert werden und konsistente Ergebnisse AWS Lambda liefern, um ein kostengünstiges Training zu ermöglichen.

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

Das RFT-Datenformat unterstützt benutzerdefinierte Felder, die über die grundlegenden Schemaanforderungen (`messages`und) hinausgehen. `reference_answer` Diese Flexibilität ermöglicht es Ihnen, zusätzliche Daten hinzuzufü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 von Natur aus zusätzliche Felder. Nehmen Sie sie einfach in Ihre JSON-Trainingsdaten auf und sie werden an Ihre Belohnungsfunktion im `metadata` Feld weitergegeben.

**Allgemeine zusätzliche Eigenschaften**
+ `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

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

**Beispiele mit zusätzlichen Eigenschaften**

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

```
{
  "id": "chem-001",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful chemistry assistant"
    },
    {
      "role": "user",
      "content": "Predict hydrogen bond donors and acceptors for this SMILES: CCN(CC)CCC(=O)c1sc(N)nc1C"
    }
  ],
  "reference_answer": {
    "donor_bond_counts": 2,
    "acceptor_bond_counts": 4
  }
}
```

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.

------
#### [ Math problem with metadata ]

```
{
  "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
}
```

------

# Einrichtung von Belohnungsfunktionen für Modelle mit offenem Gewicht
<a name="reward-functions-open-weight"></a>

Belohnungsfunktionen bewerten die Antwortqualität und liefern Feedbacksignale für das Modelltraining. Sie können Belohnungsfunktionen mit benutzerdefinierten Lambda-Funktionen einrichten. Wählen Sie den Ansatz, der Ihren Aufgabenanforderungen entspricht.

## Benutzerdefinierte Lambda-Funktionen für die Bewertung von Belohnungen
<a name="rft-custom-lambda-functions"></a>

Sie können Belohnungsfunktionen mit benutzerdefinierten Lambda-Funktionen einrichten. Innerhalb Ihrer Lambda-Funktion haben Sie Flexibilität bei der Implementierung der Bewertungslogik:
+ **Objektive Aufgaben** — Verwenden Sie für objektive Aufgaben wie Codegenerierung oder mathematisches Denken überprüfbare regelbasierte Korrektoren, die die Richtigkeit anhand bekannter Standards oder Testfälle überprüfen.
+ **Subjektive Aufgaben** — Rufen Sie bei subjektiven Aufgaben wie der Befolgung von Anweisungen oder Chatbot-Interaktionen Amazon Bedrock Foundation-Modelle als Richter innerhalb Ihrer Lambda-Funktion auf, um die Antwortqualität anhand Ihrer Kriterien zu bewerten.

Ihre Lambda-Funktion kann je nach Aufgabenanforderungen komplexe Logik implementieren APIs, externe integrieren, mehrstufige Berechnungen durchführen oder mehrere Bewertungskriterien kombinieren.

**Anmerkung**  
Wenn Sie benutzerdefinierte Lambda-Funktionen verwenden:  
Erhöhen Sie das Lambda-Timeout für komplexe Auswertungen von standardmäßig 3 Sekunden auf maximal 15 Minuten.
Die Lambda-Ausführungsrolle benötigt Berechtigungen zum Aufrufen der Lambda-Funktion, wie unter beschrieben. [Lambda-Berechtigungen für Belohnungsfunktionen](rft-open-weight-access-security.md#openai-fine-tuning-lambda-permissions)

## Einzelheiten zur Implementierung der Lambda-Funktion
<a name="rft-lambda-implementation-open-weight"></a>

Bei der Implementierung benutzerdefinierter Lambda-Belohnungsfunktionen muss Ihre Funktion Daten im folgenden Format akzeptieren und zurückgeben.

------
#### [ Input structure ]

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

------
#### [ Output structure ]

```
[{
  "id": "123",
  "aggregate_reward_score": 0.85,
  "metrics_list": [
    {
      "name": "accuracy",
      "value": 0.9,
      "type": "Reward"
    },
    {
      "name": "policy_compliance",
      "value": 0.8,
      "type": "Metric"
    }
  ]
}]
```

------

**Richtlinien für das Design**
+ **Antworten einordnen** — Geben Sie der besten Antwort eine deutlich höhere Punktzahl
+ **Verwenden Sie konsistente Prüfungen** — Beurteilen Sie die Erledigung der Aufgaben, die Einhaltung des Formats, die Sicherheit und die angemessene Dauer
+ **Beibehaltung einer stabilen Skalierung** — Sorgen Sie dafür, dass die Ergebnisse normalisiert werden und nicht ausgenutzt werden können

# Erstellen und verwalten Sie Feinabstimmungsaufträge für Open-Weight-Modelle mit OpenAI APIs
<a name="fine-tuning-openai-job-create"></a>

Mit dem OpenAI-kompatiblen Feinabstimmungsjob APIs können Sie Feinabstimmungsjobs erstellen, überwachen und verwalten. Auf dieser Seite wird beschrieben, wie diese für die Feinabstimmung von Verstärkungen verwendet werden APIs . Vollständige API-Details finden Sie in der Dokumentation zur [OpenAIFeinabstimmung](https://platform.openai.com/docs/api-reference/fine-tuning).

## Erstellen Sie einen Feinabstimmungsauftrag
<a name="fine-tuning-openai-create-job"></a>

Erstellt einen Feinabstimmungsauftrag, der den Prozess der Erstellung eines neuen Modells aus einem bestimmten Datensatz einleitet. Vollständige API-Details finden Sie in der Dokumentation [Feinabstimmungsjobs OpenAI erstellen](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/create).

### Beispiele
<a name="fine-tuning-openai-create-job-examples"></a>

Um einen Job zur Feinabstimmung mit der RFT-Methode zu erstellen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Create fine-tuning job with RFT method
job_response = client.fine_tuning.jobs.create(
    model=MODEL_ID,
    training_file=training_file_id,
    # Suffix field is not supported so commenting for now.
    # suffix="rft-example",  # Optional: suffix for fine-tuned model name
    extra_body={
        "method": {
            "type": "reinforcement", 
            "reinforcement": {
                "grader": {
                    "type": "lambda",
                    "lambda": {
                        "function": "arn:aws:lambda:us-west-2:123456789012:function:my-reward-function"  # Replace with your Lambda ARN
                    }
                },
                "hyperparameters": {
                    "n_epochs": 1,  # Number of training epochs
                    "batch_size": 4,  # Batch size
                    "learning_rate_multiplier": 1.0  # Learning rate multiplier
                }
            }
        }
    }
)

# Store job ID for next steps
job_id = job_response.id
print({job_id})
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an: `/v1/fine_tuning/jobs`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "training_file": "file-abc123",
    "model": "gpt-4o-mini",
    "method": {
      "type": "reinforcement",
      "reinforcement": {
        "grader": {
          "type": "lambda",
          "lambda": {
            "function": "arn:aws:lambda:us-west-2:123456789012:function:my-grader"
          }
        },
        "hyperparameters": {
          "n_epochs": 1,
          "batch_size": 4,
          "learning_rate_multiplier": 1.0
        }
      }
    }
  }'
```

------

## Führt Feinabstimmungsereignisse auf
<a name="fine-tuning-openai-list-events"></a>

Listet Ereignisse für eine Feinabstimmungsaufgabe auf. Feinabstimmungsereignisse bieten detaillierte Informationen über den Fortschritt Ihres Jobs, einschließlich Trainingsmetriken, Erstellung von Checkpoints und Fehlermeldungen. Vollständige API-Details finden Sie in der Dokumentation zur [Feinabstimmung von OpenAI Listen](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list_events).

### Beispiele
<a name="fine-tuning-openai-list-events-examples"></a>

Um Feinabstimmungsereignisse aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning events
events = client.fine_tuning.jobs.list_events(
    fine_tuning_job_id="ftjob-abc123",
    limit=50
)

for event in events.data:
    print(f"[{event.created_at}] {event.level}: {event.message}")
    if event.data:
        print(f"  Metrics: {event.data}")
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an`/v1/fine_tuning/jobs/{fine_tuning_job_id}/events`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=50
```

------

Ereignisse beinhalten Informationen wie:
+ Meldungen über den Beginn und den Abschluss der Schulung
+ Benachrichtigungen zur Erstellung von Checkpoints
+ Trainingsmetriken (Verlust, Genauigkeit) bei jedem Schritt
+ Fehlermeldungen, wenn der Job fehlschlägt

Um alle Ereignisse nacheinander zu durchsuchen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Paginate through all events
all_events = []
after = None

while True:
    events = client.fine_tuning.jobs.list_events(
        fine_tuning_job_id="ftjob-abc123",
        limit=100,
        after=after
    )
    
    all_events.extend(events.data)
    
    if not events.has_more:
        break
    
    after = events.data[-1].id
```

------
#### [ HTTP request ]

Stellen Sie mehrere GET-Anfragen mit dem folgenden `after` Parameter:

```
# First request
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100

# Subsequent requests with 'after' parameter
curl "https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100&after=ft-event-abc123"
```

------

## Finetuning-Job abrufen
<a name="fine-tuning-openai-retrieve-job"></a>

Erhalten Sie detaillierte Informationen zu einem Feinsteuerungsjob. Vollständige API-Details finden Sie in der Dokumentation zum [OpenAIRetrieve-Feintuning-Job](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/retrieve).

### Beispiele
<a name="fine-tuning-openai-retrieve-job-examples"></a>

Um bestimmte Auftragsdetails abzurufen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Retrieve specific job details
job_details = client.fine_tuning.jobs.retrieve(job_id)

# Print raw response
print(json.dumps(job_details.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an`/v1/fine_tuning/jobs/{fine_tuning_job_id}`:

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Aufgaben zur Feinabstimmung auflisten
<a name="fine-tuning-openai-list-jobs"></a>

Führt die Feinabstimmungsaufgaben Ihrer Organisation mit Paginierungsunterstützung auf. Vollständige API-Details finden Sie in der Dokumentation zur [Feinabstimmung von OpenAI Listen](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/list).

### Beispiele
<a name="fine-tuning-openai-list-jobs-examples"></a>

Um Aufträge zur Feinabstimmung mit Limit und Seitennummerierung aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List fine-tuning jobs with limit and pagination
response = client.fine_tuning.jobs.list(
    limit=20  # Maximum number of jobs to return
)

# Print raw response
print(json.dumps(response.model_dump(), indent=2))
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an: `/v1/fine_tuning/jobs`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs?limit=20 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Feinabstimmungsauftrag abbrechen
<a name="fine-tuning-openai-cancel-job"></a>

Bricht einen laufenden Feinabstimmungsauftrag ab. Nach dem Abbruch kann der Job nicht wieder aufgenommen werden. Vollständige API-Details finden Sie in der Dokumentation zum [Feintuning-Job OpenAI „Abbrechen“](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/methods/cancel).

### Beispiele
<a name="fine-tuning-openai-cancel-job-examples"></a>

Um einen Feinabstimmungsauftrag abzubrechen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Cancel fine-tuning job
cancel_response = client.fine_tuning.jobs.cancel("ftjob-abc123")

print(f"Job ID: {cancel_response.id}")
print(f"Status: {cancel_response.status}")  # Should be "cancelled"
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an`/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel`:

```
curl -X POST https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/cancel \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

------

## Listet Checkpoints für die Feinabstimmung auf
<a name="fine-tuning-openai-list-checkpoints"></a>

Listet Checkpoints für einen Feinabstimmungsjob auf. Bei Checkpoints handelt es sich um während der Feinabstimmung erstellte Schnappschüsse eines Modells, die als Rückschlüsse zur Bewertung der Leistung in verschiedenen Trainingsphasen verwendet werden können. Weitere Informationen finden Sie in der Dokumentation Checkpoints zur Feinabstimmung von [OpenAIListen](https://developers.openai.com/api/reference/resources/fine_tuning/subresources/jobs/subresources/checkpoints/methods/list).

### Beispiele
<a name="fine-tuning-openai-list-checkpoints-examples"></a>

Um Checkpoints für eine Feinabstimmungsaufgabe aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# List checkpoints for a fine-tuning job
checkpoints = client.fine_tuning.jobs.checkpoints.list(
    fine_tuning_job_id="ftjob-abc123",
    limit=10
)

for checkpoint in checkpoints.data:
    print(f"Checkpoint ID: {checkpoint.id}")
    print(f"Step: {checkpoint.step_number}")
    print(f"Model: {checkpoint.fine_tuned_model_checkpoint}")
    print(f"Metrics: {checkpoint.metrics}")
    print("---")
```

------
#### [ HTTP request ]

Stellen Sie eine GET-Anfrage an: `/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/checkpoints?limit=10
```

------

Jeder Checkpoint beinhaltet:
+ **Checkpoint-ID** — Eindeutige Kennung für den Checkpoint
+ **Schrittnummer** — Trainingsschritt, bei dem der Checkpoint erstellt wurde
+ **Modell-Checkpoint** — Modell-ID, die für Rückschlüsse verwendet werden kann
+ **Metriken** — Validierungsverlust und Genauigkeit an diesem Checkpoint

Um ein Checkpoint-Modell für Inferenzen zu verwenden, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Test inference with a checkpoint
response = client.chat.completions.create(
    model=checkpoint.fine_tuned_model_checkpoint,
    messages=[{"role": "user", "content": "What is AI?"}],
    max_tokens=100
)

print(response.choices[0].message.content)
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an: `/v1/chat/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom:7p4lURel:ckpt-step-1000",
    "messages": [{"role": "user", "content": "What is AI?"}],
    "max_tokens": 100
  }'
```

------

## Führen Sie die Inferenz mit einem fein abgestimmten Modell aus
<a name="fine-tuning-openai-inference"></a>

Sobald Ihre Feinabstimmung abgeschlossen ist, können Sie das fein abgestimmte Modell für Inferenzen über die Responses API oder Chat Completions API verwenden. Vollständige API-Einzelheiten finden Sie unter. [Generieren Sie Antworten mit OpenAI APIs](bedrock-mantle.md)

### API für Antworten
<a name="fine-tuning-openai-responses-api"></a>

Verwenden Sie die Responses API für die Generierung von Single-Turn-Text mit Ihrem fein abgestimmten Modell:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference with Responses API
    response = client.completions.create(
        model=fine_tuned_model,
        prompt="What is the capital of France?",
        max_tokens=100,
        temperature=0.7
    )
    
    print(f"Response: {response.choices[0].text}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an: `/v1/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "prompt": "What is the capital of France?",
    "max_tokens": 100,
    "temperature": 0.7
  }'
```

------

### API für Chat-Abschlüsse
<a name="fine-tuning-openai-inference-examples"></a>

Verwenden Sie die Chat-Completions-API für Konversationsinteraktionen mit Ihrem fein abgestimmten Modell:

------
#### [ OpenAI SDK (Python) ]

```
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables
from openai import OpenAI
client = OpenAI()

# Get the fine-tuned model ID
job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123")

if job_details.status == 'succeeded' and job_details.fine_tuned_model:
    fine_tuned_model = job_details.fine_tuned_model
    print(f"Using fine-tuned model: {fine_tuned_model}")
    
    # Run inference
    inference_response = client.chat.completions.create(
        model=fine_tuned_model,
        messages=[
            {"role": "user", "content": "What is the capital of France?"}
        ],
        max_tokens=100
    )
    
    print(f"Response: {inference_response.choices[0].message.content}")
else:
    print(f"Job status: {job_details.status}")
    print("Job must be in 'succeeded' status to run inference")
```

------
#### [ HTTP request ]

Stellen Sie eine POST-Anfrage an: `/v1/chat/completions`

```
curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel",
    "messages": [
      {"role": "user", "content": "What is the capital of France?"}
    ],
    "max_tokens": 100
  }'
```

------

# Evaluieren Sie Ihr RFT-Modell
<a name="rft-evaluate-model"></a>

Nachdem die Feinabstimmung der Bewehrung erfolgreich abgeschlossen wurde, können Sie die Leistung Ihres benutzerdefinierten Modells anhand mehrerer Bewertungsmethoden bewerten. Amazon Bedrock bietet integrierte Evaluierungstools, mit denen Sie Ihr RFT-Modell mit dem Basismodell vergleichen und Verbesserungen validieren können.

**Topics**
+ [Bewertungsmethoden](#rft-evaluation-methods)
+ [Einrichtung von Inferenzen für die Bewertung](#rft-setup-inference-evaluation)
+ [Bewährte Verfahren für die Bewertung](#rft-evaluation-best-practices)

## Bewertungsmethoden
<a name="rft-evaluation-methods"></a>

Amazon Bedrock bietet verschiedene Möglichkeiten, die Leistung Ihres RFT-Modells zu bewerten.

### Validierungsmetriken
<a name="rft-validation-metrics"></a>

Wenn Sie einen Validierungsdatensatz hochladen, werden Ihnen zwei zusätzliche Grafiken in den Trainingsmetriken angezeigt.
+ **Prämien für die Validierung** — Zeigt, wie gut sich Ihr Modell über Trainingsbeispiele hinaus generalisieren lässt. Niedrigere Werte als Trainingsbelohnungen sind normal und werden erwartet.
+ **Länge der Validierungsepisoden** — Durchschnittliche Antwortdauer bei bisher unbekannten Validierungsdaten. Zeigt, wie effizient Ihr Modell im Vergleich zu den Trainingsbeispielen auf neue Eingaben reagiert.

### Testen Sie auf Playground
<a name="rft-test-playground"></a>

Verwenden Sie die Funktion „Test in Playground“ für schnelle Ad-hoc-Evaluierungen. Um die Funktion „Test in Playground“ verwenden zu können, muss die Inferenz eingerichtet werden. Weitere Informationen finden Sie unter [Einrichtung von Inferenzen für die Bewertung](#rft-setup-inference-evaluation).

Dieses interaktive Tool ermöglicht Ihnen:
+ Testen Sie Eingabeaufforderungen direkt mit Ihrem RFT-Modell
+ Vergleichen Sie die Antworten side-by-side zwischen Ihrem benutzerdefinierten Modell und dem Basismodell
+ Evaluieren Sie die Verbesserungen der Antwortqualität in Echtzeit
+ Experimentieren Sie mit verschiedenen Eingabeaufforderungen, um die Fähigkeiten des Modells zu beurteilen

### Bewertung des Bedrock-Modells
<a name="rft-model-evaluation"></a>

Verwenden Sie die Model-Evaluierung von Amazon Bedrock, um Ihr RFT-Modell anhand Ihrer eigenen Datensätze zu bewerten. Dies bietet eine umfassende Leistungsanalyse mit standardisierten Metriken und Benchmarks. Hier sind einige Beispiele für die Vorteile der Amazon Bedrock Model Evaluation.
+ Systematische Bewertung anhand von benutzerdefinierten Testdatensätzen
+ Quantitative Leistungsvergleiche
+ Standardisierte Kennzahlen für eine konsistente Bewertung
+ Integration mit bestehenden Amazon Bedrock-Evaluierungsworkflows

## Einrichtung von Inferenzen für die Bewertung
<a name="rft-setup-inference-evaluation"></a>

Bevor Sie Ihr RFT-Modell auswerten, richten Sie die Inferenz mit einer der folgenden Optionen ein:

### On-Demand-Inferenz
<a name="rft-on-demand-inference"></a>

Erstellen Sie ein benutzerdefiniertes Modell für die On-Demand-Bereitstellung für eine flexible Evaluierung. pay-per-use Diese Option beinhaltet eine tokenbasierte Preisgestaltung, bei der die Gebühren auf der Grundlage der Anzahl der während der Inferenz verarbeiteten Token berechnet werden.

## Bewährte Verfahren für die Bewertung
<a name="rft-evaluation-best-practices"></a>
+ **Systematisch vergleichen** — Bewerten Sie Ihr RFT-Modell immer anhand derselben Testaufforderungen und Bewertungskriterien mit dem Basismodell.
+ **Verwenden Sie verschiedene Testfälle** — Fügen Sie verschiedene Arten von Eingabeaufforderungen und Szenarien hinzu, die Ihre realen Anwendungsfälle repräsentieren.
+ **Überprüfen Sie die Ausrichtung der Belohnungen** — Stellen Sie sicher, dass Ihre Modellverbesserungen mit den während des Trainings verwendeten Belohnungsfunktionen übereinstimmen.
+ **Testen Sie Randfälle** — Evaluieren Sie das Modellverhalten bei schwierigen oder ungewöhnlichen Eingaben, um die Robustheit zu beurteilen.
+ **Überwachen Sie die Konsistenz der Antworten** — Stellen Sie sicher, dass Ihr Modell bei mehreren Durchläufen mit ähnlichen Eingabeaufforderungen eine gleichbleibende Qualität bietet.

# Anpassen eines Modells mit Destillation in Amazon Bedrock
<a name="model-distillation"></a>

*Modelldestillation* ist der Prozess, Wissen von einem größeren, intelligenteren Modell (Lehrer) auf ein kleineres, schnelleres und kostengünstigeres Modell (Schüler) zu übertragen. Bei diesem Prozess verbessert sich die Leistung des Schülermodells für einen bestimmten Anwendungsfall. Amazon-Bedrock-Modelldestillation verwendet die neuesten Datensynthesetechniken, um anhand des Lehrermodells vielfältige, qualitativ hochwertige Antworten (synthetische Daten) zu generieren und das Schülermodell zu optimieren.

## So verwenden Sie Amazon Bedrock Model Distillation
<a name="how-md-use"></a>

 Gehen Sie wie folgt vor, um die Amazon-Bedrock-Modelldestillation zu verwenden: 

1. **Wählen Sie ein Lehrer- und ein Schülermodell** aus — Weitere Informationen finden Sie unter[Voraussetzungen für die Modelldestillation](prequisites-model-distillation.md).

1. **Bereiten Sie Ihre Trainingsdaten für die Destillation** vor — Ihre Trainingsdaten sind eine Sammlung von Eingabeaufforderungen, die in `.jsonl` Dateien gespeichert sind. Amazon Bedrock verwendet die Eingabedaten, um Antworten aus dem Lehrermodell zu generieren, und nutzt die Antworten dann zur Feinabstimmung des Schülermodells.
   + **Optimiere die Eingabeaufforderungen** — Formatiere deine Eingabeaufforderungen für den gewünschten Anwendungsfall. Weitere Informationen finden Sie unter [Optimieren von Eingabe-Prompts für die Generierung synthetischer Daten](distillation-prepare-datasets.md#distillation-data-prep-prompt-optimization). 
   + **Verwenden Sie beschriftete Beispiele** — Bereiten Sie beschriftete Eingabedaten als Prompt-Antwort-Paare vor. Amazon Bedrock kann diese Paare als goldene Beispiele verwenden und gleichzeitig Antworten anhand des Lehrermodells generieren. Weitere Informationen finden Sie unter [Option 1: Bereitstellen eigener Prompts für die Datenvorbereitung](distillation-data-prep-option-1.md). 
   + **Aufruf-Logs verwenden** — Wenn Sie CloudWatch Logs-Aufruf-Logs aktivieren, können Sie bestehende Antworten von Lehrern aus Aufruf-Logs, die in Amazon S3 gespeichert sind, als Trainingsdaten verwenden. Ein Aufrufprotokoll in Amazon Bedrock ist eine detaillierte Aufzeichnung von Modellaufrufen. Weitere Informationen finden Sie unter [Option 2: Verwenden der Aufrufprotokolle für die Datenvorbereitung](distillation-data-prep-option-2.md). 

1. **Erstellen Sie einen Destillationsauftrag** — Dieser Job erstellt ein kleineres, schnelleres und kostengünstigeres Modell für Ihren Anwendungsfall. Nur Sie können auf das endgültige destillierte Modell zugreifen. Amazon Bedrock verwendet Ihre Daten nicht, um andere Lehrer- oder Schülermodelle für den öffentlichen Gebrauch zu trainieren. Weitere Informationen finden Sie unter [Übermitteln eines Auftrags zur Modelldestillation bei Amazon Bedrock](submit-model-distillation-job.md). Weitere Informationen zur Einrichtung von On-Demand-Inferenz finden Sie unter[Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md).

## So funktioniert die Amazon-Bedrock-Modelldestillation
<a name="how-md-works"></a>

Die Amazon-Bedrock-Modelldestillation ist ein einziger Workflow, der den Prozess der Erstellung eines destillierten Modells automatisiert. In diesem Workflow generiert Amazon Bedrock Antworten aus einem Lehrermodell, fügt Datensynthesetechniken zur Verbesserung der Antwortgenerierung hinzu und optimiert das Schülermodell anhand der generierten Antworten. Der erweiterte Datensatz wird in separate Datensätze aufgeteilt, die für Training und Validierung verwendet werden. Amazon Bedrock verwendet nur die Daten im Trainingsdatensatz, um das Schülermodell zu optimieren.

Nachdem Sie Ihre Lehrer- und Schülermodelle identifiziert haben, können Sie wählen, wie Amazon Bedrock ein destilliertes Modell für Ihren Anwendungsfall erstellen soll. Amazon Bedrock kann entweder anhand der von Ihnen bereitgestellten Prompts Lehrer-Antworten generieren oder Sie können Ihre Produktionsdaten mithilfe von Aufrufprotokollen verwenden. Die Amazon-Bedrock-Modelldestillation verwendet diese Antworten zur Feinabstimmung des Schülermodells.

**Anmerkung**  
Wenn Amazon Bedrock Model Distillation seine eigenen Datensynthesetechniken verwendet, um qualitativ hochwertigere Antworten von Lehrern zu generieren, fallen zusätzliche Gebühren für Inferenzgespräche zum Lehrermodell an. AWS-Konto Diese Gebühren werden zu den On-Demand-Inferenzsätzen des Lehrermodells in Rechnung gestellt. Durch Datensynthesetechniken kann die Größe des Feinabstimmungsdatensatzes auf maximal 15 000 Prompt-Response-Paare erhöht werden. Weitere Informationen zu den Gebühren von Amazon Bedrock finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing/).

### Erstellen eines destillierten Modells mithilfe der von Ihnen bereitgestellten Prompts
<a name="using-prompts"></a>

Amazon Bedrock verwendet die von Ihnen bereitgestellten Prompts, um Antworten aus dem Lehrermodell zu generieren. Amazon Bedrock verwendet dann die Antworten, um das von Ihnen identifizierte Schülermodell zu optimieren. Abhängig von Ihrem Anwendungsfall kann Amazon Bedrock proprietäre Datensynthesetechniken hinzufügen, um vielfältige und qualitativ hochwertigere Antworten zu generieren. Amazon Bedrock könnte beispielsweise ähnliche Prompts generieren, um anhand des Lehrermodells vielfältigere Antworten zu generieren. Wenn Sie optional eine Handvoll beschrifteter Eingabedaten als Prompt-Response-Paare bereitstellen, kann Amazon Bedrock diese Paare auch als goldene Beispiele verwenden, um das Lehrermodell anzuweisen, ähnlich hochwertige Antworten zu generieren.

### Erstellen eines destillierten Modells unter Verwendung von Produktionsdaten
<a name="using-prod-data"></a>

Wenn Sie bereits über Antworten verfügen, die vom Lehrermodell generiert und in den Aufrufprotokollen gespeichert wurden, können Sie diese vorhandenen Lehrerantworten verwenden, um das Schülermodell zu optimieren. Dazu müssen Sie Amazon Bedrock Zugriff auf Ihre Aufrufprotokolle gewähren. Ein Aufrufprotokoll in Amazon Bedrock ist eine detaillierte Aufzeichnung von Modellaufrufen. Weitere Informationen finden Sie unter [Überwachen](https://docs.aws.amazon.com//bedrock/latest/userguide/model-invocation-logging.html) des Modellaufrufs mithilfe von Protokollen. CloudWatch 

Wenn Sie sich für diese Option entscheiden, können Sie weiterhin Inferenz-API-Operationen von Amazon Bedrocks wie [InvokeModel](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_runtime_InvokeModel.html)die [Converse](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_runtime_Converse.html) API verwenden und die Aufrufprotokolle, Modelleingabedaten (Eingabeaufforderungen) und Modellausgabedaten (Antworten) für alle in Amazon Bedrock verwendeten Aufrufe sammeln.

Wenn Sie mithilfe der API-Operation `InvokeModel` oder `Converse` anhand des Modells Antworten generieren, können Sie die Antworten optional durch `requestMetadata` ergänzen. Wenn Sie einen Destillationsauftrag erstellen, können Sie im Rahmen der Konfiguration der Aufrufprotokolle nach diesen Metadaten filtern. Sie können nach Ihren spezifischen Anwendungsfällen filtern. Amazon Bedrock verwendet dann nur die gefilterten Antworten, um Ihr Schülermodell zu optimieren. Wenn Sie sich dafür entscheiden, Aufrufprotokolle zur Feinabstimmung Ihres Schülermodells zu verwenden, können Sie Amazon Bedrock anweisen, nur die Prompts zu verwenden, oder Sie nutzen die Prompt-Response-Paare. 

------
#### [ Choosing prompts with invocation logs ]

Wenn Sie festlegen, dass Amazon Bedrock nur die Prompts aus den Aufrufprotokollen verwendet, nutzt Amazon Bedrock die Prompts, um Antworten aus dem Lehrermodell zu generieren. In diesem Fall verwendet Amazon Bedrock die Antworten, um das von Ihnen identifizierte Schülermodell zu optimieren. Abhängig von Ihrem Anwendungsfall kann die Amazon-Bedrock-Modelldestillation proprietäre Datensynthesetechniken hinzufügen, um vielfältige und qualitativ hochwertigere Antworten zu generieren. 

------
#### [ Choosing prompt-response pairs with invocation logs ]

Wenn Sie festlegen, dass Amazon Bedrock Prompt-Response-Paare aus den Aufrufprotokollen verwendet, generiert Amazon Bedrock keine Antworten aus dem Lehrermodell neu, sondern verwendet die Antworten aus dem Aufrufprotokoll zur Feinabstimmung des Schülermodells. Damit Amazon Bedrock die Antworten aus den Aufrufprotokollen lesen kann, muss das in Ihrem Modelldestillationsauftrag angegebene Lehrermodell mit dem im Aufrufprotokoll verwendeten Modell übereinstimmen. Wenn sie nicht übereinstimmen, werden die Aufrufprotokolle nicht verwendet. Wenn Sie den Antworten im Aufrufprotokoll Anforderungsmetadaten hinzugefügt haben, können Sie zur Feinabstimmung des Schülermodells die Filter für Anforderungsmetadaten angeben, sodass Amazon Bedrock nur bestimmte Protokolle liest, die für Ihren Anwendungsfall gültig sind.

------

# Voraussetzungen für die Modelldestillation
<a name="prequisites-model-distillation"></a>

Bevor Sie beginnen können, vergewissern Sie sich, dass Sie die Zugriffs- und Sicherheitskontrollen für die Modelldestillation verstanden haben. Sie müssen auch ein Lehrer- und Studentenmodell für Ihren Destillationsjob wählen.

## Berechtigungen
<a name="model-distillation-access-security"></a>

Bevor Sie beginnen können, vergewissern Sie sich, dass Sie die Zugriffs- und Sicherheitskontrollen für die Modelldestillation verstanden haben. Sie müssen über eine IAM-Servicerolle verfügen, die auf den Amazon-S3-Bucket zugreifen kann, in dem Sie Ihre Trainings- und Validierungsdaten zur Modelldestillation speichern möchten. Amazon Bedrock bietet auch Optionen zur Verschlüsselung und weiteren Sicherung Ihrer Destillationsaufträge und Artefakte. Weitere Informationen finden Sie unter [Zugriff und Sicherheit bei der Modellanpassung](custom-model-job-access-security.md). 

Um ein regionsübergreifendes Inferenzprofil für ein Lehrermodell in einer Distillationsstelle verwenden zu können, muss Ihre Servicerolle zusätzlich zu dem Modell in jeder Region im Inferenzprofil über Berechtigungen zum Aufrufen des Inferenzprofils in einer AWS-Region verfügen. Eine Beispielrichtlinie finden Sie in [(Optional) Berechtigungen zum Erstellen eines Destillationsauftrags mit einem regionsübergreifenden Inferenzprofil](custom-model-job-access-security.md#custom-models-cross-region-inference-profile-permissions). Weitere Informationen zur regionsübergreifenden Inferenz finden Sie unter [Erhöhen des Durchsatzes mit regionenübergreifender Inferenz](cross-region-inference.md).

## Auswählen von Lehrer- und Schülermodellen für die Destillation
<a name="prequisites-teacher-student-models"></a>


****  

| Modelltyp | Auswahlkriterien | Die wichtigsten Überlegungen | Voraussetzungen | 
| --- | --- | --- | --- | 
| Modell für Lehrer | Wählen Sie ein Lehrermodell aus, das deutlich größer und fähiger als das Schülermodell ist und dessen Korrektheit Sie für Ihren Anwendungsfall erreichen möchten. | Damit die Destillation effektiver wird, wählen Sie ein Modell aus, das bereits für ähnliche Aufgaben wie Ihren Anwendungsfall trainiert wurde. Für einige Lehrermodelle können Sie ein regionsübergreifendes Inferenzprofil wählen. | Sie müssen über Berechtigungen zum Aufrufen von Inferenzprofilen und -modellen in jeder Region verfügen. Richtlinienbeispiele finden Sie in der Dokumentation zu regionsübergreifenden Inferenzen. | 
| Modell für Studierende | Wählen Sie ein Schülermodell aus, das deutlich kleiner ist als das Lehrermodell. | Das Schülermodell muss eines der Schülermodelle sein, die mit Ihrem Lehrermodell in der Tabelle mit den unterstützten Modellen kombiniert sind. | Muss mit dem ausgewählten Lehrermodell kompatibel sein, wie in der folgenden Tabelle dargestellt. | 

Im folgenden Abschnitt sind die unterstützten Modelle und Regionen für die Amazon-Bedrock-Modelldestillation aufgeführt. Nachdem Sie Ihre Lehrer- und Schülermodelle ausgewählt haben, bereiten Sie Ihre Trainingsdatensätze für die Destillation vor und optimieren sie. Weitere Informationen finden Sie unter [Vorbereiten der Trainingsdatensätze für die Destillation](distillation-prepare-datasets.md).

### Unterstützte Modelle und Regionen für die Amazon-Bedrock-Modelldestillation
<a name="model-distillation-supported"></a>

Die folgende Tabelle zeigt, welche Modelle AWS-Regionen Amazon Bedrock Model Distillation für Lehrer- und Schülermodelle unterstützt. Wenn Sie ein regionsübergreifendes Inferenzprofil verwenden, werden für die Modelldestillation nur System-Inferenzprofile unterstützt. Weitere Informationen finden Sie unter [Erhöhen des Durchsatzes mit regionenübergreifender Inferenz](cross-region-inference.md). 


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/prequisites-model-distillation.html)

**Anmerkung**  
Bei Claude - und Llama-Modellen wird der Destillationsauftrag in der Region USA West (Oregon) ausgeführt. Sie können entweder [bereitgestellten Durchsatz](https://docs.aws.amazon.com//bedrock/latest/userguide/prov-throughput.html) in USA West (Oregon) kaufen oder das [destillierte Modell in eine andere Region kopieren](https://docs.aws.amazon.com//bedrock/latest/userguide/copy-model.html) und dann [bereitgestellten Durchsatz](https://docs.aws.amazon.com//bedrock/latest/userguide/prov-throughput.html) erwerben.
Bei Nova-Modellen führen Sie einen Destillationsauftrag in der Region USA Ost (Nord-Virginia) aus. Damit Inferenz ermöglicht wird, müssen Sie [bereitgestellten Durchsatz](https://docs.aws.amazon.com//bedrock/latest/userguide/prov-throughput.html) in USA Ost (Nord-Virginia) kaufen. Sie können keine Nova-Modelle in andere Regionen kopieren.

# Vorbereiten der Trainingsdatensätze für die Destillation
<a name="distillation-prepare-datasets"></a>

Bevor Sie mit einer Modellanpassung beginnen können, müssen Sie mindestens einen Trainingsdatensatz vorbereiten. Um Eingabedatensätze für ein benutzerdefiniertes Modell vorzubereiten, erstellen Sie `.jsonl`-Dateien, von denen jede Zeile ein JSON-Objekt ist, das einem Datensatz entspricht. Die von Ihnen erstellten Dateien müssen dem Format der Modelldestillation und dem ausgewählten Modell entsprechen. Zudem ist es erforderlich, dass die darin enthaltenen Datensätze die Größenanforderungen erfüllen.

Geben Sie die Eingabedaten als Prompts ein. Amazon Bedrock verwendet die Eingabedaten, um Antworten aus dem Lehrermodell zu generieren, und nutzt die generierten Antworten dann zur Feinabstimmung des Schülermodells. Weitere Informationen zu den Eingaben, die Amazon Bedrock verwendet, und zur Auswahl der besten Option für Ihren Anwendungsfall finden Sie unter [So funktioniert die Amazon-Bedrock-Modelldestillation](model-distillation.md#how-md-works). Es gibt mehrere Möglichkeiten für die Vorbereitung eines Eingabedatensatzes.

**Anmerkung**  
Amazon Nova-Modelle haben unterschiedliche Anforderungen an die Destillation. Weitere Informationen finden Sie unter [Destillieren von Amazon Nova-Modellen](https://docs.aws.amazon.com/nova/latest/userguide/customize-distill.html).

## Unterstützte Modalitäten für die Destillation
<a name="distillation-supported-modalities"></a>

Die in aufgeführten Modelle [Unterstützte Modelle und Regionen für die Amazon-Bedrock-Modelldestillation](prequisites-model-distillation.md#model-distillation-supported) unterstützen nur die text-to-text Modalität.

## Optimieren von Eingabe-Prompts für die Generierung synthetischer Daten
<a name="distillation-data-prep-prompt-optimization"></a>

Während der Modelldestillation generiert Amazon Bedrock einen synthetischen Datensatz, anhand dessen das Schülermodell an den spezifischen Anwendungsfall angepasst wird. Weitere Informationen finden Sie unter [So funktioniert die Amazon-Bedrock-Modelldestillation](model-distillation.md#how-md-works).

Sie können den Generierungsprozess von synthetischen Daten optimieren, indem Sie die Eingabe-Prompts für den gewünschten Anwendungsfall formatieren. Wenn der Anwendungsfall des destillierten Modells beispielsweise Retrieval Augmented Generation (RAG) ist, formatieren Sie die Eingabe-Prompts anders, als wenn Anwendungsfälle für Agenten der Schwerpunkt des Modells sein sollen.

Im Folgenden finden Sie Beispiele dafür, wie Sie Eingabe-Prompts für RAG- oder Agentenanwendungsfälle formatieren können.

------
#### [ RAG prompt example ]

```
{
  "schemaVersion": "bedrock-conversation-2024",
  "system": [
    {
      "text": "You are a financial analyst charged with answering questions about 10K and 10Q SEC filings. Given the context below, answer the following question."
    }
  ],
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "text": "<context>\nDocument 1: Multiple legal actions have been filed against us as a result of the October 29, 2018 accident of Lion Air Flight 610 and the March 10, 2019 accident of Ethiopian Airlines Flight 302.\n</context>\n\n<question>Has Boeing reported any materially important ongoing legal battles from FY2022?</question>"
        }
      ]
    }
  ]
}
```

------
#### [ Agent prompt example ]

```
{
    "schemaVersion": "bedrock-conversation-2024",
    "system": [
        {
            "text": 'You are an expert in composing functions. You are given a question and a set of possible functions. Based on the question, you will need to make one or more function/tool calls to achieve the purpose.
                    Here is a list of functions in JSON format that you can invoke.
                    [
                        {
                            "name": "lookup_weather",
                            "description: "Lookup weather to a specific location",
                            "parameters": {
                                "type": "dict",
                                "required": [
                                    "city"
                                ],
                                "properties": {
                                    "location": {
                                        "type": "string",
                                    },
                                    "date": {
                                        "type": "string",
                                    }
                                }
                            }
                        }
                    ]'
        }
    ],
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "text": "What's the weather tomorrow?"
                }
            ]
        },
        {
            "role": "assistant",
            "content": [
               {
                   "text": "[lookup_weather(location=\"san francisco\", date=\"tomorrow\")]"
               }
            ]
        }
    ]
}
```

------

# Option 1: Bereitstellen eigener Prompts für die Datenvorbereitung
<a name="distillation-data-prep-option-1"></a>

Sammeln Sie Ihre Prompts und speichern Sie sie im Dateiformat `.jsonl`. Jeder Datensatz in der JSONL muss die folgende Struktur verwenden.
+ Nehmen Sie das Feld `schemaVersion` auf, das den Wert `bedrock-conversion-2024` haben muss.
+ [Optional] Fügen Sie einen System-Prompt hinzu, der die Rolle des Modells angibt.
+ Geben Sie im Feld `messages` die Benutzerrolle an, die den Eingabe-Prompt enthält, der dem Modell bereitgestellt wurde.
+ [Optional] Geben Sie im Feld `messages` die Assistentenrolle ein, die die gewünschte Antwort enthält.

Anthropic- und Meta Llama-Modelle unterstützen nur Single-Turn-Prompts. Das bedeutet, dass Sie nur einen Benutzer-Prompt verwenden können. Die Amazon Nova-Modelle unterstützen Multi-Turn-Konversationen, sodass Sie den Austausch zwischen mehreren Benutzern und Assistenten innerhalb eines Datensatzes ermöglichen können.

**Beispielformat**

```
{
    "schemaVersion": "bedrock-conversation-2024",
    "system": [{
        "text": "A chat between a curious User and an artificial intelligence Bot. The Bot gives helpful, detailed, and polite answers to the User's questions."
    }],
    "messages": [{
            "role": "user",
            "content": [{
                "text": "why is the sky blue"
            }]
        },
        {
            "role": "assistant",
            "content": [{
                "text": "The sky is blue because molecules in the air scatter blue light from the Sun more than other colors."
            }]
        }
    ]
}}
```

## Validieren des Datensatzes
<a name="distillation-data-prep-option-1-validate"></a>

Bevor Sie den Destillationsauftrag ausführen, können Sie den Eingabedatensatz mit einem [Python-Skript](https://github.com/aws-samples/amazon-bedrock-samples/blob/main/custom-models/model_distillation/dataset-validation/README.md) validieren.

# Option 2: Verwenden der Aufrufprotokolle für die Datenvorbereitung
<a name="distillation-data-prep-option-2"></a>

Wenn Sie einen Destillationsjob erstellen, können Sie Amazon Bedrock veranlassen, vorhandene Lehrerantworten aus CloudWatch Logs-Aufrufprotokollen als Trainingsdaten zu verwenden. Für Amazon Bedrock ist ein Aufrufprotokoll eine detaillierte Aufzeichnung von Modellaufrufen. 

Um Aufrufprotokolle für die Modelldestillation zu verwenden, richten Sie die Protokollierung von Modellaufrufen ein, verwenden Sie einen der Modellaufrufvorgänge und stellen Sie sicher, dass Sie einen Amazon-S3-Bucket als Ziel für die Protokolle eingerichtet haben. Bevor Sie mit der Modelldestillation beginnen können, müssen Sie Amazon Bedrock Berechtigungen für den Zugriff auf die Protokolle gewähren. Weitere Informationen zum Einrichten der Aufrufprotokolle finden Sie unter [Überwachen des Modellaufrufs mithilfe von Amazon CloudWatch ](https://docs.aws.amazon.com//bedrock/latest/userguide/model-invocation-logging.html) Logs.

Mit dieser Option können Sie angeben, ob Amazon Bedrock nur die Prompts oder Prompt-Antwort-Paare aus dem Aufrufprotokoll verwenden soll. Wenn Sie möchten, dass Amazon Bedrock nur Prompts verwendet, fügt Amazon Bedrock möglicherweise proprietäre Datensynthesetechniken hinzu, um anhand des Lehrermodells vielfältige und qualitativ hochwertigere Antworten zu generieren. Falls Amazon Bedrock Prompt-Antwort-Paare verwenden soll, generiert Amazon Bedrock keine Antworten aus dem Lehrermodell neu. Amazon Bedrock verwendet die Antworten aus dem Aufrufprotokoll direkt zur Feinabstimmung des Schülermodells.

**Wichtig**  
Sie können Amazon Bedrock maximal 15 000 Prompts oder Antwortpaare zur Feinabstimmung des Schülermodells zur Verfügung stellen. Um sicherzustellen, dass das Schülermodell genau auf Ihre spezifischen Anforderungen abgestimmt ist, empfehlen wir dringend Folgendes:  
Wenn Sie möchten, dass Amazon Bedrock nur Prompts verwendet, stellen Sie sicher, dass mindestens 100 Prompt-Antwort-Paare aus allen Modellen generiert wurden.
Falls Amazon Bedrock Antworten aus Ihren Aufrufprotokollen verwenden soll, stellen Sie sicher, dass die Aufrufprotokolle mindestens 100 anhand des Modells generierte Prompt-Antwort-Paare enthalten, die genau mit dem von Ihnen ausgewählten Lehrermodell übereinstimmen.

Sie können optional mithilfe eines der Modellaufrufvorgänge [Anforderungsmetadaten zu den Prompt-Antwort-Paaren im Aufrufprotokoll hinzufügen](#add-metadata-to-prompts) und diese dann später zum Filtern der Protokolle verwenden. Amazon Bedrock kann die gefilterten Protokolle zur Feinabstimmung des Schülermodells verwenden.

Um Protokolle anhand mehrerer Anforderungsmetadaten zu filtern, verwenden Sie einen einzelnen booleschen Operator (AND, OR oder NOT). Sie können Operationen nicht kombinieren. Verwenden Sie für die Filterung von Metadaten bei einzelnen Anfragen den booleschen Operator NOT.

## Hinzufügen von Anforderungsmetadaten zu Prompts und Antworten in Ihren Aufrufprotokollen für die Modelldestillation
<a name="add-metadata-to-prompts"></a>

Die Protokollierung von Modellaufrufen erfasst Aufrufprotokolle, Modelleingabedaten (Prompts) und -ausgabedaten (Antworten) für alle in Amazon Bedrock verwendeten Aufrufe. Wenn Sie die Protokollierung aktiviert haben, können Sie die Protokolle bei jeder Interaktion mit Amazon-Bedrock-Basismodellen über die API-Operationen `Invoke` oder `Converse` erfassen. Wenn Amazon Bedrock die Prompts und die zugehörigen Antworten aus dem Aufrufprotokoll verwenden soll, um das Schülermodell zu optimieren, müssen Sie Amazon Bedrock Zugriff auf diese Protokolle gewähren. Durch die Verwendung der Antworten, die ein Modell bereits generiert hat, kann das Schülermodell schneller optimiert werden. Die Verwendung von Antworten aus den Aufrufprotokollen macht die Modelldestillation auch kostengünstiger. Allerdings werden die proprietären Datensynthesetechniken von Amazon Bedrock nicht hinzugefügt. So wird das destillierte Modell leistungsfähiger. 

Mithilfe von Aufrufprotokollen können Sie die Prompt-Antwort-Paare identifizieren, die Amazon Bedrock für die Modelldestillation verwenden soll. Diese Prompt-Antwort-Paare können für bestimmte Anwendungsfälle vorgesehen sein. Um die Prompt-Antwort-Paare identifizieren zu können, die für die Destillation verwendet werden sollen, müssen Sie den Prompt-Antwort-Paaren eine Zeichenfolge mit Anforderungsmetadaten hinzufügen, wenn Sie ein Modell aufrufen oder die API-Operation `Converse` verwenden. Die Anforderungsmetadaten werden im folgenden Format bereitgestellt: `"priority" : "High"`. 

Während Sie weiterhin mithilfe der API-Operation `Invoke` oder `Converse` mit dem Modell interagieren, werden die Interaktionen und die Anforderungsmetadaten in den Aufrufprotokollen protokolliert. Im Folgenden finden Sie ein Beispiel für ein Aufrufprotokoll eines `InvokeModel`-Aufrufs, in dem die Metadaten der Anforderung angezeigt werden:

```
{
    "schemaType": "ModelInvocationLog",
    "schemaVersion": "1.0",
    "timestamp": "2024-09-11T17:16:18Z",
    "accountId": "XXXXX",
    "identity": {
        "arn": "arn:aws:sts::XXXXXXX:assumed-role/Admin/XXXXXX"
    },
    "region": "us-east-1",
    "requestId": "7ee514f3-9eff-467c-af75-8fd564ce58e5",
    "operation": "InvokeModel",
    "modelId": "meta.llama3-1-405b-instruct-v1:0",
    "input": {
        "inputContentType": "application/json",
        "inputBodyJson": {
            "prompt": "story of two dogs",
            "max_tokens_to_sample": 300
        },
        "inputTokenCount": 13
    },
    "output": {
        "outputContentType": "application/json",
        "outputBodyJson": {
            "type": "completion",
            "completion": " Here is a story about two dogs:\n\nRex and Charlie were best friends who lived next door to each other. Every morning, their owners would let them out into the backyard to play. Rex was a golden retriever with long, shaggy fur. He loved to run and chase sticks. Charlie was a corgi with short legs and a big smile. He was happy just sniffing the grass and rolling around. \n\nThe two dogs spent every day playing together. Rex would grab a stick and bring it over to Charlie, wagging his tail excitedly. Charlie would take the other end of the stick in his mouth and they'd have a friendly game of tug-of-war. After tiring themselves out, they'd flop down in the warm sunshine for a nap. \n\nAt lunchtime, their owners would call them in for food. Rex would gobble up his kibble hungrily while Charlie ate his at a more leisurely pace. After lunch, it was right back outside for more playtime. The afternoon sunbeams would light up their fur as they chased each other around the yard. \n\nWhen it started getting late, their owners called them in for the night. Rex and Charlie would head inside, tired but happy after another fun day of play. After slurping up fresh water from their bowls, they'd curl up on their beds, Rex's fluffy golden tail tucked over his nose and little",
            "stop_reason": "max_tokens",
            "stop": null
        },
        "outputTokenCount": 300
    },
    "requestMetadata": {
        "project": "CustomerService",
        "intent": "ComplaintResolution",
        "priority": "High"
    }
}
```

Sie können das Aufrufprotokoll als Eingabedatenquelle angeben, wenn Sie einen Modelldestillationsauftrag starten. Sie können den Modeldestillationsjob in der Amazon Bedrock-Konsole mithilfe der API oder des AWS SDK starten. AWS CLI

**Anforderungen für die Bereitstellung von Anforderungsmetadaten**

Die Anforderungsmetadaten müssen die folgenden Anforderungen erfüllen:
+ Sie müssen im JSON-Format für `key:value` bereitgestellt werden.
+ Das Schlüssel/Wert-Paar muss eine Zeichenfolge mit maximal 256 Zeichen sein.
+ Es dürfen maximal 16 Schlüssel/Wert-Paare bereitgestellt werden.

### Verwenden von Filtern für Anforderungsmetadaten
<a name="request-metadata-filter"></a>

Sie können Filter auf die Anforderungsmetadaten anwenden, um selektiv auszuwählen, welche Prompt-Antwort-Paare bei der Destillation zur Feinabstimmung des Schülermodells berücksichtigt werden sollen. Beispielsweise möchten Sie möglicherweise nur diejenigen mit den Anforderungsmetadaten „project“: "CustomerService" und „priority“: „High“ einbeziehen.

Um Protokolle anhand mehrerer Anforderungsmetadaten zu filtern, verwenden Sie einen einzelnen booleschen Operator (AND, OR oder NOT). Sie können Operationen nicht kombinieren. Verwenden Sie für die Filterung von Metadaten bei einzelnen Anfragen den booleschen Operator NOT. 

Sie können das Aufrufprotokoll als Eingabedatenquelle und die Filter zur Auswahl der Prompt-Antwort-Paare angeben, wenn Sie einen Modelldestillationsauftrag starten. Sie können den Modeldestillationsjob in der Amazon Bedrock-Konsole mithilfe der API oder des AWS SDK starten. AWS CLI Weitere Informationen finden Sie unter [Übermitteln eines Auftrags zur Modelldestillation bei Amazon Bedrock](submit-model-distillation-job.md).

## Validieren des Datensatzes
<a name="distillation-data-prep-option-2-validate"></a>

Bevor Sie den Destillationsauftrag ausführen, können Sie den Eingabedatensatz mit einem [Python-Skript](https://github.com/aws-samples/amazon-bedrock-samples/blob/main/custom-models/model_distillation/dataset-validation/README.md) validieren.

# Übermitteln eines Auftrags zur Modelldestillation bei Amazon Bedrock
<a name="submit-model-distillation-job"></a>

Sie können die Modelldestillation über die Amazon Bedrock-Konsole oder durch Senden einer [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)Anfrage mit einem Endpunkt der [Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) durchführen.

## Voraussetzungen
<a name="submit-model-distillation-job-prerequisites"></a>
+ Erstellen Sie eine IAM-Servicerolle mit den erforderlichen Berechtigungen. Umfassende Informationen zu Sicherheit und Berechtigungen finden Sie unter[Zugriff und Sicherheit bei der Modellanpassung](custom-model-job-access-security.md).
+ (Optional) Verschlüsseln Sie die Eingabe- und Ausgabedaten, Anpassungsaufträge oder Inferenzanforderungen für benutzerdefinierte Modelle. Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).
+ (Optional) Erstellen Sie eine Virtual Private Cloud (VPC), um Ihren Anpassungsauftrag zu schützen. Weitere Informationen finden Sie unter [(Optional) Schützen der Modellanpassungsaufträge mit einer VPC](custom-model-job-access-security.md#vpc-model-customization).

Weitere Informationen zur Einrichtung von On-Demand-Inferenz finden Sie unter. [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md)

## Übermitteln Ihres Auftrags
<a name="submit-model-distillation-job-how-to"></a>

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie **Destillationsauftrag erstellen** aus.

1. Gehen Sie für **Details zu destillierten Modellen** wie folgt vor:

   1. Geben Sie für **Name des destillierten Modells** einen Namen für Ihr destilliertes Modell ein.

   1. (Optional) Aktivieren Sie das Kontrollkästchen für **Modellverschlüsselung**, wenn Sie einen KMS-Schlüssel für die Verschlüsselung Ihres Auftrags und der zugehörigen Artefakte angeben möchten. 

      Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).

   1. (Optional) Wenden Sie **Tags** auf Ihr destilliertes Modell an.

1. Führen Sie für **Auftragskonfiguration** die folgenden Schritte aus:

   1. Geben Sie für **Auftragsname** einen Namen für Ihren Destillationsauftrag ein.

   1. (Optional) Aktivieren Sie das Kontrollkästchen für **Modellverschlüsselung**, wenn Sie einen KMS-Schlüssel für die Verschlüsselung Ihres Auftrags und der zugehörigen Artefakte angeben möchten. 

      Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).

   1. (Optional) Wenden Sie **Tags** auf Ihren Auftrag an.

1. Wählen Sie für **Lehrermodell – Details zum Schülermodell** die Lehrer- und Schülermodelle aus, um Ihr destilliertes Modell zu erstellen.

   Weitere Informationen finden Sie unter [Voraussetzungen für die Modelldestillation](prequisites-model-distillation.md).

1. Gehen Sie für die **Generierung synthetischer Daten** wie folgt vor:

   1. Geben Sie für **Max. Antwortlänge** die maximale Länge der synthetischen Antworten an, die durch das Lehrermodell generiert werden.

   1. Wählen Sie für den **Eingabedatensatz für Destillation** eine der folgenden Optionen aus:
      + **Direkt in S3-Speicherort hochladen** – Geben Sie den S3-Speicherort an, in dem Sie den Eingabedatensatz (Prompts) speichern, der für die Destillation verwendet wird. Weitere Informationen finden Sie unter [Option 1: Bereitstellen eigener Prompts für die Datenvorbereitung](distillation-data-prep-option-1.md).
      + **Zugriff auf Aufrufprotokolle gewähren** – Geben Sie den S3-Speicherort an, an dem Sie die Aufrufprotokolle zusammen mit dem Eingabedatensatz (Prompts) speichern, der für die Destillation verwendet werden soll. Weitere Informationen finden Sie unter [Option 2: Verwenden der Aufrufprotokolle für die Datenvorbereitung](distillation-data-prep-option-2.md).
        + (Optional) Geben Sie für **Metadatenfilter anfordern** Filter an, wenn Amazon Bedrock nur bestimmte Prompts in Ihren Protokollen zur Destillation verwenden soll.
        + Wählen Sie **Prompts lesen** oder **Prompt-Antwort-Paare lesen** aus, je nachdem, worauf Amazon Bedrock über Ihre Protokolle zugreifen soll. Beachten Sie, dass Antworten nur dann gelesen werden, wenn Ihr Lehrermodell mit dem Modell in Ihren Protokollen übereinstimmt.

1. Geben Sie für die **Destillationsausgabe** den S3-Speicherort an, in den Sie die Metriken und Berichte zu Ihrem Destillationsauftrag hochladen möchten.

   Weitere Informationen finden Sie unter [Analysieren der Ergebnisse eines ModellanpassungsauftragsAnalysieren der Ergebnisse von Modellanpassungsaufträgen](model-customization-analyze.md).

1. Wählen Sie für **VPC-Einstellungen** eine VPC-Konfiguration für den Zugriff auf den S3-Bucket mit Ihren Trainingsdaten aus.

   Weitere Informationen finden Sie unter [(Optional) Schützen der Modellanpassungsaufträge mit einer VPC](custom-model-job-access-security.md#vpc-model-customization).

1. Geben Sie für den **Servicezugriff** die IAM-Rolle für den Zugriff auf den S3-Bucket mit Ihren Trainingsdaten an. Sofern Sie kein regionsübergreifendes Inferenzprofil oder VPC-Konfigurationen verwenden, können Sie die Rolle in der Amazon-Bedrock-Konsole erstellen, wobei die korrekten Berechtigungen automatisch konfiguriert werden. Oder Sie können eine vorhandene Servicerolle verwenden. 

    Für einen Auftrag, der VPC-Konfigurationen aufweist oder ein regionsübergreifendes Inferenzprofil verwendet, müssen Sie in IAM eine neue Servicerolle erstellen, die über die erforderlichen Berechtigungen verfügt. 

   Weitere Informationen finden Sie unter [Erstellen einer IAM-Servicerolle für die Modellanpassung](custom-model-job-access-security.md#custom-model-job-service-role).

1. Wählen Sie **Destillationsauftrag erstellen**, um den neuen Destillationsauftrag zu starten. Nachdem Sie ein Modell angepasst haben, können Sie Inferenz für das Modell einrichten. Weitere Informationen finden Sie unter [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md). 

------
#### [ API ]

Sie müssen mindestens die folgenden Felder angeben, um Ihren Modelldestillationsauftrag zu übermitteln, wenn Sie die Amazon-Bedrock-API verwenden.


****  

| Feld | Description | 
| --- | --- | 
| baseModelIdentifier | Die Modell-ID des Schülermodells | 
| customModelName | Der Name des neuen Destillationsmodells | 
| jobName | Der Name des Modelldestillationsauftrags | 
| roleArn | Die Rolle, die Amazon Bedrock die Berechtigungen zum Lesen von Schulungs- und Validierungsdateien und zum Schreiben des Ausgabepfad erteilt | 
| trainingDataConfig | Der Amazon-S3-Pfad mit Ihren Trainingsdaten | 
| outputDataConfig | Der Amazon-S3-Pfad, der Ihre Trainings- und Validierungsmetriken enthält | 
| distillationConfig | Eingaben, die für den Destillationsjob erforderlich sind | 
| customModelKmsKeyId | Zum Verschlüsseln des benutzerdefinierten Modells | 
| clientRequestToken | Token, der verhindert, dass die Anforderung mehr als einmal abgeschlossen wird | 

Die folgenden Felder sind optional:


****  

| Feld | Description | 
| --- | --- | 
| customizationType | Standardmäßig für Destillationsaufträge auf DISTILLATION  festgelegt | 
| validationDataConfig | Liste der Amazon-S3-Pfade für Validierungsdaten | 
| jobTags | Zum Zuordnen von Tags zum Auftrag | 
| customModelTags | Zum Zuordnen von Tags zum resultierenden benutzerdefinierten Modell | 
| vpcConfig | VPC zum Schutz Ihrer Trainingsdaten und Ihres Destillationsaufträge | 

Wenn Sie verhindern möchten, dass die Anforderung mehr als einmal abgeschlossen wird, fügen Sie einen `clientRequestToken` hinzu.

Sie können die folgenden optionalen Felder für zusätzliche Konfigurationen einschließen.
+ `jobTags` and/or `customModelTags`— Ordnen Sie [Tags](tagging.md) dem Anpassungsauftrag oder dem daraus resultierenden benutzerdefinierten Modell zu.
+ `vpcConfig` – Fügen Sie die Konfiguration für eine [Virtual Private Cloud (VPC)](custom-model-job-access-security.md#vpc-model-customization) hinzu, um Ihre Trainingsdaten und Anpassungsauftrag zu schützen.

Das Folgende ist ein Beispielausschnitt aus [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)der API. In diesem Beispiel werden die Prompt-Response-Paare im Aufrufprotokoll als Eingabedatenquelle verwendet und wird der Filter für die Auswahl von Prompt-Response-Paaren angegeben. 

```
"trainingDataConfig": {
    "invocationLogsConfig": {
        "usePromptResponse": true,
        "invocationLogSource": {
            "s3Uri": "string"
        },
        "requestMetadataFilters": {
            "equals": {
                "priority": "High"
            }
        }
    }
}
```

**Antwort**

Die Antwort gibt einen `jobArn` des Modelldestillationsauftrags zurück.

------

## Nächste Schritte
<a name="submit-model-distillation-next-steps"></a>
+ [Überwachen Ihres Destillationsauftrags](model-customization-monitor.md). Weitere Informationen zur Einrichtung von On-Demand-Inferenz finden Sie unter. [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md)

# Klonen eines Destillationsauftrags
<a name="clone-model-distillation-job"></a>

Sie können einen Destillationsauftrag mit der Amazon-Bedrock-Konsole klonen. Klonen Sie Ihren Destillationsauftrag, um mehrere Aufträge mit ähnlichen Einstellungen auszuführen. Verwenden Sie das Klonen, um einen Auftrag, den Sie beendet haben oder bei dem ein Problem aufgetreten ist, wieder aufzunehmen. Der neue Auftrag übernimmt alle Einstellungen außer der Servicezugriffskonfiguration, allen VPC-Einstellungen und allen Tags.

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie den Destillationsauftrag aus, den Sie klonen möchten, und klicken Sie dann auf **Auftrag klonen**.

1. Bei Bedarf passen Sie die Einstellungen Ihres Auftrags an. 

1. Wählen Sie **Destillationsauftrag erstellen**, um den neuen Auftrag zu starten.

# So importieren Sie ein vortrainiertes Modell in Amazon Bedrock
<a name="import-pre-trained-model"></a>

 Sie können ein benutzerdefiniertes Modell in Amazon Bedrock erstellen, indem Sie ein Modell importieren, das Sie in anderen Umgebungen wie Amazon SageMaker AI angepasst haben. Beispielsweise haben Sie möglicherweise ein Modell, das Sie in Amazon SageMaker AI erstellt haben und das über eigene Modellgewichte verfügt. Sie können dieses Modell jetzt in Amazon Bedrock importieren und dann die Features von Amazon Bedrock nutzen, um Inferenzaufrufe an das Modell zu senden. 

Amazon Bedrock bietet zwei Methoden für den Import von benutzerdefinierten Modellen. Sie können Open-Source-Foundation-Modelle importieren, die Sie angepasst haben, oder Sie können Amazon Nova Modelle importieren, die Sie in SageMaker KI verfeinert haben.
+ **Open-Source-Modelle mit benutzerdefinierten Modellimportaufträgen importieren** – Wählen Sie diese Methode, um benutzerdefinierte Open-Source-Basismodelle zu importieren. Zum Beispiel Mistral AI- oder Llama-Modelle. Die Methode unterstützt On-Demand-Inferenz und mehrere Anpassungsmuster.
+ **Importieren Sie ein benutzerdefiniertes Amazon Nova Modell, indem Sie ein benutzerdefiniertes Modell in Amazon Bedrock erstellen** — Wählen Sie diese Methode, um ein Amazon Nova Modell zu importieren, das Sie in SageMaker AI verfeinert haben. Es erfordert spezielle SageMaker KI-Trainingsrezepte.

**Topics**
+ [Verwenden des Imports benutzerdefinierter Modelle, um ein benutzerdefiniertes Open-Source-Modell in Amazon Bedrock zu importieren](model-customization-import-model.md)
+ [Importieren Sie ein SageMaker KI-trainiertes Amazon Nova-Modell](import-with-create-custom-model.md)

# Verwenden des Imports benutzerdefinierter Modelle, um ein benutzerdefiniertes Open-Source-Modell in Amazon Bedrock zu importieren
<a name="model-customization-import-model"></a>

Sie können ein benutzerdefiniertes Modell in Amazon Bedrock erstellen, indem Sie die Funktion Amazon Bedrock Custom Model Import verwenden, um Foundation-Modelle zu importieren, die Sie in anderen Umgebungen wie Amazon SageMaker AI angepasst haben. Beispielsweise haben Sie möglicherweise ein Modell, das Sie in Amazon SageMaker AI erstellt haben und das über eigene Modellgewichte verfügt. Sie können dieses Modell jetzt in Amazon Bedrock importieren und dann die Features von Amazon Bedrock nutzen, um Inferenzaufrufe an das Modell zu senden. 

Sie können ein Modell verwenden, das Sie mit On-Demand-Durchsatz importieren. Verwenden Sie die [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)Operationen [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)oder, um Rückschlüsse auf das Modell zu ziehen. Weitere Informationen finden Sie unter [Senden Sie eine einzelne Aufforderung mit InvokeModel](inference-invoke.md).

Der Import von benutzerdefinierten Modellen wird in den folgenden Regionen unterstützt:
+ eu-central-1
+ us-east-1
+ us-east-2
+ us-west-2

**Anmerkung**  
Stellen Sie sicher, dass Ihr Import und die Verwendung der Modelle in Amazon Bedrock den für die Modelle geltenden Bedingungen oder Lizenzen entsprechen.  
Sie können den benutzerdefinierten Modellimport nicht mit den folgenden Amazon-Bedrock-Features verwenden.  
Batch-Inferenz
CloudFormation

Mit dem benutzerdefinierten Modellimport können Sie ein benutzerdefiniertes Modell erstellen, das die folgenden Muster unterstützt.
+ Fein **abgestimmtes Modell** — Sie können die Modellgewichte mithilfe proprietärer Daten anpassen, aber die Konfiguration des Basismodells beibehalten. 
+ **Anpassung** – Sie können das Modell für Anwendungsfälle, in denen das Modell nicht gut generalisiert werden kann, an Ihre Domain anpassen. Bei der Domainanpassung wird ein Modell dahingehend modifiziert, dass es für eine Zieldomain generalisiert und Diskrepanzen zwischen verschiedenen Domains berücksichtigt werden, z. B. wenn die Finanzbranche ein Modell erstellen möchte, das sich gut für die Preisgestaltung generalisieren lässt. Ein weiteres Beispiel ist die Sprachanpassung. Sie könnten beispielsweise ein Modell so anpassen, dass Antworten auf Portugiesisch oder Tamil generiert werden. In den meisten Fällen umfasst dies Änderungen am Wortschatz des Modells, das Sie verwenden.
+ **Von Grund auf vortrainiert** – Sie können nicht nur die Gewichte und das Vokabular des Modells anpassen, sondern auch die Modellkonfigurationsparameter wie die Anzahl der Aufmerksamkeitsspitzen, die versteckten Ebenen oder die Länge des Kontexts ändern.

Informationen zu den Preisen für den Import benutzerdefinierter Modelle finden Sie auf der Registerkarte „Benutzerdefinierter Modellimport“ unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing) im Abschnitt mit den Details zu den Modellpreisen.

**Topics**
+ [Unterstützte Architekturen](#model-customization-import-model-architecture)
+ [Importieren einer Modellquelle aus Amazon S3](#model-customization-import-model-source)
+ [Voraussetzungen für das Importieren von benutzerdefinierten Modellen](custom-model-import-prereq.md)
+ [Übermitteln eines Modellimportauftrags](model-customization-import-model-job.md)
+ [Aufrufen Ihres importierten Modells](invoke-imported-model.md)
+ [Umgang mit benutzerdefinierten Chat-Vorlagen und Tokenizern](custom-chat-templates-tokenizers.md)
+ [So berechnen Sie die Kosten für die Ausführung eines benutzerdefinierten Modells](import-model-calculate-cost.md)
+ [API-Codebeispiele für den Import benutzerdefinierter Modelle](custom-model-import-code-samples.md)

## Unterstützte Architekturen
<a name="model-customization-import-model-architecture"></a>

Das importierte Modell muss sich in einer der folgenden Architekturen befinden.
+ **Mistral** – Eine ausschließlich auf Decodern basierende Transformer-Architektur mit Sliding Window Attention (SWA) und Optionen für Grouped Query Attention (GQA). Weitere Informationen finden Sie unter [https://huggingface.co/docs/transformers/en/model_doc/mistral](https://huggingface.co/docs/transformers/en/model_doc/mistral) in der Hugging-Face-Dokumentation. 
+ **Mixtral** – Ein Transformer-Modell, das ausschließlich auf Decoder basiert, mit spärlichen Mixture of Experts (MoE)-Modellen. Weitere Informationen finden Sie unter [Mixtral](https://huggingface.co/docs/transformers/en/model_doc/mixtral) in der Hugging-Face-Dokumentation. 
+  **Flan** – Eine erweiterte Version der T5-Architektur, ein auf Encoder-Decodern basierendes Transformer-Modell. Weitere Informationen finden Sie unter [https://huggingface.co/docs/transformers/model_doc/flan-t5](https://huggingface.co/docs/transformers/model_doc/flan-t5) in der Hugging-Face-Dokumentation. 
+ **Llama 2, Llama3, Llama3.1, Llama3.2, Llama 3.3 und Mllama** – Eine verbesserte Version von Llama mit Grouped Query Attention (GQA). Weitere Informationen finden Sie unter [https://huggingface.co/blog/llama2](https://huggingface.co/blog/llama2), [https://huggingface.co/blog/llama3 ](https://huggingface.co/blog/llama3 ), [https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct#model-information](https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct#model-information), [https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct](https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct), [https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) und [https://huggingface.co/docs/transformers/main/en/model_doc/mllama](https://huggingface.co/docs/transformers/main/en/model_doc/mllama) in der Dokumentation für Hugging Face.
+ **GPTBigCode** – Eine optimierte Version von GPT-2 mit Multi-Query-Aktion. Weitere Informationen finden Sie in der Hugging Face Dokumentation unter [GPTBigCode](https://huggingface.co/docs/transformers/en/model_doc/gpt_bigcode).
+ **Qwen2, Qwen2.5, Qwen2-VL, Qwen2.5-VL, Qwen3** – Eine LLM-Familie mit umfassender multimodaler Wahrnehmung und Bildcodierung mit hoher Geschwindigkeit. Jedes Modell, dass die Architekturen Qwen2, Qwen2-VL und Qwen2.5-VL verwendet, kann importiert werden. Für die Qwen3-Architektur werden nur Qwen3ForCausalLM und Qwen3MoeForCausalLM unterstützt. Converse wird auch für Qwen3-Modelle nicht unterstützt. Weitere Informationen finden Sie unter [Qwen2](https://huggingface.co/collections/Qwen/qwen2-6659360b33528ced941e557f), [Qwen2.5](https://huggingface.co/collections/Qwen/qwen25-66e81a666513e518adb90d9e), [Qwen2-VL](https://huggingface.co/collections/Qwen/qwen2-vl-66cee7455501d7126940800d), [Qwen2.5-VL](https://huggingface.co/collections/Qwen/qwen25-vl-6795ffac22b334a837c0f9a5) und [Qwen3](https://huggingface.co/docs/transformers/en/model_doc/qwen3) in der Dokumentation für Hugging Face.
+ **GPT-OSS**— OpenAI-basierte GPT-OSS Architektur. Amazon Bedrock unterstützt sowohl 20B- als auch 120B-basierte kundenspezifische Modelle. GPT-OSSDie Modellarchitektur wird nur in der Region USA Ost (Nord-Virginia) unterstützt.

**Anmerkung**  
Die Größe der importierten Modellgewichte muss weniger als 100 GB für multimodale Modelle und 200 GB für Textmodelle betragen.
Die maximalen Positionseinbettungen oder die maximale Kontextlänge, die vom Modell unterstützt werden, sollten weniger als 128 KB betragen.
Amazon Bedrock unterstützt die Transformer-Version 4.51.3. Stellen Sie bei der Feinabstimmung Ihres Modells sicher, dass Sie die Transformer-Version 4.51.3 verwenden.
Der benutzerdefinierte Modellimport unterstützt das Einbetten von Modellen nicht.

## Importieren einer Modellquelle aus Amazon S3
<a name="model-customization-import-model-source"></a>

Sie importieren ein Modell in Amazon Bedrock, indem Sie einen Modellimportauftrag in der Amazon-Bedrock-Konsole oder über die API erstellen. Im Auftrag geben Sie den Amazon-S3-URI für die Quelle der Modelldateien an. Während des Modelltrainings erkennt der Importauftrag automatisch die Architektur Ihres Modells.

Sie müssen die Modelldateien im Gewichtsformat von Hugging Face bereitstellen. Sie können die Dateien mithilfe der Transformer-Bibliothek von Hugging Face erstellen. Informationen zum Erstellen von Modelldateien für ein Llama-Modell finden Sie unter [convert\$1llama\$1weights\$1to\$1hf.py](https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py). Informationen zum Erstellen der Dateien für ein Modell von Mistral AI finden Sie unter [convert\$1mistral\$1weights\$1to\$1hf.py](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/convert_mistral_weights_to_hf.py).

Wenn Sie das Modell aus Amazon S3 importieren möchten, benötigen Sie mindestens die folgenden Dateien, die die Transformer-Bibliothek von Hugging Face erstellt.
+ **.safetensor** – Die Gewichtungen des Modells im *Safetensor*-Format. Safetensor ist ein Format, das von Hugging Face erstellt wurde und Modellgewichte als Tensoren speichert. Sie müssen die Tensoren für Ihr Modell in einer Datei mit der Erweiterung `.safetensors` speichern. Weitere Informationen finden Sie unter [Safetensors](https://huggingface.co/docs/safetensors/en/index). Informationen zur Konvertierung von Modellgewichten in das Safetensor-Format finden Sie unter [Konvertieren von Gewichten in Safetensors](https://huggingface.co/docs/safetensors/en/convert-weights).
+ **config.json** — Beispiele finden Sie unter und. [LlamaConfig[MistralConfig](https://huggingface.co/docs/transformers/model_doc/mistral#transformers.MistralConfig)](https://huggingface.co/docs/transformers/model_doc/llama2#transformers.LlamaConfig)
**Anmerkung**  
Amazon Bedrock überschreibt den llama3-Wert `rope_scaling` mit den folgenden Werten:  
`original_max_position_embeddings=8192`
`high_freq_factor=4`
`low_freq_factor=1`
`factor=8`
+ **tokenizer\$1config.json** Ein Beispiel finden Sie unter. [LlamaTokenizer](https://huggingface.co/docs/transformers/model_doc/llama2#transformers.LlamaTokenizer)
+ **tokenizer.json**
+ **tokenizer.model** 

### Unterstützte Tokenizer
<a name="tokenizers"></a>

Der benutzerdefinierte Modellimport für Amazon Bedrock unterstützt die folgenden Tokenizer. Sie können diese Tokenizer mit jedem Modell verwenden.
+ T5Tokenizer
+ T5 TokenizerFast
+ LlamaTokenizer
+ LlamaTokenizerFast
+ CodeLlamaTokenizer
+ CodeLlamaTokenizerFast
+ GPT2Tokenisierer
+ GPT2TokenizerFast
+ GPTNeoXTokenizer
+ GPTNeoXTokenizerSchnell
+ PreTrainedTokenizer
+ PreTrainedTokenizerFast
+ Qwen2Tokenizer
+ Qwen 2 TokenizerFast

# Voraussetzungen für das Importieren von benutzerdefinierten Modellen
<a name="custom-model-import-prereq"></a>

Damit Sie einen Importauftrag für ein benutzerdefiniertes Modell starten können, müssen die folgenden Voraussetzungen erfüllt sein:

1. Wenn Sie Ihr Modell aus dem Amazon-S3-Bucket importieren, bereiten Sie die Modelldateien im Gewichtungsformat Hugging Face vor. Weitere Informationen finden Sie unter [Importieren einer Modellquelle aus Amazon S3](model-customization-import-model.md#model-customization-import-model-source).

1. Wenn Sie kontoübergreifende Amazon-S3- oder KMS-Schlüssel verwenden, achten Sie darauf, dass Sie Zugriff auf den Amazon-S3-Bucket oder den KMS-Schlüssel gewähren. Weitere Informationen finden Sie unter [Kontoübergreifender Zugriff auf Amazon-S3-Buckets für benutzerdefinierte Modellimportaufträge](cross-account-access-cmi.md).

1. (Optional) Erstellen Sie eine benutzerdefinierte AWS Identity and Access Management (IAM) [-Servicerolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) mit den entsprechenden Berechtigungen, indem Sie den Anweisungen unter folgen[Erstellen einer Servicerolle für den Import von vortrainierten Modellen](model-import-iam-role.md), um die Rolle einzurichten. Sie können diese Voraussetzung überspringen, wenn Sie die verwenden möchten, AWS-Managementkonsole um automatisch eine Servicerolle für Sie zu erstellen.

1. (Optional) Richten Sie zusätzliche Sicherheitskonfigurationen ein.
   + Sie können Eingabe- und Ausgabedaten, Importaufträge oder Inferenzanforderungen für importierte Modelle verschlüsseln. Weitere Informationen finden Sie unter [Verschlüsselung des Imports von benutzerdefinierten Modellen](https://docs.aws.amazon.com//bedrock/latest/userguide/encryption-import-model.html).
   + Sie können eine Virtual Private Cloud (VPC) erstellen, um Ihre Modellanpassungsaufträge zu schützen. Weitere Informationen finden Sie unter [(Optional) Schützen der Importaufträge für benutzerdefinierte Modelle mit einer VPC](vpc-custom-model-import.md).

# (Optional) Schützen der Importaufträge für benutzerdefinierte Modelle mit einer VPC
<a name="vpc-custom-model-import"></a>

Wenn Sie einen Modellanpassungsauftrag ausführen, greift der Auftrag auf Ihren Amazon-S3-Bucket zu, um die Eingabedaten herunter- und Auftragsmetriken hochzuladen. Wenn Sie den Zugriff auf Ihre Daten kontrollieren möchten, empfehlen wir Ihnen, eine Virtual Private Cloud (VPC) mit [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) zu erstellen. Sie können Ihre Daten zusätzlich schützen, indem Sie Ihre VPC so konfigurieren, dass Ihre Daten nicht über das Internet verfügbar sind, und stattdessen einen VPC-Schnittstellenendpunkt mit [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) erstellen, um eine private Verbindung zu Ihren Daten herzustellen. Weitere Informationen zur AWS PrivateLink Integration von Amazon VPC mit Amazon Bedrock finden Sie unter. [Schützen Ihrer Daten mit Amazon VPC und AWS PrivateLink](usingVPC.md)

Führen Sie die folgenden Schritte aus, um eine VPC für den Import Ihrer benutzerdefinierten Modelle zu konfigurieren und zu verwenden.

**Topics**
+ [Einrichten einer VPC](#create-vpc-cmi)
+ [Erstellen eines Amazon S3 VPC-Endpunkts](#train-vpc-s3-cmi)
+ [(Optional) Verwenden Sie IAM-Richtlinien, um den Zugriff auf Ihre S3-Dateien einzuschränken](#train-vpc-policy-cmi)
+ [Fügen Sie VPC-Berechtigungen an eine benutzerdefinierte Modelimportrolle an.](#vpc-data-access-role-cmi)
+ [Hinzufügen der VPC-Konfiguration bei der Übermittlung eines Modellanpassungsauftrags](#vpc-config-cmi)

## Einrichten einer VPC
<a name="create-vpc-cmi"></a>

Sie können eine [Standard-VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) für Ihre Modellimportdaten verwenden oder eine neue VPC erstellen, indem Sie die Anleitungen unter [Erste Schritte mit Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) und [Erstellen einer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) befolgen.

Wenn Sie Ihre VPC erstellen, empfehlen wir Ihnen, die Standard-DNS-Einstellungen für Ihre Endpunkt-Routing-Tabelle zu verwenden, damit die Standardlösung von Amazon S3 URLs (z. B.`http://s3-aws-region.amazonaws.com/model-bucket`) gelöst wird.

## Erstellen eines Amazon S3 VPC-Endpunkts
<a name="train-vpc-s3-cmi"></a>

Wenn Sie Ihre VPC ohne Internetzugang konfigurieren, müssen Sie einen [Amazon-S3-VPC-Endpunkt](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) erstellen, damit Ihre Modellimportaufträge auf die S3-Buckets zugreifen können, in denen Ihre Trainings- und Validierungsdaten gespeichert sind und die Modellartefakte gespeichert werden.

Erstellen Sie den S3-VPC-Endpunkt, indem Sie die Schritte unter [Erstellen eines Gateway-Endpunkts für Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3) ausführen.

**Anmerkung**  
Wenn Sie nicht die Standard-DNS-Einstellungen für Ihre VPC verwenden, müssen Sie sicherstellen, dass die Speicherorte der URLs Daten in Ihren Trainingsjobs aufgelöst werden, indem Sie die Endpunkt-Routing-Tabellen konfigurieren. Weitere Informationen zu den Routing-Tabellen der VPC-Endpunkte finden Sie unter [Routing für Gateway-Endpunkte](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-gateway.html#vpc-endpoints-routing).

## (Optional) Verwenden Sie IAM-Richtlinien, um den Zugriff auf Ihre S3-Dateien einzuschränken
<a name="train-vpc-policy-cmi"></a>

Der Zugriff auf Ihre S3-Dateien lässt sich mit [ressourcenbasierten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) steuern. Sie können den folgenden Typ von ressourcenbasierter Richtlinie verwenden.
+ **Endpunktrichtlinien** – Endpunktrichtlinien beschränken den Zugriff über den VPC-Endpunkt. Standardmäßig wird über die Endpunktrichtlinie allen Benutzern oder Services in Ihrer VPC Vollzugriff auf Amazon S3 gewährt. Bei oder nach der Erstellung des Endpunkts können Sie optional eine ressourcenbasierte Richtlinie an den Endpunkt anfügen, um Einschränkungen hinzuzufügen, z. B. dem Endpunkt nur den Zugriff auf einen bestimmten Bucket oder nur einer bestimmten IAM-Rolle den Zugriff auf den Endpunkt zu gestatten. Beispiele finden Sie unter [Bearbeiten der VPC-Endpunktrichtlinie](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#edit-vpc-endpoint-policy-s3).

  Im Folgenden finden Sie eine Beispielrichtlinie, die Sie an Ihren VPC-Endpunkt anfügen können, sodass er nur auf den Bucket zugreifen kann, der Ihre Modellgewichte enthält.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RestrictAccessToModelWeightsBucket",
              "Effect": "Allow",
              "Principal": "*",
              "Action": [
                  "s3:GetObject",
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::model-weights-bucket",
                  "arn:aws:s3:::model-weights-bucket/*"
              ]
          }
      ]
  }
  ```

------

## Fügen Sie VPC-Berechtigungen an eine benutzerdefinierte Modelimportrolle an.
<a name="vpc-data-access-role-cmi"></a>

Nachdem Sie die Einrichtung Ihrer VPC und Ihres Endpunkts abgeschlossen haben, müssen Sie Ihrer [Modellimport-IAM-Rolle](model-import-iam-role.md) die folgenden Berechtigungen zuweisen. Ändern Sie diese Richtlinie so, dass nur Zugriff auf die VPC-Ressourcen gewährt wird, die Ihr Auftrag benötigt. Ersetzen Sie das *subnet-ids* und *security-group-id* durch die Werte aus Ihrer VPC.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:network-interface/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/BedrockManaged": [
                        "true"
                    ]
                },
                "ArnEquals": {
                    "aws:RequestTag/BedrockModelImportJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-import-job/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2",
                "arn:aws:ec2:us-east-1:123456789012:security-group/security-group-id"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2"
                    ],
                    "ec2:ResourceTag/BedrockModelImportJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-import-job/*"
                    ]
                },
                "StringEquals": {
                    "ec2:ResourceTag/BedrockManaged": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "CreateNetworkInterface"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "BedrockManaged",
                        "BedrockModelImportJobArn"
                    ]
                }
            }
        }
    ]
}
```

------

## Hinzufügen der VPC-Konfiguration bei der Übermittlung eines Modellanpassungsauftrags
<a name="vpc-config-cmi"></a>

Nachdem Sie die VPC und die erforderlichen Rollen und Berechtigungen wie in den vorherigen Abschnitten beschrieben konfiguriert haben, können Sie einen Modellimportauftrag erstellen, der diese VPC verwendet.

Wenn Sie die VPC-Subnetze und Sicherheitsgruppen für einen Job angeben, erstellt Amazon Bedrock *elastische Netzwerkschnittstellen* (ENIs), die Ihren Sicherheitsgruppen in einem der Subnetze zugeordnet sind. ENIs Erlauben Sie dem Amazon Bedrock-Job, eine Verbindung zu Ressourcen in Ihrer VPC herzustellen. Weitere Informationen dazu ENIs finden Sie unter [Elastic Network Interfaces](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) im *Amazon VPC-Benutzerhandbuch*. Amazon Bedrock-Tags ENIs , die es mit `BedrockManaged` und `BedrockModelImportJobArn` tags erstellt. 

Wir empfehlen, mindestens ein Subnetz in jeder Availability Zone zur Verfügung zu stellen.

Sie können Sicherheitsgruppen verwenden, um Regeln für die Steuerung des Zugriffs von Amazon Bedrock auf Ihre VPC-Ressourcen festzulegen.

Sie können die VPC entweder in der Konsole oder über die API konfigurieren. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie die angegebenen Schritte:

------
#### [ Console ]

Für die Amazon-Bedrock-Konsole geben Sie VPC-Subnetze und Sicherheitsgruppen im optionalen Abschnitt **VPC-Einstellungen** an, wenn Sie den Modellimportauftrag erstellen. Weitere Informationen zum Konfigurieren von Modellimportaufträgen finden Sie unter [Übermitteln eines Modellimportauftrags](model-customization-import-model-job.md).

------
#### [ API ]

Wenn Sie eine [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)Anfrage einreichen, können Sie einen `VpcConfig` als Anforderungsparameter angeben, um die zu verwendenden VPC-Subnetze und Sicherheitsgruppen anzugeben, wie im folgenden Beispiel.

```
"VpcConfig": { 
"SecurityGroupIds": [
    "sg-0123456789abcdef0"
    ],
    "Subnets": [
          "subnet-0123456789abcdef0",
          "subnet-0123456789abcdef1",
          "subnet-0123456789abcdef2"
     ]
 }
```

------

# Übermitteln eines Modellimportauftrags
<a name="model-customization-import-model-job"></a>

Sie importieren ein Modell in Amazon Bedrock, indem Sie einen Modellimportauftrag in der Amazon Bedrock-Konsole einreichen, die API verwenden, das AWS CLI oder das SDK verwendenAWS. Im Auftrag geben Sie den Amazon-S3-URI für die Quelle der Modelldateien an. Wenn Sie das Modell in Amazon SageMaker AI erstellt haben, können Sie das SageMaker KI-Modell alternativ angeben. Während des Modellimports erkennt der Importauftrag automatisch die Architektur Ihres Modells. Der Modellimportauftrags kann einige Minuten in Anspruch nehmen. Während des Auftrags überprüft Amazon Bedrock, ob das Modell, das importiert wird, eine kompatible Modellarchitektur verwendet. 

Das folgende Verfahren zeigt Ihnen, wie Sie ein benutzerdefiniertes Modell erstellen können, indem Sie ein Modell, das Sie bereits angepasst haben, importieren. Wählen Sie die Registerkarte aus, die der Methode Ihrer Wahl entspricht, und folgen Sie den Schritten. 

------
#### [ Console ]

Führen Sie die folgenden Schritte aus, um einen Modellimportauftrag in der Konsole zu übermitteln.

1. Wenn Sie Ihre Modelldateien aus Amazon S3 importieren, konvertieren Sie das Modell in das Format Hugging Face. 

   1. Wenn es sich bei Ihrem Modell um ein Modell von Mistral AI handelt, verwenden Sie [convert\$1mistral\$1weights\$1to\$1hf.py](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/convert_mistral_weights_to_hf.py). 

   1. Wenn es sich bei Ihrem Modell um ein Llama-Modell handelt, verwenden Sie [convert\$1llama\$1weights\$1to\$1hf.py](https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py). 

   1. Laden Sie die Modelldateien in einen Amazon-S3-Bucket in Ihrem AWS-Konto hoch. Weitere Informationen finden Sie unter [Hinzufügen eines Objekts in Ihren Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-an-object-bucket.html).

   1. Wenn Sie kontoübergreifende Amazon S3- oder KMS-Schlüssel verwenden, um Ihr benutzerdefiniertes Modell zu importieren, gewähren Sie Amazon Bedrock Zugriff auf Ihren AWS-Konto Amazon S3- oder KMS-Schlüssel. Weitere Informationen finden Sie unter [Kontoübergreifender Zugriff auf Amazon-S3-Buckets für benutzerdefinierte Modellimportaufträge](cross-account-access-cmi.md).

1. Wählen Sie im linken Navigationsbereich der Amazon-Bedrock-Konsole unter **Basismodelle** die Option **Importierte Modelle** aus.

1. Wählen Sie die Registerkarte **Modelle**.

1. Wählen Sie **Import model (Modell importieren)** aus.

1. Wählen Sie auf der Registerkarte **Importiert** die Option **Modell importieren** aus, um die Seite **Modell importieren** zu öffnen.

1. Gehen Sie im Abschnitt **Modelldetails** wie folgt vor: 

   1. Geben Sie im Feld **Modellname** einen Namen für das Modell ein.

   1. (Optional) Sie können den Abschnitt **Tags** erweitern und **Neues Tag hinzufügen** auswählen, um dem Modell [Tags](tagging.md) zuzuordnen.

1. Gehen Sie im Abschnitt **Name des Importauftrags** wie folgt vor: 

   1. Geben Sie im Feld **Auftragsname** einen Namen für den Modellimportauftrag ein.

   1. (Optional) Sie können den Abschnitt **Tags** erweitern und **Neues Tag hinzufügen** auswählen, um dem benutzerdefinierten Modell [Tags](tagging.md) zuzuordnen.

1. Wählen Sie unter **Modellimporteinstellungen** die Importoptionen aus, die Sie verwenden möchten.
   + Wählen Sie **Amazon S3 S3-Bucket** oder **Amazon SageMaker AI-Modell** aus, um die Importquelle anzugeben.
   + Wenn Sie Ihre Modelldateien aus einem Amazon-S3-Bucket importieren, geben Sie den Amazon-S3-Speicherort unter **S3-Speicherort** ein. Optional können Sie **S3 durchsuchen** auswählen, um den Speicherort der Datei anzugeben. 
   + Wenn Sie Ihr Modell aus Amazon SageMaker AI importieren, wählen Sie **Amazon SageMaker AI-Modell** und dann das SageMaker KI-Modell aus, das Sie in **SageMaker KI-Modelle** importieren möchten. 

1. Geben Sie **VPC-Einstellungen** (optional) ein, um eine VPC-Konfiguration für den Zugriff auf Ihre Amazon-S3-Datenquelle in Ihrer VPC auszuwählen. Sie können VPCs, Subnetze und Sicherheitsgruppen in Amazon VPC erstellen und verwalten. Weitere Informationen zu Amazon VPC finden Sie unter [(Optional) Schützen der Importaufträge für benutzerdefinierte Modelle mit einer VPC](vpc-custom-model-import.md).

1. Wählen Sie **Verschlüsselung**, um Ihre Daten standardmäßig mit einem AWS Schlüssel zu verschlüsseln, der Ihnen gehört und von Ihnen verwaltet wird. Sie können auch einen anderen Schlüssel wählen, wenn Sie **Verschlüsselungseinstellungen anpassen (erweitert)** auswählen.

1. Wählen Sie im Abschnitt **Servicezugriff** eine der folgenden Optionen aus: 
   + **Neue Servicerolle erstellen und verwenden** – Geben Sie einen Namen für die Servicerolle ein.
   + **Eine vorhandene Servicerolle verwenden** – Wählen Sie eine Servicerolle aus der Dropdown-Liste aus. Wenn Sie die Berechtigungen sehen möchten, die Ihre bestehende Servicerolle benötigt, wählen Sie **Berechtigungsdetails anzeigen** aus.

     Weitere Informationen zum Einrichten einer Servicerolle mit den entsprechenden Berechtigungen finden Sie unter [Erstellen einer Servicerolle für den Import von vortrainierten Modellen](model-import-iam-role.md).
**Anmerkung**  
Wenn Sie kontoübergreifende Amazon S3- oder KMS-Schlüssel verwenden, bearbeiten Sie die Service-Rollenrichtlinie und ersetzen Sie die für angegebene Konto-ID `aws:ResourceAccount` durch die AWS Konto-ID des Bucket-Besitzers. 

1. Wählen Sie **Importieren** aus.

1. Wählen Sie auf der Seite **Benutzerdefinierte Modelle** die Option **Importiert** aus.

1. Überprüfen Sie im Bereich **Aufträge** den Status des Importauftrags. Der von Ihnen angegebene Modellname identifiziert den Modellimportauftrag. Der Auftrag ist abgeschlossen, wenn der Wert **Status** für das Modell **Abgeschlossen** lautet. 

1. Rufen Sie die Modell-ID für Ihr Modell ab, indem Sie wie folgt vorgehen.

   1. Wählen Sie auf der Seite **Importierte Modelle** die Registerkarte **Modelle** aus.

   1. Kopieren Sie den ARN des Modells, das Sie verwenden möchten, aus der Spalte **ARN**.

1. Verwenden Sie Ihr Modell für Inferenzaufrufe. Weitere Informationen finden Sie unter [Senden Sie eine einzelne Aufforderung mit InvokeModel](inference-invoke.md). Sie können das Modell mit On-Demand-Durchsatz verwenden. 

   Außerdem können Sie Ihr Modell im Text-[Playground](playgrounds.md) von Amazon Bedrock verwenden.

------
#### [ API ]

**Anforderung**

Senden Sie eine Anfrage [CreateModelImportJob](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_CreateModelImportJob.html)(siehe Link für Anfrage- und Antwortformat und Felddetails) mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp), um einen Importauftrag für ein benutzerdefiniertes Modell einzureichen. Sie müssen mindestens die folgenden Felder angeben:
+ `roleArn` – Der ARN der Servicerolle mit den Berechtigungen zum Importieren von Modellen. Amazon Bedrock kann automatisch eine Rolle mit den entsprechenden Berechtigungen erstellen, wenn Sie die Konsole verwenden. Sie können auch eine benutzerdefinierte Rolle erstellen, indem Sie den Schritten unter [Erstellen einer Servicerolle für den Import von vortrainierten Modellen](model-import-iam-role.md) folgen.
**Anmerkung**  
Wenn Sie ein `vpcConfig`-Feld einschließen, stellen Sie sicher, dass die Rolle über die erforderlichen Berechtigungen für den Zugriff auf die VPC verfügt. Ein Beispiel finden Sie unter [Fügen Sie VPC-Berechtigungen an eine benutzerdefinierte Modelimportrolle an.](vpc-custom-model-import.md#vpc-data-access-role-cmi)
+ `importedModelName` – Der Name für das neu importierte Modell
+ `jobName` – Der Name des Auftrags
+ `modelDataSource` – Die Datenquelle für das importierte Modell

Wenn Sie verhindern möchten, dass die Anforderung mehr als einmal abgeschlossen wird, fügen Sie einen `clientRequestToken` hinzu.

Sie können die folgenden optionalen Felder für zusätzliche Konfigurationen einschließen.
+ `jobTags` and/or `importedModelTags`— Ordnen Sie dem Importjob oder dem importierten Modell [Tags](tagging.md) zu.
+ `importedModelKmsKeyId` – Fügen Sie einen KMS-Schlüssel für die [Verschlüsselung des importierten benutzerdefinierten Modells](https://docs.aws.amazon.com//bedrock/latest/userguide/encryption-import-model.html) hinzu, um Ihr importiertes Modell zu verschlüsseln.
+ `vpcConfig` – Schließen Sie die VPC-Konfiguration in [(Optional) Schützen der Importaufträge für benutzerdefinierte Modelle mit einer VPC](vpc-custom-model-import.md) ein.

**Antwort**

Die Antwort gibt einen `jobArn` für den Importauftrag zurück, den Sie verwenden, um den Importauftrag in anderen Operationen zu identifizieren.

Es dauert eine Weile, bis der Auftrag abgeschlossen ist. Sie können den aktuellen Status überprüfen, indem Sie den [GetModelImportJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelImportJob.html)Vorgang aufrufen und das `Status` Feld in der Antwort überprüfen. Sie können die aktuellen Importaufträge mit dem auflisten [ListModelImportJobs](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListModelImportJobs.html). 

Um eine Liste der Modelle zu erhalten, die Sie importiert haben, rufen Sie an [ListImportedModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListImportedModels.html). Um Informationen zu einem bestimmten importierten Modell zu erhalten, rufen Sie an [GetImportedModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetImportedModel.html).

Um ein importiertes Modell zu löschen, rufen Sie an [DeleteImportedModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteImportedModel.html).

------

# Aufrufen Ihres importierten Modells
<a name="invoke-imported-model"></a>

Der Modellimportjob kann mehrere Minuten dauern, bis Ihr Modell importiert wird, nachdem Sie die [CreateModelImportJob](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_CreateModelImportJob.html)Anfrage gesendet haben. Sie können den Status Ihres Importauftrags in der Konsole überprüfen oder indem Sie den [GetModelImportJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelImportJob.html)Vorgang aufrufen und das `Status` Feld in der Antwort überprüfen. Der Auftrag ist abgeschlossen, wenn der Status für das Modell **Abgeschlossen** lautet. 

Nachdem Ihr importiertes Modell in Amazon Bedrock verfügbar ist, können Sie das Modell mit On-Demand-Durchsatz verwenden, indem Sie Anfragen senden [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)oder [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)Anfragen zum Durchführen von Inferenzaufrufen an das Modell senden. Weitere Informationen finden Sie unter [Senden Sie eine einzelne Aufforderung mit InvokeModel](inference-invoke.md).

Um mithilfe des Nachrichtenformats eine Schnittstelle zu Ihrem importierten Modell herzustellen, können Sie [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) oder Operations aufrufen. [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html) Weitere Informationen finden Sie unter [Verwenden der Converse-API](conversation-inference-call.md).

**Anmerkung**  
Die Converse-API wird für Qwen2.5, Qwen2-VL, Qwen2.5-VL und andere Modelle nicht unterstützt. GPT-OSS

## Verbesserte API-Unterstützung: Mehrere API-Formate
<a name="enhanced-api-support"></a>

Ab dem 17. November 2025 unterstützt Amazon Bedrock Custom Model Import umfassende OpenAI-kompatible API-Formate und bietet so Flexibilität bei der Integration und Bereitstellung Ihrer benutzerdefinierten Modelle. Alle Modelle, die nach dem 11. November 2025 importiert wurden, profitieren automatisch von diesen erweiterten Funktionen, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Der benutzerdefinierte Modellimport unterstützt jetzt drei API-Formate:
+ **BedrockCompletion (Text)** — Kompatibel mit aktuellen Bedrock-Workflows
+ **Open AICompletion (Text)** - OpenAI Completions Schema-Kompatibilität
+ **Open AIChat Completion (Text und Bilder)** — Vollständige Kompatibilität mit Konversationsschemas

Zu diesen erweiterten Funktionen gehören strukturierte Ausgaben zur Durchsetzung von JSON-Schemas und -Mustern, erweiterte Bildverarbeitungsunterstützung mit Verarbeitung mehrerer Bilder, Log-Wahrscheinlichkeiten für Erkenntnisse zur Modellsicherheit und Funktionen zum Aufrufen von Tools für Modelle. GPT-OSS

Eine ausführliche API-Referenzdokumentation finden Sie in der offiziellen OpenAI-Dokumentation:
+ Fertigstellung: [OpenAI Completions API](https://platform.openai.com/docs/api-reference/completions)
+ ChatCompletion: [OpenAI Chat-API](https://platform.openai.com/docs/api-reference/chat)

### Beispiele für API-Formate
<a name="api-format-examples"></a>

Die folgenden Beispiele zeigen, wie Sie jedes der vier unterstützten API-Formate mit Ihren importierten Modellen verwenden können.

------
#### [ BedrockCompletion ]

**BedrockCompletion**Das Format ist mit aktuellen Bedrock-Workflows kompatibel und unterstützt textbasierte Inferenzanfragen.

Beispielanforderung:

```
import json
import boto3

client = boto3.client('bedrock-runtime', region_name='us-east-1')

payload = {
    "prompt": "How is the rainbow formed?",
    "max_gen_len": 100,
    "temperature": 0.5
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "generation": " – A scientific explanation\nA rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. It is formed through a process called refraction, which is the bending of light as it passes from one medium to another.\nHere's a step-by-step explanation of how a rainbow is formed:\n1. Sunlight enters the Earth's atmosphere: The first step in forming a rainbow is for sunlight to enter the Earth's atmosphere. This sunlight is made up of a spectrum of",
    "prompt_token_count": 7,
    "generation_token_count": 100,
    "stop_reason": "length",
    "logprobs": null
}
```

BedrockCompletion unterstützt strukturierte Ausgaben unter Verwendung von `response_format` Parametern mit `json_object` und Typen. `json_schema`

------
#### [ OpenAICompletion ]

Das **offene AICompletion** Format bietet OpenAI Completions Schema-Kompatibilität. Um dieses Format zu verwenden, fügen Sie den `max_tokens` Parameter anstelle von ein. `max_gen_len`

Beispielanforderung:

```
import json
import boto3

client = boto3.client('bedrock-runtime', region_name='us-east-1')

payload = {
    "prompt": "How is the rainbow formed?",
    "max_tokens": 100,
    "temperature": 0.5
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "id": "cmpl-b09d5810bd64428f8a853be71c31f912",
    "object": "text_completion",
    "created": 1763166682,
    "choices": [
        {
            "index": 0,
            "text": " The formation of a rainbow is a complex process that involves the interaction of sunlight with water droplets in the air. Here's a simplified explanation: 1. Sunlight enters the Earth's atmosphere and is refracted, or bent, as it passes through the air. 2. When sunlight encounters a water droplet, such as a cloud, mist, or fog, it is refracted again and split into its individual colors, a process known as dispersion. 3. The refracted and",
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 7,
        "total_tokens": 107,
        "completion_tokens": 100
    }
}
```

Open AICompletion unterstützt alle Funktionen für strukturierte Ausgaben`json`, einschließlich, `regex``choice`, und `grammar` Einschränkungen, die den `structured_outputs` Parameter verwenden.

------
#### [ OpenAIChatCompletion ]

Das **Open AIChat Completion-Format** bietet volle Kompatibilität mit Konversationsschemas und unterstützt sowohl Text- als auch Bildeingaben.

Beispielanforderung:

```
import json
import boto3

client = boto3.client('bedrock-runtime', region_name='us-east-1')

payload = {
    "messages": [
        {
            "role": "user",
            "content": "How is the rainbow formed?"
        }
    ],
    "max_tokens": 100,
    "temperature": 0.5
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "id": "chatcmpl-1d84ce1d3d61418e8c6d1973f87173db",
    "object": "chat.completion",
    "created": 1763166683,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "A rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. The process of forming a rainbow involves several steps:\n\n1. **Sunlight**: The first requirement for a rainbow is sunlight. The sun should be shining brightly, but not directly overhead.\n2. **Water droplets**: The second requirement is water droplets in the air..."
            },
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 41,
        "completion_tokens": 100,
        "total_tokens": 141
    }
}
```

Open AIChat Completion unterstützt strukturierte Ausgaben, die `response_format` sowohl als auch `structured_outputs` Parameter verwenden. Für Bildverarbeitungsfunktionen sollten Sie Bilder mit Base64-codierten Bilddaten in das Inhaltsarray aufnehmen.

**Anmerkung**  
Um das ChatCompletion Format verwenden zu können, muss die Chat-Vorlage Teil von sein. `tokenizer_config.json` Beim Import benutzerdefinierter Modelle werden keine Standard-Chat-Vorlagen auf die Anfrage angewendet.

------

# Erweiterte API-Funktionen für importierte Modelle
<a name="custom-model-import-advanced-features"></a>

Diese Seite enthält detaillierte Beispiele für erweiterte Funktionen, die für Modelle verfügbar sind, die nach dem 11. November 2025 importiert wurden. Zu diesen Funktionen gehören strukturierte Ausgaben für die kontrollierte Generierung, erweiterte Bildverarbeitungsunterstützung für die Verarbeitung mehrerer Bilder, Log-Wahrscheinlichkeiten für zuverlässige Erkenntnisse und Tools zum Aufrufen von Modellen. GPT-OSS

## Strukturierte Ausgaben
<a name="structured-outputs"></a>

Strukturierte Ausgaben ermöglichen eine kontrollierte Generierung nach bestimmten Formaten, Schemas oder Mustern. Diese Funktion stellt sicher, dass die Reaktion des Modells vordefinierten Einschränkungen entspricht. Dadurch eignet es sich ideal für Anwendungen, die konsistente Datenformate, API-Integrationen oder automatisierte Verarbeitungspipelines erfordern.

Strukturierte Ausgaben beim Import benutzerdefinierter Modelle werden über zwei Parameter unterstützt:
+ `response_format`- Unterstützungen `json_object` und `json_schema` Typen
+ `structured_outputs`- Unterstützt `json``regex`,`choice`, und `grammar` Typen

**Anmerkung**  
Bei der Verwendung strukturierter Ausgaben beim Import benutzerdefinierter Modelle müssen Kunden aufgrund der Validierung von Einschränkungen bei der Generierung mit Leistungseinbußen rechnen. Einfache Einschränkungen wie `choice` und `json_object` haben nur minimale Auswirkungen, während komplexe Einschränkungen die Latenz erheblich erhöhen `json_schema` und den Durchsatz reduzieren `grammar` können. Um eine optimale Leistung zu erzielen, sollten Sie nach Möglichkeit einfachere Einschränkungstypen verwenden und Schemas flach statt tief verschachtelt halten.

Die folgenden Beispiele zeigen, dass strukturierte Ausgaben in verschiedenen API-Formaten unterstützt werden. Die Definition des pydantischen Modells lautet:

```
from pydantic import BaseModel
from enum import Enum

class CarType(str, Enum):
    sedan = "sedan"
    suv = "SUV"
    truck = "Truck"
    coupe = "Coupe"

class CarDescription(BaseModel):
    brand: str
    model: str
    car_type: CarType
```

------
#### [ BedrockCompletion ]

BedrockCompletion unterstützt strukturierte Ausgaben, bei denen nur die `response_format` Parameter with `json_object` und `json_schema` types verwendet werden.

**Beispiel: JSON-Schema**

```
payload = {
    "prompt": "Generate a JSON with the brand, model and car_type of the most iconic car from the 90's",
    "response_format": {
        "type": "json_schema",
        "json_schema": CarDescription.model_json_schema()
    }
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "generation": "{\n    \"brand\": \"Ferrari\",\n    \"model\": \"F40\",\n    \"car_type\": \"SUV\"\n  }",
    "prompt_token_count": 22,
    "generation_token_count": 30,
    "stop_reason": "stop",
    "logprobs": null
}
```

------
#### [ OpenAICompletion ]

Open AICompletion unterstützt sowohl die Parameter `response_format` (json\$1object, json\$1schema) als auch `structured_outputs` (json, regex, choice, grammar). Verwenden Sie anstelle von, um Anfragen `max_tokens` an Open weiterzuleiten. `max_gen_len` AICompletion

**Beispiel: Strukturierte Ausgaben — Auswahl**

```
payload = {
    "prompt": "Classify the sentiment of this sentence. Amazon Bedrock CMI is Amazing!",
    "max_tokens": 10,
    "structured_outputs": {
        "choice": ["positive", "negative"]
    }
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "id": "cmpl-01f94c4652d24870bbb4d5418a01c384",
    "object": "text_completion",
    "choices": [
        {
            "index": 0,
            "text": "positive",
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 17,
        "completion_tokens": 4
    }
}
```

------
#### [ OpenAIChatCompletion ]

Open AIChat Completion unterstützt sowohl die `response_format` Parameter (json\$1object, json\$1schema) als auch `structured_outputs` (json, regex, choice, grammar).

**Beispiel: Antwortformat — JSON-Schema**

```
payload = {
    "messages": [
        {"role": "user", "content": "Generate a JSON with the brand, model and car_type of the most iconic car from the 90's"}
    ],
    "max_tokens": 100,
    "response_format": {
        "type": "json_schema",
        "json_schema": {
            "name": "car-description",
            "schema": CarDescription.model_json_schema()
        }
    }
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "id": "chatcmpl-cae5a43b0a924b8eb434510cbf978a19",
    "object": "chat.completion",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "{\"brand\": \"Dodge\", \"model\": \"Viper\", \"car_type\": \"Coupe\"}"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 56,
        "completion_tokens": 23
    }
}
```

------

## Support für das Sehvermögen
<a name="vision-support"></a>

Die Bildverarbeitungsfunktionen ermöglichen die Verarbeitung von Bildern zusammen mit Texteingaben und bieten eine verbesserte Unterstützung mehrerer Bilder für komplexe visuelle Analyseaufgaben. Der Import benutzerdefinierter Modelle unterstützt jetzt bis zu 3 Bilder pro Anfrage, was gegenüber der bisherigen Beschränkung auf Einzelbilder verbessert wurde.

**Unterstützte API:** Nur Open AIChat Completion. Alle Modelle, die nach dem 11. November 2025 importiert wurden, verwenden standardmäßig diese API für Bildverarbeitungsfunktionen.

**Anforderungen an das Bild:**
+ Base64-Kodierung erforderlich — Das Bild URLs führt zu Anforderungsfehlern
+ Maximal 3 Bilder pro Anfrage
+ Bilder mit hoher Auflösung erhöhen die Verarbeitungszeit und den Speicherverbrauch erheblich

**Warnung**  
Bilder mit hoher Auflösung erhöhen die Verarbeitungszeit und den Speicherverbrauch erheblich und können zu Timeoutfehlern führen. Mehrere Bilder mit hoher Auflösung erhöhen die Leistungsauswirkungen exponentiell. Um eine optimale Leistung zu erzielen, sollten Sie die Bildgröße entsprechend anpassen und wenn möglich niedrigere Detailstufen verwenden.

------
#### [ OpenAIChatCompletion ]

**Beispiel: Verarbeitung mehrerer Bilder**

```
import json
import boto3
import base64

client = boto3.client('bedrock-runtime', region_name='us-east-1')

# Load and encode images
with open('/path/to/car_image_1.jpg', 'rb') as f:
    image_data_1 = base64.b64encode(f.read()).decode('utf-8')

with open('/path/to/car_image_2.jpg', 'rb') as f:
    image_data_2 = base64.b64encode(f.read()).decode('utf-8')

payload = {
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant that can analyze images."
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "Spot the difference between the two images?"
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{image_data_1}"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{image_data_2}"
                    }
                }
            ]
        }
    ],
    "max_tokens": 300,
    "temperature": 0.5
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort:

```
{
    "id": "chatcmpl-ccae8a67e62f4014a9ffcbedfff96f44",
    "object": "chat.completion",
    "created": 1763167018,
    "model": "667387627229-g6vkuhd609s4",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "There are no differences between the two images provided. They appear to be identical.",
                "refusal": null,
                "annotations": null,
                "audio": null,
                "function_call": null,
                "tool_calls": [],
                "reasoning_content": null
            },
            "logprobs": null,
            "finish_reason": "stop",
            "stop_reason": null,
            "token_ids": null
        }
    ],
    "service_tier": null,
    "system_fingerprint": null,
    "usage": {
        "prompt_tokens": 2795,
        "total_tokens": 2812,
        "completion_tokens": 17,
        "prompt_tokens_details": null
    },
    "prompt_logprobs": null,
    "prompt_token_ids": null,
    "kv_transfer_params": null
}
```

------

## Wahrscheinlichkeiten protokollieren
<a name="log-probabilities"></a>

Logarithmische Wahrscheinlichkeiten stellen die Wahrscheinlichkeit jedes Tokens in einer Sequenz dar, berechnet als log (p), wobei p die Wahrscheinlichkeit ist, dass sich ein Token an einer beliebigen Position aufgrund seines vorherigen Tokens im Kontext befindet. Da Log-Probs additiv sind, entspricht die Sequenzwahrscheinlichkeit der Summe der einzelnen Token-Log-Probs, was sie nützlich macht, um Generationen anhand der durchschnittlichen Punktzahlen pro Token zu ordnen. Der benutzerdefinierte Modellimport gibt immer die Logprob-Rohwerte für die angeforderten Token zurück.

Zu den wichtigsten Anwendungen gehören Klassifizierungsaufgaben, bei denen Log-Probs benutzerdefinierte Konfidenzschwellen ermöglichen, Frage-und-Antwort-Systeme zum Abrufen, die Konfidenzwerte verwenden, um Halluzinationen zu reduzieren, Vorschläge zur automatischen Vervollständigung auf der Grundlage der Token-Wahrscheinlichkeit und Ratlosigkeitsberechnungen zum Vergleich der Modellleistung verschiedener Eingabeaufforderungen. Log Probs bieten auch Analysefunktionen auf Token-Ebene, sodass Entwickler alternative Tokens untersuchen können, die das Modell in Betracht gezogen hat.

**Anmerkung**  
Logprobs werden nicht zwischengespeichert. Bei einer Anfrage, die Eingabeaufforderungs-Logprobs erfordert, ignoriert das System den Präfix-Cache und berechnet die Vorausfüllung der vollständigen Eingabeaufforderung erneut, um die Logprobs zu generieren. Dies stellt bei der Verwendung von Logprobs einen offensichtlichen Leistungsverlust dar.

Die Unterstützung von Log-Wahrscheinlichkeiten variiert je nach API-Format:
+ BedrockCompletion - Nur Ausgabe-Tokens
+ Öffnen AICompletion — Eingabeaufforderung und Ausgabe von Tokens
+ AIChatAbschluss öffnen — Eingabeaufforderung und Ausgabe von Tokens

------
#### [ BedrockCompletion ]

BedrockCompletion unterstützt nur Logprobs für Ausgabetokens. Dadurch wird für jedes Ausgabetoken die ersten Logprob-Einträge zurückgegeben.

```
payload = {
    "prompt": "How is the rainbow formed?",
    "max_gen_len": 10,
    "temperature": 0.5,
    "return_logprobs": True
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispielantwort (gekürzt):

```
{
    "generation": " A rainbow is formed when sunlight passes through water dro",
    "prompt_token_count": 7,
    "generation_token_count": 10,
    "stop_reason": "length",
    "logprobs": [
        {
            "362": -2.1413702964782715
        },
        {
            "48713": -0.8180374503135681
        },
        {
            "374": -0.09657637774944305
        },
        ...
    ]
}
```

------
#### [ OpenAIChatCompletion ]

Open AIChat Completion unterstützt sowohl Eingabeaufforderung- als auch Ausgabetoken-Logprobs. Sie können `top_logprobs=N` und angeben`prompt_logprobs=N`, wobei N eine Ganzzahl ist, die die Log-Wahrscheinlichkeiten für die N wahrscheinlichsten Token an jeder Position darstellt.

```
payload = {
    "messages": [
        {
            "role": "user",
            "content": "How is the rainbow formed?"
        }
    ],
    "max_tokens": 10,
    "temperature": 0.5,
    "logprobs": True,
    "top_logprobs": 1,
    "prompt_logprobs": 1
}

response = client.invoke_model(
    modelId='your-model-arn',
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

response_body = json.loads(response['body'].read())
```

Beispiel für eine Antwort (gekürzt):

```
{
    "id": "chatcmpl-xxx",
    "object": "chat.completion",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "A rainbow is formed..."
            },
            "logprobs": {
                "content": [
                    {
                        "token": "A",
                        "logprob": -0.07903262227773666,
                        "bytes": [65],
                        "top_logprobs": [
                            {
                                "token": "A",
                                "logprob": -0.07903262227773666,
                                "bytes": [65]
                            }
                        ]
                    },
                    {
                        "token": " rainbow",
                        "logprob": -0.20187227427959442,
                        "bytes": [32, 114, 97, 105, 110, 98, 111, 119],
                        "top_logprobs": [...]
                    },
                    ...
                ]
            },
            "finish_reason": "length"
        }
    ],
    "usage": {
        "prompt_tokens": 41,
        "completion_tokens": 10,
        "total_tokens": 51
    }
}
```

------

Sie benötigen den Modell-ARN, um Inferenzaufrufe für Ihr neu importiertes Modell durchzuführen. Nach erfolgreichem Abschluss des Importjobs und nachdem Ihr importiertes Modell aktiv ist, können Sie den Modell-ARN Ihres importierten Modells in der Konsole oder durch Senden einer [ListImportedModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListImportedModels.html)Anfrage abrufen. 

Wenn Sie Ihr importiertes Modell mit `InvokeModel` oder `InvokeModelWithStream` aufrufen, wird Ihre Anfrage innerhalb von 5 Minuten bedient; andernfalls erhalten Sie möglicherweise `ModelNotReadyException`. Um das zu verstehen ModelNotReadyException, folgen Sie den Schritten in diesem nächsten Abschnitt zur Handhabung ModelNotreadyException. 

## Häufig gestellte Fragen
<a name="api-format-faq"></a>

**F: Welches API-Format sollte ich verwenden?**

A: Für maximale Kompatibilität mit verschiedenen Formaten empfehlen wir die Verwendung der Formate Open AICompletion oder Open AIChat Completion SDKs, da sie OpenAI-kompatible Schemas bieten, die von verschiedenen Tools und Bibliotheken weitgehend unterstützt werden.

**F: Unterstützt Bedrock Custom Model Import GPT-OSS auf Amazon die Converse-API?**

A: Nein. GPT-OSSbasierte Importmodelle für benutzerdefinierte Modelle unterstützen die Converse API oder ConverseStream API nicht. Sie müssen die [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API mit OpenAI-kompatiblen Schemas verwenden, wenn Sie mit GPT-OSS basierten benutzerdefinierten Modellen arbeiten.

**F: Welche Modelle unterstützen das Aufrufen von Tools?**

A: GPT-OSS Maßgeschneiderte Modelle unterstützen Funktionen zum Aufrufen von Tools. Der Aufruf von Tools ermöglicht das Aufrufen von Funktionen für komplexe Workflows.

**F: Was ist mit Modellen, die vor dem 11. November 2025 importiert wurden?**

A: Modelle, die vor dem 11. November 2025 importiert wurden, funktionieren weiterhin unverändert mit ihren bestehenden API-Formaten und Funktionen.

**F: Was ist mit `generation_config.json` OpenAI-basierten Modellen?**

A: Es ist wichtig, dass Sie die richtige `generation_config.json` Datei angeben, wenn Sie OpenAI-basierte Modelle importieren, wie z. GPT-OSS [Sie müssen die aktualisierte Konfigurationsdatei (aktualisiert am 13. August 2024) verwenden, die unter https://huggingface verfügbar ist. co/openai/gpt-oss-20b/blob/main/generation\$1config.json](https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json). Die aktualisierte Konfiguration umfasst drei end-of-sequence Token IDs (`[200002, 199999, 200012]`), wohingegen ältere Versionen nur zwei Token () enthielten. `[200002, 199999]` Die Verwendung einer veralteten `generation_config.json` Datei führt zu Laufzeitfehlern beim Modellaufruf. Diese Datei ist für das korrekte Modellverhalten unerlässlich und muss in Ihren OpenAI-basierten Modellimporten enthalten sein.

## Handhabung ModelNotReadyException
<a name="handle-model-not-ready-exception"></a>

Der benutzerdefinierte Modellimport für Amazon Bedrock optimiert die Hardwarenutzung, indem die Modelle entfernt werden, die nicht aktiv sind. Wenn Sie versuchen, ein Modell aufzurufen, das entfernt wurde, erhalten Sie eine `ModelNotReadyException`. Nachdem das Modell entfernt wurde und Sie das Modell zum ersten Mal aufrufen, beginnt der benutzerdefinierte Modellimport mit der Wiederherstellung des Modells. Die Wiederherstellungszeit hängt von der Größe der On-Demand-Flotte und der Modellgröße ab.

Wenn Ihre `InvokeModel`- oder `InvokeModelWithStream`-Anfrage `ModelNotReadyException` zurückgibt, folgen Sie den Schritten zur Ausnahmenbehandlung.

1. 

**Konfigurieren von Wiederholungsversuchen**

   Standardmäßig wird Ihre Anforderung automatisch mit exponentiellem Backoff wiederholt. Sie können die maximale Anzahl an Wiederholungen konfigurieren.

   Das folgende Codebeispiel zeigt, wie Sie die Wiederholungsversuche konfigurieren. Ersetzen Sie *\$1\$1region-name\$1**\$1\$1model-arn\$1*, und *10* durch Ihre Region, Modell-ARN und maximale Versuche.

   ```
   import json
   import boto3
   from botocore.config import Config
   
   
   REGION_NAME = ${region-name}
   MODEL_ID= '${model-arn}'
   
   config = Config(
       retries={
           'total_max_attempts': 10, //customizable
           'mode': 'standard'
       }
   )
   message = "Hello"
   
   
   session = boto3.session.Session()
   br_runtime = session.client(service_name = 'bedrock-runtime', 
                                    region_name=REGION_NAME, 
                                    config=config)
       
   try:
       invoke_response = br_runtime.invoke_model(modelId=MODEL_ID, 
                                               body=json.dumps({'prompt': message}), 
                                               accept="application/json", 
                                               contentType="application/json")
       invoke_response["body"] = json.loads(invoke_response["body"].read().decode("utf-8"))
       print(json.dumps(invoke_response, indent=4))
   except Exception as e:
       print(e)
       print(e.__repr__())
   ```

1. 

**Überwachen Sie die Antwortcodes bei Wiederholungsversuchen**

   Bei jedem erneuten Versuch wird der Modellwiederherstellungsprozess gestartet. Die Wiederherstellungszeit hängt von der Verfügbarkeit der On-Demand-Flotte und der Modellgröße ab. Überwachen Sie die Antwortcodes, während der Wiederherstellungsprozess läuft. 

   Wenn die Wiederholungsversuche immer wieder fehlschlagen, fahren Sie mit den nächsten Schritten fort.

1. 

**So stellen Sie sicher, dass das Modell erfolgreich importiert wurde**

   Sie können überprüfen, ob das Modell erfolgreich importiert wurde, indem Sie den Status Ihres Importauftrags in der Konsole überprüfen oder den [GetModelImportJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelImportJob.html)Vorgang aufrufen. Prüfen Sie das `Status`-Feld in der Antwort. Der Importauftrag ist erfolgreich, wenn der Status für das Modell **Abgeschlossen** lautet. 

1. 

**Wenden Sie sich Support für weitere Untersuchungen an**

   Öffnen Sie ein Ticket mit Support Weitere Informationen finden Sie unter [Supportanfragen erstellen](https://docs.aws.amazon.com//awssupport/latest/user/case-management.html).

   Geben Sie relevante Details wie die Modell-ID und Zeitstempel im Support-Ticket ein.

# Umgang mit benutzerdefinierten Chat-Vorlagen und Tokenizern
<a name="custom-chat-templates-tokenizers"></a>

Benutzerdefinierte Chat-Vorlagen und Tokenizer sind wichtige Komponenten für die korrekte Formatierung von Konversationseingaben und die Verwaltung der Token-Generierung in Ihren importierten Modellen. Der Import benutzerdefinierter Modelle unterstützt den Import von Modellen mit benutzerdefinierten Chat-Vorlagen, die definieren, wie Multi-Turn-Konversationen strukturiert und tokenisiert werden.

## Importieren von Modellen mit benutzerdefinierten Chat-Vorlagen
<a name="import-chat-template"></a>

Stellen Sie beim Import eines Modells mit benutzerdefinierten Chat-Vorlagen sicher, dass Sie die in der Hauptdokumentation zum Import benutzerdefinierter Modelle beschriebenen bewährten Methoden befolgen, einschließlich der Eingabe von Modellgewichten im sicheren Tensorformat und der Bereitstellung aller erforderlichen Konfigurationsdateien.

### Anforderungen an das Format der Chat-Vorlage
<a name="chat-template-format-requirements"></a>

Wenn Ihr Modell eine benutzerdefinierte Chat-Vorlage verwendet und Sie diese Vorlage mit Amazon Bedrock verwenden möchten, müssen Sie die Chat-Vorlagendatei in einem der folgenden Formate einbinden:
+ **`chat_template.jinja`**— Eine auf Jinja2 basierende Vorlagendatei, die definiert, wie Nachrichten formatiert werden.
+ **`chat_template.json`**— Eine JSON-Datei, die die Chat-Vorlage als Zeichenkettenwert enthält.
+ **`tokenizer_config.json`mit eingebetteter Chat-Vorlage** — Alternativ können Sie die Chat-Vorlage direkt als `chat_template` Feld in Ihre `tokenizer_config.json` Datei aufnehmen. Ein Beispiel finden Sie unter [Hermes-2-Pro tokenizer\$1config.json](https://huggingface.co/NousResearch/Hermes-2-Pro-Llama-3-8B/blob/main/tokenizer_config.json#L2059) auf Hugging Face.

Der benutzerdefinierte Modellimport verarbeitet diese Dateien automatisch und nimmt sie während des Importvorgangs in die richtigen Verzeichnisse auf.

#### Vorrang vor Chat-Vorlagen
<a name="chat-template-precedence"></a>

Wenn Sie mehrere Quellen für Chat-Vorlagen angeben, wendet Amazon Bedrock die folgenden Prioritätsregeln an:

1. **Separate Chat-Vorlagendateien haben Vorrang** — Wenn Sie sowohl eine separate Chat-Vorlagendatei (`chat_template.jinja`oder`chat_template.json`) ALS auch ein `chat_template` Feld in Ihre aufnehmen`tokenizer_config.json`, wird die separate Datei verwendet und die eingebettete Vorlage in ignoriert`tokenizer_config.json`.

1. **Eingebettete Vorlage als Fallback** — Wenn Sie keine separate Chat-Vorlagendatei bereitstellen, verwendet Amazon Bedrock das `chat_template` Feld aus Ihrem, `tokenizer_config.json` falls vorhanden.

**Warnung**  
**Wählen Sie einen Ansatz:** Um Verwirrung zu vermeiden und vorhersehbares Verhalten zu gewährleisten, empfehlen wir dringend, nur EINEN dieser Ansätze zu verwenden:  
**Option 1:** Stellen Sie separate Chat-Vorlagendateien (`chat_template.jinja`oder`chat_template.json`) bereit, ohne ein `chat_template` Feld in Ihre aufzunehmen`tokenizer_config.json`.
**Option 2: Nehmen** Sie das `chat_template` Feld direkt in Ihre auf `tokenizer_config.json` und stellen Sie keine separaten Vorlagendateien bereit.
Wenn Sie über benutzerdefinierte Toolvorlagen oder komplexe Chat-Vorlagenkonfigurationen verfügen, empfehlen wir die Verwendung von Option 2 (Einbetten der Vorlage in`tokenizer_config.json`), da Sie damit mehrere benannte Vorlagen (wie „default“ und „tool\$1use“) in einer einzigen Konfigurationsdatei definieren können.

**Anmerkung**  
Die Chat-Vorlagendatei muss dem Hugging Face Face-Format und den Namenskonventionen entsprechen. Stellen Sie sicher, dass Ihre Vorlage mit der Transformers Bibliothek kompatibel ist.

#### Beispiele für das Format von Chat-Vorlagen
<a name="chat-template-examples"></a>

Hier sind Beispiele für die beiden unterstützten Chat-Vorlagenformate:

------
#### [ Jinja Format (chat\$1template.jinja) ]

Ein vereinfachtes Beispiel für eine auf Jinja2 basierende Chat-Vorlage:

```
{% for message in messages %}
{% if loop.first and message['role'] != 'system' %}
<|im_start|>system
You are a helpful assistant.<|im_end|>
{% endif %}
<|im_start|>{{ message['role'] }}
{{ message['content'] }}<|im_end|>
{% endfor %}
{% if add_generation_prompt %}
<|im_start|>assistant
{% endif %}
```

Ein vollständiges Beispiel finden Sie in der [GPT-OSSChat-Vorlage](https://huggingface.co/openai/gpt-oss-20b/blob/main/chat_template.jinja) auf Hugging Face.

------
#### [ JSON Format (chat\$1template.json) ]

Ein vereinfachtes Beispiel für eine JSON-basierte Chat-Vorlage mit Vision-Unterstützung:

```
{
    "chat_template": "{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' %}<|vision_start|><|image_pad|><|vision_end|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}"
}
```

Ein vollständiges Beispiel mit multimodaler Unterstützung finden Sie in der [Qwen2-VLChat-Vorlage](https://huggingface.co/Qwen/Qwen2-VL-72B-Instruct/blob/main/chat_template.json) auf Hugging Face.

------

**Wichtig**  
Stellen Sie sicher, dass Ihre Chat-Vorlagendatei genau der Benennungskonvention (`chat_template.jinja`oder`chat_template.json`) und dem Format entspricht, die in den obigen Beispielen gezeigt wurden. Falsch formatierte Vorlagen können zu Import- oder Inferenzfehlern führen.

## Modelle mit benutzerdefinierten Chat-Vorlagen aufrufen
<a name="invoke-custom-chat-templates"></a>

Nachdem Sie ein Modell mit einer benutzerdefinierten Chat-Vorlage importiert haben, haben Sie zwei Möglichkeiten, das Modell mit korrekt formatierten Konversationseingaben aufzurufen:

### ChatCompletion OpenAI-API mit Nachrichten verwenden
<a name="chatcompletion-api-approach"></a>

Wenn Sie Eingaben im Nachrichtenschemaformat bereitstellen, sollten Sie die ** ChatCompletion OpenAI-API** verwenden. Wenn Sie dieses API-Format mit einem Modell verwenden, das über eine hochgeladene Chat-Vorlage (`chat_template.jinja`oder`chat_template.json`) verfügt, konvertiert Amazon Bedrock Ihre eingegebenen Nachrichten mithilfe der Chat-Vorlage automatisch in das richtige Format.

Dies ist der empfohlene Ansatz, da er die nahtloseste Integration bietet und es Amazon Bedrock ermöglicht, die Chat-Vorlagenanwendung automatisch zu verarbeiten.

**Beispiel: ChatCompletion OpenAI-API mit benutzerdefinierter Chat-Vorlage verwenden**

```
import json
import boto3

# Initialize Bedrock Runtime client
client = boto3.client('bedrock-runtime', region_name='us-east-1')

# Define the model ARN for your imported model with custom chat template
model_id = 'arn:aws:bedrock:us-east-1:123456789012:imported-model/your-model-id'

# Prepare the request payload using messages format
payload = {
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hello, how are you?"
        }
    ],
    "max_tokens": 150,
    "temperature": 0.7
}

# Invoke the model
response = client.invoke_model(
    modelId=model_id,
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

# Parse and display the response
response_body = json.loads(response['body'].read())
print(json.dumps(response_body, indent=2))
```

In diesem Beispiel wendet Amazon Bedrock Ihre benutzerdefinierte Chat-Vorlage automatisch auf das Nachrichten-Array an und konvertiert sie in das entsprechende Format für Ihr Modell.

### Manueller Tokenisierungsansatz
<a name="manual-tokenization-approach"></a>

Wenn Sie lieber die volle Kontrolle über die Anwendung der Chat-Vorlage und den Tokenisierungsprozess haben möchten, können Sie die Chat-Vorlage auch manuell auf Ihre Konversation anwenden und dann die **Completion-API** (nicht ChatCompletion) mit dem vorformatierten Text verwenden.

Dieser Ansatz ist nützlich, wenn Sie die Anwendungslogik der Vorlage anpassen müssen oder wenn Sie mit speziellen Tokenisierungsanforderungen arbeiten.

#### Schritt 1: Chat-Vorlage lokal anwenden
<a name="apply-chat-template-locally"></a>

Verwenden Sie den folgenden Codeausschnitt, um Ihre benutzerdefinierte Chat-Vorlage zu laden und sie lokal auf eine Konversation anzuwenden:

```
from transformers import AutoTokenizer

# Configuration paths - update these with your actual paths
TOKENIZER_PATH = ""  # Path to tokenizer directory

# Load tokenizer with updated chat template
tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH)

# Test chat template with sample conversation
chat_history = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello, how are you?"},
]

# Apply chat template and display formatted output to make sure chat template works as expected
formatted_chat = tokenizer.apply_chat_template(chat_history, tokenize=False)
print(formatted_chat)
```

Dieser Code demonstriert, wie Sie:

1. Laden Sie Ihre Tokenizer-Konfiguration aus den Modelldateien

1. Fügen Sie die benutzerdefinierte Chat-Vorlage zur Tokenizer-Konfiguration hinzu

1. Wenden Sie die Chat-Vorlage auf einen Konversationsverlauf an

1. Generieren Sie den formatierten Text, der an das Modell gesendet werden kann

#### Schritt 2: Mit Completion API aufrufen
<a name="invoke-with-completion-api"></a>

Nachdem Sie die Chat-Vorlage lokal angewendet haben, verwenden Sie den formatierten Text mit der Completion-API:

```
import json
import boto3

# Initialize Bedrock Runtime client
client = boto3.client('bedrock-runtime', region_name='us-east-1')

# Define the model ARN for your imported model
model_id = 'arn:aws:bedrock:us-east-1:123456789012:imported-model/your-model-id'

# Use the formatted_chat output from Step 1 as the prompt
payload = {
    "prompt": formatted_chat,
    "max_tokens": 150,
    "temperature": 0.7
}

# Invoke the model using Completion format (not ChatCompletion)
response = client.invoke_model(
    modelId=model_id,
    body=json.dumps(payload),
    accept='application/json',
    contentType='application/json'
)

# Parse and display the response
response_body = json.loads(response['body'].read())
print(json.dumps(response_body, indent=2))
```

**Warnung**  
**Immer `max_tokens` Parameter verwenden:** Wenn Sie die Completion-API mit benutzerdefinierten Modellimporten verwenden, verwenden Sie immer den `max_tokens` Parameter, um die Kompatibilität des OpenAI-Vervollständigungsschemas sicherzustellen. Dies vermeidet Übersetzungsverwirrungen und gewährleistet ein konsistentes Verhalten in verschiedenen SDK-Implementierungen. Verwenden Sie keine modellspezifischen Parameternamen wie `max_gen_len` oder ähnliche Varianten.

**Wichtig**  
Wenn Sie den Ansatz der manuellen Tokenisierung verwenden, müssen Sie das **Completion-API-Format** (mit `prompt` Feld) und nicht das ChatCompletion API-Format (mit Feld) verwenden. `messages` Die ChatCompletion API erwartet Rohnachrichten und versucht erneut, die Chat-Vorlage anzuwenden, was zu einer falschen Formatierung führt.

### Bewährte Methoden
<a name="chat-template-best-practices"></a>
+ **Verwenden Sie nach Möglichkeit die ChatCompletion API — Die ChatCompletion OpenAI-API mit Nachrichtenformat bietet die nahtloseste Erfahrung und ermöglicht es Amazon Bedrock, die Chat-Vorlagenanwendung automatisch** zu verarbeiten.
+ **Überprüfen Sie Ihre Chat-Vorlage** — Bevor Sie Ihr Modell importieren, testen Sie Ihre Chat-Vorlage lokal mithilfe der Transformers Bibliothek, um sicherzustellen, dass sie das erwartete Ausgabeformat erzeugt.
+ **Alle speziellen Token einbeziehen** — Stellen Sie sicher, dass Ihre Chat-Vorlage alle erforderlichen speziellen Token (wie beginning-of-sequence end-of-sequence, und Rollenmarkierungen) enthält, die Ihr Modell erwartet.
+ **Testen Sie mit Multi-Turn-Konversationen** — Stellen Sie sicher, dass Ihre Chat-Vorlage Multi-Turn-Konversationen mit abwechselnden Benutzer- und Assistentennachrichten korrekt verarbeitet.
+ **Ziehen Sie Vision-Unterstützung in Betracht** — Wenn Ihr Modell multimodale Eingaben unterstützt, stellen Sie sicher, dass Ihre Chat-Vorlage Logik für den Umgang mit Bild- und Videoinhaltsmarkierungen enthält.

**Warnung**  
Falsch formatierte Chat-Vorlagen können zu schlechter Modellleistung, unerwarteten Ergebnissen oder Inferenzfehlern führen. Testen Sie Ihre Chat-Vorlage immer gründlich, bevor Sie sie in der Produktion einsetzen.

# So berechnen Sie die Kosten für die Ausführung eines benutzerdefinierten Modells
<a name="import-model-calculate-cost"></a>

Für das Ausführen von Inferenz mit benutzerdefinierten Modellen, die Sie in Amazon Bedrock importieren, werden Ihnen Kosten berechnet. Verwenden Sie die folgenden Informationen, um die Kosten für die Ausführung eines benutzerdefinierten Modells abzuschätzen.

Eine Custom Model Unit (CMU) ist eine abstrakte Ansicht der Hardwarenutzung, die Amazon Bedrock benötigt, um eine einzelne Kopie Ihres benutzerdefinierten Modells zu hosten. Eine Modellkopie stellt eine einzelne Instanz Ihres importierten Modells dar, die bereit ist, Inferenzanfragen zu bearbeiten. Amazon Bedrock bestimmt die Anzahl der benutzerdefinierten Modelleinheiten, die eine Modellkopie benötigt, wenn Sie das benutzerdefinierte Modell importieren. Wenn sich der Bedarf an Inferenzen ändert, kann Amazon Bedrock die Anzahl der laufenden Modellkopien erhöhen oder verringern. 

Mithilfe von CMUs können Sie die Kosten für die Ausführung Ihres benutzerdefinierten Modells anhand der folgenden Formel abschätzen.

*Gesamtkosten = Anzahl der laufenden Modellkopien × Anzahl der CMUs pro Kopie × Abrechnungsgebühr pro CMU pro Minute × ((Anzahl der 5-Minuten-Fenster)/60)*
+ *Anzahl der laufenden Modellkopien* – Ermittelt aus der `ModelCopy`-Metrik in Amazon CloudWatch.
+ *Anzahl der CMUs pro Kopie* – Ermittelt den Wert von der Modelldetailseite auf der Amazon-Bedrock-Detailseite. Alternativ können Sie den Vorgang [GetImportedModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetImportedModel.html) aufrufen und die Anzahl der CMUs pro Kopie aus dem Feld `customModelUnitsPerModelCopy` ermitteln.
+ *Abrechnungssatz pro CMU pro Minute* – Ermittelt die Version der benutzerdefinierten Modelleinheiten von der Modelldetailseite in der Amazon-Bedrock-Konsole. Alternativ können Sie den Vorgang [GetImportedModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetImportedModel.html) aufrufen und die Version der benutzerdefinierten Modelleinheiten aus dem Feld `customModelUnitsVersion`ermitteln.

  [Ermitteln Sie dann den Abrechnungssatz (**Preis pro benutzerdefinierter Modelleinheit pro Min\$1**) für die Modellversion (**Version der benutzerdefinierten Modelleinheit**) im Abschnitt **Import benutzerdefinierter Modelle** auf der Seite Amazon Bedrock-Preise](https://aws.amazon.com/bedrock/pricing/).

Die Abrechnung erfolgt in 5‑Minuten‑Abrechnungsfenstern ab dem ersten erfolgreichen Inferenzaufruf. 

Weitere Informationen finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing/).

# API-Codebeispiele für den Import benutzerdefinierter Modelle
<a name="custom-model-import-code-samples"></a>

Die folgenden Codebeispiele verdeutlichen, wie Sie Berechtigungen einrichten, einen Importauftrag für benutzerdefinierte Modelle erstellen, die Details zu Ihren Importaufträgen und importierten Modellen anzeigen sowie importierte Modelle löschen. Diese Codebeispiele gelten fürMistral AI,Llama,Qwen, FlanGPTBigCode, und Mixtral Architekturen.

## Wichtig: Support der Modellarchitektur
<a name="model-architecture-support"></a>

**GPT-OSSEinschränkungen des Modells:**
+ **Converse-API wird nicht unterstützt:** GPT-OSS Auf der Grundlage benutzerdefinierter Modellimportmodelle werden die Converse API oder ConverseStream API NICHT unterstützt.
+ **Stattdessen InvokeModel API verwenden:** Kunden müssen die [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API verwenden, wenn sie mit GPT-OSS basierten benutzerdefinierten Modellen arbeiten.
+ **API-Schemaanforderung:** GPT-OSS Modelle benötigen OpenAI-kompatible API-Schemas:
  + Abschlussformat für Fertigstellungsanfragen
  + ChatCompletion Format für Chat-Anfragen
  + Das Antwortformat entspricht den OpenAI-API-Spezifikationen
+ **Unterstützte Modelle für die Converse-API:** Die Converse-API wird nur fürMistral AI,, Llama Qwen FlanGPTBigCode, und Mixtral Architekturen unterstützt.

Beispiele zur GPT-OSS Modellnutzung mit [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API finden Sie in der OpenAI-API-Dokumentation für request/response Schemas.

1. Vorbereiten der Modelldateien für den Import

   1. Wenn Sie Ihr Modell aus einem Amazon-S3-Bucket importieren, müssen Sie die Modelldateien im Gewichtungsformat Hugging Face angeben. Weitere Informationen finden Sie unter [Importieren einer Modellquelle aus Amazon S3](model-customization-import-model.md#model-customization-import-model-source). 

   1. Erstellen Sie einen Amazon-S3-Bucket für Ihre Modelldateien (die Namen müssen eindeutig sein).

   1. Laden Sie die Modelldateien in den Bucket hoch.

1. Erstellen Sie eine Richtlinie für den Zugriff auf Ihre Modelldateien und fügen Sie sie einer IAM-Rolle mit einer Amazon-Bedrock-Vertrauensstellung hinzu. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

------
#### [ Console ]

   1. Erstellen einer Amazon-S3-Richtlinie für den Zugriff auf den Amazon-S3-Bucket, der die Modelldateien enthält

      1. Navigieren Sie unter [https://console.aws.amazon.com/iam zur IAM-Konsole und wählen Sie im linken](https://console.aws.amazon.com/iam) Navigationsbereich **Richtlinien** aus.

      1. Wählen Sie **Richtlinie erstellen** und anschließend **JSON** aus, um den **Richtlinien-Editor** zu öffnen.

      1. **Fügen Sie die folgende Richtlinie ein und *\$1\$1model-file-bucket\$1* ersetzen Sie sie durch Ihren Bucket-Namen, und wählen Sie dann Weiter aus.**

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Action": [
                         "s3:GetObject",
                         "s3:ListBucket"
                     ],
                     "Resource": [
                         "arn:aws:s3:::${model-file-bucket}",
                         "arn:aws:s3:::${model-file-bucket}/*"
                     ]
                   }
                 ]
               }
         ```

------

      1. Geben Sie der Richtlinie einen Namen *S3BucketPolicy* und wählen Sie **Richtlinie erstellen** aus.

   1. Erstellen Sie eine IAM-Rolle und fügen Sie die Richtlinie an.

      1. Wählen Sie im linken Navigationsbereich die Option **Rollen** und dann **Rolle erstellen** aus.

      1. Wählen Sie die Option **Benutzerdefinierte Vertrauensrichtlinie** aus, fügen Sie die folgende Richtlinie ein und wählen Sie dann **Weiter** aus.

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Principal": {
                         "Service": "bedrock.amazonaws.com"
                     },
                     "Action": "sts:AssumeRole"
                 }
             ] 
         }
         ```

------

      1. Suchen Sie nach der *S3BucketPolicy* Richtlinie, die Sie erstellt haben, aktivieren Sie das Kontrollkästchen und wählen Sie **Weiter**.

      1. Geben Sie der Rolle einen Namen *MyImportModelRole* und wählen Sie*Create role*.

------
#### [ CLI ]

   1. Erstellen Sie eine Datei mit dem Namen *BedrockTrust.json* und fügen Sie die folgende Richtlinie ein.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "bedrock.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ] 
      }
      ```

------

   1. Erstellen Sie eine weitere Datei mit dem Namen *S3BucketPolicy.json* und fügen Sie die folgende Richtlinie ein, *\$1\$1model-file-bucket\$1* wobei Sie sie durch Ihre Bucket-Namen ersetzen.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::${model-file-bucket}",
                      "arn:aws:s3:::${model-file-bucket}/*"
                  ]
              }
           ]
      }
      ```

------

   1. Navigieren Sie in einem Terminalfenster zu dem Ordner, der die von Ihnen erstellten Richtlinien enthält.

   1. Stellen Sie eine [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)Anfrage zur Erstellung einer IAM-Rolle mit dem Namen *MyImportModelRole* und fügen Sie die von Ihnen erstellte *BedrockTrust.json* Vertrauensrichtlinie hinzu.

      ```
      aws iam create-role \
          --role-name MyImportModelRole \
          --assume-role-policy-document file://BedrockTrust.json
      ```

   1. Stellen Sie eine [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)Anfrage zur Erstellung der S3-Datenzugriffsrichtlinie mit der von Ihnen erstellten *S3BucketPolicy.json* Datei. Die Antwort gibt den Parameter `Arn` für die Richtlinie zurück.

      ```
      aws iam create-policy \
          --policy-name S3BucketPolicy \
          --policy-document file://S3BucketPolicy.json
      ```

   1. Stellen Sie eine [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)Anfrage, um die S3-Datenzugriffsrichtlinie an Ihre Rolle anzuhängen, und ersetzen Sie die in der Antwort aus dem vorherigen Schritt durch den ARN: `policy-arn`

      ```
      aws iam attach-role-policy \
          --role-name MyImportModelRole \
          --policy-arn ${policy-arn}
      ```

------
#### [ Python ]

   1. Führen Sie den folgenden Code aus, um eine [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)Anfrage zur Erstellung einer IAM-Rolle namens zu stellen *MyImportModel* und um eine [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)Anfrage zur Erstellung einer S3-Datenzugriffsrichtlinie namens *S3BucketPolicy* zu stellen. Ersetzen Sie die S3-Datenzugriffsrichtlinie *\$1\$1model-file-bucket\$1* durch Ihre S3-Bucket-Namen.

      ```
      import boto3
      import json
      
      iam = boto3.client("iam")
      
      iam.create_role(
          RoleName="MyImportModelRole",
          AssumeRolePolicyDocument=json.dumps({
              "Version": "2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "bedrock.amazonaws.com"
                      },
                      "Action": "sts:AssumeRole"
                  }
              ] 
          })
      )
      
      iam.create_policy(
          PolicyName="S3BucketPolicy",
          PolicyDocument=json.dumps({
              "Version": "2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Effect": "Allow",
                      "Action": [
                          "s3:GetObject",
                          "s3:ListBucket"
                      ],
                      "Resource": [
                          "arn:aws:s3:::${training-bucket}",
                          "arn:aws:s3:::${training-bucket}/*"
                      ]
                  }
                ]
             })
           )
      ```

   1. In der Antwort wird der Parameter `Arn` zurückgegeben. Führen Sie den folgenden Codeausschnitt aus, um eine [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)Anfrage zu stellen, und *\$1\$1policy-arn\$1* ersetzen Sie ihn durch den zurückgegebenen. `Arn`

      ```
      iam.attach_role_policy(
          RoleName="MyImportModelRole",
          PolicyArn="${policy-arn}"
      )
      ```

------

1. Wählen Sie eine Sprache aus, in der Codebeispiele zum Aufrufen der API-Vorgänge für den Import von benutzerdefinierten Modellen angezeigt werden sollen.

------
#### [ CLI ]

Um einen benutzerdefinierten Modellimportauftrag einzureichen, führen Sie in einem Terminal den folgenden Befehl in der Befehlszeile aus und *\$1\$1my-import-model-role-arn\$1* ersetzen Sie ihn durch die von Ihnen eingerichtete Modellrolle und den *s3-bucket-path* S3-Bucket-Pfad Ihrer Modelldateien.

```
aws bedrock create-model-import-job 
    --job-name MyImportedModelJobName
    --imported-model-name MyImportedModelName
    --role-arn ${my-import-model-role-arn}  
    --model-data-source '{"s3DataSource": {"s3Uri": s3-bucket-path }}
```

In der Antwort wird ein *jobArn* zurückgegeben. Die Ausführung eines benutzerdefinierten Importauftrags kann einige Zeit in Anspruch nehmen. Sie können den Parameter `jobArn` mit dem folgenden Befehl verwenden, um den Status des Importauftrags zu überprüfen.

Die folgenden Felder sind optional:
+ Wenn Sie eine VPC-Konfiguration hinzufügen möchten, nehmen Sie das folgende Argument in den obigen Befehl auf, um die Sicherheitsgruppe und die Subnetze anzugeben:

  ```
     -\\-vpc-config '{securityGroupIds": ["sg-xx"], "subnetIds": ["subnet-yy", "subnet-zz"]}'
  ```
+ Wenn Sie Ihr Modell mit einem KMS-Schlüssel verschlüsseln möchten, fügen Sie dem obigen Befehl das folgende Argument hinzu und ersetzen Sie dabei die Werte, um den Schlüssel anzugeben, mit dem Sie Ihr Modell verschlüsseln möchten.

  ```
     -\\-customModelKmsKeyId 'arn:aws:kms:region:account-id:key/key-id'
  ```
+ Um Tags hinzuzufügen, fügen Sie dem obigen Befehl das folgende Argument hinzu. Ersetzen Sie dabei die Schlüssel und Werte durch die Tags, die Sie an das and/or Job-Ausgabemodell anhängen möchten, und achten Sie darauf, die key/value Paare durch ein Leerzeichen zu trennen:

  ```
     -\\-tags key=key1,value=value1 key=key2,value=value2
  ```

In der Antwort wird ein *jobArn* zurückgegeben. Die Ausführung eines benutzerdefinierten Importauftrags kann einige Zeit in Anspruch nehmen. Sie können den Parameter `jobArn` mit dem folgenden Befehl verwenden, um den Status des Importauftrags zu überprüfen.

```
aws bedrock get-model-import-job \
    --job-identifier "jobArn"
```

Die Antwort sieht in etwa wie folgt aus:

```
{
    "jobArn": ${job-arn} ,
    "jobName": MyImportedModelJobName,
    "importedModelName": MyImportedModelName,
    "roleArn": ${my-role-arn},
    "modelDataSource": {
        "s3DataSource": {
            "s3Uri": "${S3Uri}"
        }
    },
    "status": "Complete",
    "creationTime": "2024-08-13T23:38:42.457Z",
    "lastModifiedTime": "2024-08-13T23:39:25.158Z"
```

Wenn der `status` `Complete` lautet, wurde der Importauftrag abgeschlossen.

Um Inferenzen für Ihr neu importiertes Modell auszuführen, müssen Sie den ARN des importierten Modells als `model-id` angeben. Rufen Sie den ARN des importierten Modells ab.

```
aws bedrock list-imported-models              
```

Die Antwort enthält den Namen und den ARN des Modells. Verwenden Sie den Modell-ARN, um das importierte Modell aufzurufen. Weitere Informationen finden Sie unter [Senden Sie eine einzelne Aufforderung mit InvokeModel](inference-invoke.md).

```
{
    "modelSummaries": [
        {
            "modelArn": model-arn,
            "modelName": "MyImportedModelName",
            "modelArchitecture":model-architecture,
            "instructSupported":Y,
            "creationTime": "2024-08-13T19:20:14.058Z"
            
        }
    ]
}
```

Um das importierte Modell zu löschen, führen Sie in einem Terminalfenster den folgenden Befehl in der Befehlszeile aus und verwenden Sie dabei den Namen oder den ARN des importierten Modells, das Sie löschen möchten.

```
aws bedrock delete-imported-model 
                --model-identifier MyImportedModelName
```

------
#### [ Python ]

Führen Sie den folgenden Codeausschnitt aus, um einen Importauftrag für benutzerdefinierte Modelle zu übermitteln. *my-region*Ersetzen Sie durch die Region, in die Sie das Modell importiert haben, *\$1\$1my-import-model-role-arn\$1* durch den ARN der Region, *MyImportModelRole* die Sie eingerichtet haben, und *\$1\$1model-file-bucket\$1* ersetzen Sie sie durch Ihren S3-Bucket-Namen.

```
import boto3
import json

REGION_NAME = my-region
bedrock = boto3.client(service_name='bedrock',
                       region_name=REGION_NAME)

JOB_NAME = MyImportedModelJobName 
ROLE_ARN = ${my-import-model-role-arn}
IMPORTED_MODEL_NAME = ImportedModelName
S3_URI = ${S3Uri}

# createModelImportJob API
create_job_response = bedrock.create_model_import_job(
    jobName=JOB_NAME,
    importedModelName=IMPORTED_MODEL_NAME,
    roleArn=ROLE_ARN,
    modelDataSource={
        "s3DataSource": {
            "s3Uri": S3_URI
        }
    },
)
job_arn = create_job_response.get("jobArn")
```

Die folgenden Felder sind optional.
+ Wenn Sie eine VPC-Konfiguration hinzufügen möchten, nehmen Sie das folgende Argument in den obigen Befehl auf, um die Sicherheitsgruppe und die Subnetze anzugeben:

  ```
     vpc-config = {'securityGroupIds: ["sg-xx".], 'subnetIds': [subnet-yy, 'subnet-zz']}'
  ```
+ Wenn Sie Ihr Modell mit einem KMS-Schlüssel verschlüsseln möchten, fügen Sie dem obigen Befehl das folgende Argument hinzu und ersetzen Sie dabei die Werte, um den Schlüssel anzugeben, mit dem Sie Ihr Modell verschlüsseln möchten.

  ```
     importedModelKmsKeyId = 'arn:aws:kms:region:account-id:key/key-id'
  ```
+ Um Tags hinzuzufügen, fügen Sie dem obigen Befehl das folgende Argument hinzu. Ersetzen Sie dabei die Schlüssel und Werte durch die Tags, die Sie an das and/or Job-Ausgabemodell anhängen möchten, und achten Sie darauf, die key/value Paare durch ein Leerzeichen zu trennen:

  ```
     jobTags key=key1,value=value1 key=key2,value=value2
  ```

In der Antwort wird der Parameter „jobArn“ zurückgegeben.

```
               job_arn = create_job_response.get("jobArn")
```

Die Ausführung eines benutzerdefinierten Importauftrags kann einige Zeit in Anspruch nehmen. Sie können den Parameter `jobArn` mit dem folgenden Befehl verwenden, um den Status des Importauftrags zu überprüfen.

```
bedrock.get_model_import_job(jobIdentifier=jobArn)
```

Wenn der `status` `Completed` lautet, wurde der Importauftrag abgeschlossen.

Um Inferenzen für Ihr neu importiertes Modell auszuführen, müssen Sie den ARN des importierten Modells als `model-id` angeben. Rufen Sie den ARN des importierten Modells ab.

```
response_pt = bedrock.list_imported_models(
    creationTimeBefore=datetime (2015,1,1,
    creationTimeAfter= datetime (2015,1,1,
    nameContains = 'MyImportedModelName,
    maxresults = 123
    nextToken = 'none',
    sortBy = 'creationTime',
    sortOrder = 'Ascending'
```

In der Antwort wird der Parameter `modelArn` zusammen mit anderen Details des importierten Modells zurückgegeben. 

```
{
    'nextToken': '',
    'modelSummaries': [
        {
            'modelArn': 'your-model-arn',
            'modelName': 'MyImportedModelName',
            'modelArchitecture':model-architecture,
            'instructSupported':Y,
            'creationTime': datetime(2015, 1, 1)
        },
    ]
```

Verwenden Sie den Modell-ARN, um das importierte Modell aufzurufen. Weitere Informationen finden Sie unter [Senden Sie eine einzelne Aufforderung mit InvokeModel](inference-invoke.md).

Um das importierte Modell zu löschen, verwenden Sie den folgenden Befehl unter Angabe des Namens oder der ARN des importierten Modells, das Sie löschen möchten.

```
response = client.delete_imported_model(
    modelIdentifier='MyImportedModelName'
            )
```

------

# Converse-API-Codebeispiele für den Import benutzerdefinierter Modelle
<a name="custom-model-import-code-samples-converse"></a>

Wenn Sie einMistral,Llama, oder Qwen Typinstruct-Modell importieren und [Converse](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_runtime_Converse.html) oder die [ConverseStream](https://docs.aws.amazon.com//bedrock/latest/APIReference/API_runtime_ConverseStream.html)API verwenden möchten, stellen Sie sicher, dass Sie das `chat_template` für den Modelltyp, den Sie importieren, in das aufnehmen. `tokenizer_config.json` Wählen Sie in der folgenden Tabelle die Registerkarte aus, die dem zu importierenden Modelltyp entspricht.

------
#### [ Lama 3.2 – Text ]

```
{
  "added_tokens_decoder": {
    "128000": {
      "content": "<|begin_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128001": {
      "content": "<|end_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128002": {
      "content": "<|reserved_special_token_0|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128003": {
      "content": "<|reserved_special_token_1|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128004": {
      "content": "<|finetune_right_pad_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128005": {
      "content": "<|reserved_special_token_2|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128006": {
      "content": "<|start_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128007": {
      "content": "<|end_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128008": {
      "content": "<|eom_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128009": {
      "content": "<|eot_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128010": {
      "content": "<|python_tag|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128011": {
      "content": "<|reserved_special_token_3|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128012": {
      "content": "<|reserved_special_token_4|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128013": {
      "content": "<|reserved_special_token_5|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128014": {
      "content": "<|reserved_special_token_6|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128015": {
      "content": "<|reserved_special_token_7|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128016": {
      "content": "<|reserved_special_token_8|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128017": {
      "content": "<|reserved_special_token_9|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128018": {
      "content": "<|reserved_special_token_10|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128019": {
      "content": "<|reserved_special_token_11|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128020": {
      "content": "<|reserved_special_token_12|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128021": {
      "content": "<|reserved_special_token_13|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128022": {
      "content": "<|reserved_special_token_14|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128023": {
      "content": "<|reserved_special_token_15|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128024": {
      "content": "<|reserved_special_token_16|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128025": {
      "content": "<|reserved_special_token_17|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128026": {
      "content": "<|reserved_special_token_18|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128027": {
      "content": "<|reserved_special_token_19|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128028": {
      "content": "<|reserved_special_token_20|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128029": {
      "content": "<|reserved_special_token_21|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128030": {
      "content": "<|reserved_special_token_22|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128031": {
      "content": "<|reserved_special_token_23|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128032": {
      "content": "<|reserved_special_token_24|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128033": {
      "content": "<|reserved_special_token_25|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128034": {
      "content": "<|reserved_special_token_26|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128035": {
      "content": "<|reserved_special_token_27|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128036": {
      "content": "<|reserved_special_token_28|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128037": {
      "content": "<|reserved_special_token_29|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128038": {
      "content": "<|reserved_special_token_30|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128039": {
      "content": "<|reserved_special_token_31|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128040": {
      "content": "<|reserved_special_token_32|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128041": {
      "content": "<|reserved_special_token_33|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128042": {
      "content": "<|reserved_special_token_34|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128043": {
      "content": "<|reserved_special_token_35|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128044": {
      "content": "<|reserved_special_token_36|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128045": {
      "content": "<|reserved_special_token_37|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128046": {
      "content": "<|reserved_special_token_38|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128047": {
      "content": "<|reserved_special_token_39|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128048": {
      "content": "<|reserved_special_token_40|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128049": {
      "content": "<|reserved_special_token_41|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128050": {
      "content": "<|reserved_special_token_42|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128051": {
      "content": "<|reserved_special_token_43|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128052": {
      "content": "<|reserved_special_token_44|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128053": {
      "content": "<|reserved_special_token_45|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128054": {
      "content": "<|reserved_special_token_46|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128055": {
      "content": "<|reserved_special_token_47|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128056": {
      "content": "<|reserved_special_token_48|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128057": {
      "content": "<|reserved_special_token_49|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128058": {
      "content": "<|reserved_special_token_50|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128059": {
      "content": "<|reserved_special_token_51|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128060": {
      "content": "<|reserved_special_token_52|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128061": {
      "content": "<|reserved_special_token_53|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128062": {
      "content": "<|reserved_special_token_54|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128063": {
      "content": "<|reserved_special_token_55|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128064": {
      "content": "<|reserved_special_token_56|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128065": {
      "content": "<|reserved_special_token_57|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128066": {
      "content": "<|reserved_special_token_58|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128067": {
      "content": "<|reserved_special_token_59|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128068": {
      "content": "<|reserved_special_token_60|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128069": {
      "content": "<|reserved_special_token_61|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128070": {
      "content": "<|reserved_special_token_62|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128071": {
      "content": "<|reserved_special_token_63|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128072": {
      "content": "<|reserved_special_token_64|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128073": {
      "content": "<|reserved_special_token_65|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128074": {
      "content": "<|reserved_special_token_66|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128075": {
      "content": "<|reserved_special_token_67|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128076": {
      "content": "<|reserved_special_token_68|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128077": {
      "content": "<|reserved_special_token_69|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128078": {
      "content": "<|reserved_special_token_70|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128079": {
      "content": "<|reserved_special_token_71|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128080": {
      "content": "<|reserved_special_token_72|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128081": {
      "content": "<|reserved_special_token_73|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128082": {
      "content": "<|reserved_special_token_74|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128083": {
      "content": "<|reserved_special_token_75|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128084": {
      "content": "<|reserved_special_token_76|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128085": {
      "content": "<|reserved_special_token_77|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128086": {
      "content": "<|reserved_special_token_78|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128087": {
      "content": "<|reserved_special_token_79|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128088": {
      "content": "<|reserved_special_token_80|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128089": {
      "content": "<|reserved_special_token_81|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128090": {
      "content": "<|reserved_special_token_82|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128091": {
      "content": "<|reserved_special_token_83|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128092": {
      "content": "<|reserved_special_token_84|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128093": {
      "content": "<|reserved_special_token_85|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128094": {
      "content": "<|reserved_special_token_86|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128095": {
      "content": "<|reserved_special_token_87|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128096": {
      "content": "<|reserved_special_token_88|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128097": {
      "content": "<|reserved_special_token_89|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128098": {
      "content": "<|reserved_special_token_90|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128099": {
      "content": "<|reserved_special_token_91|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128100": {
      "content": "<|reserved_special_token_92|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128101": {
      "content": "<|reserved_special_token_93|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128102": {
      "content": "<|reserved_special_token_94|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128103": {
      "content": "<|reserved_special_token_95|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128104": {
      "content": "<|reserved_special_token_96|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128105": {
      "content": "<|reserved_special_token_97|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128106": {
      "content": "<|reserved_special_token_98|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128107": {
      "content": "<|reserved_special_token_99|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128108": {
      "content": "<|reserved_special_token_100|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128109": {
      "content": "<|reserved_special_token_101|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128110": {
      "content": "<|reserved_special_token_102|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128111": {
      "content": "<|reserved_special_token_103|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128112": {
      "content": "<|reserved_special_token_104|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128113": {
      "content": "<|reserved_special_token_105|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128114": {
      "content": "<|reserved_special_token_106|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128115": {
      "content": "<|reserved_special_token_107|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128116": {
      "content": "<|reserved_special_token_108|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128117": {
      "content": "<|reserved_special_token_109|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128118": {
      "content": "<|reserved_special_token_110|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128119": {
      "content": "<|reserved_special_token_111|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128120": {
      "content": "<|reserved_special_token_112|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128121": {
      "content": "<|reserved_special_token_113|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128122": {
      "content": "<|reserved_special_token_114|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128123": {
      "content": "<|reserved_special_token_115|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128124": {
      "content": "<|reserved_special_token_116|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128125": {
      "content": "<|reserved_special_token_117|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128126": {
      "content": "<|reserved_special_token_118|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128127": {
      "content": "<|reserved_special_token_119|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128128": {
      "content": "<|reserved_special_token_120|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128129": {
      "content": "<|reserved_special_token_121|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128130": {
      "content": "<|reserved_special_token_122|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128131": {
      "content": "<|reserved_special_token_123|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128132": {
      "content": "<|reserved_special_token_124|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128133": {
      "content": "<|reserved_special_token_125|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128134": {
      "content": "<|reserved_special_token_126|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128135": {
      "content": "<|reserved_special_token_127|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128136": {
      "content": "<|reserved_special_token_128|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128137": {
      "content": "<|reserved_special_token_129|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128138": {
      "content": "<|reserved_special_token_130|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128139": {
      "content": "<|reserved_special_token_131|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128140": {
      "content": "<|reserved_special_token_132|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128141": {
      "content": "<|reserved_special_token_133|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128142": {
      "content": "<|reserved_special_token_134|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128143": {
      "content": "<|reserved_special_token_135|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128144": {
      "content": "<|reserved_special_token_136|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128145": {
      "content": "<|reserved_special_token_137|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128146": {
      "content": "<|reserved_special_token_138|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128147": {
      "content": "<|reserved_special_token_139|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128148": {
      "content": "<|reserved_special_token_140|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128149": {
      "content": "<|reserved_special_token_141|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128150": {
      "content": "<|reserved_special_token_142|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128151": {
      "content": "<|reserved_special_token_143|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128152": {
      "content": "<|reserved_special_token_144|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128153": {
      "content": "<|reserved_special_token_145|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128154": {
      "content": "<|reserved_special_token_146|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128155": {
      "content": "<|reserved_special_token_147|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128156": {
      "content": "<|reserved_special_token_148|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128157": {
      "content": "<|reserved_special_token_149|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128158": {
      "content": "<|reserved_special_token_150|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128159": {
      "content": "<|reserved_special_token_151|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128160": {
      "content": "<|reserved_special_token_152|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128161": {
      "content": "<|reserved_special_token_153|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128162": {
      "content": "<|reserved_special_token_154|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128163": {
      "content": "<|reserved_special_token_155|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128164": {
      "content": "<|reserved_special_token_156|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128165": {
      "content": "<|reserved_special_token_157|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128166": {
      "content": "<|reserved_special_token_158|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128167": {
      "content": "<|reserved_special_token_159|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128168": {
      "content": "<|reserved_special_token_160|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128169": {
      "content": "<|reserved_special_token_161|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128170": {
      "content": "<|reserved_special_token_162|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128171": {
      "content": "<|reserved_special_token_163|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128172": {
      "content": "<|reserved_special_token_164|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128173": {
      "content": "<|reserved_special_token_165|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128174": {
      "content": "<|reserved_special_token_166|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128175": {
      "content": "<|reserved_special_token_167|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128176": {
      "content": "<|reserved_special_token_168|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128177": {
      "content": "<|reserved_special_token_169|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128178": {
      "content": "<|reserved_special_token_170|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128179": {
      "content": "<|reserved_special_token_171|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128180": {
      "content": "<|reserved_special_token_172|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128181": {
      "content": "<|reserved_special_token_173|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128182": {
      "content": "<|reserved_special_token_174|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128183": {
      "content": "<|reserved_special_token_175|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128184": {
      "content": "<|reserved_special_token_176|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128185": {
      "content": "<|reserved_special_token_177|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128186": {
      "content": "<|reserved_special_token_178|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128187": {
      "content": "<|reserved_special_token_179|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128188": {
      "content": "<|reserved_special_token_180|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128189": {
      "content": "<|reserved_special_token_181|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128190": {
      "content": "<|reserved_special_token_182|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128191": {
      "content": "<|reserved_special_token_183|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128192": {
      "content": "<|reserved_special_token_184|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128193": {
      "content": "<|reserved_special_token_185|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128194": {
      "content": "<|reserved_special_token_186|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128195": {
      "content": "<|reserved_special_token_187|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128196": {
      "content": "<|reserved_special_token_188|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128197": {
      "content": "<|reserved_special_token_189|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128198": {
      "content": "<|reserved_special_token_190|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128199": {
      "content": "<|reserved_special_token_191|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128200": {
      "content": "<|reserved_special_token_192|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128201": {
      "content": "<|reserved_special_token_193|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128202": {
      "content": "<|reserved_special_token_194|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128203": {
      "content": "<|reserved_special_token_195|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128204": {
      "content": "<|reserved_special_token_196|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128205": {
      "content": "<|reserved_special_token_197|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128206": {
      "content": "<|reserved_special_token_198|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128207": {
      "content": "<|reserved_special_token_199|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128208": {
      "content": "<|reserved_special_token_200|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128209": {
      "content": "<|reserved_special_token_201|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128210": {
      "content": "<|reserved_special_token_202|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128211": {
      "content": "<|reserved_special_token_203|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128212": {
      "content": "<|reserved_special_token_204|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128213": {
      "content": "<|reserved_special_token_205|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128214": {
      "content": "<|reserved_special_token_206|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128215": {
      "content": "<|reserved_special_token_207|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128216": {
      "content": "<|reserved_special_token_208|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128217": {
      "content": "<|reserved_special_token_209|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128218": {
      "content": "<|reserved_special_token_210|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128219": {
      "content": "<|reserved_special_token_211|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128220": {
      "content": "<|reserved_special_token_212|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128221": {
      "content": "<|reserved_special_token_213|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128222": {
      "content": "<|reserved_special_token_214|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128223": {
      "content": "<|reserved_special_token_215|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128224": {
      "content": "<|reserved_special_token_216|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128225": {
      "content": "<|reserved_special_token_217|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128226": {
      "content": "<|reserved_special_token_218|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128227": {
      "content": "<|reserved_special_token_219|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128228": {
      "content": "<|reserved_special_token_220|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128229": {
      "content": "<|reserved_special_token_221|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128230": {
      "content": "<|reserved_special_token_222|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128231": {
      "content": "<|reserved_special_token_223|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128232": {
      "content": "<|reserved_special_token_224|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128233": {
      "content": "<|reserved_special_token_225|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128234": {
      "content": "<|reserved_special_token_226|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128235": {
      "content": "<|reserved_special_token_227|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128236": {
      "content": "<|reserved_special_token_228|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128237": {
      "content": "<|reserved_special_token_229|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128238": {
      "content": "<|reserved_special_token_230|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128239": {
      "content": "<|reserved_special_token_231|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128240": {
      "content": "<|reserved_special_token_232|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128241": {
      "content": "<|reserved_special_token_233|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128242": {
      "content": "<|reserved_special_token_234|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128243": {
      "content": "<|reserved_special_token_235|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128244": {
      "content": "<|reserved_special_token_236|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128245": {
      "content": "<|reserved_special_token_237|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128246": {
      "content": "<|reserved_special_token_238|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128247": {
      "content": "<|reserved_special_token_239|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128248": {
      "content": "<|reserved_special_token_240|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128249": {
      "content": "<|reserved_special_token_241|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128250": {
      "content": "<|reserved_special_token_242|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128251": {
      "content": "<|reserved_special_token_243|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128252": {
      "content": "<|reserved_special_token_244|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128253": {
      "content": "<|reserved_special_token_245|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128254": {
      "content": "<|reserved_special_token_246|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128255": {
      "content": "<|reserved_special_token_247|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "bos_token": "<|begin_of_text|>",
  "chat_template": "{{- bos_token }}\n{%- if custom_tools is defined %}\n    {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n    {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n    {%- if strftime_now is defined %}\n        {%- set date_string = strftime_now(\"%d %b %Y\") %}\n    {%- else %}\n        {%- set date_string = \"26 Jul 2024\" %}\n    {%- endif %}\n{%- endif %}\n{%- if not tools is defined %}\n    {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n    {%- set system_message = messages[0]['content']|trim %}\n    {%- set messages = messages[1:] %}\n{%- else %}\n    {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message #}\n{{- \"|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if tools is not none %}\n    {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n    {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n    {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n    {{- \"Do not use variables.\\n\\n\" }}\n    {%- for t in tools %}\n        {{- t | tojson(indent=4) }}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n    {#- Extract the first user message so we can plug it in here #}\n    {%- if messages | length != 0 %}\n        {%- set first_user_message = messages[0]['content']|trim %}\n        {%- set messages = messages[1:] %}\n    {%- else %}\n        {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n    {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n    {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n    {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n    {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n    {{- \"Do not use variables.\\n\\n\" }}\n    {%- for t in tools %}\n        {{- t | tojson(indent=4) }}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n    {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n    {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n        {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n    {%- elif 'tool_calls' in message %}\n        {%- if not message.tool_calls|length == 1 %}\n            {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n        {%- endif %}\n        {%- set tool_call = message.tool_calls[0].function %}\n        {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n        {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n        {{- '\"parameters\": ' }}\n        {{- tool_call.arguments | tojson }}\n        {{- \"}\" }}\n        {{- \"<|eot_id|>\" }}\n    {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n        {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n        {%- if message.content is mapping or message.content is iterable %}\n            {{- message.content | tojson }}\n        {%- else %}\n            {{- message.content }}\n        {%- endif %}\n        {{- \"<|eot_id|>\" }}\n    {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n    {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n",
  "clean_up_tokenization_spaces": true,
  "eos_token": "<|eot_id|>",
  "model_input_names": [
    "input_ids",
    "attention_mask"
  ],
  "model_max_length": 131072,
  "tokenizer_class": "PreTrainedTokenizerFast"
}
```

------
#### [ Lama 3.1 – Text ]

```
{
  "added_tokens_decoder": {
    "128000": {
      "content": "<|begin_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128001": {
      "content": "<|end_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128002": {
      "content": "<|reserved_special_token_0|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128003": {
      "content": "<|reserved_special_token_1|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128004": {
      "content": "<|finetune_right_pad_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128005": {
      "content": "<|reserved_special_token_2|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128006": {
      "content": "<|start_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128007": {
      "content": "<|end_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128008": {
      "content": "<|eom_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128009": {
      "content": "<|eot_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128010": {
      "content": "<|python_tag|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128011": {
      "content": "<|reserved_special_token_3|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128012": {
      "content": "<|reserved_special_token_4|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128013": {
      "content": "<|reserved_special_token_5|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128014": {
      "content": "<|reserved_special_token_6|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128015": {
      "content": "<|reserved_special_token_7|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128016": {
      "content": "<|reserved_special_token_8|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128017": {
      "content": "<|reserved_special_token_9|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128018": {
      "content": "<|reserved_special_token_10|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128019": {
      "content": "<|reserved_special_token_11|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128020": {
      "content": "<|reserved_special_token_12|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128021": {
      "content": "<|reserved_special_token_13|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128022": {
      "content": "<|reserved_special_token_14|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128023": {
      "content": "<|reserved_special_token_15|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128024": {
      "content": "<|reserved_special_token_16|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128025": {
      "content": "<|reserved_special_token_17|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128026": {
      "content": "<|reserved_special_token_18|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128027": {
      "content": "<|reserved_special_token_19|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128028": {
      "content": "<|reserved_special_token_20|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128029": {
      "content": "<|reserved_special_token_21|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128030": {
      "content": "<|reserved_special_token_22|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128031": {
      "content": "<|reserved_special_token_23|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128032": {
      "content": "<|reserved_special_token_24|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128033": {
      "content": "<|reserved_special_token_25|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128034": {
      "content": "<|reserved_special_token_26|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128035": {
      "content": "<|reserved_special_token_27|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128036": {
      "content": "<|reserved_special_token_28|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128037": {
      "content": "<|reserved_special_token_29|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128038": {
      "content": "<|reserved_special_token_30|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128039": {
      "content": "<|reserved_special_token_31|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128040": {
      "content": "<|reserved_special_token_32|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128041": {
      "content": "<|reserved_special_token_33|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128042": {
      "content": "<|reserved_special_token_34|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128043": {
      "content": "<|reserved_special_token_35|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128044": {
      "content": "<|reserved_special_token_36|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128045": {
      "content": "<|reserved_special_token_37|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128046": {
      "content": "<|reserved_special_token_38|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128047": {
      "content": "<|reserved_special_token_39|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128048": {
      "content": "<|reserved_special_token_40|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128049": {
      "content": "<|reserved_special_token_41|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128050": {
      "content": "<|reserved_special_token_42|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128051": {
      "content": "<|reserved_special_token_43|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128052": {
      "content": "<|reserved_special_token_44|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128053": {
      "content": "<|reserved_special_token_45|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128054": {
      "content": "<|reserved_special_token_46|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128055": {
      "content": "<|reserved_special_token_47|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128056": {
      "content": "<|reserved_special_token_48|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128057": {
      "content": "<|reserved_special_token_49|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128058": {
      "content": "<|reserved_special_token_50|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128059": {
      "content": "<|reserved_special_token_51|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128060": {
      "content": "<|reserved_special_token_52|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128061": {
      "content": "<|reserved_special_token_53|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128062": {
      "content": "<|reserved_special_token_54|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128063": {
      "content": "<|reserved_special_token_55|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128064": {
      "content": "<|reserved_special_token_56|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128065": {
      "content": "<|reserved_special_token_57|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128066": {
      "content": "<|reserved_special_token_58|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128067": {
      "content": "<|reserved_special_token_59|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128068": {
      "content": "<|reserved_special_token_60|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128069": {
      "content": "<|reserved_special_token_61|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128070": {
      "content": "<|reserved_special_token_62|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128071": {
      "content": "<|reserved_special_token_63|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128072": {
      "content": "<|reserved_special_token_64|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128073": {
      "content": "<|reserved_special_token_65|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128074": {
      "content": "<|reserved_special_token_66|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128075": {
      "content": "<|reserved_special_token_67|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128076": {
      "content": "<|reserved_special_token_68|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128077": {
      "content": "<|reserved_special_token_69|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128078": {
      "content": "<|reserved_special_token_70|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128079": {
      "content": "<|reserved_special_token_71|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128080": {
      "content": "<|reserved_special_token_72|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128081": {
      "content": "<|reserved_special_token_73|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128082": {
      "content": "<|reserved_special_token_74|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128083": {
      "content": "<|reserved_special_token_75|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128084": {
      "content": "<|reserved_special_token_76|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128085": {
      "content": "<|reserved_special_token_77|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128086": {
      "content": "<|reserved_special_token_78|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128087": {
      "content": "<|reserved_special_token_79|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128088": {
      "content": "<|reserved_special_token_80|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128089": {
      "content": "<|reserved_special_token_81|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128090": {
      "content": "<|reserved_special_token_82|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128091": {
      "content": "<|reserved_special_token_83|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128092": {
      "content": "<|reserved_special_token_84|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128093": {
      "content": "<|reserved_special_token_85|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128094": {
      "content": "<|reserved_special_token_86|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128095": {
      "content": "<|reserved_special_token_87|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128096": {
      "content": "<|reserved_special_token_88|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128097": {
      "content": "<|reserved_special_token_89|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128098": {
      "content": "<|reserved_special_token_90|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128099": {
      "content": "<|reserved_special_token_91|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128100": {
      "content": "<|reserved_special_token_92|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128101": {
      "content": "<|reserved_special_token_93|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128102": {
      "content": "<|reserved_special_token_94|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128103": {
      "content": "<|reserved_special_token_95|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128104": {
      "content": "<|reserved_special_token_96|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128105": {
      "content": "<|reserved_special_token_97|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128106": {
      "content": "<|reserved_special_token_98|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128107": {
      "content": "<|reserved_special_token_99|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128108": {
      "content": "<|reserved_special_token_100|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128109": {
      "content": "<|reserved_special_token_101|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128110": {
      "content": "<|reserved_special_token_102|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128111": {
      "content": "<|reserved_special_token_103|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128112": {
      "content": "<|reserved_special_token_104|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128113": {
      "content": "<|reserved_special_token_105|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128114": {
      "content": "<|reserved_special_token_106|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128115": {
      "content": "<|reserved_special_token_107|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128116": {
      "content": "<|reserved_special_token_108|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128117": {
      "content": "<|reserved_special_token_109|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128118": {
      "content": "<|reserved_special_token_110|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128119": {
      "content": "<|reserved_special_token_111|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128120": {
      "content": "<|reserved_special_token_112|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128121": {
      "content": "<|reserved_special_token_113|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128122": {
      "content": "<|reserved_special_token_114|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128123": {
      "content": "<|reserved_special_token_115|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128124": {
      "content": "<|reserved_special_token_116|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128125": {
      "content": "<|reserved_special_token_117|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128126": {
      "content": "<|reserved_special_token_118|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128127": {
      "content": "<|reserved_special_token_119|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128128": {
      "content": "<|reserved_special_token_120|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128129": {
      "content": "<|reserved_special_token_121|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128130": {
      "content": "<|reserved_special_token_122|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128131": {
      "content": "<|reserved_special_token_123|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128132": {
      "content": "<|reserved_special_token_124|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128133": {
      "content": "<|reserved_special_token_125|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128134": {
      "content": "<|reserved_special_token_126|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128135": {
      "content": "<|reserved_special_token_127|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128136": {
      "content": "<|reserved_special_token_128|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128137": {
      "content": "<|reserved_special_token_129|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128138": {
      "content": "<|reserved_special_token_130|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128139": {
      "content": "<|reserved_special_token_131|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128140": {
      "content": "<|reserved_special_token_132|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128141": {
      "content": "<|reserved_special_token_133|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128142": {
      "content": "<|reserved_special_token_134|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128143": {
      "content": "<|reserved_special_token_135|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128144": {
      "content": "<|reserved_special_token_136|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128145": {
      "content": "<|reserved_special_token_137|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128146": {
      "content": "<|reserved_special_token_138|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128147": {
      "content": "<|reserved_special_token_139|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128148": {
      "content": "<|reserved_special_token_140|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128149": {
      "content": "<|reserved_special_token_141|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128150": {
      "content": "<|reserved_special_token_142|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128151": {
      "content": "<|reserved_special_token_143|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128152": {
      "content": "<|reserved_special_token_144|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128153": {
      "content": "<|reserved_special_token_145|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128154": {
      "content": "<|reserved_special_token_146|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128155": {
      "content": "<|reserved_special_token_147|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128156": {
      "content": "<|reserved_special_token_148|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128157": {
      "content": "<|reserved_special_token_149|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128158": {
      "content": "<|reserved_special_token_150|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128159": {
      "content": "<|reserved_special_token_151|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128160": {
      "content": "<|reserved_special_token_152|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128161": {
      "content": "<|reserved_special_token_153|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128162": {
      "content": "<|reserved_special_token_154|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128163": {
      "content": "<|reserved_special_token_155|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128164": {
      "content": "<|reserved_special_token_156|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128165": {
      "content": "<|reserved_special_token_157|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128166": {
      "content": "<|reserved_special_token_158|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128167": {
      "content": "<|reserved_special_token_159|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128168": {
      "content": "<|reserved_special_token_160|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128169": {
      "content": "<|reserved_special_token_161|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128170": {
      "content": "<|reserved_special_token_162|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128171": {
      "content": "<|reserved_special_token_163|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128172": {
      "content": "<|reserved_special_token_164|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128173": {
      "content": "<|reserved_special_token_165|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128174": {
      "content": "<|reserved_special_token_166|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128175": {
      "content": "<|reserved_special_token_167|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128176": {
      "content": "<|reserved_special_token_168|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128177": {
      "content": "<|reserved_special_token_169|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128178": {
      "content": "<|reserved_special_token_170|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128179": {
      "content": "<|reserved_special_token_171|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128180": {
      "content": "<|reserved_special_token_172|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128181": {
      "content": "<|reserved_special_token_173|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128182": {
      "content": "<|reserved_special_token_174|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128183": {
      "content": "<|reserved_special_token_175|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128184": {
      "content": "<|reserved_special_token_176|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128185": {
      "content": "<|reserved_special_token_177|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128186": {
      "content": "<|reserved_special_token_178|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128187": {
      "content": "<|reserved_special_token_179|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128188": {
      "content": "<|reserved_special_token_180|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128189": {
      "content": "<|reserved_special_token_181|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128190": {
      "content": "<|reserved_special_token_182|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128191": {
      "content": "<|reserved_special_token_183|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128192": {
      "content": "<|reserved_special_token_184|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128193": {
      "content": "<|reserved_special_token_185|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128194": {
      "content": "<|reserved_special_token_186|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128195": {
      "content": "<|reserved_special_token_187|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128196": {
      "content": "<|reserved_special_token_188|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128197": {
      "content": "<|reserved_special_token_189|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128198": {
      "content": "<|reserved_special_token_190|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128199": {
      "content": "<|reserved_special_token_191|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128200": {
      "content": "<|reserved_special_token_192|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128201": {
      "content": "<|reserved_special_token_193|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128202": {
      "content": "<|reserved_special_token_194|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128203": {
      "content": "<|reserved_special_token_195|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128204": {
      "content": "<|reserved_special_token_196|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128205": {
      "content": "<|reserved_special_token_197|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128206": {
      "content": "<|reserved_special_token_198|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128207": {
      "content": "<|reserved_special_token_199|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128208": {
      "content": "<|reserved_special_token_200|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128209": {
      "content": "<|reserved_special_token_201|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128210": {
      "content": "<|reserved_special_token_202|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128211": {
      "content": "<|reserved_special_token_203|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128212": {
      "content": "<|reserved_special_token_204|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128213": {
      "content": "<|reserved_special_token_205|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128214": {
      "content": "<|reserved_special_token_206|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128215": {
      "content": "<|reserved_special_token_207|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128216": {
      "content": "<|reserved_special_token_208|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128217": {
      "content": "<|reserved_special_token_209|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128218": {
      "content": "<|reserved_special_token_210|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128219": {
      "content": "<|reserved_special_token_211|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128220": {
      "content": "<|reserved_special_token_212|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128221": {
      "content": "<|reserved_special_token_213|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128222": {
      "content": "<|reserved_special_token_214|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128223": {
      "content": "<|reserved_special_token_215|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128224": {
      "content": "<|reserved_special_token_216|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128225": {
      "content": "<|reserved_special_token_217|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128226": {
      "content": "<|reserved_special_token_218|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128227": {
      "content": "<|reserved_special_token_219|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128228": {
      "content": "<|reserved_special_token_220|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128229": {
      "content": "<|reserved_special_token_221|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128230": {
      "content": "<|reserved_special_token_222|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128231": {
      "content": "<|reserved_special_token_223|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128232": {
      "content": "<|reserved_special_token_224|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128233": {
      "content": "<|reserved_special_token_225|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128234": {
      "content": "<|reserved_special_token_226|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128235": {
      "content": "<|reserved_special_token_227|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128236": {
      "content": "<|reserved_special_token_228|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128237": {
      "content": "<|reserved_special_token_229|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128238": {
      "content": "<|reserved_special_token_230|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128239": {
      "content": "<|reserved_special_token_231|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128240": {
      "content": "<|reserved_special_token_232|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128241": {
      "content": "<|reserved_special_token_233|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128242": {
      "content": "<|reserved_special_token_234|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128243": {
      "content": "<|reserved_special_token_235|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128244": {
      "content": "<|reserved_special_token_236|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128245": {
      "content": "<|reserved_special_token_237|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128246": {
      "content": "<|reserved_special_token_238|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128247": {
      "content": "<|reserved_special_token_239|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128248": {
      "content": "<|reserved_special_token_240|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128249": {
      "content": "<|reserved_special_token_241|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128250": {
      "content": "<|reserved_special_token_242|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128251": {
      "content": "<|reserved_special_token_243|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128252": {
      "content": "<|reserved_special_token_244|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128253": {
      "content": "<|reserved_special_token_245|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128254": {
      "content": "<|reserved_special_token_246|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128255": {
      "content": "<|reserved_special_token_247|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "bos_token": "<|begin_of_text|>",
  "chat_template": "{{- bos_token }}\n{%- if custom_tools is defined %}\n    {%- set tools = custom_tools %}\n{%- endif %}\n{%- if not tools_in_user_message is defined %}\n    {%- set tools_in_user_message = true %}\n{%- endif %}\n{%- if not date_string is defined %}\n    {%- set date_string = \"26 Jul 2024\" %}\n{%- endif %}\n{%- if not tools is defined %}\n    {%- set tools = none %}\n{%- endif %}\n\n{#- This block extracts the system message, so we can slot it into the right place. #}\n{%- if messages[0]['role'] == 'system' %}\n    {%- set system_message = messages[0]['content']|trim %}\n    {%- set messages = messages[1:] %}\n{%- else %}\n    {%- set system_message = \"\" %}\n{%- endif %}\n\n{#- System message + builtin tools #}\n{{- \"<|start_header_id|>system<|end_header_id|>\\n\\n\" }}\n{%- if builtin_tools is defined or tools is not none %}\n    {{- \"Environment: ipython\\n\" }}\n{%- endif %}\n{%- if builtin_tools is defined %}\n    {{- \"Tools: \" + builtin_tools | reject('equalto', 'code_interpreter') | join(\", \") + \"\\n\\n\"}}\n{%- endif %}\n{{- \"Cutting Knowledge Date: December 2023\\n\" }}\n{{- \"Today Date: \" + date_string + \"\\n\\n\" }}\n{%- if tools is not none and not tools_in_user_message %}\n    {{- \"You have access to the following functions. To call a function, please respond with JSON for a function call.\" }}\n    {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n    {{- \"Do not use variables.\\n\\n\" }}\n    {%- for t in tools %}\n        {{- t | tojson(indent=4) }}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n{%- endif %}\n{{- system_message }}\n{{- \"<|eot_id|>\" }}\n\n{#- Custom tools are passed in a user message with some extra guidance #}\n{%- if tools_in_user_message and not tools is none %}\n    {#- Extract the first user message so we can plug it in here #}\n    {%- if messages | length != 0 %}\n        {%- set first_user_message = messages[0]['content']|trim %}\n        {%- set messages = messages[1:] %}\n    {%- else %}\n        {{- raise_exception(\"Cannot put tools in the first user message when there's no first user message!\") }}\n{%- endif %}\n    {{- '<|start_header_id|>user<|end_header_id|>\\n\\n' -}}\n    {{- \"Given the following functions, please respond with a JSON for a function call \" }}\n    {{- \"with its proper arguments that best answers the given prompt.\\n\\n\" }}\n    {{- 'Respond in the format {\"name\": function name, \"parameters\": dictionary of argument name and its value}.' }}\n    {{- \"Do not use variables.\\n\\n\" }}\n    {%- for t in tools %}\n        {{- t | tojson(indent=4) }}\n        {{- \"\\n\\n\" }}\n    {%- endfor %}\n    {{- first_user_message + \"<|eot_id|>\"}}\n{%- endif %}\n\n{%- for message in messages %}\n    {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %}\n        {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\\n\\n'+ message['content'] | trim + '<|eot_id|>' }}\n    {%- elif 'tool_calls' in message %}\n        {%- if not message.tool_calls|length == 1 %}\n            {{- raise_exception(\"This model only supports single tool-calls at once!\") }}\n        {%- endif %}\n        {%- set tool_call = message.tool_calls[0].function %}\n        {%- if builtin_tools is defined and tool_call.name in builtin_tools %}\n            {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n            {{- \"<|python_tag|>\" + tool_call.name + \".call(\" }}\n            {%- for arg_name, arg_val in tool_call.arguments | items %}\n                {{- arg_name + '=\"' + arg_val + '\"' }}\n                {%- if not loop.last %}\n                    {{- \", \" }}\n                {%- endif %}\n                {%- endfor %}\n            {{- \")\" }}\n        {%- else  %}\n            {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' -}}\n            {{- '{\"name\": \"' + tool_call.name + '\", ' }}\n            {{- '\"parameters\": ' }}\n            {{- tool_call.arguments | tojson }}\n            {{- \"}\" }}\n        {%- endif %}\n        {%- if builtin_tools is defined %}\n            {#- This means we're in ipython mode #}\n            {{- \"<|eom_id|>\" }}\n        {%- else %}\n            {{- \"<|eot_id|>\" }}\n        {%- endif %}\n    {%- elif message.role == \"tool\" or message.role == \"ipython\" %}\n        {{- \"<|start_header_id|>ipython<|end_header_id|>\\n\\n\" }}\n        {%- if message.content is mapping or message.content is iterable %}\n            {{- message.content | tojson }}\n        {%- else %}\n            {{- message.content }}\n        {%- endif %}\n        {{- \"<|eot_id|>\" }}\n    {%- endif %}\n{%- endfor %}\n{%- if add_generation_prompt %}\n    {{- '<|start_header_id|>assistant<|end_header_id|>\\n\\n' }}\n{%- endif %}\n",
  "clean_up_tokenization_spaces": true,
  "eos_token": "<|eot_id|>",
  "model_input_names": [
    "input_ids",
    "attention_mask"
  ],
  "model_max_length": 131072,
  "tokenizer_class": "PreTrainedTokenizerFast"
}
```

------
#### [ Lama 3.0 – Text ]

```
{
  "added_tokens_decoder": {
    "128000": {
      "content": "<|begin_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128001": {
      "content": "<|end_of_text|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128002": {
      "content": "<|reserved_special_token_0|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128003": {
      "content": "<|reserved_special_token_1|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128004": {
      "content": "<|reserved_special_token_2|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128005": {
      "content": "<|reserved_special_token_3|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128006": {
      "content": "<|start_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128007": {
      "content": "<|end_header_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128008": {
      "content": "<|reserved_special_token_4|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128009": {
      "content": "<|eot_id|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128010": {
      "content": "<|reserved_special_token_5|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128011": {
      "content": "<|reserved_special_token_6|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128012": {
      "content": "<|reserved_special_token_7|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128013": {
      "content": "<|reserved_special_token_8|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128014": {
      "content": "<|reserved_special_token_9|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128015": {
      "content": "<|reserved_special_token_10|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128016": {
      "content": "<|reserved_special_token_11|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128017": {
      "content": "<|reserved_special_token_12|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128018": {
      "content": "<|reserved_special_token_13|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128019": {
      "content": "<|reserved_special_token_14|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128020": {
      "content": "<|reserved_special_token_15|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128021": {
      "content": "<|reserved_special_token_16|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128022": {
      "content": "<|reserved_special_token_17|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128023": {
      "content": "<|reserved_special_token_18|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128024": {
      "content": "<|reserved_special_token_19|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128025": {
      "content": "<|reserved_special_token_20|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128026": {
      "content": "<|reserved_special_token_21|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128027": {
      "content": "<|reserved_special_token_22|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128028": {
      "content": "<|reserved_special_token_23|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128029": {
      "content": "<|reserved_special_token_24|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128030": {
      "content": "<|reserved_special_token_25|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128031": {
      "content": "<|reserved_special_token_26|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128032": {
      "content": "<|reserved_special_token_27|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128033": {
      "content": "<|reserved_special_token_28|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128034": {
      "content": "<|reserved_special_token_29|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128035": {
      "content": "<|reserved_special_token_30|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128036": {
      "content": "<|reserved_special_token_31|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128037": {
      "content": "<|reserved_special_token_32|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128038": {
      "content": "<|reserved_special_token_33|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128039": {
      "content": "<|reserved_special_token_34|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128040": {
      "content": "<|reserved_special_token_35|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128041": {
      "content": "<|reserved_special_token_36|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128042": {
      "content": "<|reserved_special_token_37|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128043": {
      "content": "<|reserved_special_token_38|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128044": {
      "content": "<|reserved_special_token_39|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128045": {
      "content": "<|reserved_special_token_40|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128046": {
      "content": "<|reserved_special_token_41|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128047": {
      "content": "<|reserved_special_token_42|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128048": {
      "content": "<|reserved_special_token_43|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128049": {
      "content": "<|reserved_special_token_44|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128050": {
      "content": "<|reserved_special_token_45|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128051": {
      "content": "<|reserved_special_token_46|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128052": {
      "content": "<|reserved_special_token_47|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128053": {
      "content": "<|reserved_special_token_48|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128054": {
      "content": "<|reserved_special_token_49|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128055": {
      "content": "<|reserved_special_token_50|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128056": {
      "content": "<|reserved_special_token_51|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128057": {
      "content": "<|reserved_special_token_52|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128058": {
      "content": "<|reserved_special_token_53|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128059": {
      "content": "<|reserved_special_token_54|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128060": {
      "content": "<|reserved_special_token_55|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128061": {
      "content": "<|reserved_special_token_56|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128062": {
      "content": "<|reserved_special_token_57|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128063": {
      "content": "<|reserved_special_token_58|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128064": {
      "content": "<|reserved_special_token_59|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128065": {
      "content": "<|reserved_special_token_60|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128066": {
      "content": "<|reserved_special_token_61|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128067": {
      "content": "<|reserved_special_token_62|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128068": {
      "content": "<|reserved_special_token_63|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128069": {
      "content": "<|reserved_special_token_64|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128070": {
      "content": "<|reserved_special_token_65|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128071": {
      "content": "<|reserved_special_token_66|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128072": {
      "content": "<|reserved_special_token_67|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128073": {
      "content": "<|reserved_special_token_68|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128074": {
      "content": "<|reserved_special_token_69|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128075": {
      "content": "<|reserved_special_token_70|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128076": {
      "content": "<|reserved_special_token_71|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128077": {
      "content": "<|reserved_special_token_72|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128078": {
      "content": "<|reserved_special_token_73|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128079": {
      "content": "<|reserved_special_token_74|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128080": {
      "content": "<|reserved_special_token_75|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128081": {
      "content": "<|reserved_special_token_76|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128082": {
      "content": "<|reserved_special_token_77|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128083": {
      "content": "<|reserved_special_token_78|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128084": {
      "content": "<|reserved_special_token_79|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128085": {
      "content": "<|reserved_special_token_80|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128086": {
      "content": "<|reserved_special_token_81|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128087": {
      "content": "<|reserved_special_token_82|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128088": {
      "content": "<|reserved_special_token_83|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128089": {
      "content": "<|reserved_special_token_84|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128090": {
      "content": "<|reserved_special_token_85|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128091": {
      "content": "<|reserved_special_token_86|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128092": {
      "content": "<|reserved_special_token_87|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128093": {
      "content": "<|reserved_special_token_88|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128094": {
      "content": "<|reserved_special_token_89|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128095": {
      "content": "<|reserved_special_token_90|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128096": {
      "content": "<|reserved_special_token_91|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128097": {
      "content": "<|reserved_special_token_92|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128098": {
      "content": "<|reserved_special_token_93|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128099": {
      "content": "<|reserved_special_token_94|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128100": {
      "content": "<|reserved_special_token_95|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128101": {
      "content": "<|reserved_special_token_96|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128102": {
      "content": "<|reserved_special_token_97|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128103": {
      "content": "<|reserved_special_token_98|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128104": {
      "content": "<|reserved_special_token_99|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128105": {
      "content": "<|reserved_special_token_100|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128106": {
      "content": "<|reserved_special_token_101|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128107": {
      "content": "<|reserved_special_token_102|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128108": {
      "content": "<|reserved_special_token_103|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128109": {
      "content": "<|reserved_special_token_104|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128110": {
      "content": "<|reserved_special_token_105|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128111": {
      "content": "<|reserved_special_token_106|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128112": {
      "content": "<|reserved_special_token_107|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128113": {
      "content": "<|reserved_special_token_108|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128114": {
      "content": "<|reserved_special_token_109|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128115": {
      "content": "<|reserved_special_token_110|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128116": {
      "content": "<|reserved_special_token_111|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128117": {
      "content": "<|reserved_special_token_112|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128118": {
      "content": "<|reserved_special_token_113|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128119": {
      "content": "<|reserved_special_token_114|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128120": {
      "content": "<|reserved_special_token_115|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128121": {
      "content": "<|reserved_special_token_116|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128122": {
      "content": "<|reserved_special_token_117|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128123": {
      "content": "<|reserved_special_token_118|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128124": {
      "content": "<|reserved_special_token_119|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128125": {
      "content": "<|reserved_special_token_120|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128126": {
      "content": "<|reserved_special_token_121|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128127": {
      "content": "<|reserved_special_token_122|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128128": {
      "content": "<|reserved_special_token_123|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128129": {
      "content": "<|reserved_special_token_124|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128130": {
      "content": "<|reserved_special_token_125|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128131": {
      "content": "<|reserved_special_token_126|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128132": {
      "content": "<|reserved_special_token_127|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128133": {
      "content": "<|reserved_special_token_128|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128134": {
      "content": "<|reserved_special_token_129|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128135": {
      "content": "<|reserved_special_token_130|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128136": {
      "content": "<|reserved_special_token_131|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128137": {
      "content": "<|reserved_special_token_132|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128138": {
      "content": "<|reserved_special_token_133|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128139": {
      "content": "<|reserved_special_token_134|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128140": {
      "content": "<|reserved_special_token_135|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128141": {
      "content": "<|reserved_special_token_136|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128142": {
      "content": "<|reserved_special_token_137|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128143": {
      "content": "<|reserved_special_token_138|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128144": {
      "content": "<|reserved_special_token_139|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128145": {
      "content": "<|reserved_special_token_140|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128146": {
      "content": "<|reserved_special_token_141|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128147": {
      "content": "<|reserved_special_token_142|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128148": {
      "content": "<|reserved_special_token_143|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128149": {
      "content": "<|reserved_special_token_144|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128150": {
      "content": "<|reserved_special_token_145|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128151": {
      "content": "<|reserved_special_token_146|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128152": {
      "content": "<|reserved_special_token_147|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128153": {
      "content": "<|reserved_special_token_148|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128154": {
      "content": "<|reserved_special_token_149|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128155": {
      "content": "<|reserved_special_token_150|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128156": {
      "content": "<|reserved_special_token_151|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128157": {
      "content": "<|reserved_special_token_152|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128158": {
      "content": "<|reserved_special_token_153|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128159": {
      "content": "<|reserved_special_token_154|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128160": {
      "content": "<|reserved_special_token_155|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128161": {
      "content": "<|reserved_special_token_156|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128162": {
      "content": "<|reserved_special_token_157|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128163": {
      "content": "<|reserved_special_token_158|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128164": {
      "content": "<|reserved_special_token_159|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128165": {
      "content": "<|reserved_special_token_160|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128166": {
      "content": "<|reserved_special_token_161|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128167": {
      "content": "<|reserved_special_token_162|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128168": {
      "content": "<|reserved_special_token_163|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128169": {
      "content": "<|reserved_special_token_164|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128170": {
      "content": "<|reserved_special_token_165|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128171": {
      "content": "<|reserved_special_token_166|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128172": {
      "content": "<|reserved_special_token_167|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128173": {
      "content": "<|reserved_special_token_168|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128174": {
      "content": "<|reserved_special_token_169|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128175": {
      "content": "<|reserved_special_token_170|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128176": {
      "content": "<|reserved_special_token_171|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128177": {
      "content": "<|reserved_special_token_172|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128178": {
      "content": "<|reserved_special_token_173|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128179": {
      "content": "<|reserved_special_token_174|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128180": {
      "content": "<|reserved_special_token_175|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128181": {
      "content": "<|reserved_special_token_176|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128182": {
      "content": "<|reserved_special_token_177|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128183": {
      "content": "<|reserved_special_token_178|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128184": {
      "content": "<|reserved_special_token_179|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128185": {
      "content": "<|reserved_special_token_180|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128186": {
      "content": "<|reserved_special_token_181|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128187": {
      "content": "<|reserved_special_token_182|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128188": {
      "content": "<|reserved_special_token_183|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128189": {
      "content": "<|reserved_special_token_184|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128190": {
      "content": "<|reserved_special_token_185|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128191": {
      "content": "<|reserved_special_token_186|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128192": {
      "content": "<|reserved_special_token_187|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128193": {
      "content": "<|reserved_special_token_188|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128194": {
      "content": "<|reserved_special_token_189|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128195": {
      "content": "<|reserved_special_token_190|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128196": {
      "content": "<|reserved_special_token_191|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128197": {
      "content": "<|reserved_special_token_192|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128198": {
      "content": "<|reserved_special_token_193|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128199": {
      "content": "<|reserved_special_token_194|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128200": {
      "content": "<|reserved_special_token_195|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128201": {
      "content": "<|reserved_special_token_196|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128202": {
      "content": "<|reserved_special_token_197|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128203": {
      "content": "<|reserved_special_token_198|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128204": {
      "content": "<|reserved_special_token_199|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128205": {
      "content": "<|reserved_special_token_200|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128206": {
      "content": "<|reserved_special_token_201|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128207": {
      "content": "<|reserved_special_token_202|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128208": {
      "content": "<|reserved_special_token_203|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128209": {
      "content": "<|reserved_special_token_204|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128210": {
      "content": "<|reserved_special_token_205|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128211": {
      "content": "<|reserved_special_token_206|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128212": {
      "content": "<|reserved_special_token_207|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128213": {
      "content": "<|reserved_special_token_208|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128214": {
      "content": "<|reserved_special_token_209|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128215": {
      "content": "<|reserved_special_token_210|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128216": {
      "content": "<|reserved_special_token_211|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128217": {
      "content": "<|reserved_special_token_212|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128218": {
      "content": "<|reserved_special_token_213|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128219": {
      "content": "<|reserved_special_token_214|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128220": {
      "content": "<|reserved_special_token_215|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128221": {
      "content": "<|reserved_special_token_216|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128222": {
      "content": "<|reserved_special_token_217|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128223": {
      "content": "<|reserved_special_token_218|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128224": {
      "content": "<|reserved_special_token_219|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128225": {
      "content": "<|reserved_special_token_220|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128226": {
      "content": "<|reserved_special_token_221|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128227": {
      "content": "<|reserved_special_token_222|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128228": {
      "content": "<|reserved_special_token_223|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128229": {
      "content": "<|reserved_special_token_224|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128230": {
      "content": "<|reserved_special_token_225|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128231": {
      "content": "<|reserved_special_token_226|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128232": {
      "content": "<|reserved_special_token_227|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128233": {
      "content": "<|reserved_special_token_228|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128234": {
      "content": "<|reserved_special_token_229|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128235": {
      "content": "<|reserved_special_token_230|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128236": {
      "content": "<|reserved_special_token_231|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128237": {
      "content": "<|reserved_special_token_232|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128238": {
      "content": "<|reserved_special_token_233|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128239": {
      "content": "<|reserved_special_token_234|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128240": {
      "content": "<|reserved_special_token_235|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128241": {
      "content": "<|reserved_special_token_236|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128242": {
      "content": "<|reserved_special_token_237|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128243": {
      "content": "<|reserved_special_token_238|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128244": {
      "content": "<|reserved_special_token_239|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128245": {
      "content": "<|reserved_special_token_240|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128246": {
      "content": "<|reserved_special_token_241|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128247": {
      "content": "<|reserved_special_token_242|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128248": {
      "content": "<|reserved_special_token_243|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128249": {
      "content": "<|reserved_special_token_244|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128250": {
      "content": "<|reserved_special_token_245|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128251": {
      "content": "<|reserved_special_token_246|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128252": {
      "content": "<|reserved_special_token_247|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128253": {
      "content": "<|reserved_special_token_248|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128254": {
      "content": "<|reserved_special_token_249|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128255": {
      "content": "<|reserved_special_token_250|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "bos_token": "<|begin_of_text|>",
  "chat_template": "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}",
  "clean_up_tokenization_spaces": true,
  "eos_token": "<|eot_id|>",
  "model_input_names": [
    "input_ids",
    "attention_mask"
  ],
  "model_max_length": 1000000000000000019884624838656,
  "tokenizer_class": "PreTrainedTokenizerFast"
}
```

------
#### [ Llama 2.0 – Chat-Modelle ]

```
{
  "add_bos_token": true,
  "add_eos_token": false,
  "bos_token": {
    "__type": "AddedToken",
    "content": "<s>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false
  },
  "chat_template": "{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token + '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'assistant' %}{{ ' '  + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}",
  "clean_up_tokenization_spaces": false,
  "eos_token": {
    "__type": "AddedToken",
    "content": "</s>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false
  },
  "legacy": false,
  "model_max_length": 1000000000000000019884624838656,
  "pad_token": null,
  "padding_side": "right",
  "sp_model_kwargs": {},
  "tokenizer_class": "LlamaTokenizer",
  "unk_token": {
    "__type": "AddedToken",
    "content": "<unk>",
    "lstrip": false,
    "normalized": false,
    "rstrip": false,
    "single_word": false
  }
}
```

------
#### [ Mistral 8x7b – Text ]

```
{
  "add_bos_token": true,
  "add_eos_token": false,
  "add_prefix_space": null,
  "added_tokens_decoder": {
    "0": {
      "content": "<unk>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "1": {
      "content": "<s>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "2": {
      "content": "</s>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "additional_special_tokens": [],
  "bos_token": "<s>",
  "chat_template": "{%- if messages[0]['role'] == 'system' %}\n    {%- set system_message = messages[0]['content'] %}\n    {%- set loop_messages = messages[1:] %}\n{%- else %}\n    {%- set loop_messages = messages %}\n{%- endif %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n    {%- if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}\n        {{- raise_exception('After the optional system message, conversation roles must alternate user/assistant/user/assistant/...') }}\n    {%- endif %}\n    {%- if message['role'] == 'user' %}\n        {%- if loop.first and system_message is defined %}\n            {{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }}\n        {%- else %}\n            {{- ' [INST] ' + message['content'] + ' [/INST]' }}\n        {%- endif %}\n    {%- elif message['role'] == 'assistant' %}\n        {{- ' ' + message['content'] + eos_token}}\n    {%- else %}\n        {{- raise_exception('Only user and assistant roles are supported, with the exception of an initial optional system message!') }}\n    {%- endif %}\n{%- endfor %}\n",
  "clean_up_tokenization_spaces": false,
  "eos_token": "</s>",
  "legacy": false,
  "model_max_length": 1000000000000000019884624838656,
  "pad_token": null,
  "sp_model_kwargs": {},
  "spaces_between_special_tokens": false,
  "tokenizer_class": "LlamaTokenizer",
  "unk_token": "<unk>",
  "use_default_system_prompt": false
}
```

------
#### [ Mistral 7b ]

```
{
  "add_bos_token": true,
  "add_eos_token": false,
  "add_prefix_space": true,
  "added_tokens_decoder": {
    "0": {
      "content": "<unk>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "1": {
      "content": "<s>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "2": {
      "content": "</s>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "3": {
      "content": "[INST]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "4": {
      "content": "[/INST]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "5": {
      "content": "[TOOL_CALLS]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "6": {
      "content": "[AVAILABLE_TOOLS]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "7": {
      "content": "[/AVAILABLE_TOOLS]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "8": {
      "content": "[TOOL_RESULTS]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "9": {
      "content": "[/TOOL_RESULTS]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "10": {
      "content": "[control_8]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "11": {
      "content": "[control_9]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "12": {
      "content": "[control_10]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "13": {
      "content": "[control_11]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "14": {
      "content": "[control_12]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "15": {
      "content": "[control_13]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "16": {
      "content": "[control_14]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "17": {
      "content": "[control_15]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "18": {
      "content": "[control_16]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "19": {
      "content": "[control_17]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "20": {
      "content": "[control_18]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "21": {
      "content": "[control_19]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "22": {
      "content": "[control_20]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "23": {
      "content": "[control_21]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "24": {
      "content": "[control_22]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "25": {
      "content": "[control_23]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "26": {
      "content": "[control_24]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "27": {
      "content": "[control_25]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "28": {
      "content": "[control_26]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "29": {
      "content": "[control_27]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "30": {
      "content": "[control_28]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "31": {
      "content": "[control_29]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "32": {
      "content": "[control_30]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "33": {
      "content": "[control_31]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "34": {
      "content": "[control_32]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "35": {
      "content": "[control_33]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "36": {
      "content": "[control_34]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "37": {
      "content": "[control_35]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "38": {
      "content": "[control_36]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "39": {
      "content": "[control_37]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "40": {
      "content": "[control_38]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "41": {
      "content": "[control_39]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "42": {
      "content": "[control_40]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "43": {
      "content": "[control_41]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "44": {
      "content": "[control_42]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "45": {
      "content": "[control_43]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "46": {
      "content": "[control_44]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "47": {
      "content": "[control_45]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "48": {
      "content": "[control_46]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "49": {
      "content": "[control_47]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "50": {
      "content": "[control_48]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "51": {
      "content": "[control_49]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "52": {
      "content": "[control_50]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "53": {
      "content": "[control_51]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "54": {
      "content": "[control_52]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "55": {
      "content": "[control_53]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "56": {
      "content": "[control_54]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "57": {
      "content": "[control_55]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "58": {
      "content": "[control_56]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "59": {
      "content": "[control_57]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "60": {
      "content": "[control_58]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "61": {
      "content": "[control_59]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "62": {
      "content": "[control_60]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "63": {
      "content": "[control_61]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "64": {
      "content": "[control_62]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "65": {
      "content": "[control_63]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "66": {
      "content": "[control_64]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "67": {
      "content": "[control_65]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "68": {
      "content": "[control_66]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "69": {
      "content": "[control_67]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "70": {
      "content": "[control_68]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "71": {
      "content": "[control_69]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "72": {
      "content": "[control_70]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "73": {
      "content": "[control_71]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "74": {
      "content": "[control_72]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "75": {
      "content": "[control_73]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "76": {
      "content": "[control_74]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "77": {
      "content": "[control_75]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "78": {
      "content": "[control_76]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "79": {
      "content": "[control_77]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "80": {
      "content": "[control_78]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "81": {
      "content": "[control_79]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "82": {
      "content": "[control_80]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "83": {
      "content": "[control_81]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "84": {
      "content": "[control_82]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "85": {
      "content": "[control_83]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "86": {
      "content": "[control_84]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "87": {
      "content": "[control_85]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "88": {
      "content": "[control_86]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "89": {
      "content": "[control_87]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "90": {
      "content": "[control_88]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "91": {
      "content": "[control_89]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "92": {
      "content": "[control_90]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "93": {
      "content": "[control_91]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "94": {
      "content": "[control_92]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "95": {
      "content": "[control_93]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "96": {
      "content": "[control_94]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "97": {
      "content": "[control_95]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "98": {
      "content": "[control_96]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "99": {
      "content": "[control_97]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "100": {
      "content": "[control_98]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "101": {
      "content": "[control_99]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "102": {
      "content": "[control_100]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "103": {
      "content": "[control_101]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "104": {
      "content": "[control_102]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "105": {
      "content": "[control_103]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "106": {
      "content": "[control_104]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "107": {
      "content": "[control_105]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "108": {
      "content": "[control_106]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "109": {
      "content": "[control_107]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "110": {
      "content": "[control_108]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "111": {
      "content": "[control_109]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "112": {
      "content": "[control_110]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "113": {
      "content": "[control_111]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "114": {
      "content": "[control_112]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "115": {
      "content": "[control_113]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "116": {
      "content": "[control_114]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "117": {
      "content": "[control_115]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "118": {
      "content": "[control_116]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "119": {
      "content": "[control_117]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "120": {
      "content": "[control_118]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "121": {
      "content": "[control_119]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "122": {
      "content": "[control_120]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "123": {
      "content": "[control_121]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "124": {
      "content": "[control_122]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "125": {
      "content": "[control_123]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "126": {
      "content": "[control_124]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "127": {
      "content": "[control_125]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "128": {
      "content": "[control_126]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "129": {
      "content": "[control_127]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "130": {
      "content": "[control_128]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "131": {
      "content": "[control_129]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "132": {
      "content": "[control_130]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "133": {
      "content": "[control_131]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "134": {
      "content": "[control_132]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "135": {
      "content": "[control_133]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "136": {
      "content": "[control_134]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "137": {
      "content": "[control_135]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "138": {
      "content": "[control_136]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "139": {
      "content": "[control_137]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "140": {
      "content": "[control_138]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "141": {
      "content": "[control_139]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "142": {
      "content": "[control_140]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "143": {
      "content": "[control_141]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "144": {
      "content": "[control_142]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "145": {
      "content": "[control_143]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "146": {
      "content": "[control_144]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "147": {
      "content": "[control_145]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "148": {
      "content": "[control_146]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "149": {
      "content": "[control_147]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "150": {
      "content": "[control_148]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "151": {
      "content": "[control_149]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "152": {
      "content": "[control_150]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "153": {
      "content": "[control_151]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "154": {
      "content": "[control_152]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "155": {
      "content": "[control_153]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "156": {
      "content": "[control_154]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "157": {
      "content": "[control_155]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "158": {
      "content": "[control_156]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "159": {
      "content": "[control_157]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "160": {
      "content": "[control_158]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "161": {
      "content": "[control_159]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "162": {
      "content": "[control_160]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "163": {
      "content": "[control_161]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "164": {
      "content": "[control_162]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "165": {
      "content": "[control_163]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "166": {
      "content": "[control_164]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "167": {
      "content": "[control_165]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "168": {
      "content": "[control_166]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "169": {
      "content": "[control_167]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "170": {
      "content": "[control_168]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "171": {
      "content": "[control_169]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "172": {
      "content": "[control_170]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "173": {
      "content": "[control_171]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "174": {
      "content": "[control_172]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "175": {
      "content": "[control_173]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "176": {
      "content": "[control_174]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "177": {
      "content": "[control_175]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "178": {
      "content": "[control_176]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "179": {
      "content": "[control_177]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "180": {
      "content": "[control_178]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "181": {
      "content": "[control_179]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "182": {
      "content": "[control_180]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "183": {
      "content": "[control_181]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "184": {
      "content": "[control_182]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "185": {
      "content": "[control_183]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "186": {
      "content": "[control_184]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "187": {
      "content": "[control_185]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "188": {
      "content": "[control_186]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "189": {
      "content": "[control_187]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "190": {
      "content": "[control_188]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "191": {
      "content": "[control_189]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "192": {
      "content": "[control_190]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "193": {
      "content": "[control_191]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "194": {
      "content": "[control_192]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "195": {
      "content": "[control_193]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "196": {
      "content": "[control_194]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "197": {
      "content": "[control_195]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "198": {
      "content": "[control_196]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "199": {
      "content": "[control_197]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "200": {
      "content": "[control_198]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "201": {
      "content": "[control_199]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "202": {
      "content": "[control_200]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "203": {
      "content": "[control_201]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "204": {
      "content": "[control_202]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "205": {
      "content": "[control_203]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "206": {
      "content": "[control_204]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "207": {
      "content": "[control_205]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "208": {
      "content": "[control_206]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "209": {
      "content": "[control_207]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "210": {
      "content": "[control_208]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "211": {
      "content": "[control_209]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "212": {
      "content": "[control_210]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "213": {
      "content": "[control_211]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "214": {
      "content": "[control_212]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "215": {
      "content": "[control_213]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "216": {
      "content": "[control_214]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "217": {
      "content": "[control_215]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "218": {
      "content": "[control_216]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "219": {
      "content": "[control_217]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "220": {
      "content": "[control_218]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "221": {
      "content": "[control_219]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "222": {
      "content": "[control_220]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "223": {
      "content": "[control_221]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "224": {
      "content": "[control_222]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "225": {
      "content": "[control_223]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "226": {
      "content": "[control_224]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "227": {
      "content": "[control_225]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "228": {
      "content": "[control_226]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "229": {
      "content": "[control_227]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "230": {
      "content": "[control_228]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "231": {
      "content": "[control_229]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "232": {
      "content": "[control_230]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "233": {
      "content": "[control_231]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "234": {
      "content": "[control_232]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "235": {
      "content": "[control_233]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "236": {
      "content": "[control_234]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "237": {
      "content": "[control_235]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "238": {
      "content": "[control_236]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "239": {
      "content": "[control_237]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "240": {
      "content": "[control_238]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "241": {
      "content": "[control_239]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "242": {
      "content": "[control_240]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "243": {
      "content": "[control_241]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "244": {
      "content": "[control_242]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "245": {
      "content": "[control_243]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "246": {
      "content": "[control_244]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "247": {
      "content": "[control_245]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "248": {
      "content": "[control_246]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "249": {
      "content": "[control_247]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "250": {
      "content": "[control_248]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "251": {
      "content": "[control_249]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "252": {
      "content": "[control_250]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "253": {
      "content": "[control_251]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "254": {
      "content": "[control_252]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "255": {
      "content": "[control_253]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "256": {
      "content": "[control_254]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "257": {
      "content": "[control_255]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "258": {
      "content": "[control_256]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "259": {
      "content": "[control_257]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "260": {
      "content": "[control_258]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "261": {
      "content": "[control_259]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "262": {
      "content": "[control_260]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "263": {
      "content": "[control_261]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "264": {
      "content": "[control_262]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "265": {
      "content": "[control_263]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "266": {
      "content": "[control_264]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "267": {
      "content": "[control_265]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "268": {
      "content": "[control_266]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "269": {
      "content": "[control_267]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "270": {
      "content": "[control_268]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "271": {
      "content": "[control_269]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "272": {
      "content": "[control_270]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "273": {
      "content": "[control_271]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "274": {
      "content": "[control_272]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "275": {
      "content": "[control_273]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "276": {
      "content": "[control_274]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "277": {
      "content": "[control_275]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "278": {
      "content": "[control_276]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "279": {
      "content": "[control_277]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "280": {
      "content": "[control_278]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "281": {
      "content": "[control_279]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "282": {
      "content": "[control_280]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "283": {
      "content": "[control_281]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "284": {
      "content": "[control_282]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "285": {
      "content": "[control_283]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "286": {
      "content": "[control_284]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "287": {
      "content": "[control_285]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "288": {
      "content": "[control_286]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "289": {
      "content": "[control_287]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "290": {
      "content": "[control_288]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "291": {
      "content": "[control_289]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "292": {
      "content": "[control_290]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "293": {
      "content": "[control_291]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "294": {
      "content": "[control_292]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "295": {
      "content": "[control_293]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "296": {
      "content": "[control_294]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "297": {
      "content": "[control_295]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "298": {
      "content": "[control_296]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "299": {
      "content": "[control_297]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "300": {
      "content": "[control_298]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "301": {
      "content": "[control_299]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "302": {
      "content": "[control_300]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "303": {
      "content": "[control_301]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "304": {
      "content": "[control_302]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "305": {
      "content": "[control_303]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "306": {
      "content": "[control_304]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "307": {
      "content": "[control_305]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "308": {
      "content": "[control_306]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "309": {
      "content": "[control_307]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "310": {
      "content": "[control_308]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "311": {
      "content": "[control_309]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "312": {
      "content": "[control_310]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "313": {
      "content": "[control_311]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "314": {
      "content": "[control_312]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "315": {
      "content": "[control_313]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "316": {
      "content": "[control_314]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "317": {
      "content": "[control_315]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "318": {
      "content": "[control_316]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "319": {
      "content": "[control_317]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "320": {
      "content": "[control_318]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "321": {
      "content": "[control_319]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "322": {
      "content": "[control_320]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "323": {
      "content": "[control_321]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "324": {
      "content": "[control_322]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "325": {
      "content": "[control_323]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "326": {
      "content": "[control_324]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "327": {
      "content": "[control_325]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "328": {
      "content": "[control_326]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "329": {
      "content": "[control_327]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "330": {
      "content": "[control_328]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "331": {
      "content": "[control_329]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "332": {
      "content": "[control_330]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "333": {
      "content": "[control_331]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "334": {
      "content": "[control_332]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "335": {
      "content": "[control_333]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "336": {
      "content": "[control_334]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "337": {
      "content": "[control_335]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "338": {
      "content": "[control_336]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "339": {
      "content": "[control_337]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "340": {
      "content": "[control_338]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "341": {
      "content": "[control_339]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "342": {
      "content": "[control_340]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "343": {
      "content": "[control_341]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "344": {
      "content": "[control_342]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "345": {
      "content": "[control_343]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "346": {
      "content": "[control_344]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "347": {
      "content": "[control_345]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "348": {
      "content": "[control_346]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "349": {
      "content": "[control_347]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "350": {
      "content": "[control_348]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "351": {
      "content": "[control_349]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "352": {
      "content": "[control_350]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "353": {
      "content": "[control_351]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "354": {
      "content": "[control_352]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "355": {
      "content": "[control_353]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "356": {
      "content": "[control_354]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "357": {
      "content": "[control_355]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "358": {
      "content": "[control_356]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "359": {
      "content": "[control_357]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "360": {
      "content": "[control_358]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "361": {
      "content": "[control_359]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "362": {
      "content": "[control_360]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "363": {
      "content": "[control_361]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "364": {
      "content": "[control_362]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "365": {
      "content": "[control_363]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "366": {
      "content": "[control_364]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "367": {
      "content": "[control_365]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "368": {
      "content": "[control_366]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "369": {
      "content": "[control_367]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "370": {
      "content": "[control_368]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "371": {
      "content": "[control_369]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "372": {
      "content": "[control_370]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "373": {
      "content": "[control_371]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "374": {
      "content": "[control_372]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "375": {
      "content": "[control_373]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "376": {
      "content": "[control_374]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "377": {
      "content": "[control_375]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "378": {
      "content": "[control_376]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "379": {
      "content": "[control_377]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "380": {
      "content": "[control_378]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "381": {
      "content": "[control_379]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "382": {
      "content": "[control_380]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "383": {
      "content": "[control_381]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "384": {
      "content": "[control_382]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "385": {
      "content": "[control_383]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "386": {
      "content": "[control_384]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "387": {
      "content": "[control_385]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "388": {
      "content": "[control_386]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "389": {
      "content": "[control_387]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "390": {
      "content": "[control_388]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "391": {
      "content": "[control_389]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "392": {
      "content": "[control_390]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "393": {
      "content": "[control_391]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "394": {
      "content": "[control_392]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "395": {
      "content": "[control_393]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "396": {
      "content": "[control_394]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "397": {
      "content": "[control_395]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "398": {
      "content": "[control_396]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "399": {
      "content": "[control_397]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "400": {
      "content": "[control_398]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "401": {
      "content": "[control_399]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "402": {
      "content": "[control_400]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "403": {
      "content": "[control_401]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "404": {
      "content": "[control_402]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "405": {
      "content": "[control_403]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "406": {
      "content": "[control_404]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "407": {
      "content": "[control_405]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "408": {
      "content": "[control_406]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "409": {
      "content": "[control_407]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "410": {
      "content": "[control_408]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "411": {
      "content": "[control_409]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "412": {
      "content": "[control_410]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "413": {
      "content": "[control_411]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "414": {
      "content": "[control_412]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "415": {
      "content": "[control_413]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "416": {
      "content": "[control_414]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "417": {
      "content": "[control_415]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "418": {
      "content": "[control_416]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "419": {
      "content": "[control_417]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "420": {
      "content": "[control_418]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "421": {
      "content": "[control_419]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "422": {
      "content": "[control_420]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "423": {
      "content": "[control_421]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "424": {
      "content": "[control_422]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "425": {
      "content": "[control_423]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "426": {
      "content": "[control_424]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "427": {
      "content": "[control_425]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "428": {
      "content": "[control_426]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "429": {
      "content": "[control_427]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "430": {
      "content": "[control_428]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "431": {
      "content": "[control_429]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "432": {
      "content": "[control_430]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "433": {
      "content": "[control_431]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "434": {
      "content": "[control_432]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "435": {
      "content": "[control_433]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "436": {
      "content": "[control_434]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "437": {
      "content": "[control_435]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "438": {
      "content": "[control_436]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "439": {
      "content": "[control_437]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "440": {
      "content": "[control_438]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "441": {
      "content": "[control_439]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "442": {
      "content": "[control_440]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "443": {
      "content": "[control_441]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "444": {
      "content": "[control_442]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "445": {
      "content": "[control_443]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "446": {
      "content": "[control_444]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "447": {
      "content": "[control_445]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "448": {
      "content": "[control_446]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "449": {
      "content": "[control_447]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "450": {
      "content": "[control_448]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "451": {
      "content": "[control_449]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "452": {
      "content": "[control_450]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "453": {
      "content": "[control_451]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "454": {
      "content": "[control_452]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "455": {
      "content": "[control_453]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "456": {
      "content": "[control_454]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "457": {
      "content": "[control_455]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "458": {
      "content": "[control_456]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "459": {
      "content": "[control_457]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "460": {
      "content": "[control_458]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "461": {
      "content": "[control_459]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "462": {
      "content": "[control_460]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "463": {
      "content": "[control_461]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "464": {
      "content": "[control_462]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "465": {
      "content": "[control_463]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "466": {
      "content": "[control_464]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "467": {
      "content": "[control_465]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "468": {
      "content": "[control_466]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "469": {
      "content": "[control_467]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "470": {
      "content": "[control_468]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "471": {
      "content": "[control_469]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "472": {
      "content": "[control_470]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "473": {
      "content": "[control_471]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "474": {
      "content": "[control_472]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "475": {
      "content": "[control_473]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "476": {
      "content": "[control_474]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "477": {
      "content": "[control_475]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "478": {
      "content": "[control_476]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "479": {
      "content": "[control_477]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "480": {
      "content": "[control_478]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "481": {
      "content": "[control_479]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "482": {
      "content": "[control_480]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "483": {
      "content": "[control_481]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "484": {
      "content": "[control_482]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "485": {
      "content": "[control_483]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "486": {
      "content": "[control_484]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "487": {
      "content": "[control_485]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "488": {
      "content": "[control_486]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "489": {
      "content": "[control_487]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "490": {
      "content": "[control_488]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "491": {
      "content": "[control_489]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "492": {
      "content": "[control_490]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "493": {
      "content": "[control_491]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "494": {
      "content": "[control_492]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "495": {
      "content": "[control_493]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "496": {
      "content": "[control_494]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "497": {
      "content": "[control_495]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "498": {
      "content": "[control_496]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "499": {
      "content": "[control_497]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "500": {
      "content": "[control_498]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "501": {
      "content": "[control_499]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "502": {
      "content": "[control_500]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "503": {
      "content": "[control_501]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "504": {
      "content": "[control_502]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "505": {
      "content": "[control_503]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "506": {
      "content": "[control_504]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "507": {
      "content": "[control_505]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "508": {
      "content": "[control_506]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "509": {
      "content": "[control_507]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "510": {
      "content": "[control_508]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "511": {
      "content": "[control_509]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "512": {
      "content": "[control_510]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "513": {
      "content": "[control_511]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "514": {
      "content": "[control_512]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "515": {
      "content": "[control_513]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "516": {
      "content": "[control_514]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "517": {
      "content": "[control_515]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "518": {
      "content": "[control_516]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "519": {
      "content": "[control_517]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "520": {
      "content": "[control_518]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "521": {
      "content": "[control_519]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "522": {
      "content": "[control_520]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "523": {
      "content": "[control_521]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "524": {
      "content": "[control_522]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "525": {
      "content": "[control_523]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "526": {
      "content": "[control_524]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "527": {
      "content": "[control_525]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "528": {
      "content": "[control_526]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "529": {
      "content": "[control_527]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "530": {
      "content": "[control_528]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "531": {
      "content": "[control_529]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "532": {
      "content": "[control_530]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "533": {
      "content": "[control_531]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "534": {
      "content": "[control_532]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "535": {
      "content": "[control_533]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "536": {
      "content": "[control_534]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "537": {
      "content": "[control_535]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "538": {
      "content": "[control_536]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "539": {
      "content": "[control_537]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "540": {
      "content": "[control_538]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "541": {
      "content": "[control_539]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "542": {
      "content": "[control_540]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "543": {
      "content": "[control_541]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "544": {
      "content": "[control_542]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "545": {
      "content": "[control_543]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "546": {
      "content": "[control_544]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "547": {
      "content": "[control_545]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "548": {
      "content": "[control_546]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "549": {
      "content": "[control_547]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "550": {
      "content": "[control_548]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "551": {
      "content": "[control_549]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "552": {
      "content": "[control_550]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "553": {
      "content": "[control_551]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "554": {
      "content": "[control_552]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "555": {
      "content": "[control_553]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "556": {
      "content": "[control_554]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "557": {
      "content": "[control_555]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "558": {
      "content": "[control_556]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "559": {
      "content": "[control_557]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "560": {
      "content": "[control_558]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "561": {
      "content": "[control_559]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "562": {
      "content": "[control_560]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "563": {
      "content": "[control_561]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "564": {
      "content": "[control_562]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "565": {
      "content": "[control_563]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "566": {
      "content": "[control_564]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "567": {
      "content": "[control_565]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "568": {
      "content": "[control_566]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "569": {
      "content": "[control_567]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "570": {
      "content": "[control_568]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "571": {
      "content": "[control_569]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "572": {
      "content": "[control_570]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "573": {
      "content": "[control_571]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "574": {
      "content": "[control_572]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "575": {
      "content": "[control_573]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "576": {
      "content": "[control_574]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "577": {
      "content": "[control_575]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "578": {
      "content": "[control_576]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "579": {
      "content": "[control_577]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "580": {
      "content": "[control_578]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "581": {
      "content": "[control_579]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "582": {
      "content": "[control_580]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "583": {
      "content": "[control_581]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "584": {
      "content": "[control_582]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "585": {
      "content": "[control_583]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "586": {
      "content": "[control_584]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "587": {
      "content": "[control_585]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "588": {
      "content": "[control_586]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "589": {
      "content": "[control_587]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "590": {
      "content": "[control_588]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "591": {
      "content": "[control_589]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "592": {
      "content": "[control_590]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "593": {
      "content": "[control_591]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "594": {
      "content": "[control_592]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "595": {
      "content": "[control_593]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "596": {
      "content": "[control_594]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "597": {
      "content": "[control_595]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "598": {
      "content": "[control_596]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "599": {
      "content": "[control_597]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "600": {
      "content": "[control_598]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "601": {
      "content": "[control_599]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "602": {
      "content": "[control_600]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "603": {
      "content": "[control_601]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "604": {
      "content": "[control_602]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "605": {
      "content": "[control_603]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "606": {
      "content": "[control_604]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "607": {
      "content": "[control_605]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "608": {
      "content": "[control_606]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "609": {
      "content": "[control_607]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "610": {
      "content": "[control_608]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "611": {
      "content": "[control_609]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "612": {
      "content": "[control_610]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "613": {
      "content": "[control_611]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "614": {
      "content": "[control_612]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "615": {
      "content": "[control_613]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "616": {
      "content": "[control_614]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "617": {
      "content": "[control_615]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "618": {
      "content": "[control_616]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "619": {
      "content": "[control_617]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "620": {
      "content": "[control_618]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "621": {
      "content": "[control_619]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "622": {
      "content": "[control_620]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "623": {
      "content": "[control_621]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "624": {
      "content": "[control_622]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "625": {
      "content": "[control_623]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "626": {
      "content": "[control_624]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "627": {
      "content": "[control_625]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "628": {
      "content": "[control_626]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "629": {
      "content": "[control_627]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "630": {
      "content": "[control_628]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "631": {
      "content": "[control_629]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "632": {
      "content": "[control_630]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "633": {
      "content": "[control_631]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "634": {
      "content": "[control_632]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "635": {
      "content": "[control_633]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "636": {
      "content": "[control_634]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "637": {
      "content": "[control_635]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "638": {
      "content": "[control_636]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "639": {
      "content": "[control_637]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "640": {
      "content": "[control_638]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "641": {
      "content": "[control_639]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "642": {
      "content": "[control_640]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "643": {
      "content": "[control_641]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "644": {
      "content": "[control_642]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "645": {
      "content": "[control_643]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "646": {
      "content": "[control_644]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "647": {
      "content": "[control_645]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "648": {
      "content": "[control_646]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "649": {
      "content": "[control_647]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "650": {
      "content": "[control_648]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "651": {
      "content": "[control_649]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "652": {
      "content": "[control_650]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "653": {
      "content": "[control_651]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "654": {
      "content": "[control_652]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "655": {
      "content": "[control_653]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "656": {
      "content": "[control_654]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "657": {
      "content": "[control_655]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "658": {
      "content": "[control_656]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "659": {
      "content": "[control_657]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "660": {
      "content": "[control_658]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "661": {
      "content": "[control_659]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "662": {
      "content": "[control_660]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "663": {
      "content": "[control_661]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "664": {
      "content": "[control_662]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "665": {
      "content": "[control_663]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "666": {
      "content": "[control_664]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "667": {
      "content": "[control_665]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "668": {
      "content": "[control_666]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "669": {
      "content": "[control_667]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "670": {
      "content": "[control_668]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "671": {
      "content": "[control_669]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "672": {
      "content": "[control_670]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "673": {
      "content": "[control_671]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "674": {
      "content": "[control_672]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "675": {
      "content": "[control_673]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "676": {
      "content": "[control_674]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "677": {
      "content": "[control_675]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "678": {
      "content": "[control_676]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "679": {
      "content": "[control_677]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "680": {
      "content": "[control_678]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "681": {
      "content": "[control_679]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "682": {
      "content": "[control_680]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "683": {
      "content": "[control_681]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "684": {
      "content": "[control_682]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "685": {
      "content": "[control_683]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "686": {
      "content": "[control_684]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "687": {
      "content": "[control_685]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "688": {
      "content": "[control_686]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "689": {
      "content": "[control_687]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "690": {
      "content": "[control_688]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "691": {
      "content": "[control_689]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "692": {
      "content": "[control_690]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "693": {
      "content": "[control_691]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "694": {
      "content": "[control_692]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "695": {
      "content": "[control_693]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "696": {
      "content": "[control_694]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "697": {
      "content": "[control_695]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "698": {
      "content": "[control_696]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "699": {
      "content": "[control_697]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "700": {
      "content": "[control_698]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "701": {
      "content": "[control_699]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "702": {
      "content": "[control_700]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "703": {
      "content": "[control_701]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "704": {
      "content": "[control_702]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "705": {
      "content": "[control_703]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "706": {
      "content": "[control_704]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "707": {
      "content": "[control_705]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "708": {
      "content": "[control_706]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "709": {
      "content": "[control_707]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "710": {
      "content": "[control_708]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "711": {
      "content": "[control_709]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "712": {
      "content": "[control_710]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "713": {
      "content": "[control_711]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "714": {
      "content": "[control_712]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "715": {
      "content": "[control_713]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "716": {
      "content": "[control_714]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "717": {
      "content": "[control_715]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "718": {
      "content": "[control_716]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "719": {
      "content": "[control_717]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "720": {
      "content": "[control_718]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "721": {
      "content": "[control_719]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "722": {
      "content": "[control_720]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "723": {
      "content": "[control_721]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "724": {
      "content": "[control_722]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "725": {
      "content": "[control_723]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "726": {
      "content": "[control_724]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "727": {
      "content": "[control_725]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "728": {
      "content": "[control_726]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "729": {
      "content": "[control_727]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "730": {
      "content": "[control_728]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "731": {
      "content": "[control_729]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "732": {
      "content": "[control_730]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "733": {
      "content": "[control_731]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "734": {
      "content": "[control_732]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "735": {
      "content": "[control_733]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "736": {
      "content": "[control_734]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "737": {
      "content": "[control_735]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "738": {
      "content": "[control_736]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "739": {
      "content": "[control_737]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "740": {
      "content": "[control_738]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "741": {
      "content": "[control_739]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "742": {
      "content": "[control_740]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "743": {
      "content": "[control_741]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "744": {
      "content": "[control_742]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "745": {
      "content": "[control_743]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "746": {
      "content": "[control_744]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "747": {
      "content": "[control_745]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "748": {
      "content": "[control_746]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "749": {
      "content": "[control_747]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "750": {
      "content": "[control_748]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "751": {
      "content": "[control_749]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "752": {
      "content": "[control_750]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "753": {
      "content": "[control_751]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "754": {
      "content": "[control_752]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "755": {
      "content": "[control_753]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "756": {
      "content": "[control_754]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "757": {
      "content": "[control_755]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "758": {
      "content": "[control_756]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "759": {
      "content": "[control_757]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "760": {
      "content": "[control_758]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "761": {
      "content": "[control_759]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "762": {
      "content": "[control_760]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "763": {
      "content": "[control_761]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "764": {
      "content": "[control_762]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "765": {
      "content": "[control_763]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "766": {
      "content": "[control_764]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "767": {
      "content": "[control_765]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "768": {
      "content": "[control_766]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "769": {
      "content": "[control_767]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "770": {
      "content": "[control_768]",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "bos_token": "<s>",
  "chat_template": "{%- if messages[0][\"role\"] == \"system\" %}\n    {%- set system_message = messages[0][\"content\"] %}\n    {%- set loop_messages = messages[1:] %}\n{%- else %}\n    {%- set loop_messages = messages %}\n{%- endif %}\n{%- if not tools is defined %}\n    {%- set tools = none %}\n{%- endif %}\n{%- set user_messages = loop_messages | selectattr(\"role\", \"equalto\", \"user\") | list %}\n\n{#- This block checks for alternating user/assistant messages, skipping tool calling messages #}\n{%- set ns = namespace() %}\n{%- set ns.index = 0 %}\n{%- for message in loop_messages %}\n    {%- if not (message.role == \"tool\" or message.role == \"tool_results\" or (message.tool_calls is defined and message.tool_calls is not none)) %}\n        {%- if (message[\"role\"] == \"user\") != (ns.index % 2 == 0) %}\n            {{- raise_exception(\"After the optional system message, conversation roles must alternate user/assistant/user/assistant/...\") }}\n        {%- endif %}\n        {%- set ns.index = ns.index + 1 %}\n    {%- endif %}\n{%- endfor %}\n\n{{- bos_token }}\n{%- for message in loop_messages %}\n    {%- if message[\"role\"] == \"user\" %}\n        {%- if tools is not none and (message == user_messages[-1]) %}\n            {{- \"[AVAILABLE_TOOLS] [\" }}\n            {%- for tool in tools %}\n                {%- set tool = tool.function %}\n                {{- '{\"type\": \"function\", \"function\": {' }}\n                {%- for key, val in tool.items() if key != \"return\" %}\n                    {%- if val is string %}\n                        {{- '\"' + key + '\": \"' + val + '\"' }}\n                    {%- else %}\n                        {{- '\"' + key + '\": ' + val|tojson }}\n                    {%- endif %}\n                    {%- if not loop.last %}\n                        {{- \", \" }}\n                    {%- endif %}\n                {%- endfor %}\n                {{- \"}}\" }}\n                {%- if not loop.last %}\n                    {{- \", \" }}\n                {%- else %}\n                    {{- \"]\" }}\n                {%- endif %}\n            {%- endfor %}\n            {{- \"[/AVAILABLE_TOOLS]\" }}\n            {%- endif %}\n        {%- if loop.last and system_message is defined %}\n            {{- \"[INST] \" + system_message + \"\\n\\n\" + message[\"content\"] + \"[/INST]\" }}\n        {%- else %}\n            {{- \"[INST] \" + message[\"content\"] + \"[/INST]\" }}\n        {%- endif %}\n    {%- elif message.tool_calls is defined and message.tool_calls is not none %}\n        {{- \"[TOOL_CALLS] [\" }}\n        {%- for tool_call in message.tool_calls %}\n            {%- set out = tool_call.function|tojson %}\n            {{- out[:-1] }}\n            {%- if not tool_call.id is defined or tool_call.id|length != 9 %}\n                {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n            {%- endif %}\n            {{- ', \"id\": \"' + tool_call.id + '\"}' }}\n            {%- if not loop.last %}\n                {{- \", \" }}\n            {%- else %}\n                {{- \"]\" + eos_token }}\n            {%- endif %}\n        {%- endfor %}\n    {%- elif message[\"role\"] == \"assistant\" %}\n        {{- \" \" + message[\"content\"]|trim + eos_token}}\n    {%- elif message[\"role\"] == \"tool_results\" or message[\"role\"] == \"tool\" %}\n        {%- if message.content is defined and message.content.content is defined %}\n            {%- set content = message.content.content %}\n        {%- else %}\n            {%- set content = message.content %}\n        {%- endif %}\n        {{- '[TOOL_RESULTS] {\"content\": ' + content|string + \", \" }}\n        {%- if not message.tool_call_id is defined or message.tool_call_id|length != 9 %}\n            {{- raise_exception(\"Tool call IDs should be alphanumeric strings with length 9!\") }}\n        {%- endif %}\n        {{- '\"call_id\": \"' + message.tool_call_id + '\"}[/TOOL_RESULTS]' }}\n    {%- else %}\n        {{- raise_exception(\"Only user and assistant roles are supported, with the exception of an initial optional system message!\") }}\n    {%- endif %}\n{%- endfor %}\n",
  "clean_up_tokenization_spaces": false,
  "eos_token": "</s>",
  "legacy": false,
  "model_max_length": 1000000000000000019884624838656,
  "pad_token": null,
  "sp_model_kwargs": {},
  "spaces_between_special_tokens": false,
  "tokenizer_class": "LlamaTokenizer",
  "unk_token": "<unk>",
  "use_default_system_prompt": false
}
```

------
#### [ Qwen2 ]

```
{
  "add_prefix_space": false,
  "added_tokens_decoder": {
    "151643": {
      "content": "<|endoftext|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "151644": {
      "content": "<|im_start|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    },
    "151645": {
      "content": "<|im_end|>",
      "lstrip": false,
      "normalized": false,
      "rstrip": false,
      "single_word": false,
      "special": true
    }
  },
  "additional_special_tokens": ["<|im_start|>", "<|im_end|>"],
  "bos_token": null,
  "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}",
  "clean_up_tokenization_spaces": false,
  "eos_token": "<|im_end|>",
  "errors": "replace",
  "model_max_length": 131072,
  "pad_token": "<|endoftext|>",
  "split_special_tokens": false,
  "tokenizer_class": "Qwen2Tokenizer",
  "unk_token": null
}
```

------

# Importieren Sie ein SageMaker KI-trainiertes Amazon Nova-Modell
<a name="import-with-create-custom-model"></a>

**Anmerkung**  
Um Open-Source-Modelle in Amazon Bedrock zu importieren, verwenden Sie einen Modellimportjob. Weitere Informationen finden Sie unter [Verwenden des Imports benutzerdefinierter Modelle, um ein benutzerdefiniertes Open-Source-Modell in Amazon Bedrock zu importieren](model-customization-import-model.md). 

 Um ein Amazon Nova-Modell zu importieren, das Sie mit SageMaker KI angepasst haben, erstellen Sie dafür ein neues benutzerdefiniertes Modell in Amazon Bedrock. Wenn Sie beispielsweise SageMaker KI zur Feinabstimmung eines Amazon Nova Pro Modells verwendet haben, um dessen Leistung für einen bestimmten Anwendungsfall zu verbessern, können Sie das fein abgestimmte Modell als benutzerdefiniertes Modell in Amazon Bedrock importieren und es zur Durchführung von Inferenzen verwenden. 

 Das Erstellen und Verwenden eines SageMaker KI-trainierten Amazon Nova-Modells in Amazon Bedrock funktioniert wie folgt: 

1. **Passen Sie das Modell in SageMaker KI** an — Passen Sie ein Amazon Nova-Modell mithilfe von vorgefertigten Basisrezepten mithilfe von SageMaker KI-Schulungsaufgaben an. Weitere Informationen finden Sie unter [Anpassen von Amazon Nova-Modellen](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model.html) im *Amazon SageMaker AI Developer Guide*.

1. **Erstellen Sie ein benutzerdefiniertes Modell in Amazon Bedrock** — Erstellen Sie ein benutzerdefiniertes Modell mit der [CreateCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModel.html)API-Operation. Wenn Sie ein benutzerdefiniertes Modell erstellen, validiert Amazon Bedrock die Modellartefakte und importiert sie anschließend aus einem von Amazon verwalteten Amazon-S3-Bucket. SageMaker KI erstellt diesen Bucket, wenn Sie Ihren ersten SageMaker KI-Schulungsjob ausführen. Ein Codebeispiel finden Sie unter [Erstellen Sie ein benutzerdefiniertes Modell (AWS SDKs)](create-custom-model-sdks.md).

1.  **Einrichten der Inferenz für das benutzerdefinierte Modell** – Nachdem der Importvorgang abgeschlossen ist, können Sie die Inferenz für das Modell einrichten. Weitere Informationen finden Sie unter [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md). Sie verwalten das benutzerdefinierte Modell genauso wie Modelle, die Sie in Amazon Bedrock erstellen, indem Sie das Modell anpassen. Weitere Informationen finden Sie unter [Anpassen des Modells für eine bessere Leistung im jeweiligen Anwendungsfall](custom-models.md).

Sie können ein benutzerdefiniertes Modell aus einem Amazon-Nova-Modell in den folgenden Regionen erstellen (weitere Informationen zu den in Amazon Bedrock unterstützten Regionen finden Sie unter [Amazon-Bedrock-Endpunkte und -Kontingente](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)): 
+ USA Ost (Nord-Virginia)

**Topics**
+ [Richtlinien und Anforderungen](#create-custom-model-considerations)
+ [Erstellen Sie ein benutzerdefiniertes Modell (AWS SDKs)](create-custom-model-sdks.md)

## Richtlinien und Anforderungen
<a name="create-custom-model-considerations"></a>

Beachten Sie Folgendes, bevor Sie ein Amazon-Nova-Modell importieren:
+ Sie müssen die Region USA Ost (Nord-Virginia) verwenden.
+ Wenn Sie das Modell in SageMaker AI anpassen, müssen Sie eines der folgenden Amazon Nova-Modelle verwenden:
  + Amazon Nova Lite
  + Amazon Nova Micro
  + Amazon Nova Pro
+ Wenn Sie das Modell in SageMaker AI anpassen, müssen Sie die SageMaker AI Amazon Nova-Rezepte verwenden. Weitere Informationen finden Sie unter [Amazon Nova-Rezepte](https://docs.aws.amazon.com/sagemaker/latest/dg/nova-model-recipes.html) im Amazon SageMaker AI Developer Guide. 
+ Ihre SageMaker KI-trainierten Amazon Nova-Modelle müssen in einem von Amazon verwalteten Amazon S3-Bucket gespeichert werden. SageMaker KI erstellt diesen Bucket, wenn Sie Ihren ersten SageMaker KI-Trainingsjob ausführen.
+ Ihre Amazon Bedrock-Servicerolle muss über Berechtigungen für den Zugriff auf den von Amazon verwalteten Amazon S3-Bucket und, falls angegeben, für Ihren Schlüssel verfügen. AWS KMS Weitere Informationen zum Erstellen der Rolle finden Sie unter [Erstellen einer Servicerolle für den Import von vortrainierten Modellen](model-import-iam-role.md). Informationen darüber, wie Sie der Rolle die Erlaubnis zur Verwendung Ihres AWS KMS Schlüssels erteilen, finden Sie unter. [Verschlüsselung importierter benutzerdefinierter Modelle](encryption-import-model.md) 
+ Sie können Amazon Bedrock nur verwenden, APIs um ein benutzerdefiniertes Modell aus einem vorhandenen SageMaker KI-trainierten Amazon Nova-Modell zu erstellen. Sie können dazu nicht die Amazon-Bedrock-Konsole verwenden.

# Erstellen Sie ein benutzerdefiniertes Modell (AWS SDKs)
<a name="create-custom-model-sdks"></a>

Um ein benutzerdefiniertes Modell aus einem SageMaker KI-trainierten Amazon Nova-Modell zu erstellen, das in Amazon S3 gespeichert ist, verwenden Sie den [CreateCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModel.html)API-Vorgang. Sie können den folgenden Code verwenden, um ein benutzerdefiniertes Modell mit dem SDK für Python (Boto3) zu erstellen. Der Code erstellt ein benutzerdefiniertes Modell und überprüft dann seinen Status, bis es `ACTIVE` und einsatzbereit ist.

Um den Code zu verwenden, aktualisieren Sie die folgenden Parameter. Das Codebeispiel enthält auch optionale Parameter, z. B. `clientRequestToken` für Idempotenz und `modelTags` für Ressourcenmarkierung. 
+ **modelName** – Geben Sie dem Modell einen eindeutigen Namen.
+ **s3URI** — Geben Sie den Pfad zum von Amazon verwalteten Amazon S3-Bucket an, in dem Ihre Modellartefakte gespeichert sind. SageMaker KI erstellt diesen Bucket, wenn Sie Ihren ersten SageMaker KI-Trainingsjob ausführen.
+ **roleArn** – Geben Sie den Amazon-Ressourcennamen (ARN) einer IAM-Servicerolle an, die Amazon Bedrock für die Ausführung von Aufgaben in Ihrem Namen übernimmt. Weitere Informationen zum Erstellen dieser Rolle finden Sie unter [Erstellen einer Servicerolle für den Import von vortrainierten Modellen](model-import-iam-role.md).
+ **modelKmsKeyArn** (optional) — Geben Sie einen AWS KMS Schlüssel an, um das Modell in Amazon Bedrock zu verschlüsseln. Wenn Sie keinen AWS KMS Schlüssel angeben, verwendet Amazon Bedrock einen AWS verwalteten AWS KMS Schlüssel, um das Modell zu verschlüsseln. Weitere Informationen zur Verschlüsselung finden Sie unter [Verschlüsselung importierter benutzerdefinierter Modelle](encryption-import-model.md).

Nachdem Sie das benutzerdefinierte Modell erstellt haben, wird das Modell in der [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)Antwort mit einem von angezeigt. `customizationType` `imported` Um den Status des neuen Modells zu verfolgen, verwenden Sie den [GetCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModel.html)API-Vorgang.

```
import boto3
import uuid
from botocore.exceptions import ClientError
import time

def create_custom_model(bedrock_client):
    """
    Creates a custom model in Amazon Bedrock from a SageMaker AI-trained Amazon Nova model stored in Amazon S3.
    Args:
        bedrock_client: The Amazon Bedrock client instance
    Returns:
        dict: Response from the CreateCustomModel API call
    """
    try:
        # Create a unique client request token for idempotency
        client_request_token = str(uuid.uuid4())

        # Define the model source configuration
        model_source_config = {
            's3DataSource': {
                's3Uri': 's3://amzn-s3-demo-bucket/folder/',
            }
        }

        # Create the custom model
        response = bedrock_client.create_custom_model(
            # Required parameters
            modelName='modelName',
            roleArn='serviceRoleArn',
            modelSourceConfig=model_source_config,

            # Optional parameters
            clientRequestToken=client_request_token,
            modelKmsKeyArn='keyArn',
            modelTags=[
                {
                    'key': 'Environment',
                    'value': 'Production'
                },
                {
                    'key': 'Project',
                    'value': 'AIInference'
                }
            ]
        )

        print(f"Custom model creation initiated. Model ARN: {response['modelArn']}")

        return response

    except ClientError as e:
        print(f"Error creating custom model: {e}")
        raise

def list_custom_models(bedrock_client):
    """
    Lists all custom models in Amazon Bedrock.

    Args:
        bedrock_client: An Amazon Bedrock client.

    Returns:
        dict: Response from the ListCustomModels API call

    """

    try:
        response = bedrock_client.list_custom_models()
        print(f"Total number of custom models: {len(response['modelSummaries'])}")

        for model in response['modelSummaries']:
            print("ARN: " + model['modelArn'])
            print("Name: " + model['modelName'])
            print("Status: " + model['modelStatus'])
            print("Customization type: " + model['customizationType'])
            print("------------------------------------------------------")

        return response

    except ClientError as e:
        print(f"Error listing custom models: {e}")
        raise

def check_model_status(bedrock_client, model_arn):
    """
    Checks the status of a custom model creation.

    Args:
        model_arn (str): The ARN of the custom model
        bedrock_client: An Amazon Bedrock client.

    Returns:
        dict: Response from the GetCustomModel API call

    """

    try:
        max_time = time.time() + 60 * 60  # 1 hour

        while time.time() < max_time:
            response = bedrock_client.get_custom_model(modelIdentifier=model_arn)
            status = response.get('modelStatus')
            print(f"Job status: {status}")
            if status == 'Failed':
                print(f"Failure reason: {response.get('failureMessage')}")
                break
            if status == 'Active':
                print("Model is ready for use.")
                break
            time.sleep(60)

    except ClientError as e:
        print(f"Error checking model status: {e}")
        raise


def main():
    bedrock_client = boto3.client(service_name='bedrock', region_name='REGION')
    
    # Create the custom model
    model_arn = create_custom_model(bedrock_client)["modelArn"]

    # Check the status of the model
    if model_arn:
        check_model_status(bedrock_client, model_arn)

    # View all custom models
    list_custom_models(bedrock_client)


if __name__ == "__main__":
    main()
```

# Personalisierte Modelle verwalten
<a name="manage-customized-models"></a>

Nachdem Sie ein benutzerdefiniertes Modell durch Feinabstimmung, Feinabstimmung der Verstärkung, Destillation oder Import erstellt haben, können Sie das Modell während seines gesamten Lebenszyklus verwalten. In diesem Abschnitt werden Sicherheitskonfiguration, Überwachung, Bereitstellung, gemeinsame Nutzung zwischen Konten und Problembehebung behandelt.

**Sicherheit und Überwachung**
+ [Zugriff und Sicherheit bei der Modellanpassung](custom-model-job-access-security.md)- Konfigurieren Sie IAM-Rollen, -Berechtigungen und -Verschlüsselung für Modellanpassungsjobs.
+ [Überwachen Ihres Modellanpassungsauftrags](model-customization-monitor.md)- Verfolgen Sie den Fortschritt und den Status Ihrer Modellanpassungsaufträge.
+ [Analysieren der Ergebnisse eines Modellanpassungsauftrags](model-customization-analyze.md)- Überprüfen Sie die Metriken und Ergebnisse, nachdem ein Anpassungsauftrag abgeschlossen ist.
+ [Stoppen eines Modellanpassungsauftrags](model-customization-stop.md)- Beenden Sie bei Bedarf einen laufenden Modellanpassungsjob.

**Modelle verwenden und bereitstellen**
+ [Anzeigen von Details zu einem benutzerdefinierten Modell](model-customization-view.md)- Sehen Sie sich Details, Metadaten und Konfiguration Ihrer benutzerdefinierten Modelle an.
+ [Einrichten von Inferenz für ein benutzerdefiniertes Modell](model-customization-use.md)- Konfigurieren und implementieren Sie ein benutzerdefiniertes Modell für Inferenz.

**Teilen und Verteilen**
+ [Freigeben eines Modells für ein anderes Konto](share-model.md)- Teilen Sie ein benutzerdefiniertes Modell mit einem anderen AWS-Konto in Ihrer Organisation.
+ [Kopieren eines benutzerdefinierten oder freigegebenen Modells zur Verwendung in einer Region](copy-model.md)- Kopieren Sie ein benutzerdefiniertes oder gemeinsam genutztes Modell, um es in einer anderen Region zu verwenden.

**Wartung**
+ [Löschen eines benutzerdefinierten Modells](model-customization-delete.md)- Löschen Sie ein benutzerdefiniertes Modell, wenn es nicht mehr benötigt wird.
+ [Codebeispiele für die Modellanpassung](model-customization-code-samples.md)- Beispielcode für allgemeine Aufgaben zur Modellanpassung.
+ [Behebung von Problemen bei der Modellanpassung](fine-tuning-troubleshooting.md)- Diagnostizieren und lösen Sie häufig auftretende Probleme bei der Modellanpassung.

# Zugriff und Sicherheit bei der Modellanpassung
<a name="custom-model-job-access-security"></a>

Diese Seite bietet umfassende Sicherheits- und Berechtigungsinformationen für alle Arten der Amazon Bedrock-Modellanpassung, einschließlich Feinabstimmung, Verstärkungsfeinabstimmung, Destillation und Modelloperationen. Bevor Sie mit der Anpassung eines Modells beginnen, sollten Sie wissen, welche Art von Zugriff Amazon Bedrock erfordert. Ziehen Sie einige Optionen zum Schützen Ihrer Anpassungsaufträge und -artefakte in Betracht.

Die folgenden Abschnitte enthalten die Berechtigungen, die für verschiedene Anpassungsszenarien erforderlich sind. Wählen Sie die entsprechenden Berechtigungen für Ihren spezifischen Anwendungsfall aus:

## Grundlegende Berechtigungen zur Modellanpassung
<a name="custom-model-job-basic-permissions"></a>

Für alle Modellanpassungsaufträge sind diese grundlegenden Berechtigungen erforderlich. Diese gelten für die Feinabstimmung, Destillation und andere Anpassungsarten.

### Erstellen einer IAM-Servicerolle für die Modellanpassung
<a name="custom-model-job-service-role"></a>

Amazon Bedrock benötigt eine AWS Identity and Access Management (IAM) -Servicerolle, um auf den S3-Bucket zuzugreifen, in dem Sie Ihre Trainings- und Validierungsdaten zur Modellanpassung speichern möchten. Hierzu gibt es mehrere Möglichkeiten:
+ Erstellen Sie die Servicerolle automatisch mithilfe von AWS-Managementkonsole.
+ Erstellen Sie die Servicerolle manuell mit den entsprechenden Berechtigungen für den Zugriff auf den S3-Bucket.

Für die manuelle Option erstellen Sie eine IAM-Rolle und fügen Sie die folgenden Berechtigungen hinzu, indem Sie die Schritte unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Service befolgen. AWS 
+ Vertrauensstellung
+ Berechtigungen zum Zugriff auf Ihre Trainings- und Validierungsdaten in S3 und zum Schreiben Ihrer Ausgabedaten in S3
+ (Optional) Berechtigungen zum Entschlüsseln des Schlüssels, wenn Sie eine der folgenden Ressourcen mit einem KMS-Schlüssel verschlüsseln (siehe [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md))
  + Ein Auftrag zur Modellanpassung oder das daraus resultierende benutzerdefinierte Modell
  + Die Trainings-, Validierungs- und Ausgabedaten für den Auftrag zur Modellanpassung

### Vertrauensstellung
<a name="custom-model-job-service-role-trust-relationship"></a>

Mit der folgenden Richtlinie kann Amazon Bedrock diese Rolle übernehmen und den Auftrag zur Modellanpassung ausführen. Das folgende Beispiel zeigt eine Richtlinie, die Sie verwenden können.

Sie können optional den Geltungsbereich der Berechtigung für die [ Vermeidung von serviceübergreifenden Confused-Deputy-Problemen](cross-service-confused-deputy-prevention.md) einschränken, indem Sie einen oder mehrere globale Bedingungskontextschlüssel mit dem Feld `Condition` verwenden. Weitere Informationen finden Sie unter [Globale AWS -Bedingungskontextschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).
+ Legen Sie den Wert `aws:SourceAccount` auf Ihre Konto-ID fest.
+ (Optional) Verwenden Sie die Bedingung `ArnEquals` oder `ArnLike`, um den Geltungsbereich auf bestimmte Modellanpassungsaufträge in Ihrer Konto-ID zu beschränken.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "bedrock.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:bedrock:us-east-1:111122223333:model-customization-job/*"
                }
            }
        }
    ]
}
```

------

### Berechtigungen zum Zugriff auf Trainings- und Validierungsdateien und zum Schreiben von Ausgabedateien in S3
<a name="custom-model-job-service-role-s3-permissions"></a>

Fügen Sie die folgende Richtlinie an, damit die Rolle auf Ihre Trainings- und Validierungsdaten und auf den Bucket zugreifen kann, in den Sie Ihre Ausgabedaten schreiben möchten. Ersetzen Sie die Werte in der Liste `Resource` durch Ihre tatsächlichen Bucket-Namen.

Um den Zugriff auf einen bestimmten Ordner in einem Bucket einzuschränken, fügen Sie den Bedingungsschlüssel `s3:prefix` mit Ihrem Ordnerpfad hinzu. Sie können dem Beispiel einer **Benutzerrichtlinie** in [Beispiel 2: Abrufen einer Liste von Objekten in einem Bucket mit einem bestimmten Präfix](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2) folgen. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::training-bucket",
                "arn:aws:s3:::training-bucket/*",
                "arn:aws:s3:::validation-bucket",
                "arn:aws:s3:::validation-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::output-bucket",
                "arn:aws:s3:::output-bucket/*"
            ]
        }
    ]
}
```

------

## Modellieren Sie Berechtigungen zum Kopieren
<a name="custom-model-job-model-copying-permissions"></a>

Um ein Modell in eine andere Region zu kopieren, benötigen Sie je nach den aktuellen Berechtigungen Ihrer Rolle und der Konfiguration des Modells bestimmte Berechtigungen.

1. Wenn Ihre Rolle nicht mit der [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess)Richtlinie verknüpft ist, fügen Sie der Rolle die folgende identitätsbasierte Richtlinie hinzu, um nur minimale Berechtigungen zum Kopieren von Modellen und zum Nachverfolgen von Kopieraufträgen zu gewähren.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CopyModels",
               "Effect": "Allow",
               "Action": [
                   "bedrock:CreateModelCopyJob",
                   "bedrock:GetModelCopyJob",
                   "bedrock:ListModelCopyJobs"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/model-id"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:RequestedRegion": [
                           "us-east-1"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. (Optional) Wenn das zu kopierende Modell mit einem KMS-Schlüssel verschlüsselt ist, fügen Sie dem [KMS-Schlüssel, mit dem das Modell verschlüsselt wurde, eine Schlüsselrichtlinie](encryption-custom-job.md#encryption-key-policy-decrypt) hinzu, damit eine Rolle das Modell entschlüsseln kann.

1. (Optional) Wenn Sie die Modellkopie mit einem KMS-Schlüssel verschlüsseln möchten, fügen Sie dem [KMS-Schlüssel, mit dem das Modell verschlüsselt werden soll, eine Schlüsselrichtlinie](encryption-custom-job.md#encryption-key-policy-encrypt) hinzu, damit eine Rolle das Modell mit dem Schlüssel verschlüsseln kann.

## Berechtigungen für regionsübergreifende Inferenzprofile
<a name="custom-models-cross-region-inference-profile-basic-permissions"></a>

Um ein regionsübergreifendes Inferenzprofil für ein Lehrermodell in einem Destillationsjob verwenden zu können, muss die Servicerolle zusätzlich zum Modell in jeder Region im Inferenzprofil über Berechtigungen zum Aufrufen des Inferenzprofils in einem AWS-Region verfügen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

## (Optional) Berechtigungen zum Erstellen eines Destillationsauftrags mit einem regionsübergreifenden Inferenzprofil
<a name="custom-models-cross-region-inference-profile-permissions"></a>

Um ein regionsübergreifendes Inferenzprofil für ein Lehrermodell in einer Destillationsstelle verwenden zu können, muss die Servicerolle zusätzlich zu dem Modell in jeder Region im Inferenzprofil über Berechtigungen zum Aufrufen des Inferenzprofils in einer AWS-Region verfügen.

Damit Berechtigungen mit einem regionsübergreifenden (systemdefinierten) Inferenzprofil aufgerufen werden können, verwenden Sie die folgende Richtlinie als Vorlage für die Berechtigungsrichtlinie, die Sie an die Servicerolle anhängen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossRegionInference",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:inference-profile/${InferenceProfileId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}",
                "arn:aws:bedrock:us-east-1::foundation-model/${ModelId}"
            ]
        }
    ]
}
```

------

## (Optional) Verschlüsseln von Modellanpassungsaufträgen und -artefakten
<a name="custom-model-job-encryption"></a>

Verschlüsseln Sie die Eingabe- und Ausgabedaten, Anpassungsaufträge oder Inferenzanforderungen für benutzerdefinierte Modelle. Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).

## (Optional) Schützen der Modellanpassungsaufträge mit einer VPC
<a name="vpc-model-customization"></a>

Wenn Sie einen Modellanpassungsauftrag ausführen, greift der Auftrag auf Ihren Amazon-S3-Bucket zu, um die Eingabedaten herunter- und Auftragsmetriken hochzuladen. Wenn Sie den Zugriff auf Ihre Daten kontrollieren möchten, empfehlen wir Ihnen, eine Virtual Private Cloud (VPC) mit [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) zu erstellen. Sie können Ihre Daten zusätzlich schützen, indem Sie Ihre VPC so konfigurieren, dass Ihre Daten nicht über das Internet verfügbar sind, und stattdessen einen VPC-Schnittstellenendpunkt mit [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) erstellen, um eine private Verbindung zu Ihren Daten herzustellen. Weitere Informationen zur AWS PrivateLink Integration von Amazon VPC mit Amazon Bedrock finden Sie unter. [Schützen Ihrer Daten mit Amazon VPC und AWS PrivateLink](usingVPC.md)

Führen Sie die folgenden Schritte aus, um eine VPC für die Trainings-, Validierungs- und Ausgabedaten Ihrer Modellanpassungsaufträge zu konfigurieren und zu verwenden.

**Topics**
+ [Einrichten der VPC zum Schützen der Daten bei der Modellanpassung](#vpc-cm-setup)
+ [Anfügen von VPC-Berechtigungen an eine Modelanpassungsrolle](#vpc-data-access-role)
+ [Hinzufügen einer VPC-Konfiguration bei der Übermittlung eines Modellanpassungsauftrags](#vpc-config)

### Einrichten der VPC zum Schützen der Daten bei der Modellanpassung
<a name="vpc-cm-setup"></a>

Zum Einrichten einer VPC befolgen Sie die Schritte unter [Einrichten einer VPC](usingVPC.md#create-vpc). Sie können Ihre VPC noch zusätzlich schützen, indem Sie einen S3-VPC-Endpunkt einrichten und ressourcenbasierte IAM-Richtlinien verwenden, um den Zugriff auf den S3-Bucket einzuschränken, der die Modellanpassungsdaten enthält. Führen Sie dazu die Schritte unter [(Beispiel) Beschränken des Datenzugriffs auf Ihre Amazon-S3-Daten mit VPC](vpc-s3.md) aus.

### Anfügen von VPC-Berechtigungen an eine Modelanpassungsrolle
<a name="vpc-data-access-role"></a>

Nachdem Sie die Einrichtung Ihrer VPC abgeschlossen haben, fügen Sie die folgenden Berechtigungen zu Ihrer [Modellanpassungs-Servicerolle](model-customization-iam-role.md) hinzu, damit diese auf die VPC zugreifen kann. Ändern Sie diese Richtlinie so, dass nur Zugriff auf die VPC-Ressourcen gewährt wird, die Ihr Auftrag benötigt. Ersetzen Sie das *\$1\$1\$1subnet-ids\$1\$1* und *security-group-id* durch die Werte aus Ihrer VPC.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeVpcs",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:network-interface/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/BedrockManaged": [
                        "true"
                    ]
                },
                "ArnEquals": {
                    "aws:RequestTag/BedrockModelCustomizationJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2",
                "arn:aws:ec2:us-east-1:123456789012:security-group/security-group-id"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterfacePermission",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id",
                        "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-id2"
                    ],
                    "ec2:ResourceTag/BedrockModelCustomizationJobArn": [
                        "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*"
                    ]
                },
                "StringEquals": {
                    "ec2:ResourceTag/BedrockManaged": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": [
                        "CreateNetworkInterface"
                    ]
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "BedrockManaged",
                        "BedrockModelCustomizationJobArn"
                    ]
                }
            }
        }
    ]
}
```

------

### Hinzufügen einer VPC-Konfiguration bei der Übermittlung eines Modellanpassungsauftrags
<a name="vpc-config"></a>

Nachdem Sie die VPC und die erforderlichen Rollen und Berechtigungen wie in den vorherigen Abschnitten beschrieben konfiguriert haben, können Sie einen Modellanpassungsauftrag erstellen, der diese VPC verwendet.

Wenn Sie die VPC-Subnetze und Sicherheitsgruppen für einen Job angeben, erstellt Amazon Bedrock *elastische Netzwerkschnittstellen* (ENIs), die Ihren Sicherheitsgruppen in einem der Subnetze zugeordnet sind. ENIs Erlauben Sie dem Amazon Bedrock-Job, eine Verbindung zu Ressourcen in Ihrer VPC herzustellen. Weitere Informationen dazu ENIs finden Sie unter [Elastic Network Interfaces](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) im *Amazon VPC-Benutzerhandbuch*. Amazon Bedrock-Tags ENIs , die es mit `BedrockManaged` und `BedrockModelCustomizationJobArn` tags erstellt.

Wir empfehlen, mindestens ein Subnetz in jeder Availability Zone zur Verfügung zu stellen.

Sie können Sicherheitsgruppen verwenden, um Regeln für die Steuerung des Zugriffs von Amazon Bedrock auf Ihre VPC-Ressourcen festzulegen.

Sie können die VPC entweder in der Konsole oder über die API konfigurieren. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

------
#### [ Console ]

Für die Amazon-Bedrock-Konsole geben Sie VPC-Subnetze und Sicherheitsgruppen im optionalen Abschnitt **VPC-Einstellungen** an, wenn Sie den Modellanpassungsauftrag erstellen. Weitere Informationen zum Konfigurieren von Aufträgen finden Sie unter [Reichen Sie einen Auftrag zur Modellanpassung zur Feinabstimmung ein](model-customization-submit.md).

**Anmerkung**  
Bei Aufträgen, die eine VPC-Konfiguration beinhalten, kann die Konsole nicht automatisch eine Servicerolle für Sie erstellen. Folgen Sie der Anleitung unter [Erstellen einer Servicerolle für die Modellanpassung](model-customization-iam-role.md), um eine benutzerdefinierte Rolle zu erstellen.

------
#### [ API ]

Wenn Sie eine [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)Anfrage einreichen, können Sie einen `VpcConfig` als Anforderungsparameter angeben, um die zu verwendenden VPC-Subnetze und Sicherheitsgruppen anzugeben, wie im folgenden Beispiel.

```
"vpcConfig": { 
    "securityGroupIds": [
        "${{sg-0123456789abcdef0}}"
    ],
    "subnets": [
        "${{subnet-0123456789abcdef0}}",
        "${{subnet-0123456789abcdef1}}",
        "${{subnet-0123456789abcdef2}}"
    ]
}
```

------

# Überwachen Ihres Modellanpassungsauftrags
<a name="model-customization-monitor"></a>

Sie können den Fortschritt Ihres Modellanpassungsauftrags verfolgen. Jeder Auftrag besteht aus den folgenden Ereignissen:
+ **Validierung**
+ **Datenverarbeitung**
+ **Training**

Wenn Ihr Auftrag aus irgendeinem Grund fehlschlägt, können Sie sehen, an welcher Stelle des Prozesses der Fehler aufgetreten ist. Verwenden Sie diese Informationen, um das [Problem zu beheben](fine-tuning-troubleshooting.md).

------
#### [ Console ]

**So überwachen Sie den Status Ihrer Feinabstimmungsaufträge**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie den Auftrag aus der Tabelle **Aufträge** aus, um die auftragsbezogenen Details zu sehen.

------
#### [ API ]

Um Informationen zu all Ihren Aufträgen zur Modellanpassung aufzulisten, senden Sie eine [ListModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListModelCustomizationJobs.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Filter, [ListModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListModelCustomizationJobs.html)die Sie verwenden können, finden Sie unter.

Um den Status eines Auftrags zur Modellanpassung zu überwachen, senden Sie eine [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)Anfrage mit einem [Amazon Bedrock-Steuerebenen-Endpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) mit dem `jobArn` des Auftrags.

Um alle Tags für einen Auftrag zur Modellanpassung aufzulisten, senden Sie eine [ListTagsForResource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListTagsForResource.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) und geben Sie den Amazon-Ressourcennamen (ARN) des Jobs an.

[Siehe Codebeispiele](model-customization-code-samples.md)

------

Sie können Modellanpassungsaufträge auch mit Amazon überwachen EventBridge. Weitere Informationen finden Sie unter [Überwachen Sie Änderungen des Jobstatus von Amazon Bedrock mithilfe von Amazon EventBridgeÜberwachen Sie die Änderungen der Ereignisse](monitoring-eventbridge.md).

# Analysieren der Ergebnisse eines Modellanpassungsauftrags
<a name="model-customization-analyze"></a>

Wenn Ihre Modellanpassungsauftrag abgeschlossen ist, können Sie die Ergebnisse des Anpassungsprozesses analysieren. Die folgenden Artefakte werden in den S3-Bucket hochgeladen, den Sie bei der Erstellung Ihres Modellanpassungsauftrags angeben:
+ **Trainings- und Validierungsmetriken** – Amazon Bedrock stellt Trainingsmetriken für alle Modellanpassungsaufträge bereit. Validierungsmetriken sind auch in einigen Modellanpassungsaufträgen enthalten.
+ **Synthetische Daten (nur Modelldestillation)** – Beispiel-Prompts aus dem synthetischen Datensatz, den Amazon Bedrock anhand Ihres Lehrermodells generiert und zur Feinabstimmung Ihres Schülermodells während des [Destillationauftrags](submit-model-distillation-job.md) verwendet hat. Diese Informationen können Ihnen helfen, besser zu verstehen und zu überprüfen, wie Ihr benutzerdefiniertes Modell trainiert wurde.
+ **Prompt-Erkenntnisse (nur Modelldestillation)** – Ein Bericht über Eingabe-Prompts, die während der Destillation akzeptiert und abgelehnt wurden (zusammen der Angabe eines Grunds). Diese Informationen können Ihnen helfen, Ihre Eingabe-Prompts zu korrigieren und zu verfeinern, falls Sie einen weiteren Destillationsauftrag ausführen müssen.

 Amazon Bedrock speichert Ihre maßgeschneiderten Modelle in einem AWS verwalteten Speicher, der auf Sie zugeschnitten ist. AWS-Konto

Sie können Ihr Modell auch bewerten, indem Sie einen Auftrag zur Modellbewertung ausführen. Weitere Informationen finden Sie unter [Die Leistung von Amazon-Bedrock-Ressourcen bewerten](evaluation.md).

Das folgende Beispiel zeigt, wo Sie Trainings- und Validierungsmetriken in einem S3-Bucket finden können:

```
- model-customization-job-training-job-id/
    - training_artifacts/
        - step_wise_training_metrics.csv
    - validation_artifacts/
        - post_fine_tuning_validation/
            - validation_metrics.csv
```

Verwenden Sie die Dateien `step_wise_training_metrics.csv` und `validation_metrics.csv`, um den Modellanpassungsauftrag zu analysieren und das Modell bei Bedarf anzupassen.

Die Datei `step_wise_training_metrics.csv` enthält die folgenden Spalten.
+ `step_number` – Der Schritt im Trainingsprozess. Beginnt bei 0.
+ `epoch_number` – Die Epoche im Trainingsprozess
+ `training_loss` – Gibt an, wie gut das Modell zu den Trainingsdaten passt. Ein niedrigerer Wert bedeutet eine bessere Eignung.
+ `perplexity` – Gibt an, wie gut das Modell eine Sequenz von Token vorhersagen kann. Ein niedrigerer Wert bedeutet eine bessere Prognosefähigkeit.

Die Spalten in der Datei `validation_metrics.csv` sind dieselben wie in der Trainingsdatei, außer dass `validation_loss` (wie gut das Modell zu den Validierungsdaten passt) anstelle von `training_loss` angezeigt wird.



Sie können die Ausgabedateien finden, indem Sie die Datei [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3) direkt öffnen oder indem Sie in Ihren Modelldetails nach dem Link zum Ausgabeordner suchen. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie dann die Schritte:

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie auf der Registerkarte **Modelle** ein Modell aus, um dessen Details anzuzeigen. Den **Auftragsnamen** finden Sie im Abschnitt **Modelldetails**.

1. Zum Anzeigen der S3-Ausgabedateien wählen Sie den **S3-Speicherort** im Abschnitt **Ausgabedaten** aus.

1. Suchen Sie die Trainings- und Validierungsmetrikdateien in dem Ordner, dessen Name mit dem **Auftragsnamen** für das Modell übereinstimmt.

------
#### [ API ]

Um Informationen zu all Ihren benutzerdefinierten Modellen aufzulisten, senden Sie eine Anfrage [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)(siehe Link für Anfrage- und Antwortformate und Felddetails) mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Filter, [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)die Sie verwenden können, finden Sie unter.

Um alle Tags für ein benutzerdefiniertes Modell aufzulisten, senden Sie eine [ListTagsForResource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListTagsForResource.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) und geben Sie den Amazon-Ressourcennamen (ARN) des benutzerdefinierten Modells an.

Um den Status eines Auftrags zur Modellanpassung zu überwachen, senden Sie eine Anfrage [GetCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModel.html)(siehe Link für Anfrage- und Antwortformate und Felddetails) mit einem [Amazon Bedrock-Steuerebenen-Endpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) mit dem`modelIdentifier`, was einer der folgenden ist.
+ Der Name, den Sie dem Modell gegeben haben
+ Der ARN des Modells.

Sie können das `trainingMetrics` und `validationMetrics` für einen Auftrag zur Modellanpassung entweder in der [GetCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModel.html)Antwort [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)oder sehen.

Zum Herunterladen der Dateien mit den Trainings- und Validierungsmetriken folgen Sie den Schritten unter [Herunterladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html). Verwenden Sie den S3-URI, den Sie in `outputDataConfig` angegeben haben.

[Siehe Codebeispiele](model-customization-code-samples.md)

------

# Stoppen eines Modellanpassungsauftrags
<a name="model-customization-stop"></a>

Sie können einen Auftrag zur Anpassung eines Amazon-Bedrock-Modells beenden, während er in Bearbeitung ist. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

**Warnung**  
Einen beendeten Auftrag können Sie nicht mehr fortsetzen. Amazon Bedrock berechnet Gebühren für die Token, mit denen das Modell trainiert wurde, bevor Sie den Auftrag beendet haben. Amazon Bedrock erstellt kein benutzerdefiniertes Zwischenmodell für einen beendeten Auftrag.

------
#### [ Console ]

**Stoppen eines Modellanpassungsauftrags**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie auf der Registerkarte **Trainingsjobs** das Optionsfeld neben dem Auftrag aus, den Sie anhalten möchten, oder wählen Sie den entsprechenden Auftrag aus, um zur Detailseite zu gelangen.

1. Wählen Sie die Schaltfläche **Auftrag beenden** aus. Sie können einen Auftrag nur anhalten, wenn der Status `Training` lautet.

1. Es erscheint ein modales Fenster, das Sie darauf hinweist, dass Sie den Trainingsjob nicht mehr fortsetzen können, nachdem Sie ihn beendet haben. Wählen Sie zur Bestätigung **Auftrag beenden** aus.

------
#### [ API ]

Um einen Modellierungsanpassungsauftrag zu beenden, senden Sie eine Anfrage [StopModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_StopModelCustomizationJob.html)(siehe Link für Anfrage- und Antwortformate und Felddetails) mit einem [Amazon Bedrock-Steuerebenen-Endpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) und verwenden Sie dabei den `jobArn` Namen des Jobs.

Sie können einen Auftrag nur anhalten, wenn der Status `IN_PROGRESS` lautet. Überprüfen Sie das `status` mit einer [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)Anfrage. Das System markiert den Auftrag zum Beenden und legt den Status auf `STOPPING` fest. Sobald der Auftrag gestoppt ist, lautet der Status `STOPPED`.

[Siehe Codebeispiele](model-customization-code-samples.md)

------

# Anzeigen von Details zu einem benutzerdefinierten Modell
<a name="model-customization-view"></a>

Wenn Sie Details zu Ihrem benutzerdefinierten Modell anzeigen möchten, wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und folgen Sie dann den nachstehenden Schritten:

------
#### [ Console ]

**So zeigen Sie Informationen zu einem benutzerdefinierten Modell an**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie im Abschnitt **Modelle** ein Modell aus.

1. Sehen Sie sich die Details für die benutzerdefinierte Modellkonfiguration und dazu, wie sie angepasst wurde.

------
#### [ API ]

Um Informationen über ein bestimmtes benutzerdefiniertes Modell abzurufen, senden Sie eine [GetCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetCustomModel.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Geben Sie entweder den Namen des benutzerdefinierten Modells oder seinen ARN als `modelIdentifier` an.

Um Informationen zu allen benutzerdefinierten Modellen in einem Konto aufzulisten, senden Sie eine [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Sie können einen der folgenden optionalen Parameter angeben, um die Anzahl der zurückgegebenen Ergebnisse zu steuern:


****  

| Feld | Kurzbeschreibung | 
| --- | --- | 
| maxResults | Hierbei handelt es sich um die maximale Anzahl der Ergebnisse, die in einer Antwort zurückzugeben sind. | 
| nextToken | Wenn die Anzahl der Ergebnisse die Anzahl übersteigt, die Sie im Feld maxResults angegeben haben, gibt die Antwort einen nextToken-Wert zurück. Senden Sie den nextToken-Wert in einer weiteren Anforderung, um den nächsten Ergebnisstapel zu sehen. | 

Weitere optionale Parameter, die Sie zum Sortieren und Filtern der Ergebnisse angeben können, finden Sie unter [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html).

Um alle Tags für ein benutzerdefiniertes Modell aufzulisten, senden Sie eine [ListTagsForResource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListTagsForResource.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) und geben Sie den Amazon-Ressourcennamen (ARN) des benutzerdefinierten Modells an.

------

# Einrichten von Inferenz für ein benutzerdefiniertes Modell
<a name="model-customization-use"></a>

Nach der Erstellung eines benutzerdefinierten Modells können Sie die Inferenz mit einer der folgenden Optionen einrichten:
+ **Bereitgestellten Durchsatz erwerben** – Erwerben Sie bereitgestellten Durchsatz für Ihr Modell, um dedizierte Rechenkapazität mit garantiertem Durchsatz für gleichbleibende Leistung und geringere Latenz einzurichten. 

  Weitere Informationen zu bereitgestelltem Durchsatz finden Sie unter [Erhöhen Sie die Kapazität für den Modellaufruf mit Provisioned Throughput in Amazon Bedrock](prov-throughput.md). Weitere Informationen zur Verwendung von benutzerdefinierten Modellen mit bereitgestelltem Durchsatz finden Sie unter [Erwerben von bereitgestelltem Durchsatz für ein benutzerdefiniertes Modell](custom-model-use-pt.md).
+ **Benutzerdefiniertes Modell für On-Demand-Inferenz bereitstellen** – Zum Einrichten von On-Demand-Inferenz stellen Sie das Modell mit einer benutzerdefinierten Modellbereitstellung bereit. Nach der Bereitstellung des Modells können Sie es mithilfe des ARN für die benutzerdefinierte Modellbereitstellung aufrufen. Bei On-Demand-Inferenz zahlen Sie nur für das, was Sie tatsächlich nutzen. Zudem müssen Sie keine bereitgestellten Rechenressourcen einrichten.

  Weitere Informationen zur Bereitstellung benutzerdefinierter Modelle für On-Demand-Inferenz finden Sie unter [Bereitstellen eines benutzerdefinierten Modells für On-Demand-Inferenz](deploy-custom-model-on-demand.md).

**Topics**
+ [Erwerben von bereitgestelltem Durchsatz für ein benutzerdefiniertes Modell](custom-model-use-pt.md)
+ [Bereitstellen eines benutzerdefinierten Modells für On-Demand-Inferenz](deploy-custom-model-on-demand.md)

# Erwerben von bereitgestelltem Durchsatz für ein benutzerdefiniertes Modell
<a name="custom-model-use-pt"></a>

Wenn Sie ein benutzerdefiniertes Modell mit dedizierter Rechenkapazität und garantiertem Durchsatz verwenden möchten, haben Sie die Möglichkeit, dafür bereitgestellten Durchsatz zu kaufen. Anschließend können Sie das resultierende bereitgestellte Modell als Inferenz verwenden. Weitere Informationen zu bereitgestelltem Durchsatz finden Sie unter [Erhöhen Sie die Kapazität für den Modellaufruf mit Provisioned Throughput in Amazon Bedrock](prov-throughput.md).

------
#### [ Console ]

**So erwerben Sie bereitgestellten Durchsatz für ein benutzerdefiniertes Modell**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie auf der Registerkarte **Modelle** das Optionsfeld neben dem Modell aus, für das Sie bereitgestellten Durchsatz kaufen möchten. Oder wählen Sie den Modellnamen aus, um zur Detailseite zu navigieren.

1. Wählen Sie **Bereitgestellten Durchsatz kaufen** aus.

1. Führen Sie die Schritte in der Dokumentation zum bereitgestellten Durchsatz aus, um weitere Informationen zu erhalten.

1. Führen Sie nach dem Kauf von bereitgestelltem Durchsatz für das benutzerdefinierte Modell die Schritte in der Dokumentation zur Nutzung des bereitgestellten Durchsatzes aus.

Wenn Sie einen Vorgang ausführen, der die Verwendung benutzerdefinierter Modelle unterstützt, wird Ihr benutzerdefiniertes Modell als Option im Menü zur Modellauswahl angezeigt.

------
#### [ API ]

Um Provisioned Throughput für ein benutzerdefiniertes Modell zu erwerben, folgen Sie den Schritten in der Dokumentation zum bereitgestellten Durchsatz, um eine Anfrage [CreateProvisionedModelThroughput](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateProvisionedModelThroughput.html)(siehe Link für Anfrage- und Antwortformate und Felddetails) mit einem [Amazon Bedrock Control](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) Plane-Endpunkt zu senden. Verwenden Sie den Namen oder ARN des benutzerdefinierten Modells als `modelId`. Als Antwort wird eine zurückgegeben`provisionedModelArn`, die Sie als Antwort verwenden können, `modelId` wenn Sie eine [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)Oder-Anfrage stellen. [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)

[Siehe Codebeispiele](model-customization-code-samples.md)

------

# Bereitstellen eines benutzerdefinierten Modells für On-Demand-Inferenz
<a name="deploy-custom-model-on-demand"></a>

 Nachdem Sie ein benutzerdefiniertes Modell mit einem Modellanpassungsjob erstellt oder ein SageMaker KI-trainiertes benutzerdefiniertes Amazon Nova Modell importiert haben, können Sie On-Demand-Inferenz für das Modell einrichten. Bei On-Demand-Inferenz zahlen Sie nur für das, was Sie tatsächlich nutzen. Zudem müssen Sie keine bereitgestellten Rechenressourcen einrichten. 

Um On-Demand-Inferenz für ein benutzerdefiniertes Modell einzurichten, stellen Sie es mit einer benutzerdefinierten Modellbereitstellung bereit. Nach Bereitstellung des benutzerdefinierten Modells verwenden Sie den Amazon-Ressourcennamen (ARN) der Bereitstellung als Parameter `modelId`, wenn Sie Prompts senden und Antworten mit Modellinferenz generieren.

 Weitere Informationen zur Preisgestaltung für On-Demand-Inferenz finden Sie unter [Amazon Bedrock – Preise](https://aws.amazon.com/bedrock/pricing). Sie können ein benutzerdefiniertes Modell für On-Demand-Inferenz in den folgenden Regionen bereitstellen (weitere Informationen zu den in Amazon Bedrock unterstützten Regionen finden Sie unter [Amazon-Bedrock-Endpunkte und -Kontingente](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)): 
+ USA Ost (Nord-Virginia)
+ USA West (Oregon)

## Voraussetzungen für die Bereitstellung eines benutzerdefinierten Modells für On-Demand-Inferenz
<a name="custom-model-inference-prerequisites"></a>

Vergewissern Sie sich, dass die folgenden Voraussetzung erfüllt sind, damit Sie ein benutzerdefiniertes Modell für On-Demand-Inferenz bereitstellen können:
+ Sie müssen die Region USA Ost (Nord-Virginia) oder USA West (Oregon) verwenden.
+ Sie müssen das Modell am oder nach dem 16.07.2025 anpassen. Informationen zu unterstützten Modellen finden Sie unter [Unterstützte Basismodelle](#custom-model-inference-supported-models).
+ Ihr Konto muss über die Berechtigung zum Zugriff auf das bereitzustellende Modell verfügen. Weitere Informationen zum Zugriff und zur Sicherheit bei der Modellanpassung finden Sie unter [Zugriff und Sicherheit bei der Modellanpassung](custom-model-job-access-security.md).
+ Wenn das Modell mit einem AWS KMS Schlüssel verschlüsselt ist, benötigen Sie die Erlaubnis, diesen Schlüssel zu verwenden. Weitere Informationen finden Sie unter [Verschlüsselung benutzerdefinierter Modelle](encryption-custom-job.md).

## Unterstützte Basismodelle
<a name="custom-model-inference-supported-models"></a>

Sie können On-Demand-Inferenz für die folgenden Basismodelle einrichten:
+ Amazon Nova Lite
+ Amazon Nova Micro
+ Amazon Nova Pro
+ Meta Llama 3.3 70B Instruct

## Bereitstellen eines benutzerdefinierten Modells
<a name="deploy-custom-model"></a>

Sie können ein benutzerdefiniertes Modell mit der Amazon Bedrock-Konsole, AWS Command Line Interface, oder AWS SDKs bereitstellen. Informationen zur Verwendung der Bereitstellung für Inferenz finden Sie unter [Verwenden einer Bereitstellung für die On-Demand-Inferenz](#use-custom-model-on-demand).

------
#### [ Console ]

Sie stellen ein benutzerdefiniertes Modell auf der Seite **Benutzerdefinierte Modelle** wie folgt bereit. Sie können ein Modell auch über die **Benutzerdefiniertes On-Demand-Modell** mit denselben Feldern bereitstellen. Diese Seite finden Sie, indem Sie im Navigationsbereich unter **Inferieren** die Option **Benutzerdefiniertes On-Demand-Modell** auswählen.

**So stellen Sie ein benutzerdefinierten Modell bereit**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie auf der Registerkarte **Modelle** das Optionsfeld für das Modell aus, das Sie bereitstellen möchten.

1. Wählen Sie **Inferenz einrichten** und anschließend **Auf Abruf bereitstellen** aus.

1. Geben Sie unter **Einzelheiten zur Bereitstellung** die folgenden Informationen an:
   + **Name der Bereitstellung** (erforderlich) – Geben Sie einen eindeutigen Namen für die Bereitstellung ein.
   + **Beschreibung** (optional) – Geben Sie eine Beschreibung der Bereitstellung ein.
   + **Tags** (optional) – Fügen Sie Tags für die Kostenzuordnung und das Ressourcenmanagement hinzu.

1. Wählen Sie **Erstellen** aus. Wenn der Status der Bereitstellung `Active` lautet, ist das benutzerdefinierte Modell bereit für On-Demand-Inferenz. Weitere Informationen zu den benutzerdefinierten Modellen finden Sie unter [Verwenden einer Bereitstellung für die On-Demand-Inferenz](#use-custom-model-on-demand).

------
#### [ CLI ]

Um ein benutzerdefiniertes Modell für On-Demand-Inferenzen mithilfe von bereitzustellen AWS Command Line Interface, verwenden Sie den `create-custom-model-deployment` Befehl mit dem Amazon-Ressourcennamen (ARN) Ihres benutzerdefinierten Modells. Dieser Befehl verwendet die [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html)API-Operation. Die Antwort enthält den ARN der Bereitstellung. Wenn die Bereitstellung aktiv ist, verwenden Sie diesen ARN als `modelId` beim Stellen von Inferenzanforderungen. Informationen zur Verwendung der Bereitstellung für Inferenz finden Sie unter [Verwenden einer Bereitstellung für die On-Demand-Inferenz](#use-custom-model-on-demand).

```
aws bedrock create-custom-model-deployment \
--model-deployment-name "Unique name" \
--model-arn "Custom Model ARN" \
--description "Deployment description" \
--tags '[
    {
        "key": "Environment",
        "value": "Production"
    },
    {
        "key": "Team",
        "value": "ML-Engineering"
    },
    {
        "key": "Project",
        "value": "CustomerSupport"
    }
]' \
--client-request-token "unique-deployment-token" \
--region region
```

------
#### [ API ]

Um ein benutzerdefiniertes Modell für On-Demand-Inferenzen bereitzustellen, verwenden Sie den [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html)API-Vorgang mit dem Amazon-Ressourcennamen (ARN) Ihres benutzerdefinierten Modells. Die Antwort enthält den ARN der Bereitstellung. Wenn die Bereitstellung aktiv ist, verwenden Sie diesen ARN als `modelId` beim Stellen von Inferenzanforderungen. Informationen zur Verwendung der Bereitstellung für Inferenz finden Sie unter [Verwenden einer Bereitstellung für die On-Demand-Inferenz](#use-custom-model-on-demand).

Der folgende Code zeigt, wie Sie das SDK for Python (Boto3) verwenden, um ein benutzerdefiniertes Modell bereitzustellen.

```
def create_custom_model_deployment(bedrock_client):
    """Create a custom model deployment
    Args:
        bedrock_client: A boto3 Amazon Bedrock client for making API calls

    Returns:
        str: The ARN of the new custom model deployment

    Raises:
        Exception: If there is an error creating the deployment
    """

    try:
        response = bedrock_client.create_custom_model_deployment(
            modelDeploymentName="Unique deployment name",
            modelArn="Custom Model ARN",
            description="Deployment description",
            tags=[
                {'key': 'Environment', 'value': 'Production'},
                {'key': 'Team', 'value': 'ML-Engineering'},
                {'key': 'Project', 'value': 'CustomerSupport'}
            ],
            clientRequestToken=f"deployment-{uuid.uuid4()}"
        )

        deployment_arn = response['customModelDeploymentArn']
        print(f"Deployment created: {deployment_arn}")
        return deployment_arn

    except Exception as e:
        print(f"Error creating deployment: {str(e)}")
        raise
```

------

## Verwenden einer Bereitstellung für die On-Demand-Inferenz
<a name="use-custom-model-on-demand"></a>

Nach Bereitstellung des benutzerdefinierten Modells verwenden Sie den Amazon-Ressourcennamen (ARN) der Bereitstellung als Parameter `modelId`, wenn Sie Prompts senden und Antworten mit Modellinferenz generieren.

Informationen zum Anfordern von Inferenzen finden Sie in den folgenden Themen:
+ [So senden Sie Prompts und generieren Antworten mithilfe der Modellinferenz](inference.md)
+ [Voraussetzungen für die Ausführung der Modellinferenz](inference-prereq.md)
+ [So reichen Sie mithilfe der API Prompts ein und generieren Antworten](inference-api.md)

## Löschen einer benutzerdefinierten Modellbereitstellung
<a name="delete-custom-model-deployment"></a>

Wenn Sie Ihr Modell nicht mehr für On-Demand-Inferenz verwenden, können Sie die Bereitstellung löschen. Nachdem Sie die Bereitstellung gelöscht haben, können Sie sie nicht für On-Demand-Inferenz verwenden. Durch das Löschen der Bereitstellung wird das zugrunde liegende benutzerdefinierte Modell jedoch nicht gelöscht.

Sie können eine benutzerdefinierte Modellbereitstellung mit der Amazon Bedrock-Konsole, AWS Command Line Interface, oder AWS SDKs löschen.

**Wichtig**  
Das Löschen einer Bereitstellung eines benutzerdefinierten Modells kann nicht rückgängig gemacht werden. Stellen Sie sicher, dass Sie die Bereitstellung nicht mehr benötigen, bevor Sie mit dem Löschen fortfahren. Wenn Sie das benutzerdefinierte Modell erneut für On-Demand-Inferenz verwenden müssen, müssen Sie eine neue Bereitstellung erstellen.

------
#### [ Console ]

**So löschen Sie eine benutzerdefinierte Modellbereitstellung**

1. Wählen Sie im Navigationsbereich unter **Inferieren** die Option **Benutzerdefiniertes On-Demand-Modell** aus.

1. Wählen Sie die benutzerdefinierte Modellbereitstellung aus, die Sie löschen möchten.

1. Wählen Sie **Löschen** aus.

1. Geben Sie in das Bestätigungsfeld den Bereitstellungsnamen ein, um das Löschen zu bestätigen.

1. Um die Löschung zu bestätigen, klicken Sie auf **Löschen**.

------
#### [ CLI ]

Um eine benutzerdefinierte Modellbereitstellung mithilfe von zu löschen AWS Command Line Interface, verwenden Sie den `delete-custom-model-deployment` Befehl mit Ihrer Bereitstellungs-ID. Dieser Befehl verwendet den [DeleteCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html)API-Vorgang. 

```
aws bedrock delete-custom-model-deployment \
--custom-model-deployment-identifier "deployment-arn-or-name" \
--region region
```

------
#### [ API ]

Um eine benutzerdefinierte Modellbereitstellung programmgesteuert zu löschen, verwenden Sie den [DeleteCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html)API-Vorgang mit dem Amazon-Ressourcennamen (ARN) oder Namen der Bereitstellung. Der folgende Code zeigt, wie Sie das SDK for Python (Boto3) einsetzen, um eine benutzerdefinierte Modellbereitstellung zu löschen.

```
def delete_custom_model_deployment(bedrock_client):
    """Delete a custom model deployment

    Args:
        bedrock_client: A boto3 Amazon Bedrock client for making API calls

    Returns:
        dict: The response from the delete operation

    Raises:
        Exception: If there is an error deleting the deployment
    """

    try:
        response = bedrock_client.delete_custom_model_deployment(
            customModelDeploymentIdentifier="Deployment identifier"
        )

        print("Deleting deployment...")
        return response

    except Exception as e:
        print(f"Error deleting deployment: {str(e)}")
        raise
```

------

# Freigeben eines Modells für ein anderes Konto
<a name="share-model"></a>

Standardmäßig sind Modelle nur in der Region und dem Konto verfügbar, in dem sie erstellt wurden. Amazon Bedrock bietet Ihnen die Möglichkeit, benutzerdefinierte Modelle für andere Konten freizugeben, damit diese sie verwenden können. Der allgemeine Prozess, um ein Modell für ein anderes Konto freizugeben, sieht wie folgt aus:

1. Eröffnen Sie ein AWS Organizations Konto, erstellen Sie eine Organisation und fügen Sie der Organisation das Konto hinzu, das das Modell gemeinsam nutzen soll, und das Konto, das das Modell erhalten soll.

1. Richten Sie IAM-Berechtigungen für Folgendes ein:
   + Das Konto, das das Modell freigeben wird
   + Das Modell, das gemeinsam genutzt wird

1. Teilen Sie das Modell mit Hilfe von AWS Resource Access Manager.

1. Das Empfängerkonto kopiert das Modell in die Region, in der es verwendet werden soll.

**Topics**
+ [Unterstützte Regionen und Modelle für das Teilen von Modellen](share-model-support.md)
+ [Erfüllen der Voraussetzungen für das Teilen von Modellen](share-model-prereq.md)
+ [Freigeben eines Modells für ein anderes Konto](share-model-share.md)
+ [Anzeigen von Informationen über geteilte Modelle](share-model-view.md)
+ [Aktualisieren des Zugriffs auf ein geteiltes Modell](share-model-edit.md)
+ [Widerrufen des Zugriffs auf ein geteiltes Modell](share-model-revoke.md)

# Unterstützte Regionen und Modelle für das Teilen von Modellen
<a name="share-model-support"></a>

Die folgende Liste enthält Links zu allgemeinen Informationen über den regionalen und Modell-Support in Amazon Bedrock:
+ Eine Liste der in Amazon Bedrock unterstützten Regionscodes und Endpunkte finden Sie unter [Endpunkte und Kontingente von Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bedrock_region).
+ Eine Liste der Amazon Bedrock-Modelle IDs , die beim Aufrufen von Amazon Bedrock-API-Operationen verwendet werden können, finden Sie unter. [Unterstützte Basismodelle in Amazon Bedrock](models-supported.md)

Die folgende Tabelle zeigt die Modelle, die Sie teilen können, und die Regionen, aus denen Sie sie teilen können:


| Anbieter | Modell | Modell-ID | Unterstützung für Modelle mit nur einer Region | 
| --- | --- | --- | --- | 
| Amazon | Titan Multimodal Embeddings G1 | Amazon. titan-embed-image-v1 |  ap-south-1 ap-southeast-2 eu-west-1 eu-west-3 us-east-1 us-west-2  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0 |  ap-south-1 ap-southeast-2 eu-west-1 eu-west-2 us-east-1 us-west-2  | 

**Anmerkung**  
Benutzerdefinierte Modelle von Amazon Titan Text Premier können nicht geteilt werden, da sie nicht in [eine Region kopiert](copy-model.md) werden können.

# Erfüllen der Voraussetzungen für das Teilen von Modellen
<a name="share-model-prereq"></a>

Amazon Bedrock ist mit den Services [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/) und [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/) verbunden, um das Teilen von Modellen zu ermöglichen. Bevor Sie ein Modell mit einem anderen Konto teilen können, müssen Sie die folgenden Voraussetzungen erfüllen:

## Erstellen Sie eine Organisation mit AWS Organizations und fügen Sie den Modellinhaber und den Empfänger hinzu
<a name="share-model-prereq-orgs"></a>

Damit ein Konto ein Modell mit einem anderen Konto gemeinsam nutzen kann, müssen die beiden Konten Teil derselben Organisation sein AWS Organizations und die gemeinsame Nutzung von Ressourcen AWS RAM muss für die Organisation aktiviert sein. Zum Einrichten einer Organisation und Einladen von Konten führen Sie die folgenden Schritte aus:

1. Aktivieren Sie die gemeinsame Nutzung von Ressourcen über AWS RAM in, AWS Organizations indem Sie die Schritte unter [Aktivieren der gemeinsamen Nutzung von Ressourcen AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) im AWS RAM Benutzerhandbuch ausführen.

1. Um eine Organisation zu erstellen, AWS Organizations folgen Sie den Schritten unter [Organisation erstellen](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_create.html) im AWS Organizations Benutzerhandbuch.

1. Laden Sie das Konto ein, mit dem Sie das Modell teilen möchten, indem Sie die Schritte unter [Einladen einer AWS-Konto Person zum Beitritt zu Ihrer Organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_invites.html) im AWS Organizations Benutzerhandbuch befolgen.

1. Der Administrator des Kontos, an das Sie eine Einladung gesendet haben, muss die Einladung annehmen. Folgen Sie dazu den Schritten unter [Annehmen oder Ablehnen einer Einladung einer Organisation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_invites.html#orgs_manage_accounts_accept-decline-invite).

## Hinzufügen einer identitätsbasierten Richtlinie zu einer IAM-Rolle, damit sie ein Modell teilen kann
<a name="share-model-prereq-ibp"></a>

Damit eine Rolle über Berechtigungen zum Teilen eines Modells verfügt, muss sie über Berechtigungen sowohl für Amazon Bedrock als auch für AWS RAM Aktionen verfügen. Fügen Sie der Rolle die folgenden Richtlinien hinzu:

1. Um einer Rolle Berechtigungen zur Verwaltung der gemeinsamen Nutzung eines Modells mit einem anderen Konto zu erteilen AWS Resource Access Manager, fügen Sie der Rolle die folgende identitätsbasierte Richtlinie hinzu, um minimale Berechtigungen bereitzustellen:

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
              "Sid": "ShareResources",
              "Effect": "Allow",
              "Action": [
                  "ram:CreateResourceShare",
                  "ram:UpdateResourceShare",
                  "ram:DeleteResourceShare",
                  "ram:AssociateResourceShare",
                  "ram:DisassociateResourceShare",
                  "ram:GetResourceShares"
              ],
              "Resource": [
                  "arn:aws:bedrock:us-east-1::foundation-model/model-id"
              ]
           }
       ]
   }
   ```

------

   *\$1\$1model-arn\$1*Ersetzen Sie es durch den Amazon-Ressourcennamen (ARN) des Modells, das Sie teilen möchten. Fügen Sie der Liste `Resource` nach Bedarf Modelle hinzu. Sie können die [Aktionen, Ressourcen und Bedingungsschlüssel für](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceaccessmanagerram.html) die Aktionen überprüfen AWS Resource Access Manager und die AWS RAM Aktionen, die die Rolle ausführen kann, nach Bedarf ändern.
**Anmerkung**  
Sie können der Rolle auch die restriktivere [AWS ResourceManagerFullAccess verwaltete Richtlinie](https://docs.aws.amazon.com/ram/latest/userguide/security-iam-managed-policies.html#security-iam-managed-policies-AWSResourceAccessManagerFullAccess) zuordnen.

1. Vergewissern Sie sich, dass der Rolle die [AmazonBedrockFullAccess Richtlinie](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess) angehängt ist. Ist dies nicht der Fall, müssen Sie der Rolle außerdem die folgende Richtlinie beifügen, damit sie bei Bedarf Modelle gemeinsam nutzen (ersetzen*\$1\$1model-arn\$1*) kann:

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ShareCustomModels",
               "Effect": "Allow",
               "Action": [
                   "bedrock:GetCustomModel",
                   "bedrock:ListCustomModels",
                   "bedrock:PutResourcePolicy",
                   "bedrock:GetResourcePolicy",
                   "bedrock:DeleteResourcePolicy"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/model-id"
               ]
           }
       ]
   }
   ```

------

## (Optional) Richten Sie KMS-Schlüsselrichtlinien ein, um ein Modell zu verschlüsseln und dessen Entschlüsselung zu ermöglichen
<a name="share-model-prereq-kms"></a>

**Anmerkung**  
Überspringen Sie diese Voraussetzung, wenn das Modell, das Sie teilen, nicht mit einem kundenseitig verwalteten Schlüssel verschlüsselt ist und Sie auch nicht vorhaben, es zu verschlüsseln.

Wenn Sie ein Modell mit einem kundenseitig verwalteten Schlüssel verschlüsseln müssen, bevor Sie es mit einem anderen Konto teilen, fügen Sie dem KMS-Schlüssel, mit dem Sie das Modell verschlüsseln, Berechtigungen an, indem Sie die Schritte unter [Schlüsselberechtigungen für die Verschlüsselung benutzerdefinierter Modelle einrichten](encryption-custom-job.md#encryption-cm) befolgen.

Wenn das Modell, das Sie mit einem anderen Konto teilen, mit einem kundenseitig verwalteten Schlüssel verschlüsselt ist, fügen Sie dem KMS-Schlüssel, der das Modell verschlüsselt hat, Berechtigungen an, damit das Empfängerkonto es entschlüsseln kann. Gehen Sie dazu wie unter beschrieben [Schlüsselberechtigungen zum Kopieren benutzerdefinierter Modelle einrichten](encryption-custom-job.md#encryption-copy) vor.

# Freigeben eines Modells für ein anderes Konto
<a name="share-model-share"></a>

Wenn Sie [die Voraussetzungen erfüllt](share-model-prereq.md) haben, können Sie ein Modell freigeben. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie dann die Schritte:

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie die Schaltfläche neben dem Modell aus, das Sie freigeben möchten. Wählen Sie die drei Punkte (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/images/icons/vertical-ellipsis.png)) und danach die Option **Teilen** aus.

1. Gehen Sie im Abschnitt **Details zum Teilen von Modellen** wie folgt vor:

   1. Geben Sie im Feld **Name des geteilten Modells** einen Namen für das geteilte Modell ein.

   1. Geben Sie im Feld **Empfängerkonto-ID** die ID des Kontos an, das das Modell erhalten soll.

   1. (Optional) Erweitern Sie den Abschnitt **Tags**, um Tags hinzuzufügen. Weitere Informationen finden Sie unter [Markieren von Amazon-Bedrock-Ressourcen](tagging.md).

1. Wählen Sie **Modell teilen** aus. Nachdem der Empfänger das Modell in [Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) akzeptiert hat, wird das Modell in seiner Liste der benutzerdefinierten Modelle angezeigt.

------
#### [ API ]

[Um ein Modell zu teilen, senden Sie eine [CreateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html)Anfrage mit einem Endpunkt.AWS Resource Access Manager](https://docs.aws.amazon.com/general/latest/gr/ram.html) Geben Sie mindestens die folgenden Felder an:


****  

| Feld | Anwendungsfall | 
| --- | --- | 
| Name | zum Angeben eines Namens für die Ressourcenfreigabe | 
| resourceArns | Um für jedes Modell anzugeben, welches geteilt werden soll. ARNs  | 
| Prinzipale | zum Angeben der Prinzipale, für die das Modell freigegeben werden soll | 

Die [CreateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html)Antwort gibt a zurück`resourceShareArn`, mit der Sie die gemeinsame Nutzung der Ressource verwalten können.

Das Konto, das ein Modell erhält, kann überprüfen, ob ein Modell geteilt wurde, indem es eine [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)Anfrage an einen [Amazon Bedrock-Steuerebenen-Endpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) sendet. Modelle, die geteilt wurden, werden mit dem `shared`-Status `true` angezeigt.

------

Nachdem Sie das Modell geteilt haben, muss der Empfänger des Modells es in eine Region kopieren, um es verwenden zu können. Weitere Informationen finden Sie unter [Kopieren eines benutzerdefinierten oder freigegebenen Modells zur Verwendung in einer Region](copy-model.md).

# Anzeigen von Informationen über geteilte Modelle
<a name="share-model-view"></a>

Wenn Sie erfahren möchten, wie Sie Informationen zu Modellen, die Sie mit anderen Konten geteilt haben, oder zu Modellen, die mit Ihnen geteilt wurden, einsehen können, wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und gehen Sie dann wie folgt vor:

------
#### [ Console ]

**So zeigen Sie Modelle an, die Sie mit anderen Konten geteilt haben**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS RAM Konsole zu [https://console.aws.amazon.com/ram/Hause](https://console.aws.amazon.com/ram/home).

1. Folgen Sie den Schritten unter [Ressourcenfreigaben anzeigen, die Sie in erstellt haben AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-view-rs.html).

**So zeigen Sie Modelle an, die andere Konten mit Ihnen geteilt haben**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Modelle, die von anderen Konten mit Ihnen geteilt wurden, werden auf folgende Weise angezeigt, je nachdem, ob Sie [sie in eine Region kopiert](copy-model.md) haben:

   1. Geteilte Modelle, die Sie noch nicht in eine Region kopiert haben, werden im Abschnitt **Mit Ihnen geteilte Modelle** aufgeführt.

   1. Geteilte Modelle, die in die aktuelle Region kopiert wurden, werden im Abschnitt **Modelle** mit dem **Share-Status** `Shared` aufgeführt.

------
#### [ API ]

Um Informationen zu Modellen einzusehen, die Sie geteilt haben, senden Sie eine [GetResourceShares](https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShares.html)Anfrage mit einem [AWS Resource Access Manager Endpunkt](https://docs.aws.amazon.com/general/latest/gr/ram.html) und geben Sie diesen `SELF` in das Feld ein. `resourceOwner` Sie können die optionalen Felder verwenden, um nach bestimmten Modellen oder Ressourcenfreigaben zu filtern.

Um Informationen zu Modellen anzuzeigen, die mit Ihnen geteilt wurden, senden Sie eine [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) und geben Sie diese `false` mit dem `isOwned` Filter an.

------

# Aktualisieren des Zugriffs auf ein geteiltes Modell
<a name="share-model-edit"></a>

Informationen darüber, wie Sie den Zugriff auf Modelle aktualisieren können, die Sie mit anderen Konten geteilt haben, finden Sie, wenn Sie die Registerkarte für Ihre bevorzugte Methode auswählen und wie folgt vorgehen:

------
#### [ Console ]

**So aktualisieren Sie den Zugriff auf ein Modell, das Sie geteilt haben**

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie im Abschnitt **Modelle** ein Modell aus, für das Sie den Zugriff aktualisieren möchten.

1. Gehen Sie im Abschnitt **Details zum Teilen von Modellen** wie folgt vor:
   + Wenn Sie das Modell mit einem anderen Konto teilen möchten, wählen Sie **Teilen** aus und gehen wie folgt vor:

     1. Gehen Sie im Abschnitt **Details zum Teilen von Modellen** wie folgt vor:

        1. Geben Sie im Feld **Name des geteilten Modells** einen Namen für das geteilte Modell ein.

        1. Geben Sie im Feld **Empfängerkonto-ID** die ID des Kontos an, das das Modell erhalten soll.

        1. (Optional) Erweitern Sie den Abschnitt **Tags**, um Tags hinzuzufügen. Weitere Informationen finden Sie unter [Markieren von Amazon-Bedrock-Ressourcen](tagging.md).

     1. Wählen Sie **Modell teilen** aus. Nachdem der Empfänger das Modell in [Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) akzeptiert hat, wird das Modell in seiner Liste der benutzerdefinierten Modelle angezeigt.
   + Gehen Sie wie folgt vor, um eine Modellfreigabe zu löschen und den Zugriff für die in dieser Modellfreigabe angegebenen Konten zu widerrufen:

     1. Wählen Sie eine Modellfreigabe aus und klicken Sie auf **Geteiltes Modell widerrufen**.

     1. Prüfen Sie die Nachricht, geben Sie **revoke** in das Textfeld ein und wählen Sie **Geteiltes Modell widerrufen** aus, um den Widerruf des Zugriffs zu bestätigen.

------
#### [ API ]

Führen Sie einen der folgenden Schritte aus, um ein Modell mit mehreren Konten zu teilen:
+ [Senden Sie eine [AssociateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_AssociateResourceShare.html)Anfrage mit einem Endpunkt.AWS Resource Access Manager](https://docs.aws.amazon.com/general/latest/gr/ram.html) Geben Sie den Amazon-Ressourcennamen (ARN) der Ressourcenfreigabe in das Feld `resourceShareArn` an und fügen Sie der Liste `principals` die Konten hinzu, mit denen Sie das Modell teilen möchten.
**Anmerkung**  
Sie können auch mehr Modelle mit demselben Konto oder denselben Konten teilen, indem Sie das Modell ARNs an die Liste von `resourceArns` anhängen.
+ Erstellen Sie eine neue Ressourcenfreigabe, indem Sie die Schritte auf der Registerkarte **API** unter [Freigeben eines Modells für ein anderes Konto](share-model-share.md) ausführen.

------

# Widerrufen des Zugriffs auf ein geteiltes Modell
<a name="share-model-revoke"></a>

Informationen darüber, wie Sie den Zugriff auf ein Modell widerrufen können, das Sie geteilt haben, finden Sie, wenn Sie die Registerkarte für Ihre bevorzugte Methode auswählen und wie folgt vorgehen:

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie in der Tabelle **Modelle** das Modell aus, für das Sie den Zugriff widerrufen möchten.

1. Gehen Sie im Abschnitt **Details zum Teilen von Modellen** wie folgt vor, um eine Modellfreigabe zu löschen und den Zugriff für die in dieser Modellfreigabe angegebenen Konten zu widerrufen:

   1. Wählen Sie eine Modellfreigabe aus und klicken Sie auf **Geteiltes Modell widerrufen**.

   1. Prüfen Sie die Nachricht, geben Sie **revoke** in das Textfeld ein und wählen Sie **Geteiltes Modell widerrufen** aus, um den Widerruf des Zugriffs zu bestätigen.

------
#### [ API ]

[Um den Zugriff auf ein Modell von einem Konto aus zu widerrufen, senden Sie eine [DisassociateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_DisassociateResourceShare.html)Anfrage mit einem Endpunkt.AWS Resource Access Manager](https://docs.aws.amazon.com/general/latest/gr/ram.html) Geben Sie den ARN der Freigabe in das Feld `resourceShareArn` und das Konto, dessen Zugriff Sie widerrufen möchten, in der Liste `principals` an.

Um eine Ressourcenfreigabe vollständig zu löschen, senden Sie eine [DeleteResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_DeleteResourceShare.html)Anfrage mit einem [AWS Resource Access Manager Endpunkt](https://docs.aws.amazon.com/general/latest/gr/ram.html). Geben Sie den ARN der Freigabe im `resourceShareArn` an.

------

# Kopieren eines benutzerdefinierten oder freigegebenen Modells zur Verwendung in einer Region
<a name="copy-model"></a>

Standardmäßig sind Modelle nur in der Region und dem Konto verfügbar, in dem sie erstellt wurden. Amazon Bedrock bietet Ihnen die Möglichkeit, einige Modelltypen in andere Regionen zu kopieren. Sie können die folgenden Modelltypen in andere Regionen kopieren:
+ [Maßgeschneiderte Modelle](custom-models.md)
+ [Freigegebene Modelle](share-model.md)

Sie können Modelle kopieren, die in unterstützten Regionen verwendet werden sollen. Wenn ein Modell für Sie von einem anderen Konto freigegeben wurde, müssen Sie es zuerst in eine Region kopieren, um es verwenden zu können. Weitere Informationen zum Freigeben von Modellen für andere Konten und zum Empfangen von Modellen von anderen Konten finden Sie unter [Freigeben eines Modells für ein anderes Konto](share-model.md).

**Topics**
+ [Unterstützte Regionen und Modelle für Modellkopien](copy-model-support.md)
+ [Erfüllen der Voraussetzungen zum Kopieren von Modellen](copy-model-prereq.md)
+ [Kopieren eines Modells in eine Region](copy-model-copy.md)
+ [Anzeigen von Informationen zu Modellkopieraufträgen](copy-model-job-view.md)

# Unterstützte Regionen und Modelle für Modellkopien
<a name="copy-model-support"></a>

Die folgende Liste enthält Links zu allgemeinen Informationen über den regionalen und Modell-Support in Amazon Bedrock:
+ Eine Liste der in Amazon Bedrock unterstützten Regionscodes und Endpunkte finden Sie unter [Endpunkte und Kontingente von Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bedrock_region).
+ Eine Liste der Amazon Bedrock-Modelle IDs , die beim Aufrufen von Amazon Bedrock-API-Operationen verwendet werden können, finden Sie unter. [Unterstützte Basismodelle in Amazon Bedrock](models-supported.md)

In der folgenden Tabelle sind die Modelle angegeben, deren benutzerdefinierte Version Sie kopieren können, sowie die Regionen, in die Sie sie kopieren können:


| Anbieter | Modell | Modell-ID | Unterstützung für Modelle mit nur einer Region | 
| --- | --- | --- | --- | 
| Amazon | Nova Canvas | Amazon. nova-canvas-v1:0 |  ap-northeast-2 eu-west-1 us-east-1  | 
| Amazon | Nova Lite | Amazonas. nova-lite-v1:0 |  ap-northeast-1 ap-northeast-2 ap-south-1 ap-southeast-1 ap-southeast-2 eu-central-1 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-3 us-east-1 us-east-2 us-gov-west-1 us-west-2  | 
| Amazon | Nova Micro | Amazonas. nova-micro-v1:0 |  ap-northeast-1 ap-northeast-2 ap-south-1 ap-southeast-1 ap-southeast-2 eu-central-1 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-3 us-east-1 us-east-2 us-gov-west-1 us-west-2  | 
| Amazon | Nova Pro | Amazonas. nova-pro-v1:0 |  ap-northeast-1 ap-northeast-2 ap-south-1 ap-southeast-1 ap-southeast-2 eu-central-1 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-3 us-east-1 us-east-2 us-gov-west-1 us-west-2  | 
| Amazon | Titan Multimodal Embeddings G1 | Amazonas. titan-embed-image-v1 |  ap-south-1 ap-southeast-2 ca-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0 |  ap-south-1 ap-southeast-2 eu-west-1 eu-west-2 us-east-1 us-west-2  | 
| Meta | Llama 3.1 405B Instruct | meta.llama3-1-405 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.lama3-1-70 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3,1 8B Instruct | meta.lama3-1-8 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3.2 11B Instruct | meta.lama3-2-11 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3.2 1B Instruct | meta.lama3-2-1 1:0 b-instruct-v |  eu-central-1 eu-west-1 eu-west-3 us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3.2 3B Instruct | meta.lama3-2-3 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 
| Meta | Llama 3.2 90B Instruct | meta.lama3-2-90 1:0 b-instruct-v |  us-east-1 us-east-2 us-west-2  | 

# Erfüllen der Voraussetzungen zum Kopieren von Modellen
<a name="copy-model-prereq"></a>

Damit eine Rolle ein Modell kopieren kann, müssen Sie je nach den Berechtigungen der Rolle und der Konfiguration des Modells möglicherweise Berechtigungen einrichten. Sehen Sie sich die Berechtigungen in der folgenden Liste und die Umstände an, unter denen Sie sie konfigurieren müssen:

1. Wenn Ihre Rolle nicht mit der [AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess)Richtlinie verknüpft ist, fügen Sie der Rolle die folgende identitätsbasierte Richtlinie hinzu, um nur minimale Berechtigungen zum Kopieren von Modellen und zum Nachverfolgen von Kopieraufträgen zu gewähren.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CopyModels",
               "Effect": "Allow",
               "Action": [
                   "bedrock:CreateModelCopyJob",
                   "bedrock:GetModelCopyJob",
                   "bedrock:ListModelCopyJobs"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/model-id"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:RequestedRegion": [
                           "us-east-1"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

   Fügen Sie ARNs der Liste weitere Modelle hinzu. `Resource` Sie können die Regionen einschränken, in die das Modell kopiert wird, indem Sie Regionen zur Liste im [Bedingungsschlüssel `aws:RequestedRegion`](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) hinzufügen.

1. (Optional) Wenn das zu kopierende Modell mit einem KMS-Schlüssel verschlüsselt ist, fügen Sie dem [KMS-Schlüssel, mit dem das Modell verschlüsselt wurde, eine Schlüsselrichtlinie](encryption-custom-job.md#encryption-key-policy-decrypt) hinzu, damit eine Rolle das Modell entschlüsseln kann. Geben Sie im Feld `Principal` das Konto an, für das das Modell freigegeben werden soll.

1. (Optional) Wenn Sie die Modellkopie mit einem KMS-Schlüssel verschlüsseln möchten, fügen Sie dem [KMS-Schlüssel, mit dem das Modell verschlüsselt werden soll, eine Schlüsselrichtlinie](encryption-custom-job.md#encryption-key-policy-encrypt) hinzu, damit eine Rolle das Modell mit dem Schlüssel verschlüsseln kann. Geben Sie die Rolle im Feld `Principal` ein.

# Kopieren eines Modells in eine Region
<a name="copy-model-copy"></a>

Wenn Sie [die Voraussetzungen erfüllt](copy-model-prereq.md) haben, können Sie ein Modell kopieren. Sie können ein Modell, das Sie besitzen, in eine andere Region kopieren. Sie können auch ein Modell, das für Sie freigegeben wurde, in eine Region kopieren, sodass Sie es verwenden können. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und befolgen Sie dann die Schritte:

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Führen Sie je nach Anwendungsfall einen der folgenden Schritte aus:
   + Um ein Modell, das Sie besitzen, in eine andere Region zu kopieren, klicken Sie im Abschnitt **Modelle** auf die Schaltfläche neben dem Modell, das Sie freigeben möchten. Wählen Sie die drei Punkte (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/images/icons/vertical-ellipsis.png)) und danach die Option **Kopieren** aus.
   + Um ein Modell, das für Sie freigegeben wurde, in eine Region zu kopieren, klicken Sie im Abschnitt **Mit Ihnen geteilte Models** auf die Schaltfläche neben dem Modell, das Sie freigeben möchten. Wählen Sie dann **Kopieren** aus.

1. Gehen Sie im Abschnitt **Details kopieren** wie folgt vor:

   1. Geben Sie im Feld **Modellname** einen Namen für die Modellkopie ein.

   1. Wählen Sie im Dropdown-Menü im Feld **Zielregion** eine Region aus.

   1. (Optional) Erweitern Sie den Abschnitt **Tags**, um Tags hinzuzufügen. Weitere Informationen finden Sie unter [Markieren von Amazon-Bedrock-Ressourcen](tagging.md).

1. Geben Sie im Abschnitt **Auftragsnamen kopieren** einen **Namen** für den Auftrag ein.

1. (Optional) Um die Modellkopie zu verschlüsseln, wählen Sie einen AWS KMS Schlüssel aus, auf den Sie Zugriff haben. Weitere Informationen finden Sie unter [Berechtigungen und Schlüsselrichtlinien für benutzerdefinierte und kopierte Modelle](encryption-custom-job.md#encryption-cm-statements).

1. Wählen Sie **Modell kopieren** aus.

1. Der Auftrag zum Kopieren des Modells wird auf der Registerkarte **Aufträge** angezeigt. Wenn der Auftrag abgeschlossen wurde, erhält das Modell den Status **Abgeschlossen** und wird im Abschnitt **Modelle** auf der Registerkarte **Modelle** in der Region angezeigt, in die Sie das Modell kopiert haben.

------
#### [ API ]

Um ein Modell in eine andere Region zu kopieren, senden Sie eine [CreateModelCopyJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCopyJob.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) in der Region, in der Sie das Modell verwenden möchten.

Die folgenden Felder sind erforderlich:


****  

| Feld | Kurze Beschreibung | 
| --- | --- | 
| sourceModelArn | Der Amazon-Ressourcenname (ARN) des zu kopierenden Modells. | 
| targetModelName | Ein Name für die Modellkopie. | 

Die folgenden Felder sind optional:


****  

| Feld | Anwendungsfall | 
| --- | --- | 
| clientToken | Zur Sicherstellung, dass die API-Anfrage nur einmal durchgeführt wird. Weitere Informationen finden Sie unter [Sicherstellen von Idempotenz](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html). | 
| modelKmsKeyId | Zur Bereitstellung eines KMS-Schlüssels, um die Modellkopie zu verschlüsseln. Weitere Informationen finden Sie unter [Berechtigungen und Schlüsselrichtlinien für benutzerdefinierte und kopierte Modelle](encryption-custom-job.md#encryption-cm-statements). | 
| targetModelTags | Zur Bereitstellung von Tags für die Modellkopie. Weitere Informationen finden Sie unter [Markieren von Amazon-Bedrock-Ressourcen](tagging.md). | 

Die Antwort enthält das Feld `jobArn`, bei dem es sich um den ARN des Modellkopierauftrags handelt.

------

# Anzeigen von Informationen zu Modellkopieraufträgen
<a name="copy-model-job-view"></a>

Um zu erfahren, wie Sie Informationen zu den von Ihnen übermittelten Modellkopieraufträgen einsehen können, wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte durch:

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich unter **Optimieren** die Option **Benutzerdefinierte Modelle** aus.

1. Wählen Sie die Registerkarte **Aufträge** aus.

1. Wenn ein Modell noch kopiert wird, lautet der **Status** **Wird kopiert**. Wenn das Modell abgeschlossen wurde und einsatzbereit ist, lautet der **Status** **Abgeschlossen**.

1. Wenn der Auftrag abgeschlossen wurde, wird das Modell im Abschnitt **Modelle** auf der Registerkarte **Modelle** in der Region angezeigt, in die Sie das Modell kopiert haben.

------
#### [ API ]

Um Informationen über einen Modellkopierauftrag zu erhalten, senden Sie eine [GetModelCopyJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCopyJob.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Fügen Sie der Anfrage die `jobArn` hinzu.

Um die von Ihnen eingereichten Model-Copy-Jobs aufzulisten, senden Sie eine [ListModelCopyJobs](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListModelCopyJobs.html)Anfrage mit einem [Amazon Bedrock-Steuerungsebenen-Endpunkt](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Sie können die Header in der Anforderung verwenden, um Filter für die zurückzugebenden Aufträge festzulegen.

Die Antwort gibt eine Liste zurück, die jeweils Informationen zu einem von Ihnen übermittelten Modellkopierauftrag enthält.

Wenn der Job abgeschlossen ist, sollten Sie das kopierte Modell sehen können, indem Sie eine [ListCustomModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListCustomModels.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) senden und die Region angeben, in die Sie das Modell kopiert haben.

------

# Löschen eines benutzerdefinierten Modells
<a name="model-customization-delete"></a>

Zum Löschen eines benutzerdefinierten Modells wählen Sie die Registerkarte mit Ihrer bevorzugten Methode aus und folgen Sie dann den nachstehenden Schritten:

**Bevor Sie beginnen**  
Wenn Sie ein destilliertes Modell löschen, müssen Sie zunächst den gesamten bereitgestellten Durchsatz oder alle Bereitstellungen benutzerdefinierter Modelle löschen, die dem Modell zugeordnet sind. 

------
#### [ Console ]

1. Melden Sie sich bei der AWS-Managementkonsole mit einer IAM-Identität an, die berechtigt ist, die Amazon Bedrock-Konsole zu verwenden. Öffnen Sie dann die Amazon Bedrock-Konsole unter [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock).

1. Wählen Sie im linken Navigationsbereich **Bereitgestellter Durchsatz** aus.

1. Wählen Sie im Abschnitt **Modelle** ein benutzerdefiniertes Modell aus.

1. Wählen Sie das Optionssymbol (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/de_de/bedrock/latest/userguide/images/icons/vertical-ellipsis.png)) und dann **Löschen** aus.

1. Folgen Sie den Anweisungen, um den Löschvorgang zu bestätigen. Daraufhin wird Ihr benutzerdefiniertes Modell gelöscht.

------
#### [ API ]

Um ein benutzerdefiniertes Modell zu löschen, senden Sie eine [DeleteCustomModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModel.html)Anfrage mit einem [Endpunkt der Amazon Bedrock-Steuerungsebene](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp). Geben Sie entweder den Namen des benutzerdefinierten Modells oder seinen ARN als `modelIdentifier` an.

------

# Codebeispiele für die Modellanpassung
<a name="model-customization-code-samples"></a>

Die folgenden Codebeispiele zeigen, wie Sie einen Basisdatensatz vorbereiten, Berechtigungen einrichten, ein benutzerdefiniertes Modell erstellen, die Ausgabedateien anzeigen, Durchsatz für das Modell erwerben und Inferenzen für das Modell ausführen. Sie können diese Codeausschnitte an Ihren speziellen Anwendungsfall anpassen.

1. Bereiten Sie den Trainingsdatensatz vor.

   1. Erstellen Sie eine Trainingsdatensatzdatei, die die folgende Zeile enthält, und benennen Sie sie*train.jsonl*.

      ```
      {"prompt": "what is AWS", "completion": "it's Amazon Web Services"}
      ```

   1. Erstellen Sie einen S3-Bucket für Ihre Trainingsdaten und einen weiteren für Ihre Ausgabedaten (die Namen müssen eindeutig sein).

   1. Laden Sie es *train.jsonl* in den Trainingsdaten-Bucket hoch.

1. Erstellen Sie eine Richtlinie für den Zugriff auf Ihre Trainingsdaten und fügen Sie sie einer IAM-Rolle mit einer Amazon-Bedrock-Vertrauensstellung hinzu. Wählen Sie die Registerkarte für Ihre bevorzugte Methode aus und führen Sie dann die folgenden Schritte aus:

------
#### [ Console ]

   1. Erstellen Sie die S3-Richtlinie.

      1. Navigieren Sie unter [https://console.aws.amazon.com/iam](https://console.aws.amazon.com/iam) zur IAM-Konsole und wählen Sie im linken **Navigationsbereich Richtlinien** aus.

      1. Wählen Sie **Richtlinie erstellen** und anschließend **JSON** aus, um den **Richtlinien-Editor** zu öffnen.

      1. **Fügen Sie die folgende Richtlinie ein, ersetzen Sie *\$1\$1training-bucket\$1* und *\$1\$1output-bucket\$1* durch Ihre Bucket-Namen, und wählen Sie dann Weiter aus.**

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Action": [
                         "s3:GetObject",
                         "s3:ListBucket"
                     ],
                     "Resource": [
                         "arn:aws:s3:::${training-bucket}",
                         "arn:aws:s3:::${training-bucket}/*"
                     ]
                 },
                 {
                     "Effect": "Allow",
                     "Action": [
                         "s3:GetObject",
                         "s3:PutObject",
                         "s3:ListBucket"
                     ],
                     "Resource": [
                         "arn:aws:s3:::${output-bucket}",
                         "arn:aws:s3:::${output-bucket}/*"
                     ]
                 }
             ]
         }
         ```

------

      1. Geben Sie der Richtlinie einen Namen *MyFineTuningDataAccess* und wählen Sie **Richtlinie erstellen** aus.

   1. Erstellen Sie eine IAM-Rolle und fügen Sie die Richtlinie an.

      1. Wählen Sie im linken Navigationsbereich die Option **Rollen** und dann **Rolle erstellen** aus.

      1. Wählen Sie die Option **Benutzerdefinierte Vertrauensrichtlinie** aus, fügen Sie die folgende Richtlinie ein und wählen Sie dann **Weiter** aus.

------
#### [ JSON ]

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Effect": "Allow",
                     "Principal": {
                         "Service": "bedrock.amazonaws.com"
                     },
                     "Action": "sts:AssumeRole"
                 }
             ] 
         }
         ```

------

      1. Suchen Sie nach der *MyFineTuningDataAccess* Richtlinie, die Sie erstellt haben, aktivieren Sie das Kontrollkästchen und wählen Sie **Weiter**.

      1. Benennen Sie die Rolle *MyCustomizationRole* und wählen Sie*Create role*.

------
#### [ CLI ]

   1. Erstellen Sie eine Datei mit dem Namen *BedrockTrust.json* und fügen Sie die folgende Richtlinie ein.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "bedrock.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ] 
      }
      ```

------

   1. Erstellen Sie eine weitere Datei mit dem Namen *MyFineTuningDataAccess.json* und fügen Sie die folgende Richtlinie ein, *\$1\$1output-bucket\$1* wobei Sie Ihre Bucket-Namen durch *\$1\$1training-bucket\$1* und ersetzen.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::${training-bucket}",
                      "arn:aws:s3:::${training-bucket}/*"
                  ]
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::${output-bucket}",
                      "arn:aws:s3:::${output-bucket}/*"
                  ]
              }
          ]
      }
      ```

------

   1. Navigieren Sie in einem Terminalfenster zu dem Ordner, der die von Ihnen erstellten Richtlinien enthält.

   1. Stellen Sie eine [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)Anfrage zur Erstellung einer IAM-Rolle mit dem Namen *MyCustomizationRole* und fügen Sie die von Ihnen erstellte *BedrockTrust.json* Vertrauensrichtlinie hinzu.

      ```
      aws iam create-role \
          --role-name MyCustomizationRole \
          --assume-role-policy-document file://BedrockTrust.json
      ```

   1. Stellen Sie eine [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)Anfrage zur Erstellung der S3-Datenzugriffsrichtlinie mit der von Ihnen erstellten *MyFineTuningDataAccess.json* Datei. Die Antwort gibt den Parameter `Arn` für die Richtlinie zurück.

      ```
      aws iam create-policy \
          --policy-name MyFineTuningDataAccess \
          --policy-document file://myFineTuningDataAccess.json
      ```

   1. Stellen Sie eine [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)Anfrage, um die S3-Datenzugriffsrichtlinie an Ihre Rolle anzuhängen, und ersetzen Sie die in der Antwort aus dem vorherigen Schritt durch den ARN: `policy-arn`

      ```
      aws iam attach-role-policy \
          --role-name MyCustomizationRole \
          --policy-arn ${policy-arn}
      ```

------
#### [ Python ]

   1. Führen Sie den folgenden Code aus, um eine [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)Anfrage zur Erstellung einer IAM-Rolle namens zu stellen *MyCustomizationRole* und um eine [CreatePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreatePolicy.html)Anfrage zur Erstellung einer S3-Datenzugriffsrichtlinie namens *MyFineTuningDataAccess* zu stellen. Ersetzen Sie für die S3-Datenzugriffsrichtlinie *\$1\$1training-bucket\$1* und *\$1\$1output-bucket\$1* durch Ihre S3-Bucket-Namen.

      ```
      import boto3
      import json
      
      iam = boto3.client("iam")
      
      iam.create_role(
          RoleName="MyCustomizationRole",
          AssumeRolePolicyDocument=json.dumps({
              "Version": "2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "bedrock.amazonaws.com"
                      },
                      "Action": "sts:AssumeRole"
                  }
              ] 
          })
      )
      
      iam.create_policy(
          PolicyName="MyFineTuningDataAccess",
          PolicyDocument=json.dumps({
              "Version": "2012-10-17",		 	 	 
              "Statement": [
                  {
                      "Effect": "Allow",
                      "Action": [
                          "s3:GetObject",
                          "s3:ListBucket"
                      ],
                      "Resource": [
                          "arn:aws:s3:::${training-bucket}",
                          "arn:aws:s3:::${training-bucket}/*"
                      ]
                  },
                  {
                      "Effect": "Allow",
                      "Action": [
                          "s3:GetObject",
                          "s3:PutObject",
                          "s3:ListBucket"
                      ],
                      "Resource": [
                          "arn:aws:s3:::${output-bucket}",
                          "arn:aws:s3:::${output-bucket}/*"
                      ]
                  }
              ]
          })
      )
      ```

   1. In der Antwort wird der Parameter `Arn` zurückgegeben. Führen Sie den folgenden Codeausschnitt aus, um eine [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html)Anfrage zu stellen, und *\$1\$1policy-arn\$1* ersetzen Sie ihn durch den zurückgegebenen. `Arn`

      ```
      iam.attach_role_policy(
          RoleName="MyCustomizationRole",
          PolicyArn="${policy-arn}"
      )
      ```

------

1. Wählen Sie eine Sprache aus, in der Codebeispiele zum Aufrufen der API-Operationen für die Modellanpassung angezeigt werden sollen.

------
#### [ CLI ]

Erstellen Sie zunächst eine Textdatei mit dem Namen. *FineTuningData.json* Kopieren Sie den JSON-Code von unten in die Textdatei *\$1\$1training-bucket\$1* und *\$1\$1output-bucket\$1* ersetzen Sie ihn durch Ihre S3-Bucket-Namen.

```
{
    "trainingDataConfig": {
        "s3Uri": "s3://${training-bucket}/train.jsonl"
    },
    "outputDataConfig": {
        "s3Uri": "s3://${output-bucket}"
    }
}
```

Um einen Auftrag zur Modellanpassung einzureichen, navigieren Sie zu dem Ordner, der sich *FineTuningData.json* in einem Terminal befindet, und führen Sie den folgenden Befehl in der Befehlszeile aus. *\$1\$1your-customization-role-arn\$1* Ersetzen Sie ihn durch die Rolle für die Modellanpassung, die Sie eingerichtet haben.

```
aws bedrock create-model-customization-job \
    --customization-type FINE_TUNING \
    --base-model-identifier arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1 \
    --role-arn ${your-customization-role-arn} \
    --job-name MyFineTuningJob \
    --custom-model-name MyCustomModel \
    --hyper-parameters epochCount=1,batchSize=1,learningRate=.0001,learningRateWarmupSteps=0 \
    --cli-input-json file://FineTuningData.json
```

In der Antwort wird ein *jobArn* zurückgegeben. Warten Sie, bis der Auftrag abgeschlossen ist. Sie können den Status mit dem folgenden Befehl überprüfen.

```
aws bedrock get-model-customization-job \
    --job-identifier "jobArn"
```

Wenn der `status` `COMPLETE` lautet, können Sie die `trainingMetrics` in der Antwort sehen. Sie können die Artefakte in den aktuellen Ordner herunterladen, indem Sie den folgenden Befehl ausführen und ihn *aet.et-bucket* durch den Namen Ihres Ausgabe-Buckets und *jobId* die ID des Anpassungsauftrags ersetzen (die Reihenfolge nach dem letzten Schrägstrich in`jobArn`).

```
aws s3 cp s3://${output-bucket}/model-customization-job-jobId . --recursive
```

Erwerben Sie mit dem folgenden Befehl einen unverbindlichen bereitgestellten Durchsatz für Ihr benutzerdefiniertes Modell.

**Anmerkung**  
Dieser Kauf wird Ihnen auf Stundenbasis in Rechnung gestellt. Verwenden Sie die Konsole, um Preisschätzungen für verschiedene Optionen einzusehen.

```
aws bedrock create-provisioned-model-throughput \
    --model-id MyCustomModel \
    --provisioned-model-name MyProvisionedCustomModel \
    --model-units 1
```

In der Antwort wird ein `provisionedModelArn` zurückgegeben. Warten Sie, bis der bereitgestellte Durchsatz erstellt wurde. Zum Überprüfen des Status geben Sie den Namen oder den ARN des bereitgestellten Modells als `provisioned-model-id` im folgenden Befehl ein.

```
aws bedrock get-provisioned-model-throughput \
    --provisioned-model-id ${provisioned-model-arn}
```

Wenn der `status` `InService` lautet, können Sie mit dem folgenden Befehl Inferenz für Ihr benutzerdefiniertes Modell ausführen. Sie müssen den ARN des bereitgestellten Modells als `model-id` angeben. Die Ausgabe wird in eine Datei mit dem Namen *output.txt* in Ihrem aktuellen Ordner geschrieben.

```
aws bedrock-runtime invoke-model \
    --model-id ${provisioned-model-arn} \
    --body '{"inputText": "What is AWS?", "textGenerationConfig": {"temperature": 0.5}}' \
    --cli-binary-format raw-in-base64-out \
    output.txt
```

------
#### [ Python ]

Führen Sie den folgenden Codeausschnitt aus, um einen Feinabstimmungsauftrag zu übermitteln. *\$1\$1your-customization-role-arn\$1*Ersetzen Sie es durch den ARN des*MyCustomizationRole*, den Sie eingerichtet und ersetzt haben, *\$1\$1training-bucket\$1* und *\$1\$1output-bucket\$1* durch Ihre S3-Bucket-Namen.

```
import boto3

bedrock = boto3.client(service_name='bedrock')
    
# Set parameters
customizationType = "FINE_TUNING"
baseModelIdentifier = "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1"
roleArn = "${your-customization-role-arn}"
jobName = "MyFineTuningJob"
customModelName = "MyCustomModel"
hyperParameters = {
        "epochCount": "1",
        "batchSize": "1",
        "learningRate": ".0001",
        "learningRateWarmupSteps": "0"
    }
trainingDataConfig = {"s3Uri": "s3://${training-bucket}/myInputData/train.jsonl"}
outputDataConfig = {"s3Uri": "s3://${output-bucket}/myOutputData"}

# Create job
response_ft = bedrock.create_model_customization_job(
    jobName=jobName, 
    customModelName=customModelName,
    roleArn=roleArn,
    baseModelIdentifier=baseModelIdentifier,
    hyperParameters=hyperParameters,
    trainingDataConfig=trainingDataConfig,
    outputDataConfig=outputDataConfig
)

jobArn = response_ft.get('jobArn')
```

In der Antwort wird ein *jobArn* zurückgegeben. Warten Sie, bis der Auftrag abgeschlossen ist. Sie können den Status mit dem folgenden Befehl überprüfen.

```
bedrock.get_model_customization_job(jobIdentifier=jobArn).get('status')
```

Wenn ja `status``COMPLETE`, können Sie das `trainingMetrics` in der [GetModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_GetModelCustomizationJob.html)Antwort sehen. Sie können auch den Schritten unter [Herunterladen von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) folgen, um die Metriken herunterzuladen.

Erwerben Sie mit dem folgenden Befehl einen unverbindlichen bereitgestellten Durchsatz für Ihr benutzerdefiniertes Modell.

```
response_pt = bedrock.create_provisioned_model_throughput(
    modelId="MyCustomModel",
    provisionedModelName="MyProvisionedCustomModel",
    modelUnits="1"
)

provisionedModelArn = response_pt.get('provisionedModelArn')
```

In der Antwort wird ein `provisionedModelArn` zurückgegeben. Warten Sie, bis der bereitgestellte Durchsatz erstellt wurde. Zum Überprüfen des Status geben Sie den Namen oder den ARN des bereitgestellten Modells als `provisionedModelId` im folgenden Befehl ein.

```
bedrock.get_provisioned_model_throughput(provisionedModelId=provisionedModelArn)
```

Wenn der `status` `InService` lautet, können Sie mit dem folgenden Befehl Inferenz für Ihr benutzerdefiniertes Modell ausführen. Sie müssen den ARN des bereitgestellten Modells als `modelId` angeben. 

```
import json
import logging
import boto3

from botocore.exceptions import ClientError


class ImageError(Exception):
    "Custom exception for errors returned by the model"

    def __init__(self, message):
        self.message = message


logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)


def generate_text(model_id, body):
    """
    Generate text using your provisioned custom model.
    Args:
        model_id (str): The model ID to use.
        body (str) : The request body to use.
    Returns:
        response (json): The response from the model.
    """

    logger.info(
        "Generating text with your provisioned custom model %s", model_id)

    brt = boto3.client(service_name='bedrock-runtime')

    accept = "application/json"
    content_type = "application/json"

    response = brt.invoke_model(
        body=body, modelId=model_id, accept=accept, contentType=content_type
    )
    response_body = json.loads(response.get("body").read())

    finish_reason = response_body.get("error")

    if finish_reason is not None:
        raise ImageError(f"Text generation error. Error is {finish_reason}")

    logger.info(
        "Successfully generated text with provisioned custom model %s", model_id)

    return response_body


def main():
    """
    Entrypoint for example.
    """
    try:
        logging.basicConfig(level=logging.INFO,
                            format="%(levelname)s: %(message)s")

        model_id = provisionedModelArn

        body = json.dumps({
            "inputText": "what is AWS?"
        })

        response_body = generate_text(model_id, body)
        print(f"Input token count: {response_body['inputTextTokenCount']}")

        for result in response_body['results']:
            print(f"Token count: {result['tokenCount']}")
            print(f"Output text: {result['outputText']}")
            print(f"Completion reason: {result['completionReason']}")

    except ClientError as err:
        message = err.response["Error"]["Message"]
        logger.error("A client error occurred: %s", message)
        print("A client error occured: " +
              format(message))
    except ImageError as err:
        logger.error(err.message)
        print(err.message)

    else:
        print(
            f"Finished generating text with your provisioned custom model {model_id}.")


if __name__ == "__main__":
    main()
```

------

# Behebung von Problemen bei der Modellanpassung
<a name="fine-tuning-troubleshooting"></a>

In diesem Abschnitt werden Fehler zusammengefasst, die Ihnen möglicherweise angezeigt werden, und welche Werte Sie in diesen Fällen überprüfen sollten.

## Probleme mit den Berechtigungen
<a name="w2aac15c31c44b5b1"></a>

Wenn Sie ein Problem mit den Zugriffsberechtigungen für einen Amazon-S3-Bucket haben, überprüfen Sie, ob Folgendes zutrifft:

1. Wenn der Amazon S3 S3-Bucket einen vom Kunden verwalteten AWS Key Management Service (KMS-Schlüssel) für die serverseitige Verschlüsselung verwendet, stellen Sie sicher, dass die an Amazon Bedrock übergebene IAM-Rolle über `kms:Decrypt` Berechtigungen für den KMS-Schlüssel verfügt. Weitere Informationen finden Sie beispielsweise unter [Erlauben Sie einem Benutzer, mit einem beliebigen AWS KMS Schlüssel in einem bestimmten Konto zu ver- und zu entschlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/customer-managed-policies.html#iam-policy-example-encrypt-decrypt-one-account). AWS 

1. Der Amazon-S3-Bucket befindet sich in derselben Region wie der Auftrag zur Anpassung des Amazon-Bedrock-Modells.

1. Die Vertrauensrichtlinie für IAM-Rollen umfasst den Service-SP (`bedrock.amazonaws.com`).

Die folgenden Meldungen weisen auf Probleme mit den Zugriffsberechtigungen für Trainings- oder Validierungsdaten in einem Amazon-S3-Bucket hin:

```
Could not validate GetObject permissions to access Amazon S3 bucket: training-data-bucket at key train.jsonl
Could not validate GetObject permissions to access Amazon S3 bucket: validation-data-bucket at key validation.jsonl
```

Wenn Sie auf einen der oben genannten Fehler stoßen, überprüfen Sie, ob die an den Service übergebene IAM-Rolle über `s3:ListBucket` Berechtigungen für den Schulungs `s3:GetObject` - und Validierungsdatensatz Amazon S3 URIs verfügt.

Die folgende Meldung weist auf Probleme mit den Berechtigungen zum Schreiben der Ausgabedaten in einen Amazon-S3-Bucket hin:

```
Amazon S3 perms missing (PutObject): Could not validate PutObject permissions to access S3 bucket: bedrock-output-bucket at key output/.write_access_check_file.tmp
```

Wenn der oben genannte Fehler auftritt, überprüfen Sie, ob die an den Service übergebene IAM-Rolle über `s3:PutObject`-Berechtigungen für den Amazon-S3-URI der Ausgabedaten verfügt.

## Probleme mit Daten
<a name="w2aac15c31c44b5b3"></a>

Die folgenden Fehler beziehen sich auf Probleme mit den Trainings-, Validierungs- oder Ausgabedatendateien:

**Ungültiges Dateiformat**

```
Unable to parse Amazon S3 file: fileName.jsonl. Data files must conform to JSONL format.
```

Wenn der obige Fehler auftritt, überprüfen Sie, ob Folgendes zutrifft:

1. Jede Zeile ist in JSON.

1. Jeder JSON-Code hat zwei Schlüssel, einen *input* und einen*output*, und jeder Schlüssel ist eine Zeichenfolge. Beispiel:

   ```
   {
       "input": "this is my input",
       "output": "this is my output"
   }
   ```

1. Es gibt keine zusätzlichen neuen Zeilen oder Leerzeilen.

**Zeichenkontingent überschritten**

```
Input size exceeded in file fileName.jsonl for record starting with...
```

Wenn ein Fehler auftritt, der mit dem obigen Text beginnt, stellen Sie sicher, dass die Anzahl der Zeichen dem Zeichenkontingent in [Bereiten Sie Daten für die Feinabstimmung Ihrer Modelle vor](model-customization-prepare.md) entspricht.

**Anzahl der Token überschritten**

```
Maximum input token count 4097 exceeds limit of 4096
Maximum output token count 4097 exceeds limit of 4096
Max sum of input and output token length 4097 exceeds total limit of 4096
```

Wenn Sie auf einen Fehler stoßen, der dem vorherigen Beispiel ähnelt, stellen Sie sicher, dass die Anzahl der Token dem Token-Kontingent in [Bereiten Sie Daten für die Feinabstimmung Ihrer Modelle vor](model-customization-prepare.md) entspricht.

## Probleme mit Lizenzbedingungen und Richtlinien von Drittanbietern
<a name="w2aac15c31c44b5b5"></a>

Die folgenden Fehler beziehen sich auf die Lizenzbedingungen und Richtlinien von Drittanbietern:

**Materialien aus der Feinabstimmung sind nicht mit den Lizenzbedingungen des Drittanbieters vereinbar**

```
Automated tests flagged this fine-tuning job as including materials that are potentially inconsistent with Anthropic's third-party license terms. Please contact support.
```

Wenn der obige Fehler auftritt, stellen Sie sicher, dass Ihr Trainingsdatensatz keine Inhalte umfasst, die gegen die Nutzungsrichtlinien von Anthropic verstoßen. Wenn das Problem weiterhin besteht, wenden Sie sich an Support.

## Interner Fehler
<a name="w2aac15c31c44b5b7"></a>

```
Encountered an unexpected error when processing the request, please try again
```

Wenn der obige Fehler auftritt, liegt möglicherweise ein Problem mit dem Service vor. Versuchen Sie erneut, den Auftrag auszuführen. Wenn das Problem weiterhin besteht, wenden Sie sich an. Support