Vai al contenuto principale

Amazon Bedrock: A Complete Guide to Building AI Applications

Discover how to build generative AI applications using Amazon Bedrock. This step-by-step tutorial walks you through its features, setup, and optimization techniques.
Aggiornato 3 giu 2026  · 15 min leggi

L’IA generativa è diventata il fattore dirompente in tutti i settori, trainando i progressi nell’elaborazione del linguaggio naturale, nella computer vision e in molti altri ambiti. Tuttavia, sfruttarne il potenziale è spesso stato accompagnato da sfide legate a costi, infrastrutture complesse e ripide curve di apprendimento. È qui che entra in gioco AWS Bedrock: questa soluzione rimuove gli ostacoli permettendoti di usare foundation model senza dover gestire l’infrastruttura.

Questo tutorial vuole essere la tua guida completa ad Amazon Bedrock, spiegando cos’è, come funziona e come puoi usarlo. Al termine, avrai le informazioni e le competenze necessarie per sviluppare applicazioni di IA generativa—scalabili, flessibili e allineate ai tuoi obiettivi.

Che cos’è Amazon Bedrock?

Amazon Bedrock è un servizio gestito di AWS per accedere e gestire foundation model (FM), i componenti di base dell’IA generativa di Amazon Web Services (AWS). Bedrock semplifica al punto che non devi preoccuparti di effettuare il provisioning di GPU, configurare pipeline di modelli o gestire altra infrastruttura.

AWS Bedrock è una porta d’accesso all’innovazione. È una piattaforma unificata che consente agli sviluppatori di esplorare, testare e distribuire modelli di IA all’avanguardia di provider di primo piano come Anthropic, Stability AI e Titan di Amazon.

Per esempio, immagina di sviluppare un chatbot per l’assistenza clienti. Con AWS Bedrock puoi selezionare un modello linguistico sofisticato, adattarlo alle esigenze della tua applicazione e integrarlo senza dover mai scrivere configurazioni del server nel codice.

Funzionalità di AWS Bedrock

Le funzionalità di AWS Bedrock sono pensate per semplificare e accelerare il passaggio dall’idea all’ambiente di produzione. Vediamole nel dettaglio.

Accesso a più foundation model

Uno dei maggiori vantaggi di AWS Bedrock è la varietà di foundation model disponibili. Che tu stia lavorando su applicazioni testuali, contenuti visivi o IA sicura e interpretabile, Bedrock ti copre. Ecco alcuni modelli disponibili:

  • Modelli Amazon: Questi modelli proprietari si possono usare per attività come creare testo naturale per chatbot o applicazioni di content creation, ridurre documenti all’essenziale o interpretare il sentiment dei feedback dei clienti.
  • Modelli Anthropic: Questi modelli sono focalizzati sullo sviluppo di un’IA buona e sicura e sono particolarmente adatti a settori che richiedono conformità e fiducia, come banche o sanità.
  • Stability AI: I modelli Stability AI sono noti per la generazione di immagini. Aiutano a trasformare idee in visual per marketing, artwork o sviluppo prodotto.

Diagramma di Amazon Bedrock, collegato a Amazon Models, Anthropic, Stability AI e altri provider, che illustra il suo ruolo di hub per i servizi di IA generativa.

Panoramica di Amazon Bedrock, con evidenza dell’integrazione con i modelli.

Nessuna gestione dell’infrastruttura

AWS Bedrock astrae la gestione dell’infrastruttura, il che significa:

  • Nessuna necessità di effettuare il provisioning di istanze GPU.
  • Puoi concentrarti solo sulla creazione di applicazioni con un’architettura serverless.
  • La facilità d’uso riduce notevolmente i tempi di configurazione, spesso da settimane a ore.

Scalabilità e flessibilità

Le applicazioni di IA generativa hanno in genere una domanda imprevedibile. Un chatbot può rispondere a centinaia di utenti nelle ore di punta e a pochi durante la notte. AWS Bedrock risolve questo aspetto con la scalabilità integrata:

  • Scalabilità automatica: i modelli possono adattarsi automaticamente per gestire i picchi di carico senza interventi manuali.
  • Carichi in parallelo: puoi eseguire più modelli contemporaneamente per casi d’uso diversi all’interno di una singola applicazione.
  • Disponibilità globale: con la rete globale di AWS, puoi distribuire le applicazioni vicino ai tuoi utenti, riducendo la latenza e migliorando l’esperienza d’uso.

