L’intelligenza artificiale generativa è qui per restare, ma sarebbe errato pensare che un programma, magicamente leggendo dati, apprenda e in qualche modo diventi cosciente e si comporti come un individuo.
Le tecnologie di AI generativa come i modelli LLM alla base di ChatGPT sono strumenti che vanno inseriti in un contesto perché possano svolgere compiti che non siano limitati alla conversazione. Non c’è da stupirsi quindi che si cerchi di integrare questi modelli all’interno di architetture software più complesse in cui il modello generativo è solo uno dei vari elementi che fornisce una capacità essenziale che prima mancava: l’abilità di analizzare le informazioni raccolte ed armonizzarle in modo utilizzando le capacità di analisi e sintesi di linguaggio naturale.
Oltre a confrontare GPT di OpenAI, Google Bard e LLaMa2 di Meta, è opportuno tener presente il panorama dei framework, spesso open source, che si sta sviluppando rapidamente al fine di realizzare interi sistemi che rispondano ad esigenze di gestione della conoscenza sfruttando al meglio le tecnologie di AI.
La prima esigenza di questi sistemi è quella di gestire grosse moli di conoscenza senza poter raffinare un modello esistente e con il limite della lunghezza del prompt che limita significativamente le informazioni su cui si può interagire con il modello. Un po’ come succede nel nostro cervello viene quindi spontaneo organizzare questi software con una struttura con una memoria a lungo termine in cui memorizzare i fatti (ottenuti caricando conoscenza a partire da documenti e altre sorgenti di informazioni strutturate), una memoria di più breve termine in cui viene mantenuto il contesto delle interazioni e gli obiettivi dell’agente intelligente, e infine i modelli LLM che consentono possono aiutare a pianificare, come nel caso di AutoGPT, e ad armonizzare la conoscenza facendo ricorso a frammenti di informazione provenienti dalla memoria a lungo termine.
I framework disponibili
Anche prima dell’arrivo dei modelli generativi di testo come GPT si stavano sviluppando sistemi per la gestione di linguaggio naturale, sia Open Source che proprietari. NLTK, ad esempio, è sviluppato e manutenuto da quasi quindici anni, Google cloud natural language services consente di analizzare testi alla ricerca di elementi, così come Amazon Comprehend e Azure Cognitive Services. L’impianto di questi servizi è largamente ante-LLM, ma alcuni servizi sono stati più efficienti di altri ad integrare queste le nuove tecnologie come gli embeddings, e i modelli LLM.
Il framework Haystack
È il caso del framework Haystack che in pochissimo tempo è passato da essere un framework open source scritto in Python per il Natural Language Processing a partire dal novembre 2019 avendo già in mente le tecnologie dei transformer alla base degli odierni LLM.
Questo framework è molto utilizzato e si offre di coordinare il funzionamento di software diversi sistemi che svolgono le funzioni di base. Alla base del framework troviamo il sistema di gestione documentale per cui il progetto offre connettori ai principali AI vector database (come, ad esempio, Weaviate e PineCone); questi database consentono di memorizzare “documenti” indicizzandoli usando un modello di AI che li trasformi in vettori che ne rappresentano il significato. In questo esempio si può vedere come a parità di richiesta in varie lingue il sistema è capace di ordinare i documenti usando i significato individuando i documenti rilevanti come i primi due sia in italiano che in sardo che in giapponese (il sistema è parte di Oraculum, un progetto open source dedicato alla creazione di assistenti capaci di supportare gli utenti usando un’ampia base di conoscenza costantemente aggiornata):
Per poter memorizzare la conoscenza in un document store è necessario disporre di nodi capaci di elaborare i dati in ingresso per normalizzarli e ripulirli. Haystack prevede anche i tool per fornire la conoscenza al sistema su funzioni specifiche che svolgono azioni esatte (es. compiti matematici).
Le pipeline
Le pipeline sono il meccanismo che consente di collegare gli elementi del framework, e un agente che usando modelli LLM vari, come ad esempio GPT-3, introducono un elemento di autonomia sfruttando la capacità di questi sistemi di pianificare. Haystack si candida quindi ad essere il coordinatore che armonizza la conoscenza accumulata nel document store con quella disponibile negli agenti per fornire risposte a compiti specifici espressi come una pipeline.
Framework più recenti
L’emergere di modelli degli ultimi mesi ha spinto la creazione di nuovi framework costruiti sul loro funzionamento. Tra questi sicuramente è degno di nota il semantic kernel di Microsoft, un progetto open source che è dedicato a realizzare uno strato software che connetta i servizi di AI con software tradizionale in modo che applicazioni già in essere possano integrare al proprio interno funzionalità simili a Copilot. Anche in questo caso l’architettura è simile a quella di Haystack, ma realizzato con tecnologie come .NET, una tecnologia molto diffusa in ambiente enterprise.
Conclusioni
I modelli di AI generativa continueranno nel loro percorso di evoluzione, ma oggi è necessario cominciarli a considerare come un tassello in un puzzle più complesso. L’integrazione delle tecnologie AI è sicuramente supportata da questi framework in sistemi reali e per loro natura complessi. È quindi necessario monitorare questi framework per valutarne il grado di maturazione e di conseguenza la loro adozione nella realizzazione di nuovi servizi.