Se le capacità conversazionali di ChatGPT vi hanno lasciato a bocca aperta, è il momento di approfondire il funzionamento dei modelli GPT. Attraverso l’uso della libreria transformers, scopriremo come utilizzare un modello open-source generativo per generare testo a partire da un prompt qualsiasi!
Per Intelligenza Artificiale generativa (o IA generativa) si intende una classe di algoritmi deep learning specializzati nella generazione di dati originali a partire da un set di dati pre-esistenti usati per l’addestramento del modello. A partire da dati in ingresso di diversa natura, questi algoritmi permettono la generazione di output molto variegati, come sequenze audio-visive, testi e immagini. Il funzionamento dei modelli di IA generativa si basa sulla modelizzazione dei dati in ingresso come distribuzioni estremamente complesse di variabili che i modelli generativi sono capaci di riprodurre in maniera indistinguibile dagli input di partenza. L’elenco di modelli di IA generativa rilasciati soltanto durante il 2022 è sorprendente: per citarne alcuni, DALL-E 2 e Midjourney nell’ambito dei modelli text-to-image (ossia nella generazione di immagini a partire da prompt testuali), Make-A-Video tra i modelli text-to-video e ChatGPT nell’ambito dei modelli text-to-text. Purtroppo, i modelli citati sono utilizzabili solamente attraverso crediti rilasciati dalle aziende fornitrici e dunque non sempre è possibile poterne fare uso senza vincoli di accesso.
Questo talk ha lo scopo di fornire gli strumenti per poter comprendere e usare i cosiddetti modelli text-to-text, ossia una specifica classe di modelli di IA generativa capaci di generare testo a partire da un prompt testuale. L’interesse per i modelli text-to-text non è solo dovuto al fatto che sono alla base di molte tecnologie che usiamo tutti i giorni, dall’autocompletamento delle frasi ai chatbot automatici, ma anche perchè sono tra i modelli che hanno avuto l’evoluzione più sorprendente negli ultimi anni. Grazie a piattaforme come Hugging Face, è ora possibile scaricare liberamente i modelli generativi sul proprio laptop, usarli con poche righe di codice e addestrarli a compiere task ancora più specifici di quelli per cui sono stati creati. Un esempio concreto di modelli text-to-text è rappresentato da GPT-2, sviluppato da OpenAI e accessibile liberamente dalla piattaforma HuggingFace. Attraverso un’architettura basata su transformers, i modelli GPT hanno raggiunto performance inimmaginabili fino a pochi anni fa che rendono praticamente indistinguibile l’interazione umana con quella di un chatbot sviluppato a partire da esso.
A partire da un breve excursus storico dei modelli generativi text-to-text, nella prima parte del talk approfondiremo come utilizzare la libreria transformers e le versioni open-source di GPT-2 fornite da HuggingFace per generare testo in poche righe di codice e per migliorarne la qualità rispetto all’output generato di default. In seguito, vedremo come addestrare un modello GPT per un task specifico di generazione. Questo processo, chiamato finetuning, è estremamente frequente per chi ha necessità di migliorare le perfomance di un modello a generare più fedelmente specifici output testuali. A tal fine, è possibile addestrare il modello di partenza a partire da un insieme adeguato di dati e dalla classe Trainer fornita dalla libreria transformers. Nella seconda parte del talk, discuteremo come ottimizzare un processo di finetuning attraverso i parametri del Trainer. Attraverso alcune scelte opportune dei parametri, studieremo come usare in maniera più efficente la memoria e la GPU a disposizione durante l’addestramento di un modello GPT-2. Alla fine, vedremo insieme quali sono i sorprendenti risultati ottenuti da un modello GPT-2 opportunamente addestrato.
Dopo un percorso universitario da fisico sperimentale all’università di Pisa, ho conseguito un dottorato in Data Science presso la Scuola Normale Superiore. Nell’ambito della mia formazione, ho passato periodi di ricerca al Fermilab di Chicago e al CERN di Ginevra. Attualmente mi occupo di Natural Language Processing all’interno di AIKnowYou nell’ambito dell’analisi di conversazioni da customer care e dell’automazione di chatbot intelligenti.