L'apprendimento automatico (in inglese, Machine Learning - ML) ha raggiunto un punto di svolta critico, caratterizzato dalla convergenza della disponibilità immediata di capacità di calcolo scalabile, una proliferazione massiva di dati e il rapido avanzamento delle tecnologie di ML. Di conseguenza, i clienti di tutti i settori stanno trasformando i loro business. Recentemente, le applicazioni dell'intelligenza artificiale generativa (IA generativa, in inglese, Generative AI) hanno catturato l'attenzione e l'immaginazione. Ci troviamo davvero in una fase entusiasmante nell'adozione del ML, poiché la maggior parte delle esperienze e delle applicazioni dei clienti verrà reinventata con l'IA generativa.

In questo articolo, esploreremo e comprenderemo Amazon Bedrock, un servizio che ci permette di creare applicazioni di IA generativa in modo semplice, senza dover gestire alcuna infrastruttura e in tempi rapidi. Questo servizio è stato sviluppato per democratizzare l'accesso a potenti modelli di IA, consentendo a sviluppatori e aziende di innovare con maggiore facilità ed efficienza.

Cos'è l'IA generativa?

L'intelligenza artificiale ha l'obiettivo di imitare l'intelligenza umana in compiti computazionali, come il riconoscimento di immagini, l'elaborazione del linguaggio naturale (in inglese, Natural Language Processing - NLP) e la traduzione. L'IA generativa è un tipo di intelligenza artificiale che può creare idee e contenuti completamente nuovi, come conversazioni, storie, immagini, video e musica. Essa rappresenta il passo successivo nell'evoluzione dell'intelligenza artificiale, spingendo oltre i limiti della semplice analisi o riconoscimento. È possibile addestrare modelli di IA generativa per far sì che comprendano il linguaggio umano, linguaggi di programmazione, arte, chimica, biologia o qualsiasi altro argomento complesso, aprendo un'ampia gamma di possibilità creative e applicative.

Cosa sono i foundation model?

I foundation models (FMs), conosciuti in italiano come modelli base, sono reti neurali di apprendimento profondo che hanno rivoluzionato il modo in cui i data scientist approcciano il ML. Invece di sviluppare l'intelligenza artificiale (IA) da zero per ogni applicazione, i data scientist utilizzano un modello base come punto di partenza per sviluppare modelli di ML che alimentano nuove applicazioni in modo rapido ed economicamente vantaggioso. Il termine foundational model è stato coniato dai ricercatori per descrivere modelli di ML addestrati su un ampio spettro di dati non etichettati, i quali sono capaci di svolgere una grande varietà di compiti generali come comprendere il linguaggio, generare testo, immagini e conversazioni in linguaggio naturale. Questa capacità di generalizzazione li rende estremamente versatili e potenti.

Amazon Bedrock

Amazon Bedrock è un servizio completamente gestito che offre una selezione di modelli base ad alte prestazioni provenienti dalle principali aziende di IA, tra cui AI21 Labs, Anthropic, Cohere, Meta, Stability AI e Amazon stessa, accessibili tramite API. Questi modelli base mettono a disposizione un ampio set di capacità necessarie per creare applicazioni basate sull'IA generativa in modo semplice e, aspetto fondamentale, mantenendo la privacy e la sicurezza dei dati degli utenti.

Amazon Bedrock consente di sperimentare facilmente con una varietà dei principali FMs, poiché è possibile personalizzarli attraverso diverse tecniche. Una di queste è il fine-tuning (in inglese, Fine-tuning), che permette di fornire il proprio set di dati di addestramento etichettato per migliorare le prestazioni del modello su compiti specifici. Un'altra tecnica supportata è la generazione aumentata per recupero (in inglese, Retrieval Augmented Generation - RAG), utile per creare agenti gestiti che eseguono compiti aziendali complessi. Ad esempio, è possibile implementare la prenotazione di viaggi, l'elaborazione di reclami assicurativi, la creazione di campagne pubblicitarie e la gestione degli inventari, il tutto senza la necessità di scrivere alcun codice.

Utilizzando Amazon Bedrock, è possibile abilitare un flusso di lavoro RAG impiegando basi di conoscenza per creare applicazioni contestuali attraverso le capacità di ragionamento dei modelli di linguaggio di grandi dimensioni (in inglese, Large Language Model - LLM). La RAG è una tecnica popolare che combina l'uso di dati privati con gli LLM, migliorando la pertinenza e l'accuratezza delle risposte generate. La combinazione di Amazon Bedrock con le basi di conoscenza consente una commercializzazione più rapida automatizzando la soluzione RAG e riducendo il tempo di creazione per il proprio agente. Dato che Amazon Bedrock è un servizio serverless, non è necessario gestire alcuna infrastruttura, e si possono integrare e implementare in modo sicuro e semplice le capacità di IA generativa nelle proprie applicazioni, beneficiando di scalabilità e resilienza intrinseche.

Interagire con Amazon Bedrock

Istruzioni passo dopo passo

Per iniziare a usare Amazon Bedrock, è necessario seguire alcuni passaggi per richiedere l'accesso ai modelli e configurare l'ambiente:

  1. Per un elenco delle regioni AWS in cui Amazon Bedrock è disponibile, consultare la documentazione ufficiale di Amazon Bedrock sui punti di connessione e le quote.
  2. Gli utenti di Amazon Bedrock devono richiedere l'accesso ai modelli prima che questi siano disponibili per l'uso.
  3. Accedere alla console di AWS e selezionare una delle regioni in cui Bedrock è generalmente disponibile. Aprire la console di Amazon Bedrock e fare clic su Get started.
  4. Per avere una migliore idea dei modelli disponibili, delle loro capacità o funzionalità, nel pannello di navigazione a sinistra, fare clic su Base models.
  5. Esaminare le descrizioni dei modelli e scegliere quello più adatto al proprio caso d'uso.
  6. Per richiedere l'accesso, andare al pannello di sinistra e fare clic su Model access.
  7. Successivamente, a destra, fare clic su Manage model access.
  8. Selezionare i modelli base ai quali si desidera accedere e, quindi, fare clic su Save changes.

Playground di Amazon Bedrock

Amazon Bedrock offre playgrounds, ovvero ambienti (in inglese, environments) per sperimentare con i modelli base utilizzando prompts e diverse configurazioni prima di decidere di utilizzarli in un'applicazione reale. Esistono playgrounds specifici per modelli di testo, chat o immagini, fornendo un ambiente interattivo per testare le capacità dei modelli. Opzionalmente, è possibile impostare parametri di inferenza per influenzare la risposta generata dal modello, permettendo un controllo più granulare sull'output.

Parametri di inferenza

I modelli base supportano i seguenti tipi di parametri di inferenza, che consentono di modellare il comportamento del modello durante la generazione delle risposte:

  • Casualità e diversità

    • Temperature: I Large Language Models (LLMs) usano la probabilità per costruire le parole in una sequenza. Per qualsiasi sequenza data, esiste una distribuzione di probabilità delle opzioni per la parola successiva. Quando si imposta la temperatura più vicina a zero, il modello tende a selezionare le parole con la probabilità più alta, risultando in risposte più prevedibili e focalizzate. Quando si imposta la temperatura più lontana da zero, il modello potrebbe selezionare una parola con una probabilità inferiore, portando a risposte più creative, varie e inaspettate.
    • Top P: Definisce un punto di taglio basato sulla somma delle probabilità delle opzioni potenziali. Se si imposta Top P al di sotto di 1.0, il modello considera solo le opzioni più probabili, ignorando quelle meno probabili. Questo aiuta a concentrare l'output sulle risposte più pertinenti e coerenti, riducendo la casualità.
    • Top K: Definisce il punto di taglio in cui il modello non seleziona più le parole. Ad esempio, se K=250, il modello seleziona tra 250 delle parole più probabili che potrebbero essere le successive in una data sequenza. Questo parametro limita il vocabolario da cui il modello può scegliere, influenzando la specificità o la diversità dell'output.
  • Lunghezza

    • Maximum length: Configura il numero massimo di tokens che verranno utilizzati nella risposta generata. Questo parametro è fondamentale per controllare la verbosità dell'output del modello, evitando risposte eccessivamente lunghe o troncate.
    • Stop sequences: È una sequenza di caratteri. Se il modello incontra una stop sequence, smette di generare ulteriori token. Ogni modello supporta diversi tipi di caratteri nelle stop sequences, diverse lunghezze massime di sequenza e, in alcuni casi, la definizione di multiple stop sequences. Questo permette di definire punti specifici in cui il modello deve terminare la generazione, come ad esempio la fine di una frase o un marcatore specifico.

Il diagramma architetturale dei playgrounds, non essendo visualizzabile in testo, può essere descritto come un'interfaccia utente che consente di interagire direttamente con i modelli base, inviando input (prompts) e ricevendo output, con la possibilità di regolare i parametri di inferenza per modellare il comportamento del modello.

È possibile accedere alle API di Bedrock tramite la CLI di AWS, un SDK di AWS o un playground. Di seguito vedremo un esempio di un playground di chat, dove è possibile interagire con il modello base di propria scelta tramite un'interfaccia conversazionale. Questo permette di testare il modello in un contesto dialogico, simulando interazioni reali.

  • Nel playground di testo, si può scegliere un modello base, scrivere un messaggio nel prompt e selezionare Run per generare una risposta. Questo è ideale per compiti di generazione di testo libero, riassunto o domande e risposte.
  • Nel playground di immagine, si può scegliere un modello base, scrivere ciò che si desidera vedere in un'immagine nel prompt e selezionare Run per generare l'immagine. Questo ambiente è perfetto per sperimentare con la generazione artistica e visiva basata su descrizioni testuali.

Come usare le API di Amazon Bedrock

Oltre ai playgrounds, gli sviluppatori possono integrare Amazon Bedrock nelle proprie applicazioni programmaticamente. È possibile accedere alle API tramite la CLI di AWS (Command Line Interface), un SDK di AWS (Software Development Kit) per vari linguaggi di programmazione, o un notebook di Amazon SageMaker. Questo offre flessibilità e controllo completo per incorporare le capacità dell'IA generativa nei propri flussi di lavoro e prodotti software. Per maggiori informazioni sulle modalità di accesso e utilizzo delle API, si consiglia di consultare la documentazione ufficiale di Amazon Bedrock API.