

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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.

# Integration von Amazon Redshift ML mit Amazon Bedrock
<a name="machine-learning-br"></a>

In diesem Abschnitt wird die Verwendung der Integration von Amazon Redshift ML mit Amazon Bedrock beschrieben. Mit diesem Feature können Sie ein Amazon-Bedrock-Modell unter Verwendung von SQL aufrufen und Ihre Daten aus einem Data Warehouse in Amazon Redshift verwenden, um Anwendungen auf Basis von generativer KI zu erstellen, wie Textgenerierung, Stimmungsanalyse oder Übersetzung.

**Topics**
+ [Erstellen oder Aktualisieren einer IAM-Rolle für die Integration von Amazon Redshift ML mit Amazon Bedrock](#machine-learning-br-iam)
+ [Erstellen eines externen Modells für die Integration von Amazon Redshift ML mit Amazon Bedrock](#machine-learning-br-create)
+ [Verwenden eines externen Modells für die Integration von Amazon Redshift ML mit Amazon Bedrock](#machine-learning-br-use)
+ [Prompt-Engineering für die Integration von Amazon Redshift ML mit Amazon Bedrock](#machine-learning-br-prompt)

## Erstellen oder Aktualisieren einer IAM-Rolle für die Integration von Amazon Redshift ML mit Amazon Bedrock
<a name="machine-learning-br-iam"></a>

In diesem Abschnitt wird gezeigt, wie Sie eine IAM-Rolle erstellen, die Sie für die Integration von Amazon Redshift ML mit Amazon Bedrock verwenden können.

Fügen Sie der IAM-Rolle, die Sie für die Integration von Amazon Redshift ML mit Amazon Bedrock verwenden, die folgende Richtlinie hinzu: 
+ `AmazonBedrockFullAccess`

Fügen Sie der IAM-Rolle die folgende Vertrauensrichtlinie hinzu, damit Amazon Redshift die Rolle zur Interaktion mit anderen Services übernehmen kann.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "Service": [
               "redshift.amazonaws.com"
            ]
         },
         "Action": "sts:AssumeRole"
      }
   ]
}
```

------

Wenn sich der Cluster oder Namespace in einer VPC befindet, folgen Sie den Anweisungen unter [Einrichtung für die Amazon-Redshift-ML-Administration in Cluster aufteilen und konfigurieren](getting-started-machine-learning.md#admin-setup). 

Wenn Sie eine restriktivere Richtlinie benötigen, können Sie eine erstellen, die nur die auf den folgenden Seiten angegebenen Amazon-Bedrock-Berechtigungen umfasst:
+ [Einrichtung für die Amazon-Redshift-ML-Administration in Cluster aufteilen und konfigurieren](getting-started-machine-learning.md#admin-setup)
+ [ Für die Verwendung von Amazon Redshift Machine Learning (ML) erforderliche Berechtigungen](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html#iam-permission-ml?)

Weitere Informationen zum Erstellen von IAM-Rollen finden Sie unter [Erstellung einer IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) im *AWS Identity and Access Management -Benutzerhandbuch*.

## Erstellen eines externen Modells für die Integration von Amazon Redshift ML mit Amazon Bedrock
<a name="machine-learning-br-create"></a>

In diesem Abschnitt wird gezeigt, wie Sie ein externes Modell erstellen, das als Schnittstelle für Amazon Bedrock in Ihrem Data Warehouse in Amazon Redshift verwendet werden kann.

Um ein Amazon-Bedrock-Modell von Amazon Redshift aus aufzurufen, müssen Sie zuerst den Befehl `CREATE EXTERNAL MODEL` ausführen. Dieser Befehl erstellt ein externes Modellobjekt in der Datenbank und eine zugehörige Benutzerfunktion, die Sie verwenden, um Textinhalte mit Amazon Bedrock zu generieren.

Das folgende Codebeispiel zeigt einen Basisbefehl `CREATE EXTERNAL MODEL`:

```
CREATE EXTERNAL MODEL llm_claude
FUNCTION llm_claude_func
IAM_ROLE '<IAM role arn>'
MODEL_TYPE BEDROCK
SETTINGS (
   MODEL_ID 'anthropic.claude-v2:1',
   PROMPT 'Summarize the following text:');
