Test IA

On y discute de tout, ou presque...
Répondre
Avatar de l’utilisateur
franb
Membre
Membre
Messages : 147
Inscription : 04 nov. 2017, 09:41
Status : Hors-ligne

Il y a eu une discussion sur debian-fr sur l'IA? ça m'a intéressé et j'ai fait des tests sur des IA en local.Il est tout à fait possible de faire tourner une IA en local pour faire de la synthèse d'image. j’ai donc sur mon portable (un LG 14Z90S 32G avec un Intel(R) Core™ Ultra 7 155H 16 coeurs physiques, 22 logiques (il faudra que je comprenne cette nuance), j’ai fait les choses suivantes: Compilation de llama.cpp et téléchargement de models–mistralai–Ministral-3-14B-Reasoning-2512-GGUF (surtout la version élaborée). Le tout fait de l’ordre de 30G.
J'ai récupéré sur Hugingface 2 IA:
-> Tongyi-MAI_Z-Image
-> mistralai--Ministral-3-14B-Reasoning-2512-GGUF
dont j'ai utilisé les modèles Q8_0 et Z-Image.
j’obtiens une IA locale que je trouve très performante, ainsi on sur cet exemple 1 une session pour une question de maths classique. La démo est largement critiquable et globalement à revoir mais l’idée est là. Je lui ai demandé des connaissances pures (liste des rois de France) et de la programmation (jeu de pacman sur un site) sur la version utilisant mon GPU (Intel Arc) beaucoup plus efficace. Ce qui m’impressionne est que toutes ces connaissances tiennent dans 30G. On est peu de choses :-/
Vous trouverez les résultats sur cette page https://boisson.homeip.net/IA/ un peu en vrac.

Quelques remarques: J'ai un Intel(R) Core(TM) Ultra 7 155H 16 coeurs physiques, 22 logiques avec 32G de RAM et une carte Intel Corporation Meteor Lake-P [Intel Arc Graphics].

J'ai tout compilé en utilisant le GPU par l'intermédiaire de XPU en ce qui concrene pytorch. Je suis sur une archlinux ce qui a peut être son importance (depuis la retraite, je ne suis plus astreint à une machine mega stable).

Le module i915 est buggué pour l'utilisation à plein du GPU, il a fallu rajouter les options i915.enable_hangcheck=0 i915.request_timeout_ms=1000000 dans la ligne de commande du noyau. À noter que si le GPU plante, je suis bon pour un démarrage à froid de la machine, mais au moins le GPU ne bloque pas lors de calculs trop importants. [le GPU a prévu une limitation pour les calculs trop longs, estimant que dans ce cas, il est planté et se réinitialisant. Pour l'IA c'est ballot. i915.enable_hangcheck=0 est censé stopper le controle et i915.request_timeout_ms=1000000 met un délai de résultat à 16 minutes en gros, ça devrait aller. Mais si le GPU plante vraiment, à moins d'attendre 16 minutes la machine gelée (et encore), il faudra la stopper brutalement]

J'ai fait une image 512x512 en CPU avec 9 itérations, cela a pris plusieurs heures. Avec le GPU, une image 512x512 en 16 itérations se fait en 3 minutes, une image 1024x1024 en une dizaine de minutes. Pendant ce temps là la machine consomme en gros 40W. On peut estimer que la fabrication d'une image un peu sophisitiquée demande une énergie de l'ordre de la dizaine de Wh. Ça correspond effectivement à la charge complète d'un téléphone ou encore à une lampe allumée pendant une heure.
J'ai mis au début de la page des captures écran sur la charge lors de la création de l'image avec le GPU, la charge lors de la création de l'image avec le CPU et les températures relev&ées pendant ce temps. Ensuite vous avez le programme ayant fait les images puis les images obtenues avec les différents prompts.
Lorsque ite n'est pas précisé dans le nom, cela veut dire que le nombre d'itérations est 9.
L'essentiel des images est obtenues par le prompt

Code : Tout sélectionner

prompt = "Deux grenouilles vertes en train de faire du judo sur un tapis carré de mousse posée sur de l'herbe au milieu d'une forêt, la première en kimono rouge tient en la regardant la seconde en kimono bleu, suspendue en l'air,  qui regarde par terre et a la bouche ouverte. Elles sont tetes nues, un scorpion noir regarde la scène à coté d'une coccinelle rouge avec des points noirs . La scène est vue de coté"
(tiens je me dis que j'aurais du le mettre en anglais peut être)
Dans le programme, il y a un

Code : Tout sélectionner

   generator=torch.Generator("xpu").manual_seed(42),   # était 42, puis 12
visiblement ce seed définit une base de départ. Les dernières images sont amusantes car obtenues à partir d'un prompt valant "image précédente" (c'est l'image nommé hasard clairement inspirée d'un tableau) ou d'un prompt vide.
Voilà. J'avoue que l'IA mistral sur mon ordi, IA qui s'appelle Léo (je lui ai demandé de choisir un prénom, elle a pris Léo, j'avoue que j'aimerais savoir le cheminement, elle a expliqué qu'il évoquait dynamisme et bonne volonté) me rend bien des services, je vais la garder. Utiliser la synthèse d'images se révèle compliqué apparemment.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 6650
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

Je suis avec attention les discussions sur linux-fr relatives à l'IA. Il y a beaucoup de dogmatisme dans les commentaires ...
Pour l'instant , ce qui me refroidi, c'est le cout du matériel.
Une chaine intéressante à suivre est https://www.youtube.com/@grandanglenova/videos
Répondre