La sostenibilità per TIM

Bilancio di Sostenibilità 2023

Vogliamo contribuire ad accelerare la crescita sostenibile dell’economia e della società portando valore e benessere alle persone, alle aziende, alle istituzioni. Approfondisci

Ultimi Comunicati Stampa

Redazione ufficio stampa

Leggi gli ultimi comunicati stampa e naviga nell'archivio dell'Ufficio Stampa del Gruppo TIM. Leggi i comunicati

Generative AI: Search & Summarization documentale

Una delle attività più time consuming nelle aziende, a prescindere dalle dimensioni e dal core business delle stesse, è la ricerca di informazioni chiave all’interno di grandi quantità di documenti, spesso di grandi dimensioni e nei formati più disparati (.pdf, .doc, .xls e/o altri formati proprietari). Immaginiamo, ad esempio, la necessità di recuperare una particolare clausola di un contratto stipulato con un fornitore, o di riassumere in poche righe i punti principali di un allegato tecnico, o la ricerca di un passaggio chiave in una procedura di installazione, soprattutto nei casi in cui queste informazioni sono “affogate” in cartelle o sistemi documentali che contengono centinaia di files di grandi dimensioni. Attività che, di norma, necessita di qualche ora di lavoro di ricerca, raffinamento, estrazione delle informazioni e generazione di un riassunto da poter inviare via e-mail al collega o riportare in un altro documento. La problematica può essere ulteriormente estesa anche alla ricerca all’interno di log di sistema, transcript di chat o conversazioni del call center o del backoffice, fino ad arrivare all’analisi dei Social Media Trends, attività che coinvolgono elevate quantità di dati testuali. La tecnologia dei Large Language Models che abilita la Generative AI ha dato risultati sorprendenti sul tema della Search and Summarization, e molti Use Cases raccolti con le strutture aziendali sono riconducibili al pattern architetturale relativo alla ricerca basata su NLP (Natural Language Processing). Utilizzando in modo opportuno le diverse tecnologie è possibile fornire al motore di Generative AI, tramite un’interfaccia di tipo conversazionale, un prompt in linguaggio naturale unitamente ai riferimenti della location dove sono storicizzati i documenti. Il motore risponde con il miglior completamento possibile del prompt stesso, che nel caso in questione corrisponde alla sintesi o elaborazione delle informazioni ricercate in uno o più documenti e, ove richiesto, i riferimenti ai capitoli dei documenti stessi. L’architettura di riferimento prevede, per questa tipologia di use case, l’istanziazione di un singolo stack applicativo che soddisfi esigenze provenienti da strutture diverse (es. multi-tenancy), possibilmente agnostico rispetto alla tecnologia utilizzata e compatibile con aggiornamenti successivi del modello LLM sottostante (es. GPT-4 vs GPT3.5), così come rappresentata in Fig.A.
L’architettura si compone dei seguenti moduli logici:

  • base documentale di partenza, con esposizione di API ReST per la retrieve dei documenti;
  • modulo di data preparation: richiama le API di accesso ai documenti, li indicizza e gestisce la preparazione del contest (contenente il documento opportunamente tokenizzato) ed il prompt fornito dall’utente. In caso di uso dell’Embedding (descritto nel seguito) il modulo implementa anche il DB vettoriale della rappresentazione dei documenti;
  • interfaccia conversazionale dove l’utente può inserire il prompt e ricevere la risposta;
  • applicazione principale che coreografa i diversi passaggi;
  • modello LLM di riferimento.

Figura A: Architettura di riferimento per applicazioni di Search & Summarization

Clicca qui per ingrandire l'immagine

Nel disegno architetturale è necessario approntare alcuni accorgimenti: uno dei problemi principali è la tokenizzazione dei contenuti, in quanto i motori LLM hanno una limitazione intrinseca del contesto, in termini di numero massimo di token da fornire al modello insieme al prompt di domanda. La conformazione del token varia in base alla tecnologia (ad esempio Open AI utilizza una codifica BPE -Byte-Pair encoding- che corrisponde all’incirca ad una sillaba di una parola) e alla frequenza di occorrenza della coppia di caratteri o byte. Di seguito si elencano alcuni dei metodi utilizzati per passare il contesto (documento tokenizzato e prompt) al modello:

  • Stuffing: si passa l’intero documento al modello in una singola chiamata. Poco adatto a documenti di grandi dimensioni (per il rischio di superare la dimensione massima del context), ha il vantaggio di essere più veloce e preciso “al primo colpo” nell’elaborazione della risposta;
  • MapReduce: implementa una summarization a più fasi. Più adatto a documenti di grandi; dimensioni, prevede la successione di summarization di chunk del documento e la conseguente combinazione dei diversi summary per ottenere la risposta finale;
  • Refine: richiede l’uso di due prompts, la domanda principale che genera l’output per il task successivo e il prompt di refine, che serve a raffinare la prima risposta. Il vantaggio rispetto al mapReduce è ottenere un contesto più rilevante, ma necessita di più chiamate conseguenti, in quanto rispetto al precedente, per sua natura non può parallelizzare i task.

Un altro strumento estremamente potente utilizzabile in questo ambito è l’Embedding, ovvero una rappresentazione vettoriale di un testo. Tale rappresentazione fornisce capacità avanzate di “Semantic Search & similarity”. Utilizzata come input al modello generale LLM permette di creare applicazioni di Search & Summarization documentale specifica su basi dati private come ad esempio repository di contratti, documenti aziendali, manuali di grandi dimensioni, mantenendo il contesto dati circoscritto al perimetro aziendale. Il principio di base è la rappresentazione dei documenti stessi, dei metadati associati ad essi e di altri possibili dati ausiliari tramite uno spazio vettoriale, inteso come vettori numeri in virgola mobile. L’embedding può poi essere indicizzato su un DB vettoriale, per permettere una ricerca a bassa latenza, vincolo critico per alcune tipologie di applicazioni su larga scala [4]. Le scelte tecnologiche per implementare le features richieste dipendono, infine, da vari fattori, tra i quali: costi di licenza per l’uso di uno o più prodotti vendor, opportunità di soluzioni più vicine al “chiavi in mano”, o la possibilità di combinare tra loro capabilities fornite da strumenti open source, in base al grado di maturità e skills del team di sviluppo IT. Un framework di sviluppo open source con un buon grado di completezza è, ad esempio, Langchain. Con esso è possibile sviluppare applicazioni basate su LLM in maniera “vendor-agnostic”, scegliendo la tecnologia più adatta. Langchain fornisce strumenti per la creazione del contesto, per l’interfacciamento con basi di dati documentali, la possibilità di utilizzare i vari modelli forniti dai principali attori di mercato. La caratteristica principale è la possibilità di creare “chain”, cioè catene applicative combinando vari moduli per costruire la soluzione più adatta al proprio requisito.

 

giovanni.petracca@telecomitalia.it