Comprendere a grandi linee le caratteristiche delle tecnologie di base su cui può poggiare lo sviluppo di chatbot o assistenti virtuali per assistenza tecnica e servizio clienti è importante, poiché dalla scelta fra sistemi di Natural Language Processing, Large Language Model o piattaforme ibride dipendono abilità e limiti “innati” dell’agente digitale. Senza trascurare che senza contenuti selezionati e preparati opportunamente in base alla tecnologia scelta, nessun chatbot o assistente virtuale saprà darci informazioni o aiutarci a eseguire un compito
Preparare i dati per consentire al chatbot aziendale per servizio clienti e assistenza tecnica di rispondere alle domande degli utenti è molto diverso dalla Data Preparation per applicazioni AI attive nel campo degli Analytics.
Un chatbot che conversa con l’utente per tentare di fornirgli le informazioni richieste o un assistente virtuale che lo supporta nell’esecuzione di un compito rientrano fra le applicazioni AI finalizzate all’interazione fra computer e linguaggio naturale umano.
Prima di vedere come preparare i testi di manuali di istruzioni, FAQ, estratti da CRM o sistemi di ticketing, ecc., è opportuno fare un passo indietro e soffermarci su alcune caratteristiche dei sistemi di Natural Language Processing (NLP) e sui Large Language Model (LLM) pre-allenati su cui può basarsi il funzionamento di assistenti virtuali e chatbot.
La storia del NLP inizia negli anni Cinquanta del Novecento, ma un balzo evolutivo si ha negli anni Novanta, quando – grazie allo sviluppo delle tecniche di Machine Learning (ML) – l’agente digitale è messo nelle condizioni di apprendere in modo autonomo le regole grammaticali, sintattiche e, in una certa misura, semantiche di una lingua seguendo un approccio bottom-up, allenandosi su corpora di testi opportunamente preparati.
Per raggiungere l’obiettivo di comprendere, interpretare e generare linguaggio naturale, il NLP ha dato vita a numerose sotto-discipline, fra cui per esempio:
- Natural Language Understanding / Interpretation (NLU / NLI), comprensione delle strutture grammaticali, Namend Entity Regognition (NER; per riconoscere es. di nome, posizione, azienda, ora, valori monetari, eventi, ecc.), coreference resolution (per riconoscere due elementi di un testo o di una frase a uno stesso referente)
- Text classification
- Sentiment analysis
- Information Retrival
- Natural Language Generation (NLG), Question Answering (QA), dialog management
- Text summarization
- Machine Translation
- Speech-to-Text e Text-to-Speech Recognition, e altre.
Una galassia di tecniche, configurazioni e modelli da mettere a punto a monte e da integrare a valle per raggiungere di volta in volta l’obiettivo applicativo desiderato.
A partire dal 2017 il campo dell’intelligenza artificiale che si occupa di linguaggio naturale è stato rivoluzionato dallo sviluppo dei LLM, figli della disponibilità in rete di enormi corpora di testi di ogni tipo e lingua, della crescita della potenza computazionale, dei modelli di apprendimento di Deep Learning prima e dei Transformer poi, in grado per la prima volta di catturare informazioni di contesto a lungo termine.
I modelli linguistici di grandi dimensioni pre-allenati assolvono in modo autonomo, più integrato e potente a numerosi compiti che nel NLP tradizionale sono svolti da modelli specifici, fra loro messi a sistema.
Senza dover essere necessariamente personalizzati o sottoposti a fine-tuning, i LLM sanno comprendere, interpretare e generare testi in linguaggio naturale, sanno trovare informazioni, classificare e riassumere testi, sanno cogliere il sentiment nelle parole delle persone, tradurre in modo automatico e gestire il dialogo.
Come base per la realizzazione di chatbot e assistenti virtuali i LLM hanno dunque soppiantato i sistemi NLP?
No, non è così. Gli sviluppatori attualmente hanno a disposizione piattaforme basate solo su LLM (come le API di GPT di OpenAI), piattaforme basate solo su sistemi NLP (come Microsoft LUIS, Google Dialogflow, IBM Watson Assistant, Amazon Lex) e piattaforme ibride che integrano in varia misura NLP e LLM (come Sierra AI e Cognigy per aziende medio-grandi e Ada, Kore e Teneo anche per PMI).
I LLM non hanno soppiantato i sistemi NLP, perché dipendentemente dalla tecnologia di base scelta otteniamo un chatbot o un assistente virtuale con caratteristiche, punti di forza e di debolezza distinti.
Tendenzialmente lo sviluppo di chatbot basati su LLM, o su piattaforme miste a predominio LLM, ci permette di ottenere agenti AI in grado di dialogare con l’utente, di comprendere e interpretarne le domande, e di reperire non solo dal corpus su cui è pre-allenato, ma anche dalla knowledge base aziendale (es. da manuali di istruzioni, FAQ, estratti da CRM o sistemi di ticketing, ecc.) le informazioni su cui basare la generazione delle risposte.
Il sottostante LLM riduce tendenzialmente il lavoro di preparazione dei dati, di configurazione ed eventuale fine-tuning iniziali, e di successiva manutenzione dei testi, permettendo di ottenere chatbot flessibili, capaci di districarsi in contesti poco strutturati e in presenza di input non previsti.
Di contro, però, offrono allo sviluppatore strumenti meno efficaci per controllare in modo certo l’accuratezza delle risposte. Per indirizzare il sistema verso una maggiore precisione è tuttavia possibile fare leva su un insieme di tecniche come la marcatura dei dati, il prompting, il richiamo di funzioni dedicate allo svolgimento di compiti puntuali (es. recuperare dati da un database relazionale), il filtraggio delle risposte ed eventualmente il fine-tuning del modello.
In particolare nel caso dell’uso via API del GPT di OpenAI, il fine-tuning del modello, da valutare in contesti molto verticalizzati, implica l’addestramento del sistema con coppie formate da prompt (la domanda o l’input) e completamento (la risposta desiderata). Ai fini del training conta non solo la quantità, ma anche la qualità, varietà e rappresentatività delle coppie. Per un’azienda il cui portafoglio prodotti è omogeneo, secondo le indicazioni della stessa piattaforma, si tratterebbe di estrapolare dalla knowledge base migliaia o decine di migliaia di coppie di domande-risposte per evitare il rischio di peggiorare, anziché migliorare il modello a causa dell’overfitting, cioè dell’adattamento troppo fedele ai dati di allenamento. Tenendo in considerazione il rischio di overfitting e il fatto che attualmente non sono disponibili soluzioni plug-and-play per estrarre da testi coppie di domande-risposte, la scelta di sottoporre a fine-tuning il LLM deve essere valutata con grande attenzione.
Gli assistenti virtuali basati su sistemi di NLP, o su piattaforme miste a predominio NLP, vanno allenati e configurati per l’uso specifico, anzitutto mediante la dichiarazione esplicita degli intenti e delle entità su cui si baserà la gestione di domande e risposte da parte dell’agente digitale.
Torneremo più avanti su questo aspetto, ma in sintesi gli assistenti virtuali basati NLP richiedono più lavoro iniziale di preparazione dei dati, di training, messa a punto e di successiva manutenzione, sono meno abili nella generalizzazione e quindi nella gestione di input (intenti) non previsti.
Il punto di forza di questo tipo di agenti sta nella precisione delle risposte, che li rende adatti anche ad assolvere a compiti di automazione di processo e transazionali (es. il tracking di un ordine, la gestione di un reso, ecc.).
Torniamo al tema della Data Preparation.
Se il chatbot aziendale per servizio clienti e assistenza tecnica si basa su un LLM pre-addestrato, l’agente potrebbe comprendere e interpretare i contenuti della knowledge base anche “così come sono”.
Tuttavia è consigliabile non procedere così, ma strutturare i contenuti e marcarli con metadati, perché queste attività migliorano la comprensione del contesto da parte dell’agente e la NER, supportano azioni di indirizzamento e/o di filtraggio dei contenuti più rilevanti rispetto al quesito ed eventualmente al profilo dell’utente, ottimizzando l’accuratezza, la velocità ed eventualmente la personalizzazione della risposta del chatbot.
Nel caso della documentazione tecnica, la strutturazione in topic risulta valida anche in questo ambito, mentre la marcatura con metadati può avvenire sia a livello di topic e su porzioni di testo all’interno di un topic.
Prodotto, problema / funzione, contesto applicativo (di uso del prodotto / della funzione), nazione / mercato, destinatario / livello dell’informazione sono attributi comunemente gestiti a livello di topic.
Per marcare porzioni di testo all’interno di un topic dovremmo invece scegliere attributi coerenti con quelli sovraordinati, ma di una grana più fine, più specifici e dettagliati (es. la versione di un prodotto).
Se l’assistente virtuale si basa su sistemi di NLP, per garantirne il funzionamento è necessario seguire un processo così sintetizzabile:
- Definire gli intenti tipici dell’utente (es. fare il tracking di un ordine, gestire un reso, trovare il ricambio per un dato prodotto)
- Individuare nella knowledge base e/o in altre fonti dati aziendali le entità che combaciano con gli intenti codificati in precedenza e marcare i dati in modo conseguente
- Addestrare e configurare il sistema esplicitando gli intenti, mostrando esempi di frasi che combaciano con ogni intento e mostrando anche come identificare le entità necessarie alla generazione della risposta.
Se dal monitoraggio e dal feedback degli utenti emergono nuovi intenti o se la knowledge base e/o le altre fonti dati aziendali si arricchiscono di nuovi contenuti, è necessario iterare il processo per espandere le capacità dell’assistente virtuale.
In sintesi:
- I chatbot basati su LLM sono particolarmente adatti per compiti informativi in cui l’obiettivo è interagire con gli utenti in modo naturale, gestire una varietà di domande e fornire informazioni su argomenti diversi, adattandosi ai cambi di contesto e ai diversi modi in cui i quesiti possono essere formulati. Tecniche di mitigazione vanno però attuate per prevenire per quanto possibile l’eventualità che il chatbot generi risposte che sembrano corrette ma che sono imprecise o non basate su dati esatti (allucinazioni)
- Gli assistenti virtuali basati su sistemi NLP sono invece adatti a gestire compiti transazionali e fornire risposte precise basate su intenti predefiniti. Sono meno flessibili nella gestione di conversazioni non strutturate o aperte e il dialogo può risultare meno naturale e più “meccanico”, poiché questi chatbot seguono rigide regole di interpretazione del linguaggio
- Piattaforme che propongono una soluzione ibrida che combina le capacità di LLM per la conversazione naturale con la precisione di sistemi NLP tradizionali cercano di fornire una sintesi di entrambi i mondi.
La scelta della tecnologia di base (NLP o LLM) influenza in modo importante sia capacità e limiti dell’agente digitale, sia il modo in cui preparare i contenuti senza i quali nessun chatbot saprebbe risponderci.