I modelli linguistici di grandi dimensioni sono pervasivi ovunque. Ogni volta che ci si trova a interagire con i clienti o a presentare progetti di venture capital, si sollevano questioni sulla prontezza della tecnologia LLM e sul suo ruolo nelle future applicazioni. Nel mio post precedente, ho già esplorato alcuni aspetti di questi modelli. Ora, vorrei discutere di alcune applicazioni reali nel settore farmaceutico, focalizzando l’attenzione su un progetto su cui Persistent Systems ha lavorato.
Gli LLM eccellono nel comprensione del linguaggio, una loro caratteristica distintiva. Un modello ampiamente diffuso nelle applicazioni è il Recupero con Generazione Aumentata (RAG). In questa metodologia, le informazioni sono raccolte da fonti esterne e presentate al LLM come spunto contestuale per parafrasare una risposta. Qui, meccanismi di ricerca estremamente veloci, come i database vettoriali e i motori basati su Elasticsearch, agiscono come la prima linea di ricerca. I risultati vengono poi organizzati in un prompt e inviati all’LLM principalmente attraverso chiamate API.
Un altro approccio consiste nella generazione di query per dati strutturati. Si fornisce all’LLM un modello di dati come spunto, insieme a una specifica richiesta dell’utente. Questo modello può essere adottato per creare un’interfaccia avanzata che permette di “dialogare” con i propri dati, sia essi database SQL come Snowflake, oppure database a grafo come Neo4j.
Un esempio di applicazione recente da parte di Persistent Systems riguarda Blast Motion, un’azienda specializzata in telemetria sportiva, che si occupa dell’analisi del movimento per sport come baseball e golf. In questo caso, è stata esaminata la serie temporale dei dati relativi alle performance dei giocatori per fornire suggerimenti utili.
Per applicazioni più complesse, spesso è necessario concatenare le richieste LLM con elaborazioni tra le diverse chiamate. Ad esempio, un’applicazione sviluppata per un’azienda farmaceutica è stata ideata per filtrare i pazienti da utilizzare in sperimentazioni cliniche, basandosi su criteri tratti da documenti di studio. Qui è stato adottato un approccio a catena di LLM. Inizialmente, è stato creato un LLM relativamente semplice, come il GPT-3.5-Turbo (noto anche come ChatGPT), per estrarre i criteri di inclusione ed esclusione dai documenti PDF di studio, utilizzando il modello RAG.
Successivamente, le informazioni estratte sono state combinate con il modello di dati dei pazienti, contenuto in un database SQL come Snowflake, al fine di generare un prompt. Questo prompt è stato quindi inviato a un LLM più potente, come il GPT-4, che ha generato una query SQL per filtrare i pazienti. Tuttavia, poiché questa concatenazione di LLM comporta costi, è possibile sfruttare diversi LLM in diverse fasi della catena, al fine di ottimizzare l’efficienza.
Nel presente, è stata adottata una catena deterministica per garantire un maggiore controllo. In altre parole, si è scelto di concentrare l’intelligenza all’interno delle catene, mantenendo un’orchestrazione semplice e prevedibile. Va sottolineato che ogni elemento di questa catena rappresenta, di per sé, un’applicazione complessa, che richiederebbe diversi mesi di sviluppo, specialmente prima dell’avvento dei modelli linguistici di grandi dimensioni.
Per applicazioni più avanzate, potrebbe essere possibile utilizzare agenti come ReAct per istruire l’LLM nella creazione di istruzioni passo-passo per rispondere a richieste specifiche degli utenti. Questo richiederebbe, ovviamente, l’uso di modelli LLM avanzati, come GPT-4, Cohere o Claude 2. Tuttavia, ciò comporta il rischio di errori, che dovrebbero essere controllati attraverso meccanismi di sicurezza. Qui emerge una scelta tra la concentrazione dell’intelligenza nelle fasi controllate della catena o l’autonomizzazione dell’intero processo.
Man mano che ci adattiamo all’era dell’IA generativa per il linguaggio, l’industria sta gradualmente adottando applicazioni LLM con catene di processi prevedibili. Con l’ulteriore crescita di questa tendenza, è possibile che si evolva un livello maggiore di autonomia attraverso l’uso di agenti. Questo, in definitiva, alimenta il dibattito sull’Intelligenza Artificiale Generale (AGI), e siamo ansiosi di vedere come questa evoluzione si svilupperà nel tempo.