Intégration d'Amazon Redshift ML à Amazon Bedrock - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Intégration d'Amazon Redshift ML à Amazon Bedrock

Cette section explique comment utiliser l'intégration d'Amazon Redshift ML avec Amazon Bedrock. Grâce à cette fonctionnalité, vous pouvez invoquer un modèle Amazon Bedrock en utilisantSQL, et vous pouvez utiliser vos données d'un entrepôt de données Amazon Redshift pour créer des applications d'IA génératives telles que la génération de texte, l'analyse des sentiments ou la traduction.

Création ou mise à jour d'un IAM rôle pour l'intégration d'Amazon Redshift ML à Amazon Bedrock

Cette section explique comment créer un IAM rôle à utiliser dans le cadre de l'intégration d'Amazon Redshift ML à Amazon Bedrock.

Ajoutez la politique suivante au IAM rôle que vous utilisez dans le cadre de l'intégration d'Amazon Redshift ML à Amazon Bedrock :

  • AmazonBedrockFullAccess

Pour permettre à Amazon Redshift d'assumer un rôle d'interaction avec d'autres services, ajoutez la politique de confiance suivante au IAM rôle :

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

Si le cluster ou l'espace de noms se trouve dans unVPC, suivez les instructions deCluster et configuration de la mise en place pour l'administration Amazon Redshift ML.

Si vous avez besoin d'une politique plus restrictive, vous pouvez en créer une qui inclut uniquement les autorisations Amazon Bedrock spécifiées dans les pages suivantes :

Pour plus d'informations sur la création d'un IAM rôle, voir Création de IAM rôle dans le guide de AWS Identity and Access Management l'utilisateur.

Création d'un modèle externe pour l'intégration d'Amazon Redshift ML à Amazon Bedrock

Cette section explique comment créer un modèle externe à utiliser comme interface pour Amazon Bedrock au sein de votre entrepôt de données Amazon Redshift.

Pour appeler un modèle Amazon Bedrock depuis Amazon Redshift, vous devez d'abord exécuter CREATE EXTERNAL MODEL la commande. Cette commande crée un objet modèle externe dans la base de données et une fonction utilisateur associée que vous utilisez pour générer du contenu textuel avec Amazon Bedrock.

L'exemple de code suivant montre une CREATE EXTERNAL MODEL commande de base :

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:');

La CREATE EXTERNAL MODEL commande dispose d'une interface unifiée et cohérente avec Amazon Bedrock for all Foundation Models (FM) prenant en charge les messages. Il s'agit de l'option par défaut lorsque vous utilisez la CREATE EXTERNAL MODEL commande ou lorsque vous spécifiez explicitement le type de demande à êtreUNIFIED. Pour plus d'informations, consultez la documentation Converse dans la API documentation Amazon Bedrock API.

Si un FM ne prend pas en charge les messages, vous devez régler le request_type réglage surRAW. Lorsque vous réglez request_type surRAW, vous devez créer la demande envoyée à Amazon Bedrock lorsque vous utilisez la fonction d'inférence en fonction du FM sélectionné.

Le PROMPT paramètre de la CREATE EXTERNAL MODEL commande est une invite statique. Si vous avez besoin d'une invite dynamique pour votre application, vous devez la spécifier lorsque vous utilisez la fonction d'inférence. Pour plus de détails, voir ce Ingénierie rapide pour l'intégration d'Amazon Redshift ML à Amazon Bedrock qui suit.

Pour plus d'informations sur l'CREATE EXTERNAL MODELinstruction, ses paramètres et ses réglages, consultezCREATE EXTERNAL MODEL.

Utilisation d'un modèle externe pour l'intégration d'Amazon Redshift ML à Amazon Bedrock

Cette section explique comment invoquer un modèle externe pour générer du texte en réponse aux instructions fournies. Pour invoquer un modèle externe, utilisez la fonction d'inférence que vous créez avecCREATE EXTERNAL MODEL.

Inférence avec des modèles de type de UNIFIED demande

La fonction d'inférence pour les modèles avec type de requête UNIFIED possède les trois paramètres suivants qui sont transmis à la fonction dans l'ordre :

  • Texte de saisie (obligatoire) : ce paramètre spécifie le texte d'entrée qu'Amazon Redshift transmet à Amazon Bedrock.

  • Configuration d'inférence et champs de demande de modèle supplémentaires (facultatif) : Amazon Redshift transmet ces paramètres aux paramètres correspondants pour le modèle Converse. API

L'exemple de code suivant montre comment utiliser une fonction d'inférence UNIFIED de type :

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

Inférence avec des modèles de type de RAW demande

La fonction d'inférence pour les modèles avec type de demande ne RAW comporte qu'un seul paramètre de type SUPER de données. La syntaxe de ce paramètre dépend du modèle Amazon Bedrock utilisé.

L'exemple de code suivant montre comment utiliser une fonction d'inférence RAW de type :

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

Fonctions d'inférence en tant que fonctions de leader uniquement

Les fonctions d'inférence pour les modèles Amazon Bedrock peuvent être exécutées en tant que fonctions du nœud principal uniquement lorsque la requête qui les utilise ne fait référence à aucune table. Cela peut être utile si vous souhaitez poser rapidement LLM une question.

L'exemple de code suivant montre comment utiliser une fonction d'inférence réservée aux leaders :

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

Remarques sur l'utilisation de la fonction d'inférence

Notez les points suivants lorsque vous utilisez des fonctions d'inférence avec l'intégration d'Amazon Redshift ML à Amazon Bedrock :

  • Les noms des paramètres de tous les modèles Amazon Bedrock distinguent les majuscules et minuscules. Si vos paramètres ne correspondent pas à ceux requis par le modèle, Amazon Bedrock risque de les ignorer discrètement.

  • Le débit des requêtes d'inférence est limité par les quotas d'exécution des différents modèles proposés par Amazon Bedrock dans différentes régions. Pour plus d'informations, consultez la section Quotas pour Amazon Bedrock dans le guide de l'utilisateur d'Amazon Bedrock.

  • Si vous avez besoin d'un débit garanti et constant, pensez à obtenir un débit provisionné pour le modèle dont vous avez besoin auprès d'Amazon Bedrock. Pour plus d'informations, consultez la section Augmenter la capacité d'invocation des modèles avec le débit provisionné dans Amazon Bedrock dans le guide de l'utilisateur d'Amazon Bedrock.

  • Les requêtes d'inférence contenant de grandes quantités de données peuvent faire l'objet d'exceptions de limitation. Cela est dû aux quotas d'exécution limités pour Amazon Bedrock. Amazon Redshift réessaie plusieurs fois les demandes, mais celles-ci peuvent toujours être limitées car le débit des modèles non provisionnés peut être variable.

Ingénierie rapide pour l'intégration d'Amazon Redshift ML à Amazon Bedrock

Cette section explique comment utiliser les instructions statiques avec un modèle externe.

Pour utiliser des instructions de préfixe et de suffixe statiques pour votre modèle externe, fournissez-les à l'aide des SUFFIX paramètres PROMPT et de l'instruction. CREATE EXTERNAL MODEL Ces instructions sont ajoutées à chaque requête à l'aide du modèle externe.

L'exemple suivant montre comment ajouter des instructions de préfixe et de suffixe à un modèle externe :

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');

Pour utiliser des invites dynamiques, vous pouvez les fournir lorsque vous utilisez la fonction d'inférence en les concaténant dans l'entrée de la fonction. L'exemple suivant montre comment utiliser des invites dynamiques avec une fonction d'inférence :

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