Panoramica
L'IA generativa è un tipo di intelligenza artificiale che crea nuovi contenuti sfruttando modelli di deep learning addestrati su grandi set di dati. I modelli di IA generativa, che vengono utilizzati per generare nuovi dati, si contrappongono ai modelli di intelligenza artificiale discriminativa, che hanno invece lo scopo di ordinare i dati in base alle differenze. Le applicazioni di IA generativa vengono utilizzate oggi per la creazione di testi, immagini, codice e altri contenuti. I principali scenari di utilizzo dell'IA generativa sono chatbot, creazione ed editing di immagini, assistenza alla stesura di codice software e ricerca scientifica.
L'IA generativa viene utilizzata in contesti professionali sia per visualizzare rapidamente progetti creativi sia per svolgere in maniera efficiente attività altrimenti dispendiose in termini di tempo. In campi come la ricerca medica e la progettazione di prodotti, l'IA generativa si sta dimostrando uno strumento efficace per i professionisti nello svolgimento delle loro mansioni. L'intelligenza artificiale però introduce anche nuovi rischi che gli utenti devono conoscere per riuscire a limitarli.
Alcune delle applicazioni di IA generativa più note nate negli ultimi anni sono: ChatGPT e DALL-E di OpenAI, GitHub CoPilot, Microsoft Bing Chat, Google Bard, Midjourney, Stable Diffusion e Adobe Firefly. Red Hat e IBM hanno collaborato alla creazione di Red Hat® Ansible® Lightspeed con IBM watsonx Code Assistant, un servizio di IA generativa che permette agli sviluppatori di creare contenuti Ansible in modo più efficiente. Sono comunque moltissime le organizzazioni che oggi si dedicano allo sviluppo dei loro sistemi di IA generativa per automatizzare le attività di routine e incrementare l'efficienza.
Come funziona l'IA generativa?
Se hai avuto modo di utilizzare ChatGPT o vedere l'immagine creata da Midjourney partendo da una descrizione da te fornita, hai appurato che l'intelligenza artificiale generativa è in grado di produrre risultati sorprendenti. Ma come funziona?
Dietro alle app di AI che utilizzi, i modelli di deep learning ricreano gli schemi che hanno imparato grazie all'addestramento su grandi volumi di dati. E poi lavorano entro parametri definiti dall'uomo per generare un nuovo contenuto in base a quanto appreso.
I modelli di deep learning non archiviano una copia dei loro dati per l'addestramento, ma ne codificano una versione con punti dati simili ma più vicini tra loro. In un secondo momento questa rappresentazione viene decodificata per creare dati nuovi e originali con caratteristiche analoghe.
Per sviluppare un'app di IA generativa occorre un modello e delle soluzioni di messa a punto, come il fine tuning con supervisione umana o un livello di dati specifici per lo scenario di utilizzo.
La maggior parte delle app di IA generativa attualmente in circolazione rispondono alle richieste dell'utente. È sufficiente descrivere in linguaggio naturale ciò che si desidera e l'app è in grado di crearlo.
Risorse da Red Hat
In quali campi si utilizza l'IA generativa?
I passi avanti dell'intelligenza artificiale generativa nella stesura di testi e nella creazione di immagini hanno attirato l'interessi di molti. Di seguito alcuni esempi dei primi scenari di utilizzo per questa tecnologia in continua evoluzione.
Scrittura di testi. Prima ancora del successo clamoroso di ChatGPT, i sistemi di IA generativa ottenevano già ottimi risultati nell'emulazione della scrittura umana. Gli strumenti di traduzione del linguaggio sono stati tra i primi scenari di utilizzo. Le applicazioni di IA generativa attuali sono in grado di rispondere alle richieste di creazione di contenuti praticamente su qualsiasi argomento. Possono anche adeguare il tipo di scrittura in base alla lunghezza e allo stile richiesti.
Creazione di immagini. Gli strumenti per la creazione di immagini con IA generativa sono in grado di sintetizzare immagini di alta qualità e soddisfare pressoché qualunque richiesta di stile o soggetto. Alcuni strumenti, come Generative Fill di Adobe Photoshop, consentono di aggiungere nuovi elementi a un'immagine esistente.
Creazione di musica e parlato. Utilizzando un testo scritto e un campione vocale, gli strumenti vocali basati su intelligenza artificiale sono in grado di elaborare un parlato o un cantato che imitano il suono delle voci umane. Altri strumenti sono capaci di comporre musica artificiale a partire dalle richieste degli utenti e campioni.
Creazione di video. Nuovi servizi stanno sperimentando diverse tecniche per arrivare a utilizzare l'IA generativa per la creazione di animazioni. Ad esempio, alcuni riescono ad applicare l'audio a un'immagine fissa e a dare l'impressione che un viso parli.
Creazione e completamento del codice. Alcuni strumenti di IA generativa sono in grado di creare stringhe di codice a partire da una richiesta scritta degli sviluppatori di software.
Data augmentation. L'IA generativa è in grado di creare grandi quantità di dati artificiali per tutti quei contesti in cui l'utilizzo di dati reali è impossibile o non è la scelta ideale. Ad esempio, i dati creati artificialmente sono utili per chi vuole addestrare un modello a comprendere i dati sanitari ma non vuole includere informazioni personali che possano ricondurre ai singoli pazienti. Questi dati si possono utilizzare anche per ampliare set di dati troppo esigui o incompleti quando si desiderano svolgere attività di addestramento o test.
Cos'è il deep learning?
Il deep learning, ovvero la tecnologia alla base dell'intelligenza artificiale generativa, è una tecnica di machine learning per l'analisi e l'interpretazione di grandi volumi di dati. Noto anche come apprendimento neurale profondo o reti neurali profonde, è un processo che insegna ai computer a imparare tramite l'osservazione, simulando le modalità di acquisizione delle conoscenze tipiche degli esseri umani. Il deep learning è un concetto chiave quando si parla di utilizzare i computer per comprendere il linguaggio umano, la cosiddetta elaborazione del linguaggio naturale (NLP).
Può essere utile immaginare il deep learning come un diagramma di flusso con un livello iniziale in cui vengono inseriti dati e uno finale che fornisce risultati. Tra questi due troviamo "livelli nascosti" che elaborano informazioni a diversi livelli, modificando e adeguando il loro comportamento man mano che ricevono nuovi dati. I modelli di deep learning possono avere centinaia di livelli nascosti, ognuno dei quali svolge il proprio ruolo nell'analizzare relazioni e schemi all'interno del set di dati.
A partire dal livello di inserimento iniziale, composto da più nodi, i dati vengono introdotti nel modello e categorizzati di conseguenza prima di passare al livello successivo. Il percorso seguito dai dati attraverso ogni livello dipende da calcoli stabiliti per ciascun nodo. Infine, i dati passano da un livello all'altro acquisendo osservazioni lungo il percorso, che porteranno in definitiva al risultato, o all'analisi finale, dei dati.
Una tecnologia che ha accelerato il progresso del deep learning è l'unità di elaborazione grafica (GPU). Le GPU sono nate per accelerare il rendering della grafica nei videogiochi e poi, data la loro efficienza nell'eseguire calcoli in parallelo, si sono dimostrate particolarmente adatte anche ai carichi di lavoro di deep learning.
Il progresso delle applicazioni di IA generativa è strettamente collegato alle dimensioni e alla velocità dei modelli di deep learning.
Cos'è una rete neurale?
Una rete neurale è una tecnologia per l'elaborazione delle informazioni che emula il funzionamento dei sistemi neurali biologici, come il cervello umano. Questa è la modalità utilizzata dall'intelligenza artificiale per creare le connessioni tra set di informazioni apparentemente non correlati. Quindi il concetto di rete neurale è strettamente collegato a quello di deep learning.
Ma in che modo un modello di deep learning utilizza una rete neurale per connettere i punti dati? Partiamo dal funzionamento del cervello umano. Il cervello umano contiene molti neuroni interconnessi, che fungono da messaggeri durante l'elaborazione dei dati in ingresso. Tali neuroni utilizzano impulsi elettrici e segnali chimici per comunicare tra loro e trasmettere le informazioni alle diverse aree del cervello.
Una rete neurale artificiale (ANN) funziona in maniera analoga, ma è formata da neuroni artificiali costituiti da moduli software chiamati nodi. I nodi utilizzano calcoli matematici (al posto dei segnali chimici cerebrali) per comunicare e trasmettere le informazioni. Questa rete neurale simulata (SNN) elabora i dati raggruppando i punti dati e facendo previsioni.
Le diverse tecniche di reti neurali sono adatte a diversi tipi di dati. Una rete neurale ricorrente (RNN) è un modello che utilizza dati sequenziali, come l'apprendimento delle parole in sequenza per elaborare il linguaggio.
Un'evoluzione delle RNN sono i trasformatori: una particolare tipologia di rete neurale in grado di elaborare il linguaggio più rapidamente. I trasformatori imparano le relazioni tra le parole di una frase, il che li rende più efficienti rispetto alle RNN che acquisiscono ciascuna parola in sequenza.
Un modello linguistico di grandi dimensioni o large language model (LLM) è un modello di deep learning addestrato applicando i trasformatori a un set enorme di dati generalizzati. Gli LLM sono alla base di molti dei chatbot e strumenti di testo più conosciuti.
Un'altra tecnica di deep learning è il modello di diffusione, che si è dimostrato particolarmente indicato per la creazione di immagini. I modelli di diffusione apprendono il processo di conversione di un'immagine naturale in rumore visivo. Gli strumenti per la generazione di immagini invertono poi il processo partendo dal solo rumore e raffinandolo fino a ottenere un'immagine realistica.
I modelli di deep learning si possono anche definire in base ai parametri. Ad esempio, un semplice modello di previsione del credito addestrato su 10 dati in ingresso provenienti da un modulo di richiesta di prestito ha 10 parametri. Un LLM orbita invece nell'ordine dei miliardi di parametri. Il Generative Pre-trained Transformer 4 (GPT-4) di OpenAI, uno dei modelli di base di ChatGPT, conta 1 bilione di parametri.
Cos'è un modello di base?
Un modello di base è un modello di deep learning addestrato su enormi volumi di dati generici. Una volta completato l'addestramento, è possibile poi perfezionare il modello per scenari di utilizzo specifici. Come denota il nome, si tratta di modelli che possono fare da base per moltissime applicazioni.
Al giorno d'oggi creare un modello di base è un progetto laborioso. Innanzitutto, il processo richiede enormi quantità di dati per l'addestramento, raccolti in genere su Internet, librerie di volumi digitali, database di articoli accademici, raccolte di immagini stock e altri set di dati. Successivamente, per addestrare un modello su tali quantità di dati occorre un'infrastruttura immensa, tanto che può essere necessario creare o affittare in leasing un cloud di GPU. La creazione dei più grandi modelli di base al mondo è arrivata a costare centinaia di milioni di dollari.
Considerando il costo e gli sforzi necessari per l'addestramento dei modelli di base da zero, è pratica comune tra le aziende acquistare modelli addestrati da terze parti e occuparsi poi della personalizzazione. Le tecniche per la personalizzazione dei modelli di base sono diverse: fine tuning, fine tuning dei prompt e aggiunta di dati specifici per il cliente o per il dominio.
Cos'è la retrieval-augmented generation?
Retrieval-augmented generation (RAG) è una tecnica che consente di ottenere risposte più accurate dalle applicazioni basate sull'IA generativa, collegando un modello linguistico di grandi dimensioni (LLM) con una risorsa esterna.
L'implementazione di un'architettura RAG all'interno di un sistema di question answering (come un chatbot) basato su modelli LLM consente di stabilire un filo diretto tra l'LLM e le basi di conoscenza aggiuntive selezionate. Ciò consente al LLM di fare riferimenti incrociati e aggiungere informazioni supplementari a quelle di cui già dispone, per fornire un output più affidabile e accurato all'utente che ha posto la domanda.
Cos'è il fine tuning?
Il fine tuning è il processo di perfezionamento dei modelli di base per la creazione di un nuovo modello più adatto a specifici compiti o domini. Le aziende possono aggiungere dati per l'addestramento specifici per determinati scenari di utilizzo invece di affidarsi a un modello generico.
In genere il fine tuning richiede un numero di dati e di ore di lavoro nettamente inferiore rispetto all'addestramento iniziale. Se per l'addestramento del modello di base ci possono volere settimane o persino mesi, il processo di fine tuning si conclude in poche ore.
Quali sono i vantaggi del fine tuning per gli utenti? Chi sceglie di utilizzare un modello generico, dovrà poi inserire specifici esempi e istruzioni ogni volta che fa una richiesta all'applicazione di intelligenza artificiale. Con il fine tuning, tutte le operazioni necessarie a definire il tipo di output desiderato sono superflue. Le richieste possono essere più semplici, il che permette di risparmiare tempo e risorse.
Quali sono i rischi dell'IA generativa?
I progressi significativi fatti dall'intelligenza artificiale generativa in pochissimo tempo hanno attirato un notevole interesse, sia tra i suoi sostenitori che tra i suoi detrattori. I vantaggi e i rischi legati a questa tecnologia non sono ancora del tutto noti. Di seguito alcune delle preoccupazioni principali circa l'intelligenza artificiale generativa.
Favorire i malintenzionati. Uno dei rischi che vengono immediatamente in mente è l'utilizzo da parte degli hacker di strumenti di IA generativa per obiettivi fraudolenti, come campagne di disinformazione sui social media o la creazione di deepfake non consensuali di persone reali.
Avvalorare pregiudizi sociali dannosi. Si è visto che gli strumenti di IA generativa ripropongono i pregiudizi presenti nei dati per l'addestramento, compresi stereotipi e linguaggio che incita all'odio.
Fornire informazioni scorrette. Gli strumenti di IA generativa possono generare informazioni o immagini inventate o scorrette, definite anche "allucinazioni". Alcuni errori sono innocui, come una risposta poco coerente a una domanda via chat, o l'immagine di una mano con sei dita. Ma si sono verificati anche episodi più gravi, tra cui un chatbot che offriva consigli dannosi a persone affette da disturbi dell'alimentazione.
Rischi di sicurezza e legali. I sistemi di IA generativa pongono rischi anche per la sicurezza, come il fatto che gli utenti possano inserire informazioni sensibili in app che non sono progettate per garantire la sicurezza. Inoltre, i risultati dell'IA generativa potrebbero creare problemi legali se il sistema dovesse riprodurre contenuti soggetti a copyright o appropriarsi della voce o dell'identità di persone reali senza il loro consenso. L'utilizzo di alcuni strumenti di IA generativa potrebbe essere soggetto a restrizioni.
Le soluzioni IA di Red Hat
Red Hat offre una base comune per sviluppare e distribuire le applicazioni di intelligenza artificiale (IA) e i modelli di machine learning (ML) con trasparenza e controllo.
Red Hat® OpenShift® AI è una piattaforma che permette di addestrare, eseguire il fine tuning dei prompt, il fine tuning e trattare i modelli di IA per adeguarli a scenari di utilizzo specifici.
Per i grandi deployment di IA è disponibile Red Hat OpenShift, una piattaforma applicativa scalabile adatta ai carichi di lavoro di intelligenza artificiale che fornisce anche l'accesso ai più comuni acceleratori hardware.
Red Hat impiega anche gli strumenti Red Hat OpenShift AI per migliorare le utility di altri software open source, come Red Hat Ansible® Lightspeed con IBM watsonx Code Assistant. Si tratta di un servizio che consente ai team di automazione di apprendere, creare ed effettuare la manutenzione dei contenuti Ansible in modo più efficiente. Agli sviluppatori basta inserire la richiesta di un'attività e Ansible Lightspeed interagisce con i modelli di base di IBM watsonx per generare il codice da utilizzare per la creazione di Ansible Playbook.
Inoltre, le integrazioni dei partner di Red Hat danno accesso a un ampio ecosistema di strumenti di IA affidabili e compatibili con piattaforme open source.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.