Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazioni di Amazon Redshift ML con Amazon Bedrock
In questa sezione viene illustrato come utilizzare l’integrazione di Amazon Redshift ML con Amazon Bedrock. Con questa funzionalità puoi invocare un modello Amazon Bedrock con SQL e puoi utilizzare i dati di un data warehouse Amazon Redshift per creare applicazioni di IA generativa come la generazione di testo, l’analisi del sentiment o la traduzione.
Argomenti
Creazione o aggiornamento di un ruolo IAM per l’integrazione di Amazon Redshift ML con Amazon Bedrock
In questa sezione viene illustrato come creare un ruolo IAM da utilizzare con l’integrazione di Amazon Redshift ML con Amazon Bedrock.
Aggiungi la seguente policy al ruolo IAM che utilizzi con l’integrazione di Amazon Redshift ML con Amazon Bedrock:
AmazonBedrockFullAccess
Per consentire ad Amazon Redshift di assumere il ruolo per interagire con altri servizi, aggiungi la seguente policy di attendibilità al ruolo IAM.
Se il cluster o il namespace si trova in un VPC, segui le istruzioni in Configurare il cluster e le impostazioni di Amazon Redshift ML.
Se hai bisogno di una policy più restrittiva, puoi crearne una che includa solo le autorizzazioni Amazon Bedrock specificate nelle seguenti pagine:
Per ulteriori informazioni sulla creazione di un ruolo IAM, consulta Creazione di ruoli IAM nella Guida per l’utente di AWS Identity and Access Management.
Creazione di un modello esterno per l’integrazione di Amazon Redshift ML con Amazon Bedrock
In questa sezione viene illustrato come creare un modello esterno da utilizzare come interfaccia per Amazon Bedrock all’interno del data warehouse Amazon Redshift.
Per invocare un modello Amazon Bedrock da Amazon Redshift, devi prima eseguire il comando CREATE EXTERNAL MODEL. Questo comando crea un oggetto modello esterno nel database e una funzione utente associata da utilizzare per generare contenuti di testo con Amazon Bedrock.
Il seguente esempio di codice mostra un comando CREATE EXTERNAL MODEL di 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:');
Il comando CREATE EXTERNAL MODEL ha un’interfaccia unificata e coerente con Amazon Bedrock per tutti i modelli di fondazione (FM) che supportano i messaggi. Questa è l’opzione predefinita quando utilizzi il comando CREATE EXTERNAL MODEL o quando specifichi esplicitamente il tipo di richiesta UNIFIED. Per ulteriori informazioni, consulta la documentazione dell’API Converse nella documentazione dell’API Amazon Bedrock.
Se un modello di fondazione non supporta i messaggi, devi impostare request_type su RAW, come mostrato nell’esempio seguente. Quando imposti request_type su RAW, devi creare la richiesta inviata ad Amazon Bedrock quando utilizzi la funzione di inferenza basata sul modello di fondazione selezionato. Assicurati di abilitare l’accesso al modello Titan Text G1 – Express in Amazon Bedrock prima di eseguire l’esempio seguente.
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);
Se hai bisogno di maggiori informazioni su una richiesta di input, ad esempio i token totali, puoi impostare RESPONSE_TYPE su super al momento della creazione del modello.
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);
Il parametro PROMPT per il comando CREATE EXTERNAL MODEL è un prompt statico. Se hai bisogno di un prompt dinamico per l’applicazione, devi specificarlo quando utilizzi la funzione di inferenza. Per ulteriori dettagli, consultare Progettazione dei prompt per l’integrazione di Amazon Redshift ML con Amazon Bedrock.
Per ulteriori informazioni sull’istruzione CREATE EXTERNAL MODEL e sui parametri e sulle impostazioni corrispondenti, consulta CREATE EXTERNAL MODEL.
Utilizzo di un modello esterno per l’integrazione di Amazon Redshift ML con Amazon Bedrock
In questa sezione viene illustrato come invocare un modello esterno per generare un testo in risposta ai prompt forniti. Per invocare un modello esterno, utilizza la funzione di inferenza che crei con CREATE EXTERNAL MODEL.
Argomenti
Inferenza con i modelli del tipo di richiesta UNIFIED
La funzione di inferenza per i modelli con il tipo di richiesta UNIFIED ha i seguenti tre parametri che vengono trasmessi alla funzione nell’ordine:
Testo di input (obbligatorio): questo parametro specifica il testo di input che Amazon Redshift trasmette ad Amazon Bedrock.
Configurazione di inferenza e Campi aggiuntivi per la richiesta del modello (facoltativi): Amazon Redshift trasmette questi parametri ai parametri corrispondenti per l’API del modello Converse.
L’esempio di codice seguente mostra come utilizzare una funzione di inferenza di tipo UNIFIED:
SELECT llm_claude_func(input_text, object('temperature', 0.7, 'maxtokens', 500)) FROM some_data;
Inferenza con i modelli del tipo di richiesta RAW
La funzione di inferenza per i modelli con il tipo di richiesta RAW ha un solo parametro del tipo di dati SUPER. La sintassi di questo parametro dipende dal modello Amazon Bedrock utilizzato.
L’esempio di codice seguente mostra come utilizzare una funzione di inferenza di tipo RAW:
SELECT llm_titan_func( object( "inputText", "Summarize the following text: " | input_text, "textGenerationConfig", object("temperature", 0.5, "maxTokenCount", 500) ) ) FROM some_data;
Funzioni di inferenza come funzioni leader-only
Le funzioni di inferenza per i modelli Amazon Bedrock possono essere eseguite come funzioni leader-only per nodi quando la query che le utilizza non fa riferimento ad alcuna tabella. Ciò può essere utile se desideri porre rapidamente una domanda a un LLM.
L’esempio di codice seguente mostra come utilizzare una funzione di inferenza leader-only:
SELECT general_titan_llm_func('Summarize the benefits of LLM on data analytics in 100 words');
Note per l’utilizzo della funzione di inferenza
Tieni presente quanto segue quando utilizzi funzioni di inferenza con l’integrazione di Amazon Redshift ML con Amazon Bedrock:
I nomi dei parametri per tutti i modelli Amazon Bedrock fanno distinzione tra maiuscole e minuscole. Se i parametri non corrispondono a quelli richiesti dal modello, Amazon Bedrock potrebbe ignorarli silenziosamente.
Il throughput delle query di inferenza è limitato dalle quote di runtime dei diversi modelli offerti da Amazon Bedrock in diverse Regioni. Per ulteriori informazioni, consulta Quote per Amazon Bedrock nella Guida per l’utente di Amazon Bedrock.
Se hai bisogno di un throughput garantito e costante, prendi in considerazione la possibilità di richiedere un throughput con provisioning per il modello di cui hai bisogno da Amazon Bedrock. Per ulteriori informazioni, consulta Aumentare la capacità di invocazione del modello con il throughput con provisioning in Amazon Bedrock nella Guida per l’utente di Amazon Bedrock.
Le query di inferenza con grandi quantità di dati potrebbero presentare eccezioni di limitazione. Ciò è dovuto alle quote di runtime limitate per Amazon Bedrock. Amazon Redshift ritenta le richieste più volte, ma le query possono comunque essere limitate perché il throughput per i modelli senza provisioning potrebbe essere variabile.
Se riscontri eccezioni di limitazione provenienti da Amazon Bedrock, ad esempio
Too many requests, please wait before trying again.anche con piccole quantità di dati, controlla le quote in Service Quotas nell’account Amazon Bedrock. Verifica che la quota applicata a livello di account sia almeno uguale al valore di quota AWS predefinito per InvokeModelle richieste per il modello che stai utilizzando.
Progettazione dei prompt per l’integrazione di Amazon Redshift ML con Amazon Bedrock
In questa sezione viene illustrato come utilizzare i prompt statici con un modello esterno.
Per utilizzare i prompt per prefissi e suffissi per il modello esterno, forniscili utilizzando i parametri PROMPT e SUFFIX dell’istruzione CREATE EXTERNAL MODEL. Questi prompt vengono aggiunti a ogni query che utilizza il modello esterno.
L’esempio seguente mostra come aggiungere i prompt per prefissi e suffissi a un modello esterno:
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');
Per utilizzare i prompt dinamici, puoi fornirli quando utilizzi la funzione di inferenza concatenandoli nell’input della funzione. L’esempio seguente mostra come utilizzare i prompt dinamici con una funzione di inferenza:
SELECT llm_claude_func('Summarize the following review:' | input_text | 'The review should have formal tone.') FROM some_data