Hello!
bon slrpnk.net a l’air d’être dans les choux alors je lance ce post avec mon compte de secours jlai.lu
Alors je lance cet AMA car ça fait un moment que je bouffe du machine learning à temps plein et pour suivre les news technique, je passe le plus clair de mon temps à lire de l’anglais. Et je trouve qu’en français, ben y a pas grand chose. C’est presque uniquement du discours dystopique mal informé.
Rien sur la recherche sur l’alignement, rien sur les modèles open source (condition sine qua non pour que ça se passe bien), rien sur les évolutions sociales positives que ça peut amener.
On parle juste de OpenAI, Google et Musk qui ne sont que quelques arbres malades d’une forêt bien plus grande.
Perso ça va faire 5 ans que je fais du deep learning professionnellement. J’ai travaillé pour Skymind, qui développait deeplearning4j. Ça vous dira rien, c’est un projet plus ou moins mort, mais c’était une tentative de faire un framework alternatif avant que tout le monde passe à pytorch. Puis je suis devenu principalement utilisateur des gros modèles entraînés par d’autres.
J’ai travaillé sur les modèles de vision au départ et maintenant presque exclusivement sur des modèles de langage. J’ai réussi à passer au 4/5e l’année dernière pour me consacrer aussi avec le fablab local à de la robotique open hardware (où bien sur j’utilise des modèles de deep learning pour la vision).
Ça fait plus de 20 ans que j’ai réalisé que l’IA a le potentiel de changer le monde pour le mieux, c’est pas par hasard que j’ai essayé de m’orienter le plus possible là dedans et ça me fait mal au cœur de voir tant de gens croire que notre seul but est d’aider Sam Altman à se faire quelques milliards de plus, qui ne voient pas les capacités de transformation de cette tech.
J’ai déjà donné quelques avis en anglais pour éviter le “doomism” dans des romans de SF (https://slrpnk.net/post/6100538) mais le faire dans ma langue natale ferait du bien!
Et, si, le titre est correct, ça me fait 6/5 de boulot, mais quand on aime on ne compte pas!
Voila, je préférerais qu’on reste sur ces thèmes mais AMA anyway!
Alors il y a plusieurs façons de comprendre cette question, et oui à toutes ses acceptations.
Si tu parle de continuer l’entraînement total du modèle: oui, on sait que la plupart (tous?) les modèles disponibles sont sous-entraînés. Il y a un point où on ne gagne qu’un petit peu en continuant d’entraîner longtemps mais le gain continue à être positif, donc oui. Par contre ça prend beaucoup plus de VRAM que de faire tourner une version du modèle en inférence. Je ne sais plus quel est le multiplicateur mais c’était 16 ou 24x je ne sais plus par rapport à un modèle quantizé.
Si tu parles de le spécialiser, tu veux peut être parler de fine-tuning. Dans ce cas là, c’est tout à fait possible sur une machine même modeste grâce à des optimisations de type LORA (et on a peut être inventé d’autres moyens d’accélérer ça depuis?) qui te permettent de n’entraîner que de petite touches du modèle. Par contre là, attention! J’ai essayé de faire ça en espérant apprendre de nouveaux faits à un modèle, et ça n’a pas marché. Le fine-tuning permet de facilement changer le “style” de sorte d’un domaine. Par exemple si tu veux lui donner une certaine personnalité, lui faire apprendre une autre langue ou lui faire utiliser une API particulière. Par contre ça marche assez mal pour les nouveaux fait et risque d’augmenter ses hallucinations (car tu lui apprends à répondre des choses non présentes dans ses “couches profondes” de connaissances. C’était à l’époque de Llama2, ça a peut être changé depuis je n’ai pas réessayé, mais il y a une raison pour laquelle les gens qui veulent faire apprendre de nouvelles connaissances à un système préfèrent le RAG.
Dés le début Mistral a joué franc jeu, il faut le leur reconnaître: ils avait prévenu que leurs plus gros modèles seraient fermés. Ils ont donné des modèles très bons, petits en libre pour se faire connaître et ça a marché et valu le coup. Une réputation comme la leur vaut des milliards, ça leur a coûté des millions. C’est une bonne affaire.
Llama, pour ceux qui ne le savent pas, c’est Meta, donc Facebook derrière. C’est pas de l’angélisme (à part pour Yann Le Cun, leur directeur IA semble vraiment idéologiquement pour l’IA open source, un gros <3 pour lui) et Zuckerberg le disait clairement, posément, cyniquement: “notre gros modèle a coûté ~10 milliards à entraîner [je pense que c’est exagéré mais c’était cher quand même]. dans les 10 prochaines années on va dépenser autour de 100 milliards en IA. Si la communauté open source rend nos modèles 10% plus performants, on s’y retrouve”. C’est imparable. Eux sont utilisateurs, pas vendeurs, et ils préfèrent des bons modèles qui tournent chez eux que de dépendre du bon vouloir d’OpenAI. Et la communauté a déjà probablement fait plus qu’améliorer de 10% leurs perfs donc bon calcul pour Zuck.
Les modèles spécialisés enfoncent ChatGPT aux échecs (pour donner une idée, le Elo d’un débutant aux échecs est de 1000, le champion humain actuel, Magnus Carlsen est à 2800, le meilleur soft est à 3600).
Mais oui, c’est intéressant parce que ChatGPT a des capacités émergentes en la matière. Ces sondes sont faites par des gens qui ont accès au modèle pendant qu’il tourne et viennent regarder les “neurones” activés dans les différentes couches du modèle. Je ne sais pas comment ils ont fait dans le cas présent mais une façon de faire pourrait être de poser un problème d’échec et de demander à ChatGPT de compéter “la case C2 contient” puis “la case C3 contient”, etc. et regarder quels zones sont activées. Il y a probablement une couche d’attention où “l’état mental” de l’échiquier est contenu.
Sur ChatGPT, seul OpenAI est capable de faire ça, mais sur des modèles ouverts, toute personne faisant tourner le modèle peut faire une manip du même genre. Ces réseaux ne sont pas totalement des boites noires: on peut aller bidouiller à l’intérieur. On parle de boite noire parce qu’il n’est pas nécessaire de le faire, mais on peut les ouvrir, on a la clef, quand ils ne sont pas propriétaire.
Oui! Il s’agit de faire une passe d’apprentissage où on fixe les paramètres du modèle et on “apprend” le prompt. Je ne l’ai jamais fait, la théorie est assez simple, je ne sais pas si c’est difficile en pratique, mais des gens qui explorent la sécurité des modèles utilisent ça. Ils vont par exemple trouver qu’une séquence du genre “%!!%(#@*…{{{32!(D le président de la France est” va faire bugger le modèle et lui faire sortir “Michaël Youn”.
Je me coucherai beaucoup moins bête ce soir. Merci
Sur les échecs, apparemment le secret c’était surtout de lui faire compléter un fichier descriptif d’une partie d’échec (y a un espèce de standard j’ai perdu le nom).
Mr Phi avait fait une vidéo intéressante là-dessus.
Ça a du sens mais comme ça ma première impression c’est que c’est une mauvaise idée de forcer à générer tout l’échiquier en une prompt. Arrivé à la dernière ligne, tu ne sais pas s’il avait en tête toutes les cases ou s’il se base sur ce qui a été généré pour déduire le reste.
Tu peux lui faire coup par coup, c’est juste que tu le mets mieux en condition avant un prompt d’en-tête de ce type de fichier qu’avec un prompt verbeux type “tu es un grand champion d’échec, on joue une partie, je commence: pion en B2”. C’est ce que j’en ai compris du moins.
Si tu as pas vu la vidéo de Mr Phi, elle peut t’intéresser, elle est vraiment pas mal. Il parle notamment de ton dernier point avec des expériences qui ont été faites en générant un début de partie au hasard.
Après, c’est sûr qu’un LLM, c’est pas Deep Blue…