Passa al contenuto principaleAWS Startups
  1. Scopri
  2. Crea agenti IA scalabili: architettura serverless su AWS

Crea agenti IA scalabili: architettura serverless su AWS

Com'era questo contenuto?

La creazione di software nell'era dell'IA generativa presenta un paradosso. Da un lato, i modelli di conoscenza di frontiera sono diventati così potenti che la creazione di una versione iniziale di un'applicazione basata sull'intelligenza artificiale può richiedere poco più che chiamare una semplice API di chat (e chiedere a un agente di codifica di scrivere la maggior parte del codice!). Dall'altra, il livello di precisione, prestazioni e ottimizzazione dei costi richiesto da un'applicazione IA di livello di produzione spesso implica un'architettura tecnica complessa.

Questa complessità è dovuta in parte al fatto che gli algoritmi di IA generativa sono probabilistici piuttosto che deterministici. Per ridurre la varianza nell'output di un modello e migliorare l'affidabilità, gli sviluppatori utilizzano tecniche come fornire esempi di come si presenta una risposta "buona" o includere informazioni aggiuntive ("contesto"), che il modello può prendere in considerazione quando genera l'output. Di conseguenza, il codice di un'applicazione basata sull'intelligenza artificiale diventa rapidamente molto più complesso delle semplici chiamate all'API di chat del modello. Come minimo, gli sviluppatori dovranno aggiungere almeno un livello di data service che includa chiamate a database specializzati per costruire il contesto che verrà mostrato al modello.

Ma la complessità non si ferma qui. Man mano che gli sviluppatori aggiungono ulteriori funzionalità alle loro applicazioni basate sull'intelligenza artificiale, spesso scoprono che ciò richiede contesti e set di prompt diversi. Quindi gli sviluppatori, attratti dalle astrazioni, organizzeranno il codice che alimenta queste diverse funzionalità in moduli autonomi. Nell'intelligenza artificiale, questo tipo di modello di progettazione è noto come "agente".

Gli agenti assemblano: superare la complessità nell'IA generativa

Un agente è un modulo di codice che utilizza modelli di IA generativa per eseguire un'attività specifica in modo autonomo. Gli agenti possono agire da soli o in collaborazione con altri agenti. Possono anche chiamare "strumenti", che in genere sono API o funzioni incluse nel contesto a disposizione dell'agente. Il risultato netto di questo approccio agentistico alla progettazione del software è che l'ingegneria del contesto, il processo di recupero dei dati rilevanti di cui un agente ha bisogno per completare il proprio compito, diventa più complesso. Inoltre, gli agenti stessi devono spesso essere eseguiti in modo asincrono all'esterno dell'applicazione principale (questo è particolarmente vero per gli agenti che richiedono l'accesso a dati sensibili). Ciò può richiedere la gestione di ambienti di runtime e credenziali completamente separati.

Una tipica applicazione di IA agentica può essere suddivisa nei seguenti componenti:

  1. Il modello di IA generativa, che in genere include un modello linguistico di grandi dimensioni (LLM) e le API che forniscono l'accesso ad esso.
  2. Framework software, che forniscono comode astrazioni alle API dei modelli di livello inferiore, e kit di sviluppo software per la creazione di agenti e l'esecuzione di molte delle operazioni di accesso ai dati necessarie per l'ingegneria del contesto.
  3. Componenti che gestiscono i dati, che forniscono le informazioni incluse nel contesto fornito agli agenti. Questi possono essere costituiti da una varietà di diversi archivi di dati (sistemi di gestione di database relazionali, database NoSQL ecc.) , ma includerà quasi sempre una qualche forma di servizio di ricerca semantica. Per le applicazioni agentiche, questo viene in genere trasferito in un archivio vettoriale, che memorizza rappresentazioni numeriche di dati di testo denominate embedding.
  4. Un ambiente di runtime per gli agenti. Per semplici applicazioni agentiche, gli agenti possono essere eseguiti durante il processo con il codice dell'applicazione. Nella maggior parte dei casi, tuttavia, gli agenti dovranno essere eseguiti nel proprio spazio di elaborazione, separato dall'applicazione principale.

Come per tutte le architetture software che richiedono la collaborazione di più componenti, è necessaria una notevole quantità di lavoro indifferenziato per garantire che questi componenti siano resilienti, ridondanti e performanti. Fortunatamente, le applicazioni di IA agentica beneficiano delle stesse architetture native del cloud delle applicazioni tradizionali. Le architetture serverless sono particolarmente interessanti per le applicazioni di IA agentica e AWS offre una varietà di offerte serverless che consentono agli sviluppatori di creare applicazioni di IA agentica in modo rapido, semplice ed economico.

Inferenza in azione

Cominciamo con il componente più conosciuto: gli stessi modelli di IA generativa. Il termine per l'uso dei modelli è "inferenza" e per inferenza serverless, Amazon Bedrock fornisce un servizio gestito per l'esecuzione e l'accesso ai modelli di fondazione di IA generativa. Questi vanno da LLM con conoscenze di frontiera come Claude di Anthropic, a modelli basati sul linguaggio vocale come Amazon Nova Sonic, , a modelli open weight di OpenAI e Mistral, tutti accessibili tramite un'API unificata.

