L’intelligenza artificiale generativa e, in particolare, il suo potenziale linguistico, è ovunque con ChatGPT. La tecnologia dei modelli di linguaggio di grandi dimensioni (LLM) avrà un ruolo significativo nello sviluppo delle future applicazioni. Gli LLM dimostrano un’eccellente comprensione del linguaggio grazie all’ampio addestramento preliminare su trilioni di righe di testo di dominio pubblico, incluso il codice. Metodi come il fine-tuning supervisionato e l’apprendimento rinforzato con feedback umano (RLHF) rendono gli LLM ancora più efficienti nel rispondere a domande specifiche e interagire con gli utenti. Mentre entriamo nella prossima fase delle app AI basate su LLM, saranno cruciali i seguenti componenti chiave per queste nuove generazioni di applicazioni. La figura seguente illustra questa progressione, in cui ogni livello aumenta l’intelligenza e l’autonomia delle tue applicazioni. Esaminiamo questi diversi livelli.

LLM calls: si tratta di chiamate dirette per completare o modelli di chat utilizzando un provider LLM come Azure OpenAI, Google PaLM o Amazon Bedrock. Queste chiamate richiedono un prompt molto semplice e fanno affidamento principalmente sulla memoria interna dell’LLM per generare l’output. Ad esempio, potresti chiedere a un modello di base come “text-davinci” di “raccontare una barzelletta”. Fornendo un contesto molto limitato, il modello si baserà sulla sua memoria interna pre-addestrata per trovare una risposta (evidenziata in verde nella figura seguente, utilizzando Azure OpenAI).

Prompts: il livello successivo di intelligenza consiste nell’aggiungere sempre più contesto ai prompt. Esistono tecniche di ingegneria tempestiva che possono essere applicate agli LLM per ottenere risposte personalizzate. Ad esempio, quando si genera un’e-mail per un utente, si possono utilizzare alcuni contesti sull’utente, sugli acquisti passati e sui modelli di comportamento come prompt per personalizzare meglio l’e-mail. Gli utenti familiari con ChatGPT conosceranno vari metodi di richiesta, come fornire esempi che vengono utilizzati dagli LLM per costruire la risposta. I prompt aumentano la memoria interna dell’LLM con contesti aggiuntivi.

Embeddings: gli embeddings portano i prompt al livello successivo cercando il contesto in un knowledge store e incorporandolo nel prompt. In questo caso, il primo passo consiste nel rendere un archivio di grandi dimensioni di documenti non strutturati ricercabile, indicizzando il testo e popolando un database vettoriale. Un modello di embedding come ‘ada’ di OpenAI viene utilizzato per convertire un pezzo di testo in un vettore n-dimensionale. Questi embeddings catturano il contesto del testo, quindi frasi simili avranno embeddings vicini tra loro nello spazio vettoriale. Quando un utente inserisce una query, anche quella query viene convertita in un embedding e il vettore viene confrontato con quelli presenti nel database. In questo modo, otteniamo i primi 5 o 10 blocchi di testo corrispondenti alla query, che costituiscono il contesto. La query e il contesto vengono poi passati all’LLM per ottenere una risposta umana alla domanda.

Chains: le Chains sono attualmente la tecnologia più avanzata e consolidata disponibile per creare applicazioni basate su LLM. Le Chains sono sequenze deterministiche di chiamate LLM, in cui l’output di una chiamata viene utilizzato come input per un’altra, scorrendo attraverso uno o più LLM. Ad esempio, potremmo fare in modo che una chiamata LLM interroghi un database SQL e ottenga un elenco di e-mail dei clienti, che poi vengono inviate a un altro LLM per generare e-mail personalizzate per i clienti. Le Chains LLM possono essere integrate nei flussi applicativi esistenti per ottenere risultati più preziosi. Utilizzando le Chains, potremmo anche includere input esterni come chiamate API e integrazioni con i grafi di conoscenza per fornire contesto. Inoltre, con l’ampia disponibilità di provider LLM come OpenAI, AWS Bedrock, Google PaLM, MosaicML, ecc., potremmo combinare le chiamate LLM in Chains. Potremmo utilizzare un LLM inferiore come “gpt3.5-turbo” per elementi di Chain con intelligenza limitata, mentre per attività più avanzate potrebbe essere utilizzato “gpt4”. Le Chains forniscono un’astrazione per i dati, le applicazioni e le chiamate LLM.

Agents: gli Agents sono oggetto di molti dibattiti online, soprattutto per quanto riguarda l’intelligenza artificiale generale (AGI). Gli Agents utilizzano un LLM avanzato come “gpt4” o “PaLM2” per pianificare attività invece di avere Chains predefinite. Quando si ricevono richieste dagli utenti, l’Agente decide in base alla query quale insieme di attività chiamare e crea dinamicamente una Chain. Ad esempio, configurando un Agente con un comando come “avvisa i clienti quando il TAEG del prestito cambia a causa dell’aggiornamento del regolamento governativo”, il framework dell’Agente effettua una chiamata LLM per decidere le azioni da eseguire o le Chains da creare. Questo potrebbe comportare l’invocazione di un’applicazione che analizza i siti Web normativi ed estrae l’ultimo tasso APR, quindi una chiamata LLM cerca nel database ed estrae gli indirizzi e-mail dei clienti interessati, infine generando un’e-mail per informare tutti i clienti interessati.

Di ihal