Integrazione con l’ecosistema AWS

AWS Bedrock va oltre la fornitura di modelli potenti: si integra con altri servizi AWS per supportare workflow di IA end-to-end. Alcune integrazioni includono:

  • Amazon SageMaker: consente il fine-tuning dei foundation model per soddisfare requisiti specifici.
  • AWS Lambda: facilita applicazioni di IA event-driven, ad esempio per attivare un modello che affini nuovi dati o riveda i risultati di inferenza.
  • Amazon CloudWatch: offre funzionalità di monitoraggio e logging per analizzare le prestazioni dei modelli e raccogliere feedback degli utenti.
  • Amazon S3: funge da soluzione di storage per dataset, abilitando il tracking delle prestazioni e l’analisi dei costi.

Configurare AWS Bedrock

Questa sezione ti guida nella configurazione delle autorizzazioni necessarie, nella creazione di un account AWS e nell’avvio con AWS Bedrock.

Passo 1: Creare un account AWS (se non l’hai già fatto)

Se non ne hai già uno, vai alla pagina di registrazione AWS e crea un account. Se sei già utente, assicurati che il tuo utente IAM abbia privilegi di amministratore.

Pagina di registrazione AWS con un form per inserire l’email dell’utente root e il nome dell’account AWS.

La pagina di registrazione AWS, con l’esplorazione del Free Tier per i nuovi account.

Se cerchi i passaggi dettagliati, visita la guida ufficiale AWS.

Passo 2: Accedere a AWS Bedrock

Amazon Bedrock è accessibile dalla AWS Management Console. Segui questi passaggi per trovarlo e iniziare a usarlo:

  • Accedi alla AWS Management Console: vai alla Console AWS e inserisci le credenziali.
  • Cerca Bedrock: usa la barra di ricerca in alto. Digita “Bedrock” e selezionalo dal menu a discesa.

Screenshot dei risultati di ricerca della AWS Management Console per "Bedrock," che mostrano Amazon Bedrock come servizio per creare applicazioni di IA generativa, Amazon SageMaker per analisi dati e IA, e un’introduzione evidenziata alla ricerca di risorse con funzionalità cross-region

Risultati di ricerca della AWS Management Console per Bedrock.

  • Esplora la dashboard di Bedrock: una volta nella dashboard, vedrai opzioni per scegliere provider di modelli e foundation model.

Screenshot della pagina Amazon Bedrock Providers con tre provider di modelli serverless: Amazon, Anthropic e Meta

Pagina dei provider di Amazon Bedrock con opzioni di modelli serverless di Amazon.

  • Seleziona un provider e un foundation model:
    • Scegli un provider in base al caso d’uso (ad es., Amazon Titan per generazione di testo, Stability AI per immagini, ecc.).
    • Esplora le opzioni specifiche del modello come tipi di input, funzionalità supportate e parametri di output.
  • Esegui un’inferenza di prova: AWS Bedrock ti permette di eseguire inferenze di esempio direttamente dalla console. È un ottimo modo per capire come funziona ogni modello prima di integrarlo nella tua applicazione.

Screenshot del Chat/Text Playground di Amazon Bedrock, con il modello Claude 3 Opus. L’interfaccia include opzioni per inserire un prompt, eseguire risposte e confrontare modelli diversi. Il pannello a sinistra elenca opzioni come "Getting started," "Foundation models," "Playgrounds," "Builder tools," e "Safeguards."

Interfaccia Chat/Text Playground di Amazon Bedrock.

Passo 3: Configurare le autorizzazioni IAM

AWS Identity and Access Management (IAM) è fondamentale per accedere in modo sicuro ad AWS Bedrock. Segui questi passaggi per configurare i permessi:

  • Nella AWS Management Console, vai al servizio IAM .
  • Clicca Roles nella sidebar e seleziona Create policy.
  • In Specify permissions, scegli “JSON”.

Screenshot dell’Editor di policy AWS IAM in modalità JSON, con una policy parzialmente configurata e liste "Action" e "Resource" vuote. La sidebar a sinistra indica un processo in due passaggi: "Specify permissions" e "Review and create." Il pannello di destra offre opzioni per aggiungere azioni, filtrare servizi e rimuovere istruzioni.

Editor di policy AWS IAM in modalità JSON

  • Incolla la policy seguente nella casella di testo:
{
    "Version": "2012-10-17",
    "Statement": [        {
            "Sid": "BedrockFullAccess",
            "Effect": "Allow",
            "Action": ["bedrock:*"],
            "Resource": "*"
        }
    ]
}