```

Der Befehl `CREATE EXTERNAL MODEL` verfügt über eine einheitliche und konsistente Schnittstelle zu Amazon Bedrock für alle Basismodelle (FM), die Nachrichten unterstützen. Dies ist die Standardoption, wenn Sie den Befehl `CREATE EXTERNAL MODEL` verwenden oder explizit den Anforderungstyp `UNIFIED` angeben. Weitere Informationen finden Sie in der [Converse-API-Dokumentation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) in der *Dokumentation zur Amazon-Bedrock-API*.

Wenn ein FM keine Nachrichten unterstützt, müssen Sie die Einstellung für `request_type` auf `RAW` setzen, wie im folgenden Beispiel zu sehen. Wenn Sie `request_type` auf `RAW` setzen, müssen Sie die an Amazon Bedrock gesendete Anforderung erstellen, wenn Sie die Inferenzfunktion auf der Grundlage des ausgewählten FM verwenden. Stellen Sie sicher, dass Sie den Zugriff auf das Modell Titan Text G1 – Express in Amazon Bedrock aktivieren, bevor Sie das folgende Beispiel ausführen. 

```
CREATE EXTERNAL MODEL titan_raw
FUNCTION func_titan_raw
IAM_ROLE '<IAM role arn>'
MODEL_TYPE BEDROCK
SETTINGS (
   MODEL_ID 'amazon.titan-text-express-v1',
   REQUEST_TYPE RAW,
   RESPONSE_TYPE SUPER);
```

Wenn Sie weitere Informationen zu einer Eingabeanforderung benötigen, z. B. die Gesamtzahl der Token, können Sie beim Erstellen des Modells `RESPONSE_TYPE` auf `super` setzen. 

```
CREATE EXTERNAL MODEL patient_recommendations_v2
FUNCTION patient_recommendations_func_v2
IAM_ROLE '<IAM role arn>'
MODEL_TYPE BEDROCK
SETTINGS (
   MODEL_ID 'anthropic.claude-v2',
   PROMPT 'Generate personalized diet plan for following patient:',
   RESPONSE_TYPE SUPER);
```

Der `PROMPT`-Parameter für den Befehl `CREATE EXTERNAL MODEL` ist ein statischer Prompt. Wenn Sie einen dynamischen Prompt für Ihre Anwendung benötigen, müssen Sie diesen angeben, wenn Sie die Inferenzfunktion verwenden. Weitere Details finden Sie unter [Prompt-Engineering für die Integration von Amazon Redshift ML mit Amazon Bedrock](#machine-learning-br-prompt).

Weitere Informationen zur Anweisung `CREATE EXTERNAL MODEL`, ihren Parametern und Einstellungen finden Sie unter [ERSTELLEN EINES EXTERNEN MODELLS](r_create_external_model.md).

## Verwenden eines externen Modells für die Integration von Amazon Redshift ML mit Amazon Bedrock
<a name="machine-learning-br-use"></a>

In diesem Abschnitt wird gezeigt, wie Sie ein externes Modell aufrufen, um Text als Antwort auf bereitgestellte Prompts zu generieren. Verwenden Sie die Inferenzfunktion, die Sie mit `CREATE EXTERNAL MODEL` erstellen, um ein externes Modell aufzurufen.

**Topics**
+ [Inferenz mit Modellen des Anforderungstyps `UNIFIED`](#machine-learning-br-use-unified)
+ [Inferenz mit Modellen des Anforderungstyps `RAW`](#machine-learning-br-use-raw)
+ [Inferenzfunktionen als reine Leader-Funktionen](#machine-learning-br-use-leader)
+ [Nutzungshinweise für die Inferenzfunktion](#machine-learning-br-use-usage)

### Inferenz mit Modellen des Anforderungstyps `UNIFIED`
<a name="machine-learning-br-use-unified"></a>

Die Inferenzfunktion für Modelle mit dem Anforderungstyp `UNIFIED` verfügt über die folgenden drei Parameter, die der Reihe nach an die Funktion übergeben werden:
+ **Eingabetext** (erforderlich): Dieser Parameter gibt den Eingabetext an, den Amazon Redshift an Amazon Bedrock weitergibt.
+ **Inferenzkonfiguration** und **Zusätzliche Felder für Modellanfragen** (optional): Amazon Redshift übergibt diese Parameter an die entsprechenden Parameter für die Converse-Modell-API. 

Das folgende Codebeispiel veranschaulicht die Verwendung einer Inferenzfunktion vom Typ `UNIFIED`.

```
SELECT llm_claude_func(input_text, object('temperature', 0.7, 'maxtokens', 500))
   FROM some_data;
