les secrets des large language models & l'IA
Guillaume Lample, Cofounder & Chief Scientist chez Mistral AI est l’invité de l’épisode 33 de Data Driven 101. Mistral AI entraîne des modèles de langues à destination des entreprises avec un accès open source. Il nous explique notamment :
les difficultés et subtilités pour entraîner un LLM
les découvertes inattendues faites sur le chemin
les caractéristiques de leur premier modèle à destination du grand public
– Guillaume — 00:00 :
Aujourd’hui, je reçois Guillaume lample, Chief Scientist officieur de Mistral AI , auteur de LLAMA le large language model publié par Méta Mistral. C’est une société qui a 4 mois, qui a levé 100000000 de dollars pour développer des large language model pour d’autres sociétés et qui a un focus très fort sur l’Open source. Bonjour Guillaume.
– Guillaume — 00:19 :
Bonjour.
– Guillaume — 00:20 :
Alors Guillaume, est ce que tu peux nous présenter Mistral et rapidement. Mistral, c’est une compagnie qui a été créée il y a 4 mois par mois. Arthur Munch et Timothée Lacroix donc on était 3 fondateurs, maintenant on est une quinzaine d’employés, donc c’est une compagnie qui entraîne des larges engages model, donc des modèles de langues. À destination des entreprises. Avec un accès open source, donc on est très, on a une grosse composante open source, on a envie de releaser nos modèles à la Communauté et donc ce qu’on cherche à faire c’est faciliter l’accès au modèle de langue pour les entreprises. Parce que pour l’instant c’est très difficile de déployer des modèles, de les entraîner de les fine tuner pour une entreprise, prendre un modèle qui est open source, le déployer chez eux, c’est quelque chose qui est pas évident, qui requiert de l’expertise que les gens n’ont pas forcément en interne. Donc nous on essaie de faciliter en gros l’accès à ces modèles pour les business.
– Marc— 01:02 :
Ouais, oui, open source je pense, c’est peut être important de le préciser que contrairement à open AI qui voilà comme malgré son nom garde ces pour soi, hein, c’est le fameux chat GPTI et et les autres, il y en a très peu qui sont open source, donc là c’est un vraiment une une différence. Quelle est la difficulté on va dire la barrière en rentrée pour entraîner un large language modèle comme chez GPT ou comme lama.
– Guillaume — 01:25 :
Donc la barrière d’entrée, c’est donc il y en a plusieurs, la principale, c’est l’accès au compute, donc les GPU qui sont nécessaires pour entraîner ces modèles. Donc typiquement si on prend un modèle comme donc lama 70 milliards donc le plus gros modèle qui a été réalisé par méta, c’était un modèle entraîné sur deux mille g p u à 100 pendant pendant un peu plus d’un mois. Donc oui 4 5 semaines. Donc ça coûte, ça se chiffre en plusieurs millions de dollars et c’est potentiellement plus cher si c’est pas des contrats qui sont bien négociés ou qui sont des contrats négociés dans le pour des courtes durées, donc c’est très cher. Ensuite, il y a une expertise sur l’entraînement du modèle, donc beaucoup d’ingénierie, c’est entraîner des modèles qui sont distribués sur plusieurs milliers de GPU donc ça demande beaucoup de savoir faire. Donc un point de vue Engineering qui est pas évident. La création des données d’entraînement aussi, ça c’est délicat donc typiquement processer et données de de l’Open web pour les les utiliser, les nettoyer pour les données au modèle. C’est quelque chose qui demande beaucoup d’efforts. Voilà donc c’est vraiment une grosse équipe. Et beaucoup de temps et beaucoup de puissance de calcul.
– Marc— 02:22 :
D’accord, tu disais un entraînement, c’est déjà un mois mille g p u donc ça se chiffre en millions d’euros pour arriver jusqu’à la release de l’amas. Combien vous avez fait d’entraînement dans les étapes de recherche? V, 1V 2, et cetera, c’est une bonne.
– Guillaume — 02:38 :
Question, parce qu’en fait les gens effectivement, quand ils mettent en avant le prix d’entraînement de ces modèles, ils mettent que le prix de l’entraînement final. Sauf qu’en amont, il y a effectivement une toute une période de R et d, donc typiquement lama, le premier lama, 70 milliards. Il a été entraîné en janvier donc ça a duré 5 semaines. De janvier à début février, mais c’est le projet avait commencé en août et donc entre le mois d’août et le mois de janvier. En fait, on a entraîné modèle continuellement sur typiquement plus que deux mille g p u. Donc il y avait toute une période de recherche pour établir les meilleurs paramètres d’entraînement, établir les meilleurs jeux de données et donc ça, ça a pris 4 mois sur à peu près autant de ressources. Après, une fois qu’on sait exactement quoi faire, une fois qu’on a la écrit une base de code qui est très stable, un code d’Entrainement qui est robuste. Alors là effectivement ça coûte donc 5 semaines d’entrainement sur 2000 machines typiquement, mais on n’arrive pas directement à cet état. Il y a effectivement une phase en amont qui est incompressible, il faut même redévelopper la code base, vérifier qu’elle est stable, faire beaucoup de tests et ça c’est ça peut pas se faire en fait censée ressources aussi ouais Ouais, ouais vous repartez de 0 systématiquement sur un réentrainement ou est-ce qu’au bout d’un moment on peut dire que vous avez sécurisé les premières? Par exemple les premières semaines d’entraînement et que maintenant c’est la fin qui vous intéresse?
– Guillaume — 03:45 :
À chaque fois qu’on entraîne un modèle, on repart from scratch, alors pas systématiquement, mais typiquement, dans les cas des lamas, c’était ce qui s’est passé. Donc il y a, il y avait 4 tailles de médaille, il y avait un modèle 7 milliards, 13, 30 et 70 milliards et donc chacun de ces modèles était entré dans indépendamment from scratch, donc en repartant de du début. C’est pas tout à fait évident d’initialiser un modèle plus gros à partir d’un modèle plus petit, donc il y a des astuces qui permettent de gagner un peu de temps, mais c’est des trucs qui sont toujours un petit peu risqués. On sait jamais si ça Guillaumehe aussi bien que de repartir from scratch, donc on vu qu’on a un compute limité, on préfère pas non plus faire.
– Marc— 04:17 :
Beaucoup d’expériences, OK ces bases de données sur lesquelles s’entraînent tous ces modèles, LLM dans lama. Quels sont leurs niveaux d’accessibilité au public? À quel point on est sur quelque chose de privé que vous avez récupéré chez Meta ou à quel point c’est des choses qui ont été open source et travaillées par la communauté des chercheurs.
– Guillaume — 04:35 :
Alors beaucoup de gens se sont posé la question de l’importance de la qualité de ces données. Typiquement, est ce que était aussi fort parce que poney a des data SET propriétaires, est ce qu’ils ont des jeux de données qui sont pas accessibles? C’était pareil pour les modèles de Google, Chinchilla et cetera. Donc un des messages de lama donc il y en avait plusieurs mais un des messages c’était de dire que justement, en utilisant exclusivement des données qui sont accessibles sur Internet donc des datasets donc ils sont précisés dans le papier hein, il y avait, il y avait Wikipédia Arkham, et cetera, donc avec juste des datasets qui sont publiquement disponibles. En fait on peut obtenir des performances qui sont très très bonnes, donc évidemment avoir des jeux de données supplémentaires que potentiellement open RIA qu’on qu’on ignore. Ça peut effectivement potentiellement augmenter les performances, mais on peut déjà aller extrêmement loin avec juste les données qui sont disponibles sur le le point web.
– Marc— 05:21 :
Ok et la taille du dataset total utilisé sur la Mac, ça se compte comment? Ce qu’on chiffre?
– Guillaume — 05:28 :
Qu’on chiffre ça en en token un token c’est un subward donc c’est un morceau de mot. Ouais donc typiquement un mot fait en moyenne je sais plus peut être 1,3 tokens 1,5 token quelque chose comme ça ça dépend aussi analyser qu’on utilise de la façon dont on découpe les mots en en en morceaux de mots. Donc là. Ma un, il y avait 4 modèles, les 2 petits modèles donc de 7 et 13 milliards de paramètres étaient entraînés sur 1000 milliards de tokens. Et les modèles de 30 et 70 étaient entraînés sur 1400 milliards de Tokens, donc un des messages importants dans lama qui était inattendu je pense de la Communauté mais aussi d’en fait on s’y attendait pas non plus du tout. C’était de à quel point on peut entraîner longtemps un modèle et à quel point en fait la loss et l’enfin la lose descend et le modèle s’améliore. Plus on l’entraîne typiquement pour donner un exemple, GPT 3, le premier modèle donc gros modèle d’openai qui est sorti en 2020 c’était un modèle de 175 milliards de paramètres entraînés sur 300 milliards de mots. Et lama de 7 milliards, donc c’est un modèle qui est 20 fois plus petit et donc lama 2 7 milliards, c’était entraîné sur 2000 milliards de mots, donc un modèle qui est plus de 20 fois plus petit et qui est entraîné sur plus de 6 fois plus de données et donc un des messages du papier, c’était de montrer qu’en fait ces modèles, on peut les entraîner beaucoup plus longtemps, même si c’est des tout petits modèles. En fait, la performance ne sature pas, on peut les entraîner plus longtemps. La performance continue à s’améliorer et c’est un message du papier de montrer que des modèles très petits mais entraînés très très longtemps peuvent devenir peuvent avoir des performances exceptionnelles en l’occurrence. Le lama, 13 milliards était meilleur que le modèle initial de poney entraîné sur 300 milliards de mots, alors qu’il était au final même pas 1/10 de la taille.
– Marc— 07:00 :
Ouais alors justement, en en termes de durée d’entraînement, en en machine learning, on parle d’époque, le nombre de fois sur lesquelles on est passé, sur toutes les données, sur ce genre d’entraînement, c’est quoi l’ordre de grandeur? Combien de fois on passe sur toutes les données, combien d’époques il faut pour arriver à quelque chose de satisfaisant?
– Guillaume — 07:17 :
Ça, c’est aussi une question qui, à ma connaissance, a jamais été adressée de manière très. Très rigoureuse par la Communauté parce que c’est des expériences qui coûtent très cher, ouais. Donc à quel point est-ce que c’est mauvais de faire plusieurs passes sur le même dataset dans la main? La stratégie qu’on a adoptée, c’était de dire, on a plusieurs datasets de différentes qualités. Typiquement Wikipédia, c’est plutôt quelque chose de bonne qualité. Y a plutôt du bon contenu dessus, y a pas de bruit, y a pas d’y a que de l’information typiquement donc vu que c’est de la bonne qualité, on va faire plusieurs époques de Wikipédia. Je crois qu’on fait, on devait faire 3 ou 4 époques dessus et des datasets beaucoup plus gros comme common crawl donc common crawl c’est l’ensemble du web qui a été crawlé depuis une quinzaine d’années je crois. Donc c’est y a du bon contenu aussi, mais il est beaucoup plus difficile à récupérer. Y a toujours du bruit, vous pouvez passer autant de temps que vous voulez sur votre pipeline de pré processing. Y aura toujours du bruit dans le dernier SET que vous allez créer et donc du coup sur ça on avait en fait on fait qu’une seule époque parce que bah déjà y a pas besoin d’en faire 2 parce que là c’était gigantesque. Moins de crawl c’est absolument gigantesque, c’est plusieurs pétabytes à l’origine donc y a aucunement de faire des époques là-dessus ça couterait trop cher et voilà. Donc en fait on fait plusieurs époques sur les petits data SET de qualité et une seule sur les gros data SET.
– Marc— 08:23 :
Ok une puissance, une puissance aussi forte de calcul, y a combien de sociétés qui y ont accès dans le monde deux mille g p u qui a accès à deux mille g p u?
– Guillaume — 08:35 :
Alors je sais pas exactement, mais y a y a relativement peu d’entreprises, donc y a typiquement les les GAFA donc Google, Facebook, Openaient. Probablement Amazon, Apple y a plusieurs start-up donc y a anthropique. Typiquement y a une start-up qui s’appelle inflexion qui a été créée y a quelques années. Au final je vous dirais qu’il doit y avoir. C’est dur à essayer je pense grand maximum. Une quinzaine, ouais, potentiellement moins. Principalement à cause du cou,
– Marc— 08:59 :
Mais si demain je crée un compte sur adolv SGCP et que je demande deux mille g p u je les aurai jamais.
– Guillaume — 09:06 :
Alors ce serait pas du jour au lendemain? Non, parce qu’il y a effectivement beaucoup de demandes et qu’y a des carnets de commandes qui sont assez énormes en ce moment parce que tout le monde veut avoir accès assez à ce à ce matériel, à ce à ces GPU Mais sinon a priori c’est juste une question d’argent.
– Marc— 09:18 :
Je suis une question, OK Et alors justement donc passez par le cloud en général ça rajoute un petit markup hein, mais pas sur le même les mêmes tarifs. Que quand on possède des serveurs GPU selon toi vaut mieux les louer, vaut mieux les acheter.
– Guillaume — 09:32 :
Alors nous, c’est une question qu’on s’est posée à Mistral. Pour commencer, on s’était dit que c’était beaucoup plus simple de les louer parce qu’il y a quand même, c’est quand même très compliqué de maintenir un serveur de GPU Enfin c’est un métier, c’est une expertise qu’on a pas. On peut effectivement demander à des gens de le faire, mais ça rajoute en fait beaucoup de complexité. Les gains au niveau coût sont pas non plus totalement évidents donc c’est plus risqué donc c’est peut être quelque chose qu’on fera dans le futur, mais en tout cas clairement c’est pas quelque chose qu’on a voulu faire pour commencer à ma connaissance, open RI ne fait pas ça, il loue leur GPU avec un micro hein? Ils utilisent Microsoft. La plupart de ces start-up également utilisent des cloud provider. Donc on a aussi essayé cette direction qui était pour nous la la plus safe.
– Marc— 10:11 :
D’accord. Alors qu’est-ce qui s’est passé au moment de la sortie de lama vis-à-vis des poids du modèle, de la fuite des poids? Est-ce que tu peux nous en parler de l’Intérieur en fait?
– Guillaume — 10:21 :
Il y a un grand débat en ce moment sur enfin, depuis même quelques années, sur la la sécurité autour de ces modèles, à quel point ils sont dangereux. Est-ce qu’on peut faire quelque chose de grave avec ces modèles? Est-ce qu’on peut s’en servir pour créer des fake news? Typiquement quand le modèle de GPT 2 d’open RIA été publié, donc c’était un modèle qui était bien moins puissant que l’amas. Un modèle qui faisait que 1,5 milliards de paramètres, donc openai avait choisi de pas open sourcer ce modèle pour des raisons de sécurité, en prétextant que les gens pourraient utiliser ce modèle avec des mauvaises intentions, créer des fake news, et cetera. Donc il y a, il y a toujours ce sujet de à quel point ces modèles sont potentiellement dangereux. Et donc là il y avait, je pense, une inquiétude de méthode, voir ce que les gens allaient faire de ces modèles. En vrai je sais pas exactement quelle était la motivation principale, c’était pas à moi de prendre cette décision, mais donc pour la main, la stratégie à adopter, ça a été de réaliser le modèle seulement aux chercheurs donc le modèle a été donné donc à des gens qui travaillent typiquement dans la communauté scientifique. Aux gens qui font du machine learning, donc pour accéder au modèle, les gens devaient se connecter au site de Facebook, indiquer ce qu’ils font, leur profession, et cetera, et ensuite, si effectivement c’était des chercheurs, ils avaient accès au modèle et donc au final, parmi les il me semble qu’on a dû donner le modèle de quelques milliers de personnes. Quelques milliers de chercheurs. Je sais plus exactement et donc il y a effectivement un chercheur qui a pris le modèle et qu’il a mis en lien en téléchargement sur un torrent et à partir de là, le modèle a été distribué très rapidement et tout le monde a eu accès au modèle, donc c’est quelque chose qui a été repris par les médias de manière assez significative. En donc en parlant de leak. C’était vraiment une leak en soit dans le sens où le modèle a pas vraiment fuité, c’est pas comme si le modèle s’était échappé des serveurs internes de Facebook ou quoi que ce soit. C’est juste qu’on a donné le modèle. Peut-être 10000 personnes et il y a une personne qui l’a partagé avec tout le monde. Je dirais que c’est pas plus une fuite que quand quelqu’un qui a un compte Netflix télécharge un film Netflix et le met en torrent pour tout le monde. C’est pas plus une fuite que voilà que dans ces conditions donc cette fuite, en l’occurrence, ça popularise le modèle très rapidement, donc le modèle était partout et donc ça a créé un engouement. Il y a eu énormément de gens qui ont créé des choses par-dessus ce modèle. Qui ont créé des variations qui ont finintés, qui s’en sont servies pour créer des modèles qui répondent à des instructions, donc un peu comme chat GPT il y a énormément d’efforts et de travaux qui ont été publiés rapidement autour de ça. Ça a eu un effet inattendu. Je pense qu’on s’attendait pas à ce que ça ait autant de succès et je pense que c’est aussi ce qui a motivé Facebook à revoir un peu sa position sur ça et à typiquement changer la licence pour l’amas. Donc l’amadux a été open sourcée. Sans ces conditions, il y avait pas besoin de de prouver qu’on était chercheur. Le modèle est disponible avec une licence qui permet des des des usages commerciaux suivant que c’est très différent. Ouais.
– Marc— 12:50 :
Quand on entre un modèle comme ça, comment est ce qu’on évalue sa qualité?
– Guillaume — 12:55 :
Alors c’est très difficile, alors déjà il y a 2 types de modèles qu’on a envie d’évaluer. Il y a les modèles qui sont pré trainés, donc c’est les modèles qu’on entraîne pendant typiquement un mois sur 2000 machines et ensuite il y a les modèles qui sont fanfunés, donc les modèles typiquement qui sont entrainés à répondre à des instructions donc sur lesquels on a fait du RLHF typiquement donc chat GPT c’est un modèle qui a été fait donc c’est très très très difficile d’évaluer un modèle fine tuner. Vous voulez voir à quel point il est capable de répondre bien à vos questions, à quel point il formule des réponses qui sont correctes. Et créer des benchmarks d’évaluation par-dessus les modèles instruits, c’est en fait très délicat et de manière générale, vous êtes souvent obligé au final de regarder à la main, de demander à un humain de tester les modèles. Si vous avez 2 modèles A et B bon bah voilà, il faut prendre le modèle a parler avec lui, poser les mêmes questions au modèle bien ensuite et voir lequel répond mieux. Il y a aucune métrique qui remplace cette évaluation humaine, donc vous pouvez ensuite avoir des modèles qui évaluent les modèles qui répondent à vos questions. Mais ça, ça Guillaumehe que si le modèle qui évalue est en fait beaucoup plus fort que les 2 autres modèles. Donc si vous avez un modèle à 7 milliards, vous pouvez utiliser un modèle à 70 milliards pour évaluer les petits modèles. Mais votre plus grand modèle, si vous en avez 2. Bon bah voilà il y aura pas de modèle au-dessus pour juger lequel est plus fort. Donc ça c’est c’est très délicat pour les modèles pré-entraînés il y a des benchmark qui sont assez classiques, qui font parfois un peu polémique sur lesquels les gens sont pas toujours d’accord mais qui de mon point de vue Guillaumehent assez bien. Donc l’idée c’est c’est en fait c’est assez simple. Par exemple y a un dataset de maths, vous allez avoir 3000 questions de mathématiques et vous vous prenez votre modèle, vous mettez la question en entrée et ensuite vous écrivez réponse 2 points, vous laissez le modèle générer la suite et vous vérifiez si oui ou non il est capable de générer la bonne réponse. La bonne réponse fait partie du test SET donc vous pouvez voir à quel point le modèle est capable de la retrouver. Et donc ça c’est des métriques qui Guillaumehent assez bien. Et l’avantage de ces métriques qu’on appelle des métriques, en fait les modèles sont évalués dans ce qu’on appelle du 0 shot, c’est-à-dire qu’on donne juste l’entrée au modèle. On lui demande de prédire la réponse. On n’a pas besoin de le Réentraîner, c’est le modèle tel qu’il sort du du pré entraînement est capable de répondre à ces questions, donc ça permet d’évaluer facilement les modèles. Et voilà. Après c’est des métriques qui font polémique parce qu’il y a pas un protocole très clair qui définit comment est-ce qu’on évalue ces modèles. Donc chacun fait un peu sa sa façon. Donc typiquement vous avez plusieurs façons de mettre la question d’entrée du modèle, vous pouvez simplement. Vous pouvez juste mettre la question. Vous pouvez mettre question 2 points à la question, vous mettre un retour à la ligne avec le réponse 2 points. Enfin, vous pouvez, vous pouvez faire un formating autour de des prompts que vous envoyez au modèle qui en fait font mine de rien une grosse différence sur les résultats en fonction de la façon dont vous formatez vos questions, vous pouvez avoir une différence de peut-être 3, 4 % mais 3 4 % En fait, c’est beaucoup, c’est la différence sur certaines métriques entre un lama 13 et un lama, 70 milliards donc voilà, ces métriques sont très très bruitées, donc ça rend l’évaluation compliquée. Donc pour évaluer 2 modèles de manière fiable, il faut utiliser la même pipeline d’évaluation. Donc, il y a plusieurs pipelines d’évaluation qui sont publics, qui sont open source, que les gens utilisent, mais même ces pipelines sont parfois pas tout à fait corrects. Parfois, il y a des bugs, typiquement quand le lama est sorti, les gens ont évalué lama avec une des pipelines qui était open source, un un des des codes qui était publiquement disponible et il y avait un bug dans l’évaluation et les gens ont mis 2 semaines à résoudre ce bug et pendant les 2 premières semaines qui ont suivi la sortie de lama, les performances du modèle reporté par les gens étaient entre 5 et 10 points en dessous de ce que nous on avait en interne et voilà, il a fallu du temps pour que les gens réalisent qu’en fait non il y avait un problème avec leur évaluation. Donc c’est toujours très délicat et plus les modèles sont forts, plus ça devient compliqué.
– Marc— 16:21 :
Alors qui nous a parlé de pré entraînement de fine tuning de RLHF donc RLHF c’est renforcement learning by Human feedback. Est ce que tu pourrais nous nous parler peut être de ces 2 choses? Donc le pré entraînement on a bien compris ce que c’était mais donc il y a le le fine tuning donc qui consiste à continuer d’entraîner sur un autre dataset, et donc le renforcement learning by Human feedback. Est ce que tu peux nous nous en parler un peu plus?
– Guillaume — 16:50 :
Oui, alors le le pré entraînement en effet, c’est assez simple, c’est juste on a une énorme quantité de texte et on entraîne le modèle à prédire, le mot suivant étant donné les mots précédents. Donc voilà, c’est la tâche, c’est la seule Task qu’on utilise pour entraîner ces modèles. Par contre, si vous entraînez un modèle comme ça et que vous essayez de lui parler comme si c’était chez GPT ça ne Guillaumehera pas, vous pourrez pas lui dire Écris moi un email qui parle de ça, écris moi une chanson qui est une parodie de ce truc là donc ça ça Guillaumehera pas pour que le modèle réponde à des instructions vous devez le fan tuner sur typiquement un dataset d’instruction, donc c’est openia qui a fait ça, donc au début c’était dans un papier qui s’appelait GPT Instruct qui est en fait sorti bien avant chat GPT Et qu’une manière intéressante et un peu passée inaperçue quand il est sorti, les gens en ont parlé, mais pas plus que ça. Ouais, pas du tout vu le potentiel, je pense qu’il y avait derrière cette idée. Donc ce que vous pouvez faire simplement, c’est collecter un dataset de données. Enfin vous avez je sais pas, 3000 questions 3000 instructions, vous demandez à des humains d’écrire les réponses à ces instructions, et si vous entraînez votre modèle pré entraîné par-dessus ces instructions ou si vous le fait intunez sur ce petit ensemble de données? Eh Ben en fait ça suffit à faire un modèle qui répond à vos instructions comme chat GPT Donc ça c’est la méthode la plus basique. En fait, il y a 3 étapes dans le RLHF tel que décrit initialement par OPEN RS et c’est juste la première étape, c’est le superbe tuning, donc vous demandez à des humains de créer un dataset et vous entraîner sur ce dataset. Ça, c’est une méthode qui Guillaumehe au début, mais c’est difficile de passer à l’échelle avec cette méthode parce que ça coûte très cher les humains, typiquement pour leur écrire une réponse à une instruction, ça leur prend beaucoup de temps. Souvent, ils vont faire ça mal en fait beaucoup moins bien que chez GPT Le fait maintenant donc c’est pas une méthode qu’on peut utiliser at SCALE donc ensuite on a d’autres méthodes donc ensuite vous pouvez avoir des ce qu’on appelle des reward modèles, donc c’est un modèle qui va prendre une question de réponses différentes et qui va vous dire laquelle est la meilleure ou juste qui va donner lui même un score vers des réponses. Et vous pouvez utiliser donc ce reward modèle pour donc. Assigner des scores à des réponses pour ensuite entraîner sur les réponses qui ont les meilleurs scores. Donc en fait vous essayez. De diminuer la dépendance à des annotations humaines dans ce processus. Voilà donc c’est ça copenhari en fait en premier et qu’ils ont très bien fait, et c’est ça qui est absolument nécessaire de faire pour ensuite avoir un modèle comme chat GPT on peut pas prendre le modèle pre traind et directement s’en servir comme si c’était un modèle instruit.
– Marc— 19:03 :
L’humain intervient où là-dedans et c’est quand même l’humain qui va dire entre 2 réponses quelle est la meilleure?
– Guillaume — 19:10 :
Alors ça oui, au tout début en fait, on demande à l’humain d’écrire lui même les réponses. Et dans la 2ème étape, on demande à l’humain un processus qui coûte beaucoup moins cher, c’est de dire. On prend une question, on le dit au modèle génère 10 réponses. Ouais, donc il peut sembler de manière aléatoire 10 réponses si j’ai pas voulu donner toujours la même et on demande à un humain de sélectionner la meilleure réponse. Ouais donc il sélectionne et en fait ça lui prend beaucoup moins de temps de sélectionner la meilleure que d’en écrire une donc on peut du coup annoter beaucoup plus de données et ensuite entraîner sur les données qui ont été sélectionnées par les humains. Donc ça c’est typiquement la 2ème étape du du RHF et ça Guillaumehe très très bien pour le coup. Ouais mais alors typiquement sur chat GPT quand on l’utilise, on crée de la donnée pour eux, est ce que à un moment donné. Process, on donne une information qui est utilisable comme feedback humain pour eux, est ce que quand on utilise cette GPC on crée en fait un dataset d’entraînement pour open AI alors ça, je sais pas, je pense qu’il y a beaucoup de spéculations autour de ceux qui font des données qu’ils reçoivent en entrée, il y avait des promesses comme quoi ils ne s’en servaient pas. Donc je je peux pas commenter là-dessus Après je sais qu’ils demandent enfin il me semble qu’à chaque fois que tchatche était renvoyé une réponse, on peut mettre un plus un moins un en fonction de la qualité de la réponse. Donc je pense que dans certaines mesures il s’autorise à faire des choses avec si l’utilisateur.
– Marc— 20:22 :
Et l’utilisateur le fait.
– Guillaume — 20:23 :
C’est sûr de faire, voilà, mais je sais pas. De manière générale si ils utilisent ces données.
– Marc— 20:28 :
Et enfin, si on reprend un peu des chiffres sur ce qu’on a dit pour vraiment la, la partie fine tuning d’une part et puis on va dire le la 3ème phase qui utilise simplement des modèles de reward en termes de nombre de GPU étant et d’époque, qu’est ce que.
– Guillaume — 20:47 :
Alors pour le coup, c’est beaucoup moins cher la partie de fine tuning et en terme de de, de compute et de de nombre de d’heures de GPU je pense que c’est même pas l’ordre de 1 % de ce qui est utilisé auprès certainement voire moins. En fait, il y a beaucoup de méthodes qui ont été développées en fait et surtout récemment depuis la sortie de l’amas pour fan tuner ces grands modèles. Donc typiquement des méthodes qui permettent avec juste 1GPU de donc de prendre ces modèles qui sont entraînés sur deux mille g p u, mais de les fine tuner pour qu’ils puissent en faites, on peut faire tuner ces modèles sur quelques GPU Ouais et du coup si vous arrivez à Faniner sur quelques GPU bah vous êtes typiquement capable d’entraîner sur un jeu d’un jeu de données d’instruction de composé de quelques milliers de questions réponses. Et donc ça pour le coup c’est très cool de voir ça parce que n’importe qui en fait peut contribuer à cette partie de fine tuning n’importe qui avec des ressources relativement limitées peut faire des découvertes, se rendre compte que des façons de faire tuner qui sont plus efficaces que d’autres. Et C’est d’ailleurs sur ça que se concentre typiquement la plupart des universités ou personnes qui ont pas forcément accès au compute qui est disponible dans les grosses entreprises.
– Marc— 21:45 :
Et alors la 3ème partie, celle où on est plutôt sur pousse vers le haut, pousse vers le bas. Quelle est la meilleure des 10 réponses parmi les disques qui ont été générés cette partie là? Les ordres de grandeur d’on va dire la quantité de données qu’il faut pour faire quelque chose d’intéressant.
– Guillaume — 22:00 :
Alors moi j’ai surtout travaillé sur les 2 premières parties, donc la partie supervision tuning qui pourrait vraiment très simple on finit tune sur des données qui sont disponibles d’instruction et la 2ème qui consiste donc à avoir un un modèle qui classifie les bonnes réponses, un humain éventuellement qui donne du feedback donc il y a une étape, mais ces 2 parties en fait en termes de GPU et de de coût en terme de compute son relativement peu chers. Ça reste dans tous les cas du Fanetuning et la 3ème étape de la même façon au reste du find tuning, on est toujours sur quelque chose de de beaucoup moins cher que le prix d’entraînement..
– Marc— 22:30 :
Ok est ce que sur l’entraînement de l’avail y a des choses qui ont été des découvertes inattendues?
– Guillaume — 22:36 :
Je pense que ce qui était attendu pour nous, c’est le fait que le modèle continue de s’améliorer après autant de de token. En fait, il y a un papier qui a été publié par Deep mind il y a il y a 2 ans, il me semble qui s’appelle donc c’était papier de Cinchella donc un modèle de Deep mind, un gros, un modèle à 70 milliards de paramètres qui était State of the art quand il est sorti et typiquement, ce papier montrait que les modèles précédents en fait, étaient sous entraînés dans le sens où ils avaient beaucoup plus de paramètres comparés aux noms de Tokens qui ont été utilisés pour leur entraînement. Et donc chinchilla répondait à une question intéressante, qui était. Supposons que vous ayez mille g p u pendant un mois, donc ça c’est votre budget de compute et que votre objectif c’est d’avoir le meilleur modèle possible sur des benchmarks à la fin de du mois. Quelle est la taille de modèle que vous devez choisir? Donc est ce qu’il veut me prendre un modèle de 30 milliards de paramètres et l’entraîner sur tant de tokens? Ou alors un modèle 2 fois plus gros sur 2 fois moins de token, et cetera. Donc il y a plusieurs solutions et donc xinji a répondu à cette question. Il disait Bah avec ce compute données il faut entraîner sur cette taille de modèle sur ce nombre de token, mais du coup ça induit beaucoup de personnes en erreur. Et maintenant on parle même de Chinchilla trap parce que les gens pensaient que ça donnait le nombre de tokens idéal pour un modèle en termes d’entraînement. Donc si on a un modèle de cette taille, il faut l’entraîner sur ce nombre de tokens. Mais en pratique, si vous pouvez toujours continuer à entraîner et le modèle continuera à s’améliorer. Certes, vous auriez pu prendre un modèle plus grand si vous avez plus de compute et entraîner sur moins de tokens, et le modèle aurait été encore plus fort, mais ça n’empêche pas que le modèle plus petit entraînait beaucoup plus longtemps. En fait, continue toujours de s’améliorer et en fait le papier de base fait un peu fi du coup de référence. Typiquement si. En fait, ça tient compte du coût de l’entraînement, mais en fait votre modèle à la fin, il est en production et donc il va être déployé. Ça va coûter cher de le déployer et peut-être qu’il vaut mieux passer plus de temps à entraîner votre modèle petit plus longtemps pour qu’il soit meilleur pour qu’ensuite le modèle que vous mettez en production soit soit beaucoup moins cher et tourne beaucoup plus vite. Voilà donc du coup ce qu’on montrait dans la masse, c’est qu’en fait on peut traîner bien au-delà, entraîner bien plus que ce qui est proposé par les lois de notre du papier de Chinchilla et que le modèle continue à s’améliorer et qu’en fait il y a, il y a pas encore de saturation, même à 2000 milliards de tokens, le modèle de lama 7 milliards enfin qui continue à s’améliorer. Voilà donc ça, c’était la surprise pour nous. Je pense que c’était la plus grosse surprise.
– Marc— 24:53 :
D’accord, Ouais, est ce que tu as des tips que tu peux nous partager toi qui est vraiment dans les large language modèles à la fois pour les utiliser tel quel ou bien pour les les fine du nez c’est assez sensible ce genre de d’outils. Qu’est ce que tu peux nous dire?
– Guillaume — 25:10 :
L’avantage du fin tuning, c’est que c’est des expériences qui sont relativement rapides. Finalement, quand vous fini, il y a, vous avez fini sur des data SET d’entraînement qui sont pas très gros. Vous décidez de faire une tuning qui sont juste composés de quelques milliers voire dizaines de milliers d’exemples. Donc c’est assez rapide. De faire des expériences et de tester différents SET d’hyper paramètres, nous ce qu’on avait observé à l’époque, c’était que quand vous faites tuner un modèle, il faut toujours avoir des learning grades qui sont très petits donc beaucoup plus petits que ce qui est ce qui est utilisé à l’entraînement. Avoir du Drop out Side c’est quelque chose que les gens utilisaient avant. Que depuis le M, on n’utilise plus trop, mais en fait ça Guillaumehe toujours en faning sinon il y a pas. Non je sais pas.
– Marc— 25:45 :
Et à l’usage. À l’usage, c’est pas du côté qu’est ce que quelqu’un qui entraîne des modèles peut donner comme astuce sur le prompt Engineering sur le le voilà le design de prompt. Qu’est ce que, qu’est ce qu’on peut avoir comme Insight là dessus?
– Guillaume — 25:59 :
Alors pour le design de croop y a énormément de performances qu’on peut gagner en passant beaucoup de temps pour le coup. Jouer avec les prompts qu’on envoie modèle donc typiquement ce qui était intéressant, c’est un papier qui avait montré que si vous posez par exemple une question à un modèle, un problème de maths compliqué, généralement, il a tendance à essayer de répondre tout de suite et il a faux. Alors que si vous promptez le modèle par. Let’s think step by step, donc raisonnement par étape. Ouais et Ben en fait si vous mettez ça au modèle, vous commencez la génération d’email à sa place. Et Ben si vous faites ça en fait le modèle va générer toutes les étapes intermédiaires de raisonnement et en fait, il s’avère que la la performance augmente de manière très très significative et en fait c’est assez intuitif je pense. C’est comme si vous demandiez à un humain de multiplier 2 nombres à 4 chiffres de tête. Bon bah s’il doit directement générer la solution, il va sûrement se tromper alors que si on lui demande de de résoudre étape par étape, on va écrire toutes les étapes intermédiaires et à la fin il va être capable. C’est pas très compliqué, il va, il va avoir la bonne réponse et c’est un peu similaire pour un modèle, il faut l’entraîner à expliquer les étapes intermédiaires et en fait quelle que soit la Task, y a toujours des petites astuces qui permettent d’augmenter la performance. Une autre astuce par exemple, c’est donc ces modèles comme tchatche et PT même lama. Donc lama s’est entraîné à plus de 99 % sur de de l’anglais, donc même si c’est parler français, il est quand même beaucoup moins bon en français qu’en anglais. On se rend pas forcément compte parce qu’effectivement il parle français mais en fait sur des benchmarks anglais qui sont traduits en français, Ben il est-il est peut être 20 points en dessous et ce qui est étonnant c’est que ce modèle. Donc même si vous prenez un lama, il sera parfaitement capable de traduire une phrase française en anglais et une phrase en anglais dans le Français à nouveau donc si vous lui posez une question en français. Ça Guillaumehera parfois mieux de la traduire en anglais. De lui laisser générer une réponse en anglais et ensuite de lui faire traduire sa propre réponse, ce qui est un peu contre intuitif, parce qu’au final c’est le même modèle qui fait les 3 étapes. Traduire en anglais, je vais répondre et en français, mais au final, ça Guillaumehe mieux.
– Guillaume — 27:46 :
D’accord.
– Marc— 27:46 :
Voilà, a priori c’est pas quelque chose qu’on observerait chez un humain qui parle de langues comme. Ouais, parce que dans le data SET global, au final c’est des modèles multilingues, mais il y a une immense majorité d’anglais dans le data SET. C’est y a beaucoup plus d’anglais et y a y a un peu un biais dans la création des données. Bon alors déjà c’est beaucoup plus facile de créer des corpus en anglais parce que la plupart des corpus que vous pouvez télécharger sont juste parfois existe qu’en anglais. Wikipédia ça vient dans toutes les langues, mais typiquement le Wikipédia en anglais est 2 fois plus gros qu’en français. Archive c’est en anglais Ça Exchange c’est en anglais, et cetera, donc la plupart des sites avec beaucoup de données sont juste en anglais et aussi vu que les gens évaluent leur modèle sur des benchmarks qui sont toujours les mêmes et qui sont que des benchmarks en anglais. Bah y a un petit peu une incitation, enfin ça vous biaise et ça vous encourage à utiliser que de l’anglais. Parce qu’en fait, si vous rajoutez d’autres langues, certes votre modèle va devenir meilleur sur ces langues, mais en fait les gens le verront pas parce que juste y a pas de benchmark qui va mesurer ça. Et par contre les performances en anglais vont vont baisser quand même donc peut être que vos modèles sera un petit peu moins bon en anglais il sera peut être 2 fois plus fort en français mais en fait il va un peu perdre en performance en anglais et du coup les gens sont toujours un peu ont toujours une incitation à à mettre le plus d’anglais possible pour maximiser ces benchmarks qui en fait n’est vraiment pas idéal pour des cas d’usage concrets.
– Marc— 29:02 :
Et alors si on veut se former à la manipulation de large language model, est ce que tu as des ressources que tu nous conseilles?
– Guillaume — 29:08 :
Je pense qu’une bonne façon de commencer, c’est de regarder sur huging face, c’est quand même assez accessible. Y a des tutoriels qui sont assez clairs qui permettent à n’importe qui je pense, de rentrer dans le domaine, de comprendre comment ça Guillaumehe, de charger des modèles relativement gros sur un nombre de GPI relativement limité, de commencer à jouer, à faire des choses avec ces modèles. Donc je pense qu’ils ont fait un très bon travail pour je pense réduire la barrière à l’entrée pour utiliser ces modèles. Donc je pense que je commencerai par là.
– Marc— 29:32 :
Si c’était à refaire, tu changerais quoi est ce que t’as un conseil à donner à des gens qui s’engagent sur ton terrain?
– Guillaume — 29:40 :
Je pense qu’un méta on a, on a passé beaucoup de temps à essayer de de trouver l’architecture optimale, donc y a beaucoup de variations du transformer qui ont été proposées depuis le papier de 2017 Donc y a je sais pas, y a peut être des dizaines et des dizaines de variantes de Transformers qui ont montré qu’ils étaient meilleurs que l’architecture de base, mais en fait on s’est rendu compte que quand on passait à l’échelle, quand vous entraînez sur des centaines de milliards de mots, en fait l’architecture de base ça reste quasiment toujours la meilleure. Elle est aussi beaucoup plus simple que les autres, donc beaucoup plus simple à coder, beaucoup plus sympa par à l’Élysée. Donc je pense que à un moment donné effectivement c’est nécessaire de d’essayer de chercher les nouvelles architectures, mais si. On n’a pas forcément des ressources industrielles comme un meta ou à Google. Je pense que faut plutôt se concentrer sur la partie des données. Le data SET d’entraînement. Typiquement, nous, on s’était beaucoup concentré sur l’architecture et moins sur les données dans la main, même si on a fait quand même effectivement beaucoup d’efforts sur les données. C’est ça qui a permis d’avoir des bonnes performances. Mais si j’avais su, je pense qu’on aurait passé plus de temps-là dessus. Typiquement un Mistral. On a fait beaucoup plus d’efforts sur le nettoyage des données que ce qu’on avait fait à mes torts.
– Marc— 30:41 :
Alors sur ce papier lama et il me semble, je j’ai plus le chiffre exact en tête mais qu’il y a peut être 11 sur 14. Des auteurs qui sont français. Comment tu expliques cette Communauté française de l’i a, et en particulier chez Meta? Donc avec lama, comment tu nous décrirais cet écosystème français de l’i A?
– Guillaume — 30:59 :
Donc c’est pas qu’ameta hein, il y a donc ameta. Effectivement, il y avait beaucoup de gens, la plupart des gens qui possèdent sur l’amas étaient en France, ils le sont toujours. Et même chez Deep mind hein, typiquement là où vient Arthur, il y avait beaucoup de gens qui travaillaient sur l’ilem qui sont basés à Paris, de ce que j’ai pu observer, les gens qui ont fait des typiquement des formations en France qui ont typiquement fait beaucoup de maths, sont très rigoureux et. Bon à sens de la rigueur qui est je pense plus les avancées que la moyenne. Et sur des sujets comme les LM où typiquement, chaque détail fait la différence et on ne peut rien laisser passer, ça fait une différence. En fait, il y a pas de formule magique dans les larges languages modèles, c’est plutôt l’accumulation de plein de choses fait de manière très rigoureuse qui à chaque fois fait qu’on gagne 2 % par ci, 3 % par là et qui à la fin arrivent à un modèle qui Guillaumehe très bien. Et je pense que c’est pour ça qu’on est effectivement bien placé en France pour travailler sur ces sujets.
– Marc— 31:48 :
Là OK Alors dans cette Communauté française de LIA vous avez créé Mistral? C’est une société qui a 4 mois, donc un un historique qui est assez petit, mais aujourd’hui donc vous sortez votre premier modèle, c’est ça hein? Donc, vous l’avez directement publié sur un torrent, ce que tu peux nous parler de ce modèle.
– Guillaume — 32:07 :
Ouais, donc c’est un modèle qui a 7 milliards de paramètres, qui a la taille du plus petit lama, donc c’est le premier modèle, donc le premier. L’idée de ce modèle, c’était de montrer qu’on était capable d’entraîner des larges langages. Modèle from scratch sans nécessairement avoir besoin de bénéficier de l’infrastructure qui était fournie par donc que ce soit par métro, soit par, soit par Google. Donc là pour le coup on a vraiment tout fait. On a recréé la code base d’entraînement, on a recréé les datas de préprocessing from scratch et donc c’est un modèle qui a été entraîné pour être à la fois très rapide. Donc il y a quelques modifications qu’on a fait au niveau de l’architecture qui permettent à la fois de décoder beaucoup plus vite et qui permettent aussi d’avoir entré des séquences des tailles de séquences beaucoup plus longues. Typiquement lama un, c’est un modèle qui pouvait gérer en entrée des séquences jusqu’à 2000 tokens Lama 2. Il peut gérer jusqu’à 4000 tokens, là, le modèle qu’on a release, il peut traiter des séquences qui ont jusqu’à 8000 tokens en entrée donc je suis 1000 token, ça correspond à ça correspond à une dizaine de pages à peu près. Ouais mais il a la particularité d’avoir ce qu’on appelle les Sliding Windows donc c’est des fenêtres d’attention qui se décalent au cours du temps donc typiquement chaque hidden State, donc chaque État l’attend dans le le le réseau pourra regarder les 4000 Tokens précédents de la Laure précédente. Ce qui veut dire qu’en fait, le ranch d’attention du modèle effectif est égal à 4000 fois le nombre de Layers, donc ça fait 128000 donc c’est c’est un une architecture qui permet en fait de regarder extrêmement loin dans le passé. Et nous, ça nous intéresse beaucoup parce que typiquement pour les les cas d’usage qu’on a avec le les clients avec qui on parle. Donc il y a un truc qui revient très souvent, c’est être capable de répondre à des questions sur des documents qui sont en entrée, qui sont des très gros documents. Si par exemple vous avez je sais pas, 20 fichiers PDF en entrée ça fera peut être 100000 tokens mais on va vous voulez un modèle qui soit capable d’aller récupérer cette information, de répondre, de synthétiser de l’information qui est très très très loin voilà. Donc pour nous, c’est c’est question de long contexte, c’est un truc qui est important. Vitesse de génération aussi, quand vous posez une question, un modèle, vous voulez qu’il voulait pas qu’il mette 3 heures à générer une réponse donc c’est un modèle qui Guillaumehe très bien, il est meilleur que l’amas 2 7 milliards donc qui fait la même taille. Il est également plus fort que le lama de 13 milliards donc qui est 2 fois plus gros et sur plusieurs métriques, il est même au niveau de voir supérieur au lama 30 milliards lama de 30 milliards donc c’est un modèle qui pour pour sa taille est de très loin le meilleur disponible. Et contrairement à lama il vient avec une licence qui est Apache donc Apache 2 donc qui est une licence qui est beaucoup moins restrictive que celle qui a été mise sur l’amas de paramètres.
– Marc— 34:20 :
Le code et les poils et 2 sont dans la poche.
– Guillaume — 34:22 :
On release des tout en la page ouais.
– Marc— 34:24 :
D’accord. Alors c’est hyper intéressant cette histoire de longueur de prompts parce que finalement c’est c’était une voilà, tu as dit hein? Une des principales limitations. J’avais entendu que la dépendance, enfin le nombre de paramètres était quadratique.
– Guillaume — 34:36 :
C’est quadratique d’habitude. Ouais, là pour le coup c’est linéaire, c’est linéaire. Au-delà de 4000 token grâce à cette astuce de sliding window, ouais.
– Guillaume — 34:42 :
C’est ça en fait, c’est assez simple, si vous êtes à la 2ème layer du modèle, donc l’État l’attend en position 4000 vous aura accès à tous les maux entre la position un et 4000 Ensuite, vous aurez que la Layer 3 en position 8000 aura accès à tous les maux entre la position 8000 et 4000 donc les 4000 derniers. Sauf que l’État, en composition 4000 lui-même allez d’ailleurs 2A vu tous les mots jusqu’à la position 0 donc en fait, à chaque fois qu’une, à chaque fois où j’étais une layer, Eh Ben vous rajoutez un un span d’attention de 4000 Token par le passé. Donc ça fait en pratique donc 4000 quatre-vingt-seize fois 32 donc ça fait à peu près 128000 mille tokens de d’attention, ce qui est 4 fois ce que j’ai pété. 4 permis de faire pour l’instant j’ai pété 4 c’est 32000 ouais et en inférant, c’est une seule, un seul GPU pourrait suffire pour réutiliser ce modèle.
– Guillaume — 35:26 :
Si c’est 1GPU qui fait au moins 24 gigas de mémoire RAM je pense que c’est super.
– Marc— 35:30 :
D’accord. Cette limite de la longueur des prompts qu’on a pallié en découpant en utilisant Ben ce technologie comme longchame pour Ben encoder des petits morceaux de texte et aller chercher le bon et cetera. Pour toi aujourd’hui, on n’a plus besoin de cette si ça pour le coup, c’est aussi un truc qui est très important, qui je je pense vient en addition de ce qu’on a fait là avec des très longs contextes. Donc l’idée c’est qu’effectivement, si vous avez 1000000 de documents ou même genre, 100000 documents, vous posez une question, ce que vous allez faire c’est créer un embeding pour votre question, vous pouvez créer un embading pour tous les documents dans votre data base. Donc si vous avez 100000 documents, vous avez 100000 embadings, vous Regardez les plus proches, donc les plus pertinents, donc vous prenez par exemple le le top 10 des documents. Des documents qui sont a priori les plus pertinents vis-à-vis de votre question, ce que vous pouvez faire, c’est les convertir en token. Mettre ces 10 documents convertis en token en entrée du modèle après la question et votre modèle peut ensuite générer une réponse qui se base sur la question et sur les documents qui ont été mis en contexte. Mais pour pouvoir faire ça, donc c’était histoire d’embading que langue chaîne propose de faire aussi, il faut avoir un modèle qui soit capable de prendre. Bah au moins 10 documents en entrée si les documents font plusieurs pages chacun bon Ben il faut être capable de les tokeniser et puis de les mettre en entrée du modèle donc ça c’est possible que si modèle un spad intention qui est suffisamment grand après, vous pouvez effectivement faire des chunks qui sont plus petits, mais à un moment donné on a quand même envie d’avoir enfin des des paragraphes qui sont pas minuscules parce que sinon le modèle aura pas ces informations pour répondre aux questions qu’on nous pose bien sûr c’est quoi la suite pour mistralai et pour aux travaux sur les LLM Donc on va continuer à open, sourcer d’autres modèles. Sur une de manière assez fréquente, donc ça c’était juste le premier d’une longue série et voilà et Ben bon courage. Merci Guillaume.
– Guillaume — 37:12 :
Merci.
– Guillaume — 37:13 :
Vous venez d’entendre Guillaume lampe, Chief Scientist Officer chez Mistral Ay sur Data driven One on One. Merci d’avoir écouté.