Nota: La policy sopra può essere associata a qualsiasi ruolo che debba accedere al servizio Amazon Bedrock. Può essere SageMaker o un utente. Quando usi Amazon SageMaker, il ruolo di esecuzione del tuo notebook è in genere diverso dall’utente o ruolo con cui accedi alla AWS Management Console. Per scoprire come esplorare il servizio Amazon Bedrock usando la Console AWS, assicurati di autorizzare il tuo utente o ruolo della Console. Puoi eseguire i notebook da qualsiasi ambiente con accesso al servizio AWS Bedrock e credenziali valide.

Usare Amazon Bedrock per applicazioni di IA generativa

Le applicazioni di IA generativa si basano su foundation model adattati a un compito specifico, come generazione di testo, creazione di immagini o trasformazione dei dati. Di seguito trovi una guida passo passo per scegliere un foundation model, usare inferenze di base e modificare le risposte del modello in base alle tue esigenze.

Selezionare un foundation model

Scegliere il foundation model giusto è importante perché dipende dalle necessità del progetto. Ecco come procedere:

1. Identifica il tuo caso d’uso:

  • Generazione di testo: Per attività come sintesi, content creation o sviluppo di chatbot, considera modelli come:
    • Amazon Titan Text G1: genera testo di alta qualità con una buona comprensione del contesto.
    • Anthropic Claude 3: eccelle nel produrre testo coerente e pertinente al contesto, quindi è adatto ad applicazioni di IA conversazionale.
  • Generazione di immagini: Se il tuo progetto riguarda la creazione di immagini o qualunque forma di contenuto visivo, i modelli Stability AI sono la scelta ideale:
    • Stable Diffusion 3.5 Large: è molto efficace nel generare immagini da descrizioni testuali, sia fotorealistiche che artistiche.
  • Attività multimodali: Per applicazioni che richiedono sia elaborazione testuale sia di immagini, sono consigliati i modelli Amazon Nova:
    • Nova Lite: un modello multimodale attento ai costi che può accettare input di testo, immagine e video e produrre testo.
    • Nova Pro: un modello multimodale valido per attività più complesse.

2. Valuta le capacità dei modelli:

  • Rivedi i punti di forza specifici di ciascun modello per assicurarti che siano allineati alle esigenze del tuo progetto. Informazioni dettagliate sui foundation model supportati, incluse capacità e regioni disponibili, sono disponibili nella documentazione AWS.

Abilitare l’accesso ai modelli

Prima di usare questi modelli, devi abilitare l’accesso ai modelli nel tuo account AWS. Ecco come impostarlo:

  • Nella Console Bedrock, vai su Models access.
  • Nella Console, clicca su Modify model access.
  • Sfoglia i modelli disponibili dai provider e seleziona quello che preferisci. In questo caso, ho selezionato Titan Text G1—Express.

Screenshot della pagina Amazon Bedrock "Edit model access", che mostra un elenco di modelli Amazon Titan con i rispettivi stati di accesso. Alcuni modelli hanno "Access granted," mentre altri sono "Available to request." L’interfaccia include opzioni per filtrare i modelli, espandere o comprimere le sezioni e raggruppare i modelli per provider. Il pannello di sinistra mostra un processo in due passaggi: "Edit model access" e "Review and submit."

Pagina di gestione degli accessi ai modelli di Amazon Bedrock.

  • Clicca Next e poi Review and submit.

Eseguire inferenze di base

Per eseguire un’inferenza usando un foundation model selezionato in AWS Bedrock, segui questi passaggi:

  • Configura l’AWS SDK per Python (boto3):
pip install boto3
  • Inizializza il client Bedrock: crea un client runtime Bedrock nella regione AWS che preferisci:
import boto3
import json
from botocore.exceptions import ClientError

# Set the AWS Region
region = "us-east-1"

# Initialize the Bedrock Runtime client
client = boto3.client("bedrock-runtime", region_name=region)
  • Invoca il modello: definisci l’ID del modello e il prompt di input:
# Define the model ID for Amazon Titan Express v1
model_id = "amazon.titan-text-express-v1"

# Define the input prompt
prompt = """
Command: Compose an email from Tom, Customer Service Manager, to the customer "Nancy" 
who provided negative feedback on the service provided by our customer support 
Engineer"""
  • Formatta il payload della richiesta:
# Configure inference parameters
inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 512,  # Limit the response length
       "temperature": 0.5,    # Control the randomness of the output
   },
}

# Convert the request payload to JSON
request_payload = json.dumps(inference_parameters)
  • Elabora la risposta:
try:
   # Invoke the model
   response = client.invoke_model(
       modelId=model_id,
       body=request_payload,
       contentType="application/json",
       accept="application/json"
   )

   # Decode the response body
   response_body = json.loads(response["body"].read())

   # Extract and print the generated text
   generated_text = response_body["results"][0]["outputText"]
   print("Generated Text:\n", generated_text)

except ClientError as e:
   print(f"ClientError: {e.response['Error']['Message']}")
except Exception as e:
   print(f"An error occurred: {e}")

Nota: puoi accedere e copiare il codice completo direttamente dal GitHub Gist.

Puoi aspettarti un output come quello sotto:

% python3 main.py

Generated Text:
 
Tom:
Nancy,

I am writing to express my sincere apologies for the negative experience you had with our customer support engineer. It is unacceptable that we did not meet your expectations, and I want to assure you that we are taking steps to prevent this from happening in the future.

Sincerely,
Tom
Customer Service Manager

Personalizzare gli output del modello

Per rifinire il comportamento dell’output del modello, puoi regolare parametri come temperature e maxTokenCount:

  • temperature: controlla il grado di casualità dell’output. Valori più bassi aumentano la determinazione dell’output, valori più alti aumentano la variabilità.
  • MaxTokenCount: imposta la lunghezza massima dell’output generato.

Per esempio:

inference_parameters = {
   "inputText": prompt,
   "textGenerationConfig": {
       "maxTokenCount": 256,  # Limit the response length
       "temperature": 0.7,    # Control the randomness of the output
   },
}

Regolando questi parametri, puoi adattare meglio creatività e lunghezza dei contenuti generati alle esigenze della tua applicazione.

Funzionalità avanzate di Amazon Bedrock

Cambiamo marcia e concentriamoci su due approcci avanzati: potenziare l’IA con la Retrieval-Augmented Generation (RAG) e gestire e distribuire i modelli su larga scala.

Personalizzare gli output dell’IA con la retrieval-augmented generation (RAG)

RAG richiede una knowledge base. Prima di configurarla in Amazon Bedrock, devi creare un bucket S3 e caricare i file necessari. Segui questi passaggi:

Passo 1: Crea un bucket S3

  • Accedi alla AWS Management Console:
    • Vai al servizio S3 nella AWS Management Console.
  • Crea un nuovo bucket:
    • Clicca Create bucket.
    • Inserisci un nome univoco per il bucket.
    • Lascia le impostazioni predefinite, a meno che tu non abbia requisiti specifici di sicurezza o cifratura.
  • Configura le impostazioni del bucket:
    • Assicurati che il blocco dell’accesso pubblico sia abilitato, a meno che non ti serva diversamente.
    • (Opzionale) Abilita il versioning se vuoi mantenere versioni dei tuoi file.
  • Crea il bucket:
    • Clicca Create bucket per completare la configurazione.

Passo 2: Carica i file nel bucket S3

  • Scarica il file:
    • Il link GitHub fornito include un file PDF di esempio con dati fittizi: octank_financial_10K.pdf. Puoi usare un file diverso se preferisci.
    • Salvalo in locale sul tuo computer.
  • Carica il file su S3:
    • Apri il bucket S3 appena creato nella Console AWS.
    • Clicca su Upload e seleziona il file octank_financial_10K.pdf.
    • Rivedi e imposta i permessi (predefinito: privato).
    • Clicca su Upload per aggiungere il file al bucket.

Screenshot di un bucket Amazon S3 chiamato "amazon-bedrock-099," che mostra la scheda "Objects" con un singolo file PDF chiamato "octank_financial_10K.pdf."

Vista del bucket Amazon S3 per "amazon-bedrock-099".

Amazon Bedrock ti consente di creare una knowledge base alimentata da database vettoriali. I seguenti passaggi ti guidano nella creazione di una knowledge base, nella configurazione di una sorgente dati e nella selezione di embeddings e archivi vettoriali.