```

### Inferenz mit Modellen des Anforderungstyps `RAW`
<a name="machine-learning-br-use-raw"></a>

Die Inferenzfunktion für Modelle mit Anforderungstyp `RAW` verfügt nur über einen Parameter des Datentyps `SUPER`. Die Syntax dieses Parameters hängt vom verwendeten Amazon-Bedrock-Modell ab.

Das folgende Codebeispiel veranschaulicht die Verwendung einer Inferenzfunktion vom Typ `RAW`.

```
SELECT llm_titan_func(
    object(
        "inputText", "Summarize the following text: " | input_text,
        "textGenerationConfig", object("temperature", 0.5, "maxTokenCount", 500)
    )
)
FROM some_data;
```

### Inferenzfunktionen als reine Leader-Funktionen
<a name="machine-learning-br-use-leader"></a>

Inferenzfunktionen für Amazon-Bedrock-Modelle können als reine Leader-Knotenfunktionen ausgeführt werden, wenn die Abfrage, die sie verwendet, keine Tabellen referenziert. Dies kann hilfreich sein, wenn Sie einem LLM schnell eine Frage stellen möchten.

Das folgende Codebeispiel veranschaulicht die Verwendung einer reinen Leader-Inferenzfunktion:

```
SELECT general_titan_llm_func('Summarize the benefits of LLM on data analytics in 100 words');
```

### Nutzungshinweise für die Inferenzfunktion
<a name="machine-learning-br-use-usage"></a>

Beachten Sie Folgendes, wenn Sie Inferenzfunktionen mit der Integration von Amazon Redshift ML mit Amazon Bedrock verwenden:
+ Bei den Namen der Parameter für alle Amazon-Bedrock-Modelle wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Ihre Parameter nicht den vom Modell geforderten Parametern entsprechen, werden sie von Amazon Bedrock möglicherweise stillschweigend ignoriert.
+ Der Durchsatz von Inferenzabfragen wird durch die Laufzeitkontingente der verschiedenen Modelle begrenzt, die von Amazon Bedrock in verschiedenen Regionen angeboten werden. Weitere Informationen finden Sie unter [Kontingente für Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html) im *Amazon-Bedrock-Benutzerhandbuch*.
+ Wenn Sie einen garantierten und konsistenten Durchsatz benötigen, sollten Sie in Betracht ziehen, für das von Ihnen benötigte Modell bereitgestellten Durchsatz von Amazon Bedrock zu nutzen. Weitere Informationen finden Sie unter [Erhöhen der Modellaufruf-Kapazität mit bereitgestelltem Durchsatz in Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/prov-throughput.html) im *Amazon-Bedrock-Benutzerhandbuch*.
+ Bei Inferenzabfragen mit großen Datenmengen kann es zu Drosselungsausnahmen kommen. Dies liegt an den begrenzten Laufzeitkontingenten für Amazon Bedrock. Amazon Redshift versucht Anforderungen mehrmals erneut, doch Abfragen können dennoch gedrosselt werden, da der Durchsatz für nicht bereitgestellte Modelle variabel sein kann.
+ Wenn Sie auf Drosselungsausnahmen von Amazon Bedrock, wie z. B. `Too many requests, please wait before trying again.`, auch bei kleinen Datenmengen stoßen, überprüfen Sie die Kontingente unter **Service Quotas** in Ihrem Amazon-Bedrock-Konto. Vergewissern Sie sich, dass das angewendete Kontingent auf Kontoebene mindestens dem AWS Standardkontingentwert für die **InvokeModel**Anfragen für das von Ihnen verwendete Modell entspricht.

## Prompt-Engineering für die Integration von Amazon Redshift ML mit Amazon Bedrock
<a name="machine-learning-br-prompt"></a>

In diesem Abschnitt wird die Verwendung von statischen Prompts mit einem externen Modell erläutert.

Um statische Präfix- und Suffix-Prompts für Ihr externes Modell zu verwenden, geben Sie diese über die Parameter `PROMPT` und `SUFFIX` der Anweisung `CREATE EXTERNAL MODEL` an. Diese Prompts werden jeder Abfrage hinzugefügt, die das externe Modell verwendet.

Im folgenden Beispiel wird gezeigt, wie Sie einem externen Modell Präfix- und Suffix-Prompts hinzufügen:

```
CREATE EXTERNAL MODEL llm_claude
FUNCTION llm_claude_func
IAM_ROLE '<IAM role arn>'
MODEL_TYPE BEDROCK
SETTINGS (
   MODEL_ID 'anthropic.claude-v2:1',
   PROMPT 'Summarize the following text:',
   SUFFIX 'Respond in an analytic tone');
```

Um dynamische Prompts zu verwenden, können Sie diese bei der Verwendung der Inferenzfunktion angeben, indem Sie sie in der Funktionseingabe verketten. Das folgende Beispiel veranschaulicht die Verwendung von dynamischen Prompts mit einer Inferenzfunktion:

```
SELECT llm_claude_func('Summarize the following review:' | input_text | 'The review should have formal tone.')
FROM some_data
```