Fonctionnement de l’IA générative et des LLM
L’IA générative est un type d’intelligence artificielle capable de créer du contenu original, par exemple du texte en langage naturel, des images, de l’audio et du code. La sortie d’une IA générative est basée sur les entrées fournies par l’utilisateur. Bien souvent, les utilisateurs peuvent interagir avec l’IA générative via des applications de conversation qui utilisent le langage naturel en tant qu’entrée. ChatGPT, développé par OpenAI, en est un exemple populaire. Les applications d’IA générative qui utilisent le langage naturel en tant qu’entrée s’appuient sur des grands modèles de langage (LLM) pour effectuer le traitement du langage naturel (NLP).
Fonctionnement de l’IA générative
Toutes les IA génératives reposent sur des modèles. Ces modèles effectuent un apprentissage basé sur de grands ensembles de données sous forme de contenu, par exemple du texte en langage naturel, des images, de l’audio et du code. Les modèles d’IA générative utilisent les modèles identifiés dans les données d’apprentissage pour produire un nouveau contenu statistiquement similaire.
L’entrée fournie par l’utilisateur est utilisée par le modèle IA pour générer une sortie. L’entrée est d’abord analysée sous forme de données que le modèle peut comprendre. Le modèle utilise ensuite ces données pour identifier les modèles correspondants issus de son apprentissage, qu’il combine pour créer la sortie finale. Les modèles d’IA générative sont conçus pour produire un contenu unique. Ils ne génèrent donc pas la même sortie pour des entrées identiques.
Les applications d’IA générative qui prennent en charge le langage naturel en tant qu’entrée ou sortie utilisent des LLM à cette fin. Le LLM est utilisé pour effectuer le traitement du langage naturel (NLP), qui permet de classifier le texte d’entrée, et de déterminer les sentiments qui en émanent. Cette classification et cette analyse des sentiments sont utilisées par le modèle d’IA générative pour identifier les modèles et créer la sortie. Si la sortie est du texte, le LLM seul suffit pour le générer. Si la sortie est du contenu audio ou des images, des modèles supplémentaires sont utilisés pour fournir les données et les modèles permettant de générer des sorties dans ce format.
Utilisations courantes de l’IA générative
Les applications d’IA génératives prennent en charge divers cas d’usage potentiels et sorties potentielles, qui sont explorées dans les sections suivantes.
Génération de langage naturel
Certaines applications d’IA générative peuvent produire des sorties en langage naturel, par exemple :
- Résumés rédigés de manière professionnelle pour un profil LinkedIn
- Descriptions détaillées d’articles dans une vitrine en ligne
- Idées de repas sains
Par exemple, avec l’entrée utilisateur Donne-moi trois idées pour un petit-déjeuner sain avec des poivrons, une application d’IA générative peut produire la sortie suivante :
D’accord, voici trois petits-déjeuners sains avec des poivrons :
Œufs brouillés aux poivrons : coupez des poivrons en dés, et faites-les revenir dans une poêle jusqu’à ce qu’ils soient légèrement ramollis. Ajoutez ensuite quelques œufs battus et mélangez le tout. Pour un petit-déjeuner nutritif, servez cette préparation avec du pain grillé complet.
Toast aux poivrons et à l’avocat : faites griller une tranche de pain complet aux graines, puis garnissez-la avec un poivron coupé en tranche, de la purée d’avocat ainsi qu’une pincée de sel et de poivre. Voici un excellent moyen de consommer les bonnes matières grasses de l’avocat avec la vitamine C des poivrons.
Petit-déjeuner burrito aux poivrons : faites revenir ensemble dans une poêle des poivrons coupés en dés, des oignons et des œufs brouillés. Ensuite, à l’aide d’une cuillère, déposez la préparation sur une tortilla complète et garnissez-la de salsa ou de sauce piquante. Roulez la tortilla, et vous avez là un petit-déjeuner délicieux et nutritif.
Génération d’images
Certaines applications d’IA générative produisent des sorties d’image à partir d’entrées en langage naturel. Selon l’application et ses modèles, les utilisateurs peuvent spécifier :
- Les personnes ou les objets qui doivent apparaître dans l’image
- Le style artistique dans lequel l’image doit être créée
- Les références liées à la génération d’images similaires
La génération d’images peut créer des avatars virtuels pour des comptes en ligne, concevoir des logos pour une entreprise ou fournir une inspiration artistique aux créateurs. Par exemple, un utilisateur peut entrer la requête suivante : Crée l’image d’un éléphant en train de manger un hamburger. Une application d’IA générative peut produire la sortie suivante :
Génération audio
Certaines applications d’IA générative produisent des sorties audio à partir d’entrées en langage naturel. Selon l’application et ses modèles, les utilisateurs peuvent :
- Synthétiser des voix à consonance naturelle à partir du texte d’entrée
- Créer de la musique dans un style spécifique ou avec certains instruments
- Modifier les fichiers audio d’entrée en fonction d’un ensemble de critères fournis en langage naturel
La génération audio peut fournir des réponses parlées à partir d’assistants vocaux numériques, ajouter des instruments de stockage à des chansons pour la production musicale ou reproduire la voix originale d’un utilisateur à partir d’enregistrements de référence.
Génération de code
Certaines applications IA génératives produisent du code à partir d’entrées en langage naturel. Selon l’application et ses modèles, les utilisateurs peuvent générer du code qui :
- Est rédigé dans le langage de leur choix
- Accepte une structure d’entrée et de sortie spécifique
- Utilise des technologies spécifiques en fonction de la documentation de référence correspondante
La génération de code peuvent fournir des implémentations rapides d’opérations courantes, par exemple trier ou filtrer des données, accélérer la traduction du code d’un langage vers un autre, ou répondre à des questions sur une technologie en fonction de la documentation de référence spécifiée. Par exemple, avec l’entrée « Montre-moi comment coder un jeu de morpion en C# », une application d’IA générative peut produire la sortie suivante :
Voici un exemple simple de la façon dont vous pouvez coder une partie de morpion en 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
// ...
}
}
Ce code crée un jeu de morpion simple basé sur une console en C#. Il utilise un tableau unidimensionnel pour représenter le plateau, et vérifie après chaque mouvement si celui-ci donne lieu à une victoire ou un match nul.
Fonctionnement des LLM
Durant l’apprentissage d’un LLM, le texte d’apprentissage est d’abord décomposé en jetons. Chaque jeton identifie une valeur de texte unique. Un jeton peut être un mot distinct, un mot partiel ou une combinaison de mots et de ponctuations. Chaque jeton se voit affecter un ID, ce qui permet au texte d’être représenté sous la forme d’une séquence d’ID de jeton.
Une fois le texte décomposé en jetons, un vecteur contextuel, appelé embedding, est affecté à chaque jeton. Ces vecteurs d’incorporation sont des données numériques à valeurs multiples dont chaque élément représente un attribut sémantique du jeton. Les éléments du vecteur d’un jeton sont déterminés en fonction de la fréquence d’utilisation des jetons ensemble ou dans des contextes similaires.
L’objectif est de prédire le jeton suivant de la séquence en fonction des jetons précédents. Une pondération est affectée à chaque jeton de la séquence existante. Elle représente son influence relative sur le jeton suivant. Un calcul est ensuite effectué. Il utilise les pondérations et les incorporations des jetons précédents pour prédire la valeur de vecteur suivante. Le modèle sélectionne ensuite le jeton le plus probable pour continuer la séquence en fonction du vecteur prédit.
Ce processus se poursuit de manière itérative pour chaque jeton de la séquence, la séquence de sortie étant utilisée de manière régressive en tant qu’entrée pour l’itération suivante. La sortie est générée jeton par jeton. Cette stratégie est analogue au fonctionnement de l’autocomplétion, où les suggestions sont basées sur ce qui a été tapé jusqu’à présent, et mises à jour à chaque nouvelle entrée.
Durant l’apprentissage, la séquence complète des jetons est connue, mais tous les jetons qui suivent celui qui est pris en compte sont ignorés. La valeur prédite pour le vecteur du jeton suivant est comparée à la valeur réelle, et la perte est calculée. Les pondérations sont ensuite ajustées de façon incrémentielle pour réduire la perte et améliorer le modèle.