Passo 1: Fornisci i dettagli della knowledge base

  • Vai alla Amazon Bedrock Console e seleziona Knowledge Bases nella sezione Builder tools.
  • Clicca su Create Knowledge Base e compila i seguenti dettagli:
    • Nome della Knowledge Base: inserisci un nome univoco (es. knowledge-base-quick-start).
    • Descrizione della Knowledge Base: (opzionale) descrivi brevemente la knowledge base.
  • Nella sezione IAM permissions:
    • Scegli “Create and use a new service role” oppure “Use an existing service role”.
    • Assicurati che il ruolo di servizio abbia le autorizzazioni necessarie per l’accesso a Bedrock.
    • Esempio di Service Role: AmazonBedrockExecutionRoleForKnowledgeBase.
  • Clicca su Next per procedere alla configurazione della sorgente dati.

Screenshot della procedura guidata per la creazione della Knowledge Base in Amazon Bedrock, che mostra i passaggi per configurarla.

Procedura guidata di creazione della Knowledge Base in Amazon Bedrock.

Passo 2: Configura la sorgente dati

  • Nella sezione Data source details, scegli la tua sorgente dati:
    • Amazon S3: seleziona questa opzione poiché i tuoi dati sono in S3.
  • Specifica quanto segue:
    • Data source location: scegli tra "This AWS Account" o "Other AWS Account".
    • S3 URI: fornisci l’URI del bucket S3 che contiene i dati. Scegli l’S3 che hai creato nel passaggio precedente e il file.
    • Encryption key: (opzionale) aggiungi una chiave KMS gestita dal cliente se i tuoi dati sono cifrati.
  • Configura la strategia di parsing:
    • Default parser: elabora dati di testo semplice. Puoi lasciarlo così com’è.
    • Foundation models as parser: elabora documenti complessi o immagini. Puoi lasciarlo così com’è.
  • Strategia di chunking:
    • L’impostazione predefinita divide il testo in blocchi di circa 300 token per gli embeddings. Puoi lasciarla così com’è.
  • (Opzionale) Aggiungi Transformation functions o impostazioni avanzate per pre-processare i tuoi dati. Puoi lasciarle così come sono.
  • Clicca su Next per procedere.

Screenshot dell’interfaccia di configurazione della sorgente dati in Amazon Bedrock, con impostazioni per collegare una sorgente dati Amazon S3

Pagina di configurazione della sorgente dati di Amazon Bedrock per integrare una knowledge base basata su S3.

Passo 3: Seleziona il modello di embeddings e configura il vector store

  • Scegli un modello di Embeddings per convertire i tuoi dati in rappresentazioni vettoriali:
    • Titan Embeddings G1 - Text v1.2  (puoi scegliere questo per il tutorial.)
    • Embed English v3
    • Embed Multilingual v3
  • Nella sezione Vector database:
    • Scegli “Quick create a new vector store” (consigliato) oppure seleziona uno store esistente.
    • Le opzioni includono:
      • Amazon OpenSearch Serverless: ideale per risposte contestualmente pertinenti. Puoi sceglierlo per questo tutorial.
      • Amazon Aurora PostgreSQL Serverless: ottimizzato per ricerche di similarità veloci.
      • Amazon Neptune Analytics: adatto ad analisi basate su grafi e RAG (Retrieval-Augmented Generation).
  • Clicca su Next per rivedere e finalizzare la configurazione.

Screenshot dell’interfaccia Amazon Bedrock per selezionare un modello di embeddings e configurare un database vettoriale.

Pagina di configurazione di Amazon Bedrock per la scelta di un embedding model e del vector store.

Passo 4: Rivedi e crea

  • Rivedi tutte le configurazioni.
  • Conferma e clicca su Create per finalizzare la knowledge base.
  • Una volta creata, la tua knowledge base apparirà nella sezione Knowledge Bases della console.

Passo 5: Testa la knowledge base

  • Accedi alla panoramica della knowledge base:
    • Vai alla sezione Knowledge Bases nella Amazon Bedrock Console.
    • Seleziona la knowledge base che hai creato (es. knowledge-base-quick-start).
    • Rivedi i dettagli dell’overview:
      • Nome e ID della Knowledge Base
      • Assicurati che lo stato sia “Available”.
      • Verifica che il service role corretto sia in uso.
  • Sincronizza e aggiungi sorgenti dati:
    • Se la sorgente dati non è stata sincronizzata, clicca su Sync per avviare il processo.
    • Puoi anche aggiungere altri documenti o sorgenti dati tramite Add documents from S3.

Screenshot della pagina di overview della Knowledge Base in Amazon Bedrock, con dettagli chiave come nome, ID, service role, stato e tipo di RAG (Retrieval-Augmented Generation).

Panoramica della Knowledge Base in Amazon Bedrock con dettagli di configurazione e stato della sorgente dati.

Passo 6: Seleziona un modello per il test

  • Scegli un foundation model:
    • Clicca su Select model nel pannello Test Knowledge Base.
    • Sfoglia i modelli disponibili di provider come Amazon, Anthropic e Cohere.
    • Esempio: seleziona Claude Instant (v1.2) per query testuali.
  • Tipo di inferenza:
    • Scegli l’inferenza On-demand se non hai configurato provisioned throughput.
  • Applica il modello:
    • Clicca su Apply per finalizzare la selezione del modello.

Screenshot dell’interfaccia "Select model" di Amazon Bedrock, che mostra provider di modelli tra cui Amazon, Anthropic, Cohere, Meta e Mistral AI.

Interfaccia di selezione dei modelli di Amazon Bedrock con vari modelli Claude di Anthropic.

Passo 7: Esegui query e genera risposte

  • Genera una risposta:
    • Inserisci la tua query nella casella di input (ad es., “Help me with Financial Statement Schedules”).
    • Clicca su Run per testare la knowledge base.
  • Visualizza i dettagli della fonte:
    • La risposta includerà porzioni di dati rilevanti per la tua query.
    • Espandi Source Details per vedere metadati e origine delle informazioni recuperate.
  • Rivedi l’output:
    • Valida la risposta per assicurarti che sia coerente con i contenuti della knowledge base.
    • Affina le configurazioni di retrieval se necessario.

Screenshot della pagina di test della Knowledge Base in Amazon Bedrock. Il modello selezionato è "Claude Instant v1.2" impostato su inferenza on-demand.

Interfaccia di test della Knowledge Base in Amazon Bedrock che mostra una risposta a una query.

Esempio di output della query:

  • Query: “Help me with Financial Statement Schedules.”
  • Risposta: la knowledge base recupererà dati che dettagliano specifiche voci dei bilanci, come prospetti di attività, passività e metadati correlati.

Gestire e distribuire modelli di IA su larga scala

Usando servizi AWS come Lambda, Amazon Bedrock può gestire e distribuire modelli di IA su larga scala. Questo approccio, efficiente in termini di costi, garantisce alta disponibilità e scalabilità automatica per applicazioni basate su IA. 

In questa sezione useremo AWS Lambda per invocare dinamicamente un modello Bedrock, così da poter elaborare prompt on demand.

Passo 1: Crea una funzione AWS Lambda

  • Accedi alla AWS Management Console.
  • Vai al servizio Lambda e clicca Create function.
  • Scegli la configurazione della funzione:
    • Seleziona “Author from Scratch”.
    • Nome funzione: bedrock.
    • Runtime: Python 3.x.
    • Permessi: seleziona un ruolo IAM creato nella sezione iniziale di questo tutorial.
  • Clicca su Create function per inizializzare la configurazione.

Screenshot dell’interfaccia di creazione di una funzione AWS Lambda. L’opzione selezionata è "Author from scratch," e il nome della funzione è impostato su "bedrock."

Pagina di creazione di una funzione AWS Lambda.

Passo 2: Aggiungi il codice della funzione Lambda

  • Apri l’editor della funzione nella sezione Code della console Lambda.
  • Sostituisci il codice predefinito con il codice fornito nel Github Gist.
  • Clicca su Deploy per salvare le modifiche.

Passo 3: Testa la funzione Lambda

  • Vai alla scheda Test nella console Lambda e crea un evento di test con il seguente JSON:
{
    "prompt": "Write a formal apology letter for a late delivery."
}
  • Salva l’evento di test.
  • Clicca su Test per invocare la funzione Lambda.
  • Controlla l’output nella sezione Execution results. Il testo generato dovrebbe essere simile a questo:

Screenshot dei risultati di esecuzione AWS Lambda che indicano una funzione eseguita con successo

Risultato di esecuzione AWS Lambda che mostra un’esecuzione riuscita.

Best practice per la distribuzione di modelli di IA

Ottimizza i costi:

  • Usa l’inferenza on-demand per casi d’uso occasionali.
  • Valuta il provisioned throughput se prevedi richieste ad alta frequenza.

