Les liens et les explications qui ont déjà été données sont correctes. Je ne vais donc pas revenir dessus : bruitage d'une image, et un réseau de neurones instruit à la débruiter, pour finir avec une IA capable de "débruiter" (halluciner) une image en partant de bruit pur. Pour ça, l'analogie que j'aime bien, c'est ce qu'on fait nous en hallucinant des paréidolies dans les nuages ou les tâches de Rorschach : ce sont des signaux aléatoires, pourtant on peut, avec l'imagination, y retrouver des images.Cédric Jeanneret a écrit : ↑mar. mai 23, 2023 4:07 pmj'en aurai bien une.
Dans les IA génératrices d'image, qui / comme est fait le codage des images ?
Ce que je veux dire c'est comment l'IA fait pour passer d'une description par mot clef à une image.
Il faut bien qu'à un moment une description de l'image soit faite.
En revanche, ce que ces explications n'explicitent pas trop, c'est comment le texte est utilisé. Et en fait c'est assez intéressant, surtout si tu joues avec Stable Diffusion, parce que ça permet de comprendre ce que fait le paramètre CFG

Déjà, petit récap sur ce que veut dire "entraîner" une IA. Au début, on a un réseau de neurones artificiel qui ne "sait" rien. On lui donne une tâche, ici débruiter une image bruitée. Il produit un résultat, qui n'a évidemment aucun sens au début puisque le réseau ne sait même pas ce qu'il doit faire. On compare ensuite la réponse produite à la réponse attendue, et, avec des maths cool (la rétropropagation du gradient de l'erreur, ou backprop comme disent les cool kids), on est capable de dire que ce neurone aurait dû s'activer plus, celui là moins, et d'adapter les connexions en conséquence. C'est dans ces connexions qu'on modifie exemple par exemple au fil de l'entraînement que la connaissance est stockée. Une fois l'entraînement fait, on a un modèle prêt à utilisation

Pendant l'entraînement du modèle donc, on lui demande de débruiter l'image en lui fournissant parfois la légende de celle-ci. Et ça, c'est très intelligent, pour deux raisons : 1) Si l'IA sait déjà ce qu'est l'objet mentionné, alors ça lui permet de fournir un débruitage plus pertinent, le texte sert de guide, l'image débruitée est moins erronée, et l'IA apprend un débruitage encore plus précis. 2) Si l'IA ne sait pas ce qui est mentionné dans le texte, eh bien... ça le lui fait apprendre. C'est super intuitif à comprendre. Si je te demande de me dessiner un chat et que t'oublies les moustaches, quand je vais te dire "raté, t'as oublié les moustaches", je renforce ta connaissance du chat. Si je te donne un presque-dessin de chat et que je te demande de le compléter sans te dire de quoi il s'agit et que tu fais un chien et que je te signalerai ton erreur, tu vas chercher dans le dessin des indices qui pouvaient te laisser deviner que c'était effectivement un chat, et te rendre plus sensible à certains détails.
Bref, maintenant notre modèle est entraîné, il est capable de débruiter une image, guidé par un texte, ou pas. Ici, tout naturellement, on se dit qu'exploiter l'IA guidée par le texte c'est la bonne idée, et que le travail est fini. Et effectivement pendant un moment les chercheurs n'avaient pas mieux. Et les chercheurs ont été très déçus, parce que le lien texte-image générée était bifbof. Grave déçu, c nul, rendez-moi mon argent.
Et puis y a un gars qui a eu une idée vraiment bête et très intelligente à la fois pour avoir des résultats vraiment sous stéroïdes. La technique s'appelle Classifier-Free Guidance (CFG) pour des raisons historiques qu'il n'est vraiment pas intéressant de développer, mais je le mentionne parce que le param s'appelle comme ça dans Stable Diffusion.
Donc, la CFG, c'est quoi ? Le type, pas con, s'est aperçu qu'on pouvait débruiter la même image deux fois : une fois en lui donnant le texte, et une fois en ne le donnant pas. Et qu'on pouvait regarder la différence entre les deux. Et que cette différence est très importante : c'est l'impact du texte dans l'image, c'est ce qu'il faut changer du débruitage de base pour conformer au texte. C'est la direction de conformité au texte. Et qu'on peut forcer l'amplitude de cette différence pour conformer encore plus au texte que la prédiction initiale. C'est laver plus blanc que blanc, c'est suivre le prompt encore plus que suivre le prompt, c'est "ok si je mets des moustaches ça fait un chat, mais vraiment je vais être zélé et je vais rajouter des pelotes de laine dans le fond, et si vraiment t'insistes encore je mets une gamelle Whiskas". Ce "à quel point j'extrapole dans la direction du prompt encore plus que ce que je devrais", c'est le CFG.

Voilà, c'était très technique, mais dans les vulgarisations, personne n'en parle, et tout le monde reste sur sa faim sur l'aspect textuel.
PS: petit bonus cadeau : on peut aussi faire la différence entre deux prompts différents plutôt qu'entre un prompt et pas de prompt. Le second sert alors de prompt négatif pour décider de s'éloigner de quelque chose explicitement, plutôt que simplement de s'éloigner du cas général.