L'Intelligenza Artificiale (spesso abbreviata in AI nel senso di acronimo dell'espressione inglese Artificial Intelligence) è uno dei grandi obiettivi che l'Informatica si è posta sin dai suoi albori. Ciò è dimostrato non solo dalla gran quantità di scoperte e pubblicazioni che si sono susseguite nei decenni ma anche dall'abbondanza di robot, macchine intelligenti e parlanti che il mondo della fantascienza e della creatività ha regalato al suo pubblico. Testimonianza di quanto tutto ciò abbia sempre fatto un po' parte dell'immaginario collettivo nel corso degli anni.
Intelligenza Artificiale e programmazione
Con l'Intelligenza Artificiale si inverte quello che è uno dei postulati fondamentali della programmazione. In senso classico infatti è il programmatore, in prima istanza, a dover suddividere il problema da risolvere in tante singole istruzioni da organizzare e temporizzare creando il cosiddetto algoritmo. Invece, con l'AI è la macchina a comprendere come risolvere il problema. Senza dover essere guidata passo passo dall'Uomo.
Lo potrà fare grazie a grandi quantità di dati che ha studiato su casi pregressi analoghi al problema che si trova a dover risolvere. Informazioni che ha sintetizzato in un voluminoso "motore" che prende tipicamente il nome di modello.
Il ruolo degli esseri umani in questo campo non sarà quindi quello di sviluppatori unici della soluzione ma di accompagnatori della macchina verso lo svelamento dei meccanismi interni del problema. Quelli che potremmo in generale chiamare data scientist (esistono tuttavia appellativi più specifici per ogni settore) saranno quindi chiamati a preparare i dati che il sistema dovrà studiare, a scegliere i modelli più adatti, a recuperare e valutare i risultati ottenuti e a progettare l'applicazione intorno al modello per poterlo sfruttare adeguatamente.
AI e Machine Learning
Come ogni grande branca della ricerca anche l'Intelligenza Artificiale è stata suddivisa in tanti filoni. Alcuni nati come specializzazioni di altri. Potremmo arrivare ad inquadrare l'ambito che qui ci interessa partendo da un primo anello principale, il Machine Learning. Dove, come il nome stesso dichiara, la macchina affronta un percorso di learning ovvero di apprendimento in cui studia uno storico di casi, esteso e adeguatamente preprocessato da data scientist, e produce il relativo modello.
Già il Machine Learning conduce alla realizzazione di importantissime attività come previsioni, classificazioni e valutazioni. Senza richiedere l'individuazione del vero algoritmo da parte dell'essere umano.
Il Machine Learning ha a sua volta un sottocampo costituito dal Deep Learning che si presuppone gli stessi scopi (previsione, classificazione, etc.). Tentando però di perseguirli con strutture note come reti neurali.
L'Intelligenza Artificiale generativa
Tutto ciò è assolutamente interessante, importante e attuale nel mondo del lavoro e della ricerca. Ma gli ultimi anni sono stati sconvolti dalla manifestazione pubblica di un nuovo scenario: l'Intelligenza Artificiale generativa animata dagli LLM (Large Language Models) ormai noti anche al grande pubblico.
Lo squillo di tromba è stato costituito dalla presentazione di ChatGPT, strumento che mette a disposizione di chiunque il risultato di anni di lavoro sul modello GPT (Generative Pre-trained Transformer). È iniziata così l'era dei modelli linguistici generativi. AI con cui interagire in linguaggio naturale.
Questo settore fornisce la possibilità di generare dati, non limitandosi ("limitandosi" per modo di dire) alla previsione e classificazione ma alla produzione di testi, immagini e contenuti di vario genere con una creatività per molti versi simile a quella umana. Per questa ragione in alcuni casi si parla anche di modelli generativi multimodali. Cioè in grado di gestire diverse tipologie di contenuti.
L'interfaccia del chatbot ChatGPT rende accessibile il servizio agli utenti. Offrendo in pratica un'applicazione, comoda e facile da utilizzare, con tanto di controlli visuali che permettono di interagire con il modello, fondato sulla tecnologia GPT di OpenAI, disponibile on line e tramite applicazione mobile.
Conclusioni: Python per l'AI
Con questa guida vogliamo imparare a costruire applicazioni in linguaggio Python che - indipendentemente da ciò di cui si occupano - si rivolgono ad un motore di Intelligenza Artificiale generativa per acquisire quell'aspetto creativo e quel tocco, per così dire, un po' umano!
Il percorso che seguiremo consisterà in una serie di passaggi che all'inizio saranno di orientamento. In breve diventeranno poi degli step di realizzazione pratica di soluzioni con gli strumenti offerti dal linguaggio Python, dal framework LangChain e soprattutto dai vari modelli di AI.
A quest'ultimo punto dedicheremo molti sforzi cercando di comprendere come funzionano. Studiando un punto focale dello scenario attuale, ovvero OpenAI, ma anche comprendendo le varie alternative che esistono e come poterci districare in un contesto in così veloce evoluzione. Iniziamo!