Metti in sicurezza la funzione Lambda:

  • Limita il ruolo IAM ai soli permessi necessari.
  • Usa variabili d’ambiente per evitare di esporre dati sensibili nel codice.

Monitora e registra i log:

  • Usa i log di CloudWatch per tracciare le metriche di invocazione e fare debug.
  • Imposta allarmi per errori o alta latenza.

Best practice per usare AWS Bedrock

In questa sezione condivido alcune best practice quando lavori con Amazon Bedrock, dall’ottimizzazione dei costi alla sicurezza e all’accuratezza. 

Ottimizzazione dei costi

La gestione dei costi in AWS Bedrock può includere l’uso di Amazon SageMaker per distribuire modelli e utilizzare Spot Instances per risparmiare fino al 90% delle spese. Ecco alcune delle mie best practice:

  • Scegli il foundation model giusto: seleziona modelli in linea con le tue esigenze. Per attività meno complesse, scegli modelli più piccoli e meno onerosi per ridurre i costi di calcolo. Per esempio, i modelli Amazon Titan possono essere usati per compiti testuali come la sintesi o Stability AI per una semplice generazione di immagini.
  • Batch inference: invece di elaborare le richieste singolarmente, raggruppa più richieste di inferenza in batch. Questo riduce la frequenza delle invocazioni del modello e, di conseguenza, i costi.
  • Sfrutta le lifecycle policy di S3: conserva in Amazon S3 solo i dati necessari per inferenza o fine-tuning. Usa le lifecycle policy per spostare automaticamente i dati su classi di storage più economiche (es. S3 Glacier) o eliminare i dati inutilizzati dopo un certo periodo.
  • Monitora e controlla la spesa: usa AWS Cost Explorer per analizzare i pattern di spesa e individuare aree di ottimizzazione. Imposta AWS Budgets per ricevere avvisi quando ti avvicini a soglie di costo predefinite.

Grafico che rappresenta costi e utilizzo dei servizi Amazon Bedrock

Grafico di costi e utilizzo per i servizi Amazon Bedrock.

  • Usa Bedrock con SageMaker per l’efficienza dei costi: usa i foundation model di Bedrock in SageMaker per sfruttare le Spot Instances gestite per job di inferenza e training.
  • Usa Spot Instances in SageMaker: Le Spot Instances possono ridurre i costi fino al 90% rispetto alle istanze On-Demand. SageMaker gestisce le interruzioni Spot per tuo conto, riprovando automaticamente i job di training se la capacità Spot non è disponibile. Esempio:
from sagemaker.mxnet import MXNet

# Use spot instances for cost efficiency
use_spot_instances = True

# Maximum runtime for the training job (in seconds)
max_run = 600

# Maximum wait time for Spot instance availability (in seconds); set only if using Spot instances
max_wait = 1200 if use_spot_instances else None

# Define the MXNet estimator for the training job
mnist_estimator = MXNet(
    entry_point='source_dir/mnist.py',  # Path to the script that contains the model training code
    role=role,  # IAM role used for accessing AWS resources (e.g., S3, SageMaker)
    output_path=model_artifacts_location,  # S3 location to save the trained model artifacts
    code_location=custom_code_upload_location,  # S3 location to upload the training script
    instance_count=1,  # Number of instances to use for training
    instance_type='ml.m4.xlarge',  # Instance type for the training job
    framework_version='1.6.0',  # Version of the MXNet framework to use
    py_version='py3',  # Python version for the environment
    distribution={'parameter_server': {'enabled': True}},  # Enable distributed training with a parameter server
    hyperparameters={  # Training hyperparameters
        'learning-rate': 0.1,  # Learning rate for the training job
        'epochs': 5  # Number of training epochs
    },
    use_spot_instances=use_spot_instances,  # Enable Spot instances for cost savings
    max_run=max_run,  # Maximum runtime for the training job
    max_wait=max_wait,  # Maximum wait time for Spot instance availability
    checkpoint_s3_uri=checkpoint_s3_uri  # S3 URI for saving intermediate checkpoints
)

# Start the training job and specify the locations of training and testing datasets
mnist_estimator.fit({
    'train': train_data_location,  # S3 location of the training dataset
    'test': test_data_location  # S3 location of the testing/validation dataset
})
  • Usa metriche e log di CloudWatch: le metriche di training e i log sono disponibili in Amazon CloudWatch, offrendo indicazioni su prestazioni e uso delle risorse.

Screenshot di eventi di log AWS CloudWatch, con voci per un modello di machine learning nel percorso /opt/ml/model. Ogni log include timestamp, IP sorgente e richiesta HTTP GET a /ping con codice 200.

Log di AWS CloudWatch

Sicurezza

Per garantire sicurezza, conformità e prestazioni di Amazon Bedrock, è importante seguire le best practice. Ecco le mie raccomandazioni:

  • Applica il principio del privilegio minimo: limita le autorizzazioni IAM e i service role alle sole risorse necessarie per prevenire accessi non autorizzati.
  • Verifica service role e security group: assicurati che gli agent di Bedrock e i job di personalizzazione dei modelli siano configurati correttamente con ruoli di servizio attivi e impostazioni di sicurezza adeguate.
  • Esegui i carichi di lavoro in una VPC: aumenta la sicurezza eseguendo i job di personalizzazione e l’elaborazione dei dati all’interno di una Virtual Private Cloud (VPC).
  • Cifra i dati critici: usa le Amazon KMS Customer-Managed Keys (CMK) per cifrare le sessioni degli agent, gli spazi di lavoro di Bedrock Studio, i modelli personalizzati e i dati transitori della knowledge base.
  • Implementa policy di eliminazione dei dati: conserva i dati archiviati nel vector store solo quando le sorgenti knowledge-based sono attive; configura l’eliminazione automatica quando non sono più necessari.
  • Rafforza i guardrail di Bedrock: imposta Prompt Attack Strength su HIGH e abilita i filtri per le informazioni sensibili per proteggerti da attacchi avversari e fughe di dati.
  • Metti in sicurezza le sessioni degli agent: usa i guardrail per impedire accessi non autorizzati e proteggere le interazioni sensibili.
  • Abilita il logging per la visibilità: attiva il logging delle invocazioni dei modelli a livello di account per tracciare l’attività e rilevare anomalie.
  • Difenditi dagli attacchi cross-service: usa policy dei ruoli di servizio per prevenire i Cross-Service Confused Deputy Attacks.

Monitoraggio e valutazione dei modelli

Garantire che i modelli siano accurati, affidabili e allineati agli obiettivi di business si ottiene monitorandoli e valutandoli. Ecco alcune best practice:

  • Traccia le metriche di prestazione: usa CloudWatch per monitorare latenza, errori e trend di invocazione.
  • Registra input e output: abilita logging dettagliato per debugging e analisi dei trend.
  • Integra cicli di feedback: usa strumenti come Amazon A2I per includere revisioni umane per gli output critici.
  • Valuta regolarmente gli output: confronta gli output con dataset di validazione o ground truth.
  • Migliora continuamente i modelli: esegui fine-tuning con dataset aggiornati o dati di dominio specifici quando necessario.

Dashboard con quattro grafici che tracciano metriche per i modelli Amazon Bedrock.

La dashboard delle metriche mostra conteggio invocazioni, latenza e token per vari modelli in Amazon Bedrock.

Conclusione

AWS Bedrock cambia le regole su come si sviluppano le applicazioni di IA generativa ed è una piattaforma centralizzata per usare foundation model senza preoccuparsi dell’infrastruttura. 

Da qui in avanti, questo tutorial passo passo dovrebbe aiutarti a identificare i modelli giusti, creare workflow sicuri e scalabili e integrare funzionalità come la retrieval-augmented generation (RAG) per una personalizzazione maggiore. Con best practice su costi, sicurezza e monitoraggio, sei pronto a sviluppare e gestire le tue soluzioni di IA per raggiungere i tuoi obiettivi.

Per approfondire ulteriormente le tue competenze su AWS, esplora questi corsi:


Rahul Sharma's photo
Author
Rahul Sharma
LinkedIn
Twitter

Rahul Sharma è un AWS Ambassador, DevOps Architect e blogger tecnico specializzato in cloud computing, pratiche DevOps e tecnologie open source. Con esperienza in AWS, Kubernetes e Terraform, semplifica concetti complessi per chi studia e per i professionisti attraverso articoli e tutorial coinvolgenti. Rahul è appassionato di risolvere le sfide DevOps e di condividere idee per dare forza alla community tech.

Argomenti

Learn more about AWS with these courses!

Programma

Esperto di cloud AWS (CLF-C02)

10 h
Preparati per l'AWS Certified Cloud Practitioner (CLF-C02) di Amazon imparando a utilizzare e proteggere i servizi di calcolo, database e storage AWS.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Mostra altroMostra altro