Una Breve Introduzione all’Intelligenza Artificiale Generativa per Principianti

'Introduzione all'Intelligenza Artificiale Generativa per Principianti'

Capire l’immagine di insieme dietro all’IA generativa

Immagine di Susan Cipriano su Pixabay

Negli ultimi mesi si è assistito all’ascesa della cosiddetta “IA generativa”, che è un sottocampo dell’Intelligenza Artificiale (IA). Strumenti come ChatGPT sono diventati tra le parole più pronunciate e stanno diventando strumenti fondamentali per le attività quotidiane di molti lavori (anche per imparare a programmare).

Termini come “DALL-E”, “ChatGPT” e “IA generativa” hanno invaso i social media, i media, le conversazioni con colleghi e tutto ciò che riguarda il nostro mondo negli ultimi mesi. Letteralmente, tutti ne stanno parlando.

Ma cos’è l’IA generativa? Perché è diversa dall’IA “normale”?

In questo articolo, chiariremo l’immagine di insieme dietro all’IA generativa. Quindi, se hai partecipato a discussioni ma non hai idee chiare su questo argomento, questo articolo è sicuramente per te.

Questa è una spiegazione discorsiva per comprendere le basi di ciò che si cela dietro le quinte dell’IA generativa. Quindi, non preoccuparti: qui non troverai alcun codice. Solo idee e descrizioni, che saranno presentate in modo molto breve e conciso. In particolare, ci concentreremo su Large Language Models e Image Generation Models.

Ecco un riassunto di ciò che imparerai qui:

Sommario:Cos'è l'IA generativa e in cosa differisce dall'IA tradizionale?Large Language ModelsGenerazione di immagini

Cosa è l’IA generativa e in cosa differisce dall’IA tradizionale?

L’IA generativa è un sottocampo dell’IA che coinvolge la creazione di algoritmi in grado di generare nuovi dati come immagini, testi, codici e musica.

La grande differenza tra l’IA generativa e l'”IA tradizionale” è che la prima genera nuovi dati basandosi sui dati di addestramento. Inoltre, lavora con tipi di dati con cui l'”IA tradizionale” non può lavorare.

Diciamolo in modo un po’ più tecnico:

  • L'”IA tradizionale” può essere definita come IA discriminativa. In questo caso, infatti, addestriamo modelli di Machine Learning affinché possano fare previsioni o classificazioni su dati nuovi e non visti in precedenza. Questi modelli di Machine Learning possono lavorare solo con numeri e a volte con testo (ad esempio, nel caso del Natural Language Processing).
  • Nell’IA generativa, addestriamo un modello di Machine Learning e questo crea un output simile ai dati su cui è stato addestrato. Questi tipi di modelli di Machine Learning possono lavorare con diversi tipi di dati come numeri, testo, immagini e audio.

Visualizziamo i processi:

Il processo dietro l'IA tradizionale. Immagine di Author.

Quindi, nell’IA tradizionale, addestriamo un modello di Machine Learning per imparare dai dati. Successivamente, alimentiamo il modello con dati nuovi e non visti in precedenza e questo può discriminare, fare previsioni o classificazioni.

Riguardo all’esempio presentato, abbiamo addestrato un modello di Machine Learning per riconoscere i cani dalle immagini. Successivamente, alimentiamo il modello di Machine Learning addestrato con immagini nuove e non viste in precedenza di cani e sarà in grado di classificare se queste nuove immagini rappresentano cani o no.

Questo è il compito tipico per un algoritmo di Deep Learning, nel caso di un problema di classificazione.

Il processo dietro l'IA generativa. Immagine di Author.

Nel caso dell’IA generativa, invece, addestriamo un modello di Machine Learning con dati provenienti da varie fonti utilizzando una vasta quantità di dati. Successivamente, grazie a una richiesta (una query in linguaggio naturale inserita da un utente), il modello ci restituisce un output simile ai dati su cui è stato addestrato.

Per rimanere all’esempio, il nostro modello è stato addestrato su una enorme quantità di dati (testuali) che, tra le altre cose, spiega cosa è un cane. Quindi, se un utente fa una query al modello chiedendo cosa sia un cane, il modello descriverà cosa è un cane in linguaggio naturale.

Questa è la tipica attività svolta da strumenti come ChatGPT.

Ora, vediamo alcuni tipi di modelli di intelligenza artificiale generativa.

Modelli di Linguaggio Ampi

Iniziamo a esplorare i vari tipi di sottocampi dell’intelligenza artificiale generativa partendo dai Modelli di Linguaggio Ampi (LLM). Un LLM è (secondo Wikipedia):

