Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d’informations, consultez le billet de blog
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égrations d’Amazon Redshift ML à Amazon Bedrock
Cette section décrit comment utiliser l’intégration Amazon Redshift ML avec Amazon Bedrock. Grâce à cette fonctionnalité, vous pouvez invoquer un modèle Amazon Bedrock à l’aide de SQL, et vous pouvez utiliser vos données issues 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.
Rubriques
Création ou mise à jour d’un rôle IAM pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Création d’un modèle externe pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Utilisation d’un modèle externe pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Ingénierie de requête pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Création ou mise à jour d’un rôle IAM pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Cette section explique comment créer un rôle IAM à utiliser avec l’intégration d’Amazon Redshift ML à Amazon Bedrock.
Ajoutez la politique suivante au rôle IAM 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 afin d’interagir avec d’autres services, ajoutez la politique de confiance suivante au rôle IAM.
Si le cluster ou l’espace de noms se trouve dans un VPC, suivez les instructions figurant dans Cluster 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 rôle IAM, consultez Création de rôles IAM dans le Guide de l’utilisateur Gestion des identités et des accès AWS.
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 la commande CREATE EXTERNAL MODEL. 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 commande CREATE EXTERNAL MODEL 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 commande CREATE EXTERNAL MODEL dispose d’une interface unifiée et cohérente avec Amazon Bedrock for tous les modèles de fondation (FM) prenant en charge les messages. Il s’agit de l’option par défaut lorsque vous utilisez la commande CREATE EXTERNAL MODEL ou lorsque vous spécifiez explicitement le type de demande pour qu’elle soit UNIFIED. Pour plus d’informations, consultez la Documentation de l’API Converse dans la Documentation de l’API Amazon Bedrock.
Si un modèle de fondation ne prend pas en charge les messages, vous devez définir le paramètre request_type sur RAW, comme le montre l’exemple suivant. Lorsque vous définissez request_type sur RAW, vous devez créer la demande envoyée à Amazon Bedrock lorsque vous utilisez la fonction d’inférence en fonction du modèle de fondation sélectionné. Assurez-vous d’activer l’accès au modèle Titan Text G1 — Express dans Amazon Bedrock avant d’exécuter l’exemple suivant.
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);
Si vous avez besoin de plus d’informations sur une demande d’entrée, telles que le nombre total de jetons, vous pouvez demander à ce que le RESPONSE_TYPE soit super lorsque vous créez le modèle.
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);
Le paramètre PROMPT de la commande CREATE EXTERNAL MODEL 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 en savoir plus, consultez Ingénierie de requête pour l’intégration d’Amazon Redshift ML à Amazon Bedrock.
Pour plus d’informations sur l’instruction CREATE EXTERNAL MODEL et ses paramètres, consultez CREATE 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 invites fournies. Pour invoquer un modèle externe, utilisez la fonction d’inférence que vous créez avec CREATE EXTERNAL MODEL.
Rubriques
Inférence avec des modèles de type de requête UNIFIED
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 requête de modèle supplémentaires (facultatif) : Amazon Redshift transmet ces paramètres aux paramètres correspondants pour l’API du modèle Converse.
L’exemple de code suivant montre comment utiliser une fonction d’inférence de type UNIFIED :
SELECT llm_claude_func(input_text, object('temperature', 0.7, 'maxtokens', 500)) FROM some_data;
Inférence avec des modèles de type de requête RAW
La fonction d’inférence pour les modèles avec type de demande RAW ne comporte qu’un seul paramètre de type de données SUPER. 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 de type RAW :
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 principale 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 une question à un grand modèle de langage.
L’exemple de code suivant montre comment utiliser une fonction d’inférence principal uniquement :
SELECT general_titan_llm_func('Summarize the benefits of LLM on data analytics in 100 words');
Notes d’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 sont sensibles à la casse. 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 de plus amples informations, consultez Quotas pour Amazon Bedrock dans le Guide de l’utilisateur Amazon Bedrock.
Si vous avez besoin d’un débit garanti et constant, pensez à obtenir un débit alloué 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 alloué dans Amazon Bedrock dans le Guide de l’utilisateur 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 requêtes, mais celles-ci peuvent toujours être limitées car le débit des modèles non alloués peut être variable.
Si vous rencontrez des exceptions de limitation provenant d’Amazon Bedrock, par exemple «
Too many requests, please wait before trying again.», même avec de petites quantités de données, vérifiez les quotas dans la section Service Quotas de votre compte Amazon Bedrock. Vérifiez que le quota appliqué au niveau du compte est au moins identique à la valeur de quota AWS par défaut pour les InvokeModeldemandes relatives au modèle que vous utilisez.
Ingénierie de requête pour l’intégration d’Amazon Redshift ML à Amazon Bedrock
Cette section explique comment utiliser les invites statiques avec un modèle externe.
Pour utiliser des préfixes statiques et des invites de préfixe pour votre modèle externe, fournissez-les à l’aide des paramètres PROMPT et SUFFIX 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 invites 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 inférence :
SELECT llm_claude_func('Summarize the following review:' | input_text | 'The review should have formal tone.') FROM some_data