Florent Capelli
23 Mars 2024
(p∧s) ⇒ r
p | s | r | F |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Étant donné une proposition, quels sont ses modèles ?
La logique propositionnelle ne permet pas de tout transcrire :
Avantages :
Désavantages :
Approche statistique, on apprend depuis des données :
[7.3, 12, 5.1, 4.3]
décrivant la
longueur/largeur des sépales et longueur/largeur des pétales d’une
iris.Voir TP 3.
Pour l’apprendre :
Voir TP 4
On veut générer des objets : images, textes etc.
Autre exemple : générer la structure 3D d’une protéine étant donnée sa séquence d’acide aminés.
Nouvelles techniques ont engendré un intêret accru pour l’IA générative et multiplié les outils disponibles, souvent massivement financé par des grands acteurs de l’informatique :
IA Générative : on veut pouvoir tirer aléatoirement dans un ensemble d’objet O.
Cadre un peu différent de l’apprentissage supervisé : ici on essaie d’apprendre une distribution.
Idée derrière : https://thispersondoesnotexist.com/
L’approche précédente ne décrit pas vraiment ce dont on a besoin pour la génération d’images :
On veut donc “apprendre” une probabilité jointe P(X,Y) et être capable, étant donné y, de tirer x avec probabilité P(x∣Y=y).
On a besoin de “modèle” représentant des distributions (et plus des fonctions) :
L’IA générative, pour des raisons similaires, souffre des mêmes problèmes que la classification concernant les biais :
Premières approches (pour la traduction essentiellement) :
Un modèle probabiliste de la langue !
On veut pouvoir évaluer la probabilité qu’un mot w apparaissent à la fin d’un texte T.
P(w|T)
Comment générer un texte avec un modèle de langue ?
On complète mot par mot. On commence avec T= Aujourd’hui il :
Génération déterministe : pas très intéressante !
Température K = 0.8 et T= Aujourd’hui il :
Un modèle de langue n-grams est un modèle donnant la probabilité qu’un mot w apparaisse après une suite w1, …, wn de mots, n fixé :
P(w|w1,…,wn)
On peut l’approximer depuis un corpus de texte. Cependant :
Succès des modèles de langues récents : capacité à intégrer de gros contextes tout en repérant les parties “pertinentes”.
ChatGPT, Mistral, Gemini, etc. sont aujourd’hui appelé Large Language Models :
E(roi) + E(femme) ≃ E(reine)
Idées déjà présentes avant l’apparition des LLMs, voir
word2vec
(jeux pedantle/semantle basés sur ces outils).
Voir la page de
Jean-Philippe Fauconnier où vous trouverez un modèle d’encodage pour
le français et des instructions pour l’utiliser avec la librairie Python
gensim
.
Les LLMs vont un cran plus loin :
Ils apprennent des encodages d’un mot et de son contexte.
I called Alice but she did not answer. Her phone was off.
On observe des comportements de généralisations, compréhension de concepts non explicitement définis :
Nécessite un “modèle” physique pour répondre à la questions, qui a été implicitement appris via le langage comme proxy.
Les LLMs n’ont pas d’anchrage direct avec des modèles de vérité / de connaissances :
Les LLMs tendent à répéter des intuitions fausses qui sont induites chez les humains par la tournure de certains textes :
StableDiffusion est basé sur un modèle de diffusion.
Une image est générée par débruitages successifs d’une image aléatoire :
On considère que les images sont des tableaux de pixels.
On a un sous-ensembe V des vraies images, ie, qui représentent “quelque chose” – implicitement définie par notre jeu de données.
Le but est de “débruiter” une image y hors de V, c’est-à-dire de trouver u petit tel que y + u ∈ V.
On suppose qu’on démarre avec une image bruitée de la forme y = x + σϵ.
On veut apprendre une fonction d(y,σ) qui “approxime” ϵ connaissant y et σ.
On “générera” donc x en faisant y + d(y,σ).
Une autre interprétation : on cherche x une vraie image qui est “proche” de y.
Pour générer une image (ou autre chose), on part d’un bruit y0 complètement aléatoire.
yi + 1 := yi + σi ⋅ d(yi,σi)
En vrai, c’est beaucoup plus complexe que cela :