un modello di linguaggio computerizzato che consiste in una rete neurale artificiale con molti parametri (dai decine di milioni ai miliardi), addestrato su grandi quantità di testo non etichettato utilizzando l’apprendimento auto-supervisionato o l’apprendimento semi-supervisionato.

Anche se il termine “modello di linguaggio ampio” non ha una definizione formale, spesso si riferisce a modelli di deep learning con milioni o addirittura miliardi di parametri, che sono stati “pre-addestrati” su un corpus ampio.

Quindi, i LLM sono modelli di Deep Learning (DL) (alias, Reti Neurali) addestrati con milioni di parametri su una quantità enorme di testo (questo è il motivo per cui li chiamiamo “ampi”) e sono utili per risolvere alcuni problemi di linguaggio come:

  • Classificazione del testo
  • Domande e risposte
  • Riassunto di documenti
  • Generazione di testo

Quindi, un’altra differenza importante rispetto ai modelli di ML standard è che, in questo caso, possiamo addestrare un algoritmo di DL che può essere utilizzato per diverse attività.

Spieghiamolo meglio.

Se dobbiamo sviluppare un sistema che può riconoscere i cani nelle immagini come abbiamo visto prima, dobbiamo addestrare un algoritmo di DL per risolvere un compito di classificazione che consiste nel dirci se le nuove immagini non viste rappresentano cani o meno. Nient’altro.

Invece, addestrare un LLM può aiutarci in tutte le attività descritte sopra. Quindi, questo giustifica anche la quantità di potenza di calcolo (e denaro!) necessaria per addestrare un LLM (che richiede petabyte di dati!).

Come sappiamo, i LLM vengono interrogati dagli utenti grazie ai prompt. Ora, dobbiamo individuare la differenza tra la progettazione del prompt e l’ingegnerizzazione del prompt:

  • Progettazione del prompt. Questa è l’arte di creare un prompt specificamente adatto al compito specifico che il sistema sta svolgendo. Ad esempio, se vogliamo chiedere al nostro LLM di tradurre un testo dall’inglese all’italiano, dobbiamo scrivere un prompt specifico in inglese che chiede al modello di tradurre il testo che stiamo incollando in italiano.
  • Ingegnerizzazione del prompt. Questo è il processo di creazione di prompt per migliorare le prestazioni del nostro LLM. Ciò significa utilizzare la nostra conoscenza del dominio per aggiungere dettagli al prompt come parole chiave specifiche, contesto ed esempi specifici e l’output desiderato, se necessario.

Ovviamente, quando facciamo un prompt, a volte utilizziamo una combinazione di entrambi. Ad esempio, potremmo voler una traduzione dall’inglese all’italiano che interessi un particolare dominio di conoscenza, come la meccanica.

Quindi, ad esempio, un prompt potrebbe essere: “Traduci in italiano quanto segue:

la trave è soggetta a sforzo normale.

Tieni presente che siamo nel campo della meccanica, quindi ‘sforzo normale’ deve essere correlato ad esso”.

Perché, lo sai: “normale” e “sforzo” potrebbero essere fraintesi dal modello (ma anche dagli esseri umani!).

I tre tipi di LLM

Ci sono tre tipi di LLM:

  • Modelli di Linguaggio Generici. Questi sono in grado di prevedere una parola (o una frase) in base al linguaggio nei dati di addestramento. Pensate, ad esempio, alla funzione di completamento automatico delle email per capire questo tipo.
  • Modelli Sintonizzati alle Istruzioni. Questi tipi di modelli vengono addestrati per prevedere una risposta alle istruzioni fornite in input. Il riassunto di un testo dato è un esempio tipico.
  • Modelli Sintonizzati al Dialogo. Questi vengono addestrati per avere un dialogo con l’utente, utilizzando le risposte successive. Un chatbot basato sull’IA è un esempio tipico.

Comunque, considerate che i modelli che vengono effettivamente distribuiti hanno caratteristiche miste. O, almeno, possono svolgere azioni tipiche di più di uno di questi tipi.

Ad esempio, se pensiamo a ChatGPT possiamo dire chiaramente che:

  • Può prevedere una risposta alle istruzioni, dato un input. Infatti, ad esempio, può riassumere testi, fornire spunti su un determinato argomento che forniamo tramite prompt, ecc… Quindi, ha funzionalità simili a un Modello Sintonizzato su Istruzioni.
  • È addestrato per dialogare con gli utenti. E questo è molto chiaro, poiché funziona con prompt consecutivi fino a quando siamo soddisfatti della sua risposta. Quindi, ha anche funzionalità simili a un Modello Sintonizzato su Dialogo.

Generazione di immagini

La generazione di immagini esiste da parecchio tempo, contrariamente a quanto si potrebbe pensare.

In ogni caso, di recente ha guadagnato popolarità, soprattutto con strumenti come “DALL-E” o “diffusione stabile” che ne hanno chiarito l’uso, rendendo questa tecnologia accessibile alle masse in tutto il mondo.

Possiamo dire che la generazione di immagini può essere divisa in quattro categorie:

  • Autoencoder Variazionale (VAE). Gli autoencoder variazionali sono “modelli generativi probabilistici che richiedono reti neurali solo come parte della loro struttura complessiva”. In parole operative, codificano le immagini in una dimensione compressa e le decodificano alle dimensioni originali. Durante questo processo, apprendono la distribuzione dei dati.
  • Modelli generativi avversari (GAN). Questi sono generalmente i più conosciuti, almeno come parola che risuona nel campo dell’IA generativa. Una GAN è “una classe di framework di apprendimento automatico in cui due reti neurali si sfidano tra loro, dove il guadagno di una è la perdita dell’altra”. Ciò significa che una rete neurale crea l’immagine mentre l’altra predice se è reale o falsa.
  • Modelli autoregressivi. Nella statistica, un modello autoregressivo è la rappresentazione di un processo casuale. Nel contesto della generazione di immagini, questi tipi di modelli generano immagini trattandole come una sequenza di pixel.
  • Modelli di diffusione. I modelli di diffusione sono stati ispirati dalla termodinamica e sono sicuramente i modelli più promettenti e interessanti nel sotto-campo della generazione di immagini.

Questo è il processo che si svolge dietro le quinte dei modelli di diffusione:

  • Processo di distribuzione in avanti. Abbiamo un processo iniziale, iterativo, in cui la struttura dell’immagine viene “distrutta” in una distribuzione di dati. In parole semplici, è come se aggiungessimo iterativamente rumore all’immagine, fino a quando tutti i pixel diventano rumore puro e l’immagine non è più riconoscibile (dall’occhio umano).
  • Processo di diffusione inversa. Poi, c’è un processo di diffusione inversa che è il vero processo di apprendimento: questo ripristina la struttura dei dati. È come se il nostro modello imparasse come “denoizzare” i pixel per ricreare l’immagine.

Il potere di connettere tutto

Se hai mantenuto l’attenzione fino ad ora, una domanda dovrebbe naturalmente sorgere nella tua mente: “Ok, Federico, è chiaro. Ma mi manca qualcosa: quando uso ‘DALL-E’ inserisco un prompt e restituisce un’immagine: non ne abbiamo parlato, vero?!”.

No, non ne abbiamo parlato.

Sopra abbiamo fatto una breve descrizione del modello più promettente (e attualmente più usato) per la generazione di immagini, ma la parte mancante è il prompt.

In effetti, abbiamo discusso di come funzionano a un livello elevato. Significato: abbiamo dato una breve spiegazione di come funziona il loro processo di apprendimento.

Ma il vero potere di questi modelli si manifesta quando vengono accoppiati con LLM. Questo accoppiamento, infatti, ci dà la possibilità di combinare la potenza dell’ingegneria del prompt per chiedere ai nostri modelli dei risultati.

In altre parole: abbiamo combinato la possibilità di utilizzare il linguaggio naturale come input per modelli che possono effettivamente comprenderlo e generare immagini in base ad esso.

Non è una superpotenza?!?

Conclusioni

In conclusione, possiamo dire che l’IA generativa è un sotto-campo dell’IA che genera nuovi dati simili ai dati di allenamento.

Mentre, da un lato, LLM può generare testo basato sui dati di allenamento e i modelli di generazione di immagini possono generare nuove immagini basate sulle immagini di allenamento, il vero potere dell’IA generativa, almeno nel caso delle immagini, si basa sulla combinazione di LLM e modelli per la generazione di immagini. Ciò ci dà la possibilità di creare immagini in base ai prompt come input.

NOTA: questo articolo è stato liberamente ispirato dal corso di IA generativa fornito da Google, e alcune referenze sono tratte da esso. Suggerisco di seguire questo corso, per una migliore comprensione dell’IA generativa.

EBOOK PYTHON GRATUITO:

Hai iniziato a imparare Python Data Science ma stai avendo difficoltà? Iscriviti alla mia newsletter e ottieni il mio ebook gratuito: questo ti fornirà il percorso di apprendimento corretto da seguire per imparare Python per la Data Science con esperienza pratica.

Ti è piaciuta la storia? Diventa un membro di Nisoo per 5$/mese tramite il mio link di riferimento: guadagnerò una piccola commissione senza costi aggiuntivi per te:

Come membro di Nisoo, una parte della tua quota di iscrizione va agli scrittori che leggi e ottieni accesso completo a ogni storia…

federicotrotta.medium.com