50 sfumature di agenti virtuali AI: tipologie, differenze e potenzialità
Definire il concetto di agente virtuale nel 2024 può essere complicato. A volte sono chiamati agenti virtuali dei chatbot ad albero decisionale, a volte sono pochi e semplici prompt su OpenAI, a volte sono modelli fine-tuned sulla realtà aziendale.
Gli agenti virtuali nel 2024 sono un'opportunità e non c’è una soluzione unica che possa coprire tutte le necessità. Nella giusta situazione tutte le tipologie di agente possono funzionare perfettamente, il contesto fa la differenza. Vediamo le tipologie.
Tipologie di agenti virtuali
Albero decisionale (decision tree)
Sono gli agenti vecchio stile, pre-AI. Si basano su un albero di domande e risposte preimpostate che guidano l’utente attraverso un percorso predeterminato. Questi agenti non sono AI, ma possono funzionare bene quando il percorso dell’utente può essere schematizzato in modo molto lineare. Solitamente si riconoscono perché non sono in grado di rispondere a domande vaghe e hanno un'interfaccia a pulsanti con domande preimpostate. Inserendo una domanda fuori dal percorso è molto facile imbattersi in un “non ho capito” o “non posso rispondere”.
Prompting su assistenti tipo “ChatGPT”
Ricadono in questa categoria tutti gli agenti realizzati con un prompting semplice direttamente su ChatGPT di OpenAI o assistenti di altri large language model (LLM) generalisti. Questi agenti sono molto più conversazionali e umani dei precedenti ma hanno comunque capacità abbastanza limitate.
Prompting, RAG e funzioni su “ChatGPT”
Questo agente si avvale della tecnica del retrieval augmented generation (RAG) per accedere a documenti web o pdf e dall’integrazione di funzioni esterne al modello per interrogare database di conoscenza aziendale. Le abilità dell’agente aumentano di pari passo con la complessità dei contenuti e delle funzioni implementate. È possibile modificare il tono della risposta, cambiare il comportamento e integrare qualsiasi servizio esterno.
Prompting, RAG, funzioni e altre tecniche avanzate su modello fine-tuned
È l’ultimo step di agente virtuale. Partendo da un modello generalista open source (es LLama) o closed source (es OpenAI GPT 3.5/4o/4o mini) è possibile, tramite tecniche di fine tuning, modificare il comportamento dell’LLM. In questo scenario è possibile cambiare il tono delle risposte, le capacità di ragionamento del modello e i comportamenti nelle varie situazioni che possono presentarsi. Si può “insegnare” al modello ad interpretare contesti e casi d’uso molto specifici.
Pro e contro delle diverse tipologie
Ogni tipologia presenta vantaggi e svantaggi, al crescere della complessità aumentano i costi associati da un punto di vista di sviluppo, hosting e validazione e crescono al contempo le capacità, l’accuratezza e l’affidabilità dell’agente:
- Albero decisionale: il vantaggio è la garanzia di risposta (quando si segue il percorso) ed il costo molto limitato rispetto alle altre tipologie. Tra i contro sicuramente il fatto di essere molto limitati, l’essere poco “umani” e, se inseriti nel contesto sbagliato, controproducenti perché non aiutano l’utente e al tempo stesso possono indisporre.
- Prompting su assistenti tipo “ChatGPT”: il feeling dell’utente è migliore rispetto al caso precedente, ma le abilità dell’agente sono comunque limitate come il controllo che è possibile avere sul comportamento del chatbot. In questa situazione si è molto più esposti al problema delle allucinazioni e al fatto che l'agente utilizzi il suo training di base per la generazione delle risposte. In alcuni contesti il training di base potrebbe essere in contrapposizione con gli obiettivi e le policy aziendali.
- Prompting, RAG e funzioni su “ChatGPT”: questo step è il primo vero caso di agente virtuale. Le sue capacità sono molto ampie, come la sua comprensione del contesto e delle richieste. A seconda delle funzioni incluse e della raffinatezza del prompting è possibile ottenere i comportamenti più diversi. Il controllo sulla qualità di risposta è molto alto e si è meno esposti alle allucinazioni. Di contro non tutti i comportamenti dell’LLM possono essere modificati e la comprensione di contesti molto specifici può essere complessa.
- Prompting, RAG, funzioni e altre tecniche avanzate su modello fine-tuned: l’agente si adatta all’azienda e al caso d’uso specifico. È possibile semplificare il prompting perché i comportamenti richiesti diventano parte del modello stesso. Le capacità dell’agente possono essere estremamente ampie e variegate. Il controllo sul comportamento è superiore rispetto al caso precedente come la sua capacità di comprendere contesti molto specifici. Di contro, un modello fine-tuned può rivelarsi più rigido e meno adatto a scenari in cui i contenuti siano soggetti a frequenti aggiornamenti.
Nel viaggio da albero decisionale a modello fine-tuned cambiano, a volte radicalmente, le modalità di utilizzo dei servizi ed il costo associato. Le ultime due tipologie offrono molte più sfide e vantaggi e sono quelli su cui ci concentreremo.
LLM e Agenti AI
LLM, un termine spesso frainteso. Vediamo prima cosa significa.
Un LLM (large language model) è prima di tutto un modello matematico (statistico). Tutti gli LLM hanno le basi su modelli matematici e statistici e come tali vanno considerati. Il modello alla nascita è vuoto come il cervello di un bambino appena formato. Ha già i neuroni ma le sinapsi non sono formate.
Come un bambino, deve imparare dal mondo che lo circonda. Nel caso degli LLM si effettua un training basato su enormi quantità di dati, la fonte principale per i modelli generalisti è internet. Dal training vengono formate le sinapsi e con esse le capacità di “ragionamento” (statistico) del modello. Il risultato è un insieme di parametri (miliardi, decine/centinaia di miliardi e più) che rappresentano le capacità di ragionamento del modello stesso. All’interno degli LLM non sono presenti dati specifici, ma una enorme sintesi di tutto quello che è stato utilizzato per il training.
I modelli generalisti hanno una conoscenza generalista del mondo, possono parlare di storia o di architettura, scrivere poesie o aiutare nel troubleshooting sulle performance di un motore. Tutto dipende da quali dati sono stati usati per il training.
Prompting, RAG e funzioni su “ChatGPT”
L’idea alla base di questo approccio è quella di utilizzare un modello LLM generalista e ottenerne una versione enhanced senza modificare il modello stesso. Per farlo sono disponibili vari approcci:
- Prompting: un LLM può essere istruito. Tramite il prompting è possibile spiegare al modello cosa può o non può fare, che lingue deve parlare, quali strumenti ha a disposizione, che tono deve tenere nella conversazione e molto altro.
- RAG: tramite la retrieval augmented generation è possibile inviare all’LLM documenti ai quali diversamente non avrebbe accesso. Ad esempio è possibile accedere a una knowledge base aziendale, a contenuti riservati, ai dati di un sito internet aggiornato in realtime.
- Funzioni: permettono di estendere le capacità di un modello. Ad esempio può essere effettuata una ricerca di filiali, una simulazione, un calcolo di un preventivo e molto altro.
Il pricing model dell’LLM è solitamente per token. Il token è l’unità di misura minima di testo che viene passata in input al modello e ottenuta in output. Non c’è quindi un costo di hosting per il modello stesso, ma c’è un costo di infrastruttura per la soluzione che ruota attorno al modello e al numero di “parole” che entrano ed escono dal modello. Sono considerati token anche i contenuti oggetto di RAG e le funzioni.
In questo caso non c’è quindi un numero minimo di utenti che deve essere soddisfatto ed è molto adatto a POC/MVP e a sistemi di produzione il cui modello di business si presti ad un pagamento a consumo (per token).
Prompting, RAG, funzioni e altre tecniche avanzate su modello fine-tuned
Nel caso in cui la conoscenza del mondo generalista non fosse sufficiente, è possibile estendere ulteriormente il modello tramite un processo di fine tuning. Il fine tuning permette di cambiare il funzionamento del modello dall’interno modificando le sinapsi che erano state create in fase di training. In questo caso il modello può imparare a comprendere situazioni molto specifiche e abilità che diversamente non sarebbero possibili.
Il pricing model prevede solitamente un costo di hosting dell’LLM fine-tuned perché si riferisce a un caso d’uso specifico (il tuo). I costi sono molto più alti rispetto ad un utilizzo per token e sono giustificabili quando il modello di business a token non sia più sostenibile o quando le capacità di un modello enhanced non siano più sufficienti.
Per effettuare un fine tuning è necessario un dataset di messaggi preesistente da cui il modello possa imparare (conversazioni call center, dati generati) e un’idea molto precisa delle funzionalità che si vogliono includere nel modello. In seguito al fine tuning il modello viene “congelato”, nuove modifiche potrebbero richiedere un nuovo fine tuning.
Quale scegliere?
In relazione al contesto del business, al budget a disposizione e all’impatto aziendale che si immagina per l’agente possono esistere molte risposte esatte.
Come ogni novità, si può partire da un’ipotesi e cercare di validarla nel minor tempo possibile con il minor esborso di budget. La versione fine-tuned rappresenta sicuramente una enorme opportunità per l’azienda ma anche un punto di arrivo di un processo che porterà a cambiare alcuni processi aziendali e, come tale, deve avvenire in modo graduale.
Un approccio graduale
Il primo step di una grande rivoluzione può essere sicuramente un proof of concept (POC). Un POC permette di validare l’ipotesi internamente e capire se la soluzione identificata possa essere adatta o meno a risolvere le necessità di base e, come spesso accade, a crearne di nuove.
Lo step successivo è un MVP (minimum viable product), cioè un agente che possa essere esposto al pubblico di riferimento e validato. In questo caso la validazione è esterna, quindi verrà chiesto ad un gruppo di utenti non appartenenti al team di progetto di testare le capacità dell’agente.
Ogni step, il POC prima, l’MVP poi, comporterà degli affinamenti e dei rework per ottimizzare il comportamento dell’agente. I costi cresceranno di pari passo con l’avanzamento del processo.
Devo per forza partire da un modello fine-tuned per un POC? Per fortuna la risposta è molto spesso no. A meno di contesti molto specifici o a necessità normative (ambienti altamente regolamentati con limiti di compliance per i dati trattati) è possibile utilizzare un modello LLM generalista e tramite RAG, funzioni e prompting avanzato ottenere un agente molto gratificante e utile. Lo stesso approccio può essere applicato anche all’MVP e all’agente in produzione se il carico di lavoro non è eccessivamente alto e se la qualità di risposta è soddisfacente.
Quindi, quale scegliere?
La risposta anche in questo caso è "dipende".
- Se l’esigenza è relativa ad uno specifico flusso, magari già vincolato a livello di processo un chatbot ad albero decisionale può essere una prima risposta.
- Se serve aggiungere una funzionalità di traduzione o di generazione metadati SEO ad un CMS, un semplice prompt su ChatGPT rappresenta una risposta molto soddisfacente ed economica alla richiesta.
- Per un agente di supporto verso il pubblico, un sistema di domanda e risposta (Q&A) evoluto, un helpdesk e altri casi d’uso più ampi e complessi è necessario un sistema AI con funzionalità avanzate.
- In rari casi potrebbe essere necessario un modello fine-tuned anche in caso di POC. Se il contesto operativo è estremamente specifico o non di pubblico dominio il modello generalista potrebbe non essere in grado di gestire la richiesta anche a fronte di prompting, RAG e funzioni evolute.
Dalla teoria alla pratica
Parliamo di un caso d’uso reale nel progetto che abbiamo realizzato per Credem Banca.
Seguendo il processo POC-MVP-test sugli utenti abbiamo realizzato un agente virtuale per il supporto agli utenti sul sito istituzionale dell’istituto bancario.
Leggi il caso studio su Emily, l'agente virtuale di Credem Banca.