Poi, l'inferenza. Questa è in genere complessa e richiede hardware specializzato come le GPU e una profonda conoscenza dei framework di rete di basso livello che consentono ai cluster di GPU di comunicare tra loro.. Tradizionalmente ciò ha creato difficoltà operative e un blocco all'accessibilità, soprattutto per le startup. Amazon Bedrock aiuta ad abbattere queste barriere, poiché gli utenti devono solo imparare a utilizzare le API della soluzione.

Integrazione intelligente: knowledge base e archivi vettoriali

Oltre all'inferenza e alla gestione dei modelli, Amazon Bedrock offre anche il supporto completo per i componenti di data service più comuni nello stack di IA agentica. Le knowledge base di Amazon Bedrock, ad esempio, possono essere utilizzate per la ricerca semantica, che prevede la ricerca di una raccolta di documenti semanticamente simili al testo della query. Ciò è fondamentale nei casi in cui un agente IA necessita di informazioni aggiuntive nel suo contesto.

Ad esempio, un agente del servizio clienti potrebbe dover consultare i documenti delle domande frequenti che corrispondono alle informazioni richieste dal cliente, ad esempio "Come posso modificare l'indirizzo associato al mio account?" Utilizzando le knowledge base di Amazon Bedrock, i documenti delle domande frequenti possono essere indicizzati per la ricerca semantica archiviandoli in un bucket Amazon S3 e configurando quel bucket come origine dati per una knowledge base di Bedrock. Il servizio gestisce la "suddivisione in blocchi" dei documenti (suddividendo un documento in parti più piccole), la "vettorializzazione" di ogni blocco (creando embedding numerici del testo) e l'archiviazione e la relazione tra i blocchi e gli embedding in modo che i blocchi pertinenti possano essere restituiti in una query semantica.

Una volta creati, questi embedding devono essere archiviati in un database specializzato per gli incorporamenti o in un archivio vettoriale. Le knowledge base di Amazon Bedrock supportano diverse opzioni di archiviazione vettoriale, tra cui Amazon S3 Vectors, un database vettoriale serverless integrato in Amazon S3. Questo tipo di livello di servizio dei dati è noto come generazione potenziata da recupero dati (RAG) ed è semplice da distribuire se si utilizzano le knowledge base di Amazon Bedrock, S3 ed S3 Vectors. Ciò consente agli sviluppatori di concentrarsi sulla funzionalità dei propri agenti IA anziché gestire complesse infrastrutture di gestione dei data.

Costruire, eseguire, scalare

Una volta che gli embedding sono archiviati e accessibili tramite archivi vettoriali, il passaggio successivo consiste nell'eseguire agenti IA che utilizzino questi dati. Amazon Bedrock AgentCore fornisce un ambiente di runtime serverless per gli sviluppatori. Gli agenti possono essere creati utilizzando framework come LangChain, Strands o anche qualcosa di sviluppato in casa. Gli sviluppatori possono quindi impacchettare l'agente in un archivio zip e caricarlo su S3. In alternativa, possono creare un'immagine del container e inserirla nell'Elastic Container Registry (ECR) di Amazon. Una volta che il codice è in S3 o ECR, possono configurare AgentCore per eseguire il loro agente nel cloud, senza dover gestire i server. AgentCore gestisce anche processi operativi come l'autenticazione, supportando ruoli AWS Identity and Access Management integrati o JSON Web Token per l'accesso tramite un gestore delle identità digitali aziendale.

Amazon Bedrock e AgentCore offrono molte altre funzionalità serverless, ma le tre descritte in questo articolo forniscono il punto di partenza ideale per sviluppare applicazioni di IA agentica con supporto completo per RAG. Innanzitutto, Amazon Bedrock per l'inferenza con un'ampia selezione di modelli; in secondo luogo, le knowledge base di Amazon Bedrock ed S3 Vectors per l'indicizzazione dei documenti e la ricerca semantica; infine, Amazon AgentCore per gestire gli agenti in modo sicuro ed economico.

Lo sviluppo di applicazioni di IA agentica è stato tradizionalmente complesso e impegnativo, soprattutto per le startup che spesso operano con risorse limitate. Le architetture serverless riducono questa complessità eliminando la necessità per gli ingegneri di creare e gestire l'infrastruttura sottostante. Che tu sia uno sviluppatore esperto di IA agentica o che sia appena agli inizi, Amazon Bedrock offre un set completo di strumenti e servizi per aiutarti a creare e scalare con sicurezza.

Sei pronto per iniziare a creare l'IA agentica su AWS? AWS Activate offre l'accesso ai crediti AWS che possono essere utilizzati per compensare il costo delle soluzioni trattate in questo articolo, oltre a un'ampia gamma di altri servizi. Dalla sua creazione nel 2013, AWS Activate ha fornito oltre 8 miliardi di dollari in crediti a startup in tutto il mondo. I fondatori beneficiano inoltre di programmi e risorse, supporto tecnico, tutoraggio aziendale e un legame più stretto con la comunità globale delle startup. Unisciti a milioni di altri e scopri come trasformare le tue idee dalla fase iniziale a quella predisposta per il cloud.

Com'era questo contenuto?