Funzionamento di intelligenza artificiale e LLMS generativi
L'intelligenza artificiale generativa è un tipo di intelligenza artificiale in grado di creare contenuti originali, ad esempio linguaggio naturale, immagini, audio e codice. L'output di un'intelligenza artificiale generativa si basa sugli input forniti dall'utente. Un modo comune per consentire agli utenti di interagire con l'intelligenza artificiale generativa consiste nell'usare applicazioni di chat che usano il linguaggio naturale come input. ChatGPT, sviluppato da OpenAI, ne è un esempio popolare. Le applicazioni di intelligenza artificiale generative che usano il linguaggio naturale come input sono basate su modelli di linguaggio di grandi dimensioni (LLM) per eseguire l'elaborazione del linguaggio naturale (NLP).
Funzionamento dell'intelligenza artificiale generativa
Tutta l'intelligenza artificiale generativa si basa su modelli. Questi modelli vengono sottoposti a training con grandi set di dati sotto forma di contenuto, ad esempio linguaggio naturale, immagini, audio e codice. I modelli di intelligenza artificiale generativi usano i modelli identificati nei dati di training per produrre contenuti nuovi e statisticamente simili.
L'input fornito dall'utente viene usato dal modello di intelligenza artificiale per compilare un output. L'input viene prima analizzato in una forma di dati che il modello può comprendere. Il modello usa quindi tali dati per identificare i modelli di corrispondenza dal training combinato per compilare l'output finale. I modelli di intelligenza artificiale generativi sono progettati per produrre contenuto univoco, quindi non generano lo stesso output per gli input identici.
Per eseguire questa operazione, le applicazioni di intelligenza artificiale generative che supportano il linguaggio naturale come input o output usano gli LLM. Il modello LLM viene usato per eseguire NLP, che classifica il testo di input e ne determina il sentiment. Tale classificazione e analisi del sentiment viene usata dal modello di intelligenza artificiale generativa per identificare i modelli e compilare l'output. Se l'output è di testo, è possibile usare solo il modello LLM per generarlo. Se l'output è un audio o delle immagini, vengono usati dei modelli aggiuntivi per fornire i dati e i modelli per la generazione di output in tale formato.
Usi comuni dell'intelligenza artificiale generativa
Le applicazioni dell'intelligenza artificiale generativa supportano un'ampia gamma di potenziali casi d'uso e potenziali output, illustrati nelle sezioni seguenti.
Generazione di linguaggio naturale
Alcune applicazioni di intelligenza artificiale generative possono produrre output in linguaggio naturale, ad esempio:
- Riepiloghi redatti professionalmente per un profilo LinkedIn
- Descrizioni dettagliate di articoli in una vetrina online
- Idee per pasti sani
Ad esempio, dato l'input dell'utente Dammi tre idee per una colazione sana che includa i peperoni, un'applicazione generativa di intelligenza artificiale potrebbe produrre l'output seguente:
OK, ecco tre colazione sane che includono i peperoni:
Uova e peperoni strapazzati: Tagliare a dadini i peperoni e farli saltare in padella finché non si ammorbidiscono leggermente. Quindi, aggiungere alcune uova sbattuto e mescolare tutto insieme. Servire con un toast integrale per una colazione nutriente.
Toast di peperoni e avocado: Tostare una fetta di pane integrale e ricoprirla con peperoni a fette, avocado schiacciato e una spolverata di sale e pepe. Questo è un ottimo modo per ottenere alcuni grassi sani dall'avocado insieme alla vitamina C dai peperoni.
Burrito per la colazione con peperoni: Soffriggere in una padella peperoni tagliati a dadini, cipolle e uova strapazzate. Spargere quindi la miscela su una tortilla di farina integrale e farcire con una salsa o con del passato di pomodoro caldo. Arrotolare e gustare una colazione soddisfacente e nutriente.
Generazione di immagini
Alcune applicazioni di intelligenza artificiale generativa producono output in forma di immagini da input in linguaggio naturale. A seconda dell'applicazione e dei relativi modelli, gli utenti potrebbero essere in grado di specificare:
- Le persone o gli elementi da visualizzare nell'immagine
- Stile artistico in cui creare l'immagine
- Riferimenti per la generazione di immagini simili
La generazione di immagini può creare avatar virtuali per account online, logo di progettazione per un'azienda o fornire ispirazione artistica per i creatori. Ad esempio, un utente può immettere la richiesta" Crea un'immagine con un elefante che mangia un hamburger. Un'applicazione di intelligenza artificiale generativa potrebbe produrre l'output seguente:
Generazione audio
Alcune applicazioni dell'intelligenza artificiale generativa possono produrre output audio da input in linguaggio naturale. A seconda dell'applicazione e dei relativi modelli, gli utenti potrebbero essere in grado di:
- Sintetizzare voci audio naturali dal testo di input
- Creare musica in uno stile specifico o con determinati strumenti
- Modificare i file audio di input in base a criteri impostati nel linguaggio naturale
La generazione di audio può fornire risposte vocali da assistenti vocali digitali, aggiungere strumenti di supporto ai brani per la produzione musicale o riprodurre la voce originale di un utente dalle registrazioni di riferimento.
Generazione codice
Alcune applicazioni con intelligenza artificiale generativa producono codice da input in linguaggio naturale. A seconda dell'applicazione e dei relativi modelli, gli utenti potrebbero essere in grado di generare codice che:
- È nella lingua di loro scelta
- Accetta una struttura di input e output specifica
- Usa tecnologie specifiche in base alla documentazione di riferimento
La generazione di codice può fornire implementazioni rapide di operazioni comuni, ad esempio ordinare o filtrare i dati, velocizzare la conversione del codice da una lingua a un'altra o rispondere a domande su una tecnologia basata sulla documentazione di riferimento specificata. Per esempio, dato l'input “Mostrami come codificare un gioco di tic-tac-toe con C#”, un'applicazione di intelligenza artificiale generativa potrebbe produrre il seguente output:
Ecco un semplice esempio di come è possibile codificare un gioco di tic-tac-toe in C#:
using System;
namespace TicTacToe
{
class Program
{
static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
static int player = 1; // Player 1 will start
static int choice; // The number the player chooses
static int flag = 0; // Set the flag value to 0
// Check if the position is already marked or not
private static int CheckPosition(char mark)
{
for (int i = 0; i < 9; i++)
{
if (board[i] == mark)
{
return 1;
}
}
return 0;
}
// The rest of the generated code has been omitted for brevity
// ...
}
}
Questo codice crea un semplice gioco tic-tac-toe basato su console in C#. Usa una matrice unidimensionale per rappresentare la lavagna e verifica la presenza di una vittoria o un disegno dopo ogni movimento.
Come funzionano i LLM
Quando si esegue il training di un LLM, il testo di training viene prima suddiviso in token. Ogni token identifica un valore di testo univoco. Un token può essere una parola distinta, una parola parziale o una combinazione di parole e punteggiatura. A ogni token viene assegnato un ID, che consente di rappresentare il testo come sequenza di ID token.
Dopo che il testo è stato suddiviso in token, a ogni token viene assegnato un vettore contestuale, noto comeembedding. Questi vettori di incorporamento sono dati numerici multivalore in cui ogni elemento del vettore di un token rappresenta un attributo semantico del token. Gli elementi del vettore di un token vengono determinati in base alla modalità di utilizzo comune dei token insieme o in contesti simili.
L'obiettivo è prevedere il token successivo nella sequenza in base ai token precedenti. A ciascun token della sequenza esistente viene assegnato un peso che rappresenta la sua influenza relativa sul token successivo. Viene quindi eseguito un calcolo che usa i pesi e gli incorporamenti dei token precedenti per stimare il valore del vettore successivo. Il modello seleziona quindi il token più probabile per continuare la sequenza in base al vettore stimato.
Questo processo continua in modo iterativo per ogni token della sequenza, mentre la sequenza di output viene utilizzata in modo regressivo come input per l'iterazione successiva. L'output viene compilato un token alla volta. Questa strategia è analoga al funzionamento del completamento automatico, in cui i suggerimenti sono basati su ciò che è stato digitato finora e aggiornato con ogni nuovo input.
Durante il training, la sequenza completa di token è nota, ma tutti i token successivi a quello attualmente considerato vengono ignorati. Il valore stimato per il vettore del token successivo viene confrontato con il valore effettivo e viene calcolata la perdita. I pesi vengono quindi adeguati in modo incrementale per ridurre la perdita e migliorare il modello.