Programma
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.

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.

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.

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.

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.

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”.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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:

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 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.

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.

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:
- AWS Cloud Technology and Services – Scopri i servizi core di AWS e come creare soluzioni cloud-native.
- AWS Security and Cost Management – Impara a mettere in sicurezza il tuo ambiente AWS e a ottimizzare i costi in modo efficace.
- Developing AI Applications – Approfondisci lo sviluppo di IA e impara a creare, distribuire e scalare soluzioni basate sull’IA.
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.


