Una guida all’uso dei promemoria Amazon Bedrock per l’integrazione LLM

Conforme l’IA generativa rivoluziona varie industrie, i programmatori cercano sempre più modi efficienti per integrare modelli linguistici di grandi dimensioni (LLM) nelle loro applicazioni. Amazon Bedrock è una soluzione potente. Offre un servizio completamente gestito che fornisce accesso a una vasta gamma di modelli di base attraverso un’API unificata. Questa guida esplorerà i principali vantaggi di Amazon Bedrock, come integrare diversi modelli LLM nei tuoi progetti, come semplificare la gestione delle varie istanze di LLM che la tua applicazione utilizza e le migliori pratiche da considerare per un utilizzo in produzione.

Vantaggi chiave di Amazon Bedrock

Amazon Bedrock semplifica l’integrazione iniziale dei LLM in qualsiasi applicazione fornendo tutte le capacità di base necessarie per iniziare.

Accesso Semplificato ai Modelli Principali

Bedrock fornisce accesso a una vasta selezione di modelli di base ad alte prestazioni di leader del settore come AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI e Amazon. Questa varietà consente ai programmatori di scegliere il modello più adatto al loro caso d’uso e di cambiarlo secondo necessità senza gestire molteplici relazioni con fornitori o API.

Completamente Gestito e Serverless

Come servizio completamente gestito, Bedrock elimina la necessità di gestire l’infrastruttura. Ciò consente ai programmatori di concentrarsi sulla costruzione delle applicazioni anziché preoccuparsi delle complessità sottostanti della configurazione dell’infrastruttura, del rilascio dei modelli e della scalabilità.

Sicurezza e Privacy di Livello Enterprise

Bedrock offre funzionalità di sicurezza integrate, garantendo che i dati non lascino mai i tuoi ambienti AWS ed siano crittografati in transito e a riposo. Supporta inoltre la conformità con vari standard, tra cui ISO, SOC e HIPAA.

Rimani Aggiornato con gli Ultimi Miglioramenti dell’Infrastruttura

Bedrock rilascia regolarmente nuove funzionalità che spingono i limiti delle applicazioni LLM e richiedono poco o nessun setup. Ad esempio, ha recentemente rilasciato una modalità di inferenza ottimizzata che migliora la latenza dell’inferenza LLM senza comprometterne l’accuratezza. 

Come Iniziare con Bedrock

In questa sezione, utilizzeremo l’SDK AWS per Python per creare un’applicazione di piccole dimensioni sul tuo computer locale, fornendo una guida pratica per iniziare con Amazon Bedrock. Questo ti aiuterà a comprendere gli aspetti pratici dell’uso di Bedrock e come integrarlo nei tuoi progetti.

Prerequisiti

  1. Hai un account AWS.
  2. Hai installato Python. Se non è installato, ottienilo seguendo questa guida.
  3. Hai installato e configurato correttamente l’SDK AWS per Python (Boto3). È consigliabile creare un utente AWS IAM che Boto3 possa utilizzare. Le istruzioni sono disponibili nella guida introduttiva di Boto3.
  4. Se si utilizza un utente IAM, assicurarsi di aggiungere la policy AmazonBedrockFullAccess. È possibile allegare le policy utilizzando la console AWS.
  5. Richiedere l’accesso a 1 o più modelli su Bedrock seguendo questa guida.

1. Creazione del client Bedrock

Bedrock ha diversi client disponibili all’interno del AWS CDK. Il client Bedrock consente di interagire con il servizio per creare e gestire modelli, mentre il client BedrockRuntime consente di invocare modelli esistenti. Utilizzeremo uno dei modelli di base già esistenti per il nostro tutorial, quindi lavoreremo con il client BedrockRuntime.

Python

 

2. Invocazione del modello

In questo esempio, ho utilizzato il modello Amazon Nova Micro (con modelId amazon.nova-micro-v1:0), uno dei modelli più economici di Bedrock. Forniremo un semplice prompt per chiedere al modello di scriverci una poesia e impostare i parametri per controllare la lunghezza dell’output e il livello di creatività (chiamato “temperatura”) che il modello dovrebbe fornire. Sentiti libero di sperimentare con prompt diversi e regolare i parametri per vedere come influenzano l’output.

Python

 

Possiamo anche provare con un altro modello come Haiku di Anthropic, come mostrato di seguito.

Python

 

Si noti che le strutture di richiesta/risposta variano leggermente tra i modelli. Questo è un inconveniente che affronteremo utilizzando modelli di prompt predefiniti nella sezione successiva. Per sperimentare con altri modelli, è possibile cercare il modelId e le richieste API di esempio per ciascun modello nella pagina del “Catalogo dei Modelli” nella console Bedrock e adattare il proprio codice di conseguenza. Alcuni modelli hanno anche guide dettagliate scritte da AWS, che è possibile trovare qui.

3. Utilizzo della Gestione dei Prompt

Bedrock fornisce uno strumento intelligente per creare e sperimentare con modelli di prompt predefiniti. Invece di definire prompt e parametri specifici come lunghezza del token o temperatura nel proprio codice ogni volta che ne ha bisogno, è possibile creare modelli predefiniti nella console di Gestione dei Prompt. Si specificano le variabili di input che verranno iniettate durante l’esecuzione, si configurano tutti i parametri di inferenza richiesti e si pubblica una versione del proprio prompt. Una volta fatto ciò, il codice dell’applicazione può invocare la versione desiderata del proprio modello di prompt.

Vantaggi chiave nell’utilizzo di prompt predefiniti:

  1. Aiuta l’applicazione a rimanere organizzata man mano che cresce e utilizza prompt, parametri e modelli diversi per vari casi d’uso.
  2. Aiuta nel riutilizzo dei prompt se lo stesso prompt viene utilizzato in più luoghi.
  3. Occulta i dettagli dell’inferenza di LLM dal codice dell’applicazione.
  4. Permette agli ingegneri di prompt di lavorare sull’ottimizzazione dei prompt nella console senza dover modificare il proprio codice di applicazione effettivo.
  5. Consente di sperimentare facilmente, sfruttando diverse versioni di prompt. Puoi modificare l’input del prompt, i parametri come la temperatura o persino il modello stesso.

Proviamolo ora: 

  1. Vai alla console Bedrock e clicca su “Gestione dei prompt” nel pannello di sinistra.
  2. Clicca su “Crea Prompt” e dai un nome al tuo nuovo prompt
  3. Inserisci il testo che desideriamo inviare al LLM, insieme a una variabile segnaposto. Ho usato Scrivi una breve poesia su un {{argomento}}.
  4. Nella sezione Configurazione, specifica quale modello desideri utilizzare e imposta i valori degli stessi parametri utilizzati in precedenza, come “Temperatura” e “Numero massimo di token.” Se preferisci, puoi lasciare i valori predefiniti.
  5. È ora di testare! In fondo alla pagina, fornisci un valore per la tua variabile di test. Ho usato “Eroe dello sviluppo software.” Quindi, clicca su “Esegui” sulla destra per vedere se sei soddisfatto del risultato.

Per riferimento, ecco la mia configurazione e i risultati.

È necessario pubblicare una nuova versione del Prompt per utilizzare questo Prompt nella tua applicazione. Per farlo, clicca sul pulsante “Crea versione” in alto. Questo crea uno snapshot della tua configurazione attuale. Se desideri fare delle prove, puoi continuare a modificare e creare più versioni.

Una volta pubblicato, è necessario trovare l’ARN (Amazon Resource Name) della Versione del Prompt navigando alla pagina del tuo Prompt e cliccando sulla versione appena creata.

Copia l’ARN di questa specifica versione del prompt da utilizzare nel tuo codice.

Una volta che abbiamo l’ARN, possiamo aggiornare il nostro codice per invocare questo prompt predefinito. Abbiamo solo bisogno dell’ARN della versione del prompt e dei valori per qualsiasi variabile che inseriamo in esso.

Python

 

Come puoi vedere, questo semplifica il nostro codice dell’applicazione astrattendo i dettagli dell’inferenza LLM e promuovendo la riutilizzabilità. Sentiti libero di giocare con i parametri all’interno del tuo prompt, creare diverse versioni e usarle nella tua applicazione. Potresti estendere questo in una semplice applicazione da riga di comando che prende in input dell’utente e scrive una breve poesia su quel tema.

Passaggi successivi e migliori pratiche

Una volta a tuo agio nell’usare Bedrock per integrare un LLM nella tua applicazione, esplora alcune considerazioni pratiche e le migliori pratiche per preparare la tua applicazione per un utilizzo in produzione. 

Ingegneria del Prompt

Il prompt che usi per invocare il modello può fare la differenza nella tua applicazione. L’ingegneria del prompt è il processo di creazione e ottimizzazione delle istruzioni per ottenere l’output desiderato da un LLM. Con i modelli di prompt predefiniti esplorati sopra, gli ingegneri di prompt esperti possono iniziare con l’ingegneria del prompt senza interferire con il processo di sviluppo software della tua applicazione. Potresti dover adattare il tuo prompt in modo specifico al modello che desideri utilizzare. Familiarizzati con le tecniche di prompt specifiche per ciascun fornitore di modelli. Bedrock fornisce alcune linee guida per i modelli di dimensioni maggiori.

Selezione del Modello

Fare la scelta del modello giusto è un equilibrio tra le esigenze della tua applicazione e i costi sostenuti. I modelli più capaci tendono ad essere più costosi. Non tutti i casi d’uso richiedono il modello più potente, mentre i modelli più economici potrebbero non sempre offrire le prestazioni di cui hai bisogno. Utilizza la funzionalità di Valutazione del Modello per valutare e confrontare rapidamente gli output dei diversi modelli per determinare quale soddisfa meglio le tue esigenze. Bedrock offre molteplici opzioni per caricare set di dati di test e configurare come valutare l’accuratezza del modello per casi d’uso individuali.

Raffina ed Estendi il Tuo Modello con RAG e Agenti

Se un modello pronto all’uso non è abbastanza efficace per te, Bedrock offre opzioni per ottimizzare il modello per il tuo caso specifico. Crea i tuoi dati di addestramento, caricarli su S3 e utilizza la console Bedrock per avviare un lavoro di raffinamento. Puoi anche estendere i tuoi modelli utilizzando tecniche come la generazione potenziata da recupero (RAG) per migliorare le prestazioni per casi d’uso specifici. Collega le sorgenti di dati esistenti che Bedrock renderà disponibili al modello per arricchire la sua conoscenza. Bedrock offre anche la possibilità di creare agenti per pianificare ed eseguire compiti complessi a più passaggi utilizzando i sistemi e le sorgenti di dati aziendali esistenti.

Sicurezza e Linee Guida

Con Guardrails, puoi assicurarti che la tua applicazione generativa eviti con garbo argomenti sensibili (come il razzismo, i contenuti sessuali e le volgarità) e che il contenuto generato sia basato per prevenire allucinazioni. Questa funzionalità è cruciale per mantenere gli standard etici e professionali delle tue applicazioni. Sfrutta le funzionalità di sicurezza integrate di Bedrock e integrarle con i tuoi controlli di sicurezza AWS esistenti.

Ottimizzazione dei costi

Prima di rilasciare ampiamente la tua applicazione o funzionalità, considera i costi che l’inferenza di Bedrock e le estensioni come RAG comporteranno.

  • Se riesci a prevedere i tuoi modelli di traffico, considera l’utilizzo del Throughput Pianificato per un’inferenza del modello più efficiente e conveniente dal punto di vista dei costi.
  • Se la tua applicazione è composta da più funzionalità, puoi utilizzare modelli e suggerimenti diversi per ogni funzionalità per ottimizzare i costi su base individuale.
  • Rivedi la tua scelta di modello così come la dimensione del suggerimento che fornisci per ciascuna inferenza. In generale, Bedrock stabilisce i prezzi sulla base “per token”, quindi suggerimenti più lunghi e output più grandi comporteranno maggiori costi.

Conclusione

Amazon Bedrock è una piattaforma potente e flessibile per integrare LLM nelle applicazioni. Fornisce accesso a molti modelli, semplifica lo sviluppo e offre robuste funzionalità di personalizzazione e sicurezza. Pertanto, gli sviluppatori possono sfruttare il potere dell’IA generativa concentrandosi sulla creazione di valore per i propri utenti. Questo articolo mostra come iniziare con un’importante integrazione di Bedrock e mantenere organizzati i nostri Suggerimenti.

Con l’evoluzione dell’IA, gli sviluppatori dovrebbero rimanere aggiornati sulle ultime funzionalità e le migliori pratiche in Amazon Bedrock per costruire le loro applicazioni di intelligenza artificiale.

Source:
https://dzone.com/articles/amazon-bedrock-prompts-llm-integration-guide