Ce minuscule outil fait tourner un modèle d'IA de 744B sur du matériel standard (colibrì)
BBetter Stack
Computing/Software
Transcript
00:00:00Il s'agit d'un modèle de langage de 744 milliards de paramètres, le GLM 5.2.
00:00:07Pour situer le contexte, c'est la même catégorie de taille que les modèles de pointe exécutés dans des centres de données pleins de GPU.
00:00:14Maintenant, et si vous pouviez exécuter ce modèle localement sur votre matériel grand public ?
00:00:19Cela semble presque impossible, mais ce développeur, Vincenzo Fornaro,
00:00:24vient de créer un outil appelé Calibri qui vous permet de faire exactement cela.
00:00:28Mais comment est-ce seulement possible ?
00:00:31Comment Vincenzo a-t-il fait cela et comment est-ce que ça fonctionne ?
00:00:34Eh bien, ce sont toutes de bonnes questions que nous allons explorer dans cette vidéo
00:00:38et nous allons le tester sur deux configurations matérielles différentes pour voir à quel point il est puissant.
00:00:44Ça va être très amusant, alors plongeons-nous dedans.
00:00:51Normalement, pour exécuter un modèle de 700 milliards de paramètres,
00:00:55vous auriez besoin de faire tenir tous ses poids en mémoire en même temps.
00:00:59Et avec une quantification en entier 4, 744 milliards de paramètres représentent encore des centaines de gigaoctets.
00:01:06C'est pourquoi les grands modèles résident sur ces gros serveurs et que le matériel pour les héberger est coûteux et spécialisé.
00:01:13La question évidente est donc : comment exécuter quelque chose qui ne rentre pas ?
00:01:17Eh bien, l'astuce commence par l'architecture du modèle.
00:01:20GLM 5.2 est un modèle de type mélange d'experts.
00:01:23Nous avons déjà beaucoup parlé des modèles de mélange d'experts sur cette chaîne,
00:01:27mais au cas où vous auriez besoin d'un rappel, voici en gros comment cela fonctionne.
00:01:31Au lieu d'un seul réseau dense géant, il est divisé en milliers de sous-réseaux spécialistes plus petits appelés experts.
00:01:39Et pour un jeton donné, le modèle n'utilise qu'une minuscule fraction de ces experts.
00:01:43Sur un total de 744 milliards de paramètres, seuls 40 milliards sont réellement actifs par jeton.
00:01:51Et cela fait environ 5 %.
00:01:52Ainsi, même si le modèle entier est énorme, la quantité de travail et de mémoire dont vous avez réellement besoin à chaque instant est bien plus petite.
00:02:02Et Calibri est entièrement conçu pour exploiter cet écart.
00:02:06Calibri traite le stockage de votre machine comme une grande hiérarchie de mémoire.
00:02:10Vos GPU, votre mémoire VRAM, votre mémoire RAM système et vos SSD NVMe sont disposés en couches comme un cache.
00:02:17Les composants denses du modèle, les parties utilisées pour chaque jeton, sont en fait petits, environ 17 milliards de paramètres.
00:02:23Et cela représente moins de 10 gigaoctets avec une quantification en entier 4.
00:02:27Et ceux-ci restent résidents en RAM tout le temps.
00:02:30Quant aux experts, ils résident sur votre SSD.
00:02:33Lorsque le modèle a besoin d'un expert spécifique pour un jeton,
00:02:36Calibri extrait juste cet expert du disque, l'utilise et le met en cache.
00:02:41Et l'ensemble est écrit en C pur sans aucune dépendance externe.
00:02:46Et c'est ce qui le rend si léger.
00:02:48Maintenant, diffuser un modèle à partir d'un disque dur donne l'impression que ce devrait être soit douloureusement lent, soit imprécis.
00:02:55Eh bien, Calibri a quelques astuces pour contrer ces deux problèmes.
00:02:58Premièrement, il dispose d'un cache d'apprentissage.
00:03:00Le moteur enregistre vers quels experts vos invites sont réellement acheminées dans un fichier à côté du modèle.
00:03:06Au démarrage, il épingle automatiquement les experts les plus sollicités dans la RAM disponible.
00:03:11Ainsi, plus vous l'utilisez pour un type de tâche particulier, mieux il se met en cache pour cette tâche.
00:03:16Deuxièmement, il y a le décodage spéculatif.
00:03:19Le modèle possède une tête de prédiction multi-jeton native qui devine plusieurs jetons à l'avance afin de générer plus rapidement qu'un jeton à la fois.
00:03:27Et troisièmement, et c'est un point important, il préserve la qualité.
00:03:31La passe avant est validée pour être exacte au niveau des jetons par rapport à une implémentation de référence transformers.
00:03:37En termes simples, Vincenzo a vérifié que cette version quantifiée en streaming produit les mêmes sorties que la référence en pleine précision.
00:03:45Et il utilise également un cache d'attention compressé.
00:03:48L'attention MLA qui réduit le cache KV d'environ 57 fois, ce qui explique en grande partie pourquoi l'empreinte mémoire reste si faible.
00:03:57Maintenant, le plus grand obstacle pour tester cet outil est de trouver de l'espace libre.
00:04:01Et je pèse mes mots.
00:04:02GLM 5.2 fait environ 357 gigaoctets.
00:04:06Et pour le tester correctement, je devrais libérer près de la moitié de l'espace SSD de mon MacBook, ce que je ne peux pas faire.
00:04:13Donc, avant même de penser à la RAM et aux GPU, le premier mur sur lequel vous allez probablement vous heurter est celui-ci.
00:04:19Avez-vous seulement la place pour une telle chose ?
00:04:21Alors, comme je n'avais pas les 357 gigaoctets supplémentaires en interne, j'ai pris un disque externe, un SSD portable Samsung avec une vitesse de transfert d'environ 1 gigaoctet par seconde.
00:04:33Et j'ai placé le modèle sur ce disque à la place.
00:04:35Et je tiens à le signaler dès maintenant car c'est important.
00:04:38Cette décision a en fait affecté tout mon premier test.
00:04:42Un disque externe via USB est beaucoup plus lent qu'un disque intégré à votre machine.
00:04:48Nous parlons peut-être d'un gigaoctet par seconde par rapport à sept ou plus en interne.
00:04:53Et rappelez-vous, toute l'astuce de Calibri est de diffuser constamment des morceaux du modèle depuis le disque.
00:04:59Donc, si le disque est lent, tout est lent.
00:05:02Gardez donc cette pensée à l'esprit car nous allons voir exactement ce que je veux dire.
00:05:06Mon premier test s'est donc déroulé sur mon MacBook doté d'une puce M2 Max, de 32 gigaoctets de RAM, et le modèle s'exécutant en externe sur ce disque SSD.
00:05:15Je suis resté simple en lui posant la question : quelle est la capitale de la Belgique ?
00:05:19Et voici la bonne nouvelle.
00:05:20Ça fonctionne.
00:05:21Il me répond vraiment.
00:05:22Il me dit que la capitale est Bruxelles, en exécutant correctement un modèle de 744 milliards de paramètres sur un ordinateur portable.
00:05:29Cette partie est donc vraiment impressionnante.
00:05:31La nouvelle un peu moins bonne, c'est la vitesse.
00:05:34J'ai attendu plus de deux minutes juste pour qu'il sorte son premier mot.
00:05:38Deux minutes.
00:05:39Et une fois lancé, il avançait au rythme d'environ un dixième de jeton par seconde.
00:05:44Pour situer le contexte, un jeton correspond grosso modo à un mot ou à un fragment de mot.
00:05:47Nous parlons donc d'un mot toutes les 10 secondes.
00:05:51Et pour être franc, c'était un démarrage à froid.
00:05:54Pour la première question, rien n'était encore en cache.
00:05:56Il a donc dû aller chercher chaque morceau du modèle sur ce disque à partir de zéro.
00:06:01Et Calibri garde bien les morceaux les plus utilisés en mémoire au fur et à mesure.
00:06:05Il se réchauffe donc et accélère un peu avec l'utilisation.
00:06:09Mais comme vous le verrez, cela n'aide que si vous avez la RAM pour les stocker.
00:06:13Et sur mon Mac, je ne l'ai vraiment pas.
00:06:16Maintenant, voici la partie que j'aime vraiment.
00:06:18Calibri dispose de cet écran de profilage qui détaille où tout ce temps est réellement passé.
00:06:22Le temps que l'ordinateur a passé à réfléchir ou à faire les calculs par rapport au temps passé
00:06:28simplement planté là à attendre que le morceau suivant du modèle se charge depuis le disque.
00:06:32Sur le Mac, le tour complet a donc pris environ 158 secondes.
00:06:36Et sur ces 158 secondes, environ 145 d'entre elles, soit plus de 80 %, correspondaient à de l'attente pure.
00:06:43L'attente du disque.
00:06:44Les calculs réels ou la véritable partie de réflexion n'ont pris qu'environ sept secondes au total.
00:06:50Sept secondes de travail et deux minutes et demie à faire la queue.
00:06:54Alors, que se passe-t-il réellement ici ?
00:06:56Eh bien, le M2 Max est une puce CPU très rapide.
00:06:59Le problème ne vient pas de là.
00:07:01Le problème est que le modèle est si grand qu'il ne rentre pas dans les 32 gigaoctets maximum de RAM.
00:07:06Il doit donc sans cesse retourner au disque pour récupérer le morceau dont il a besoin ensuite.
00:07:11Et dans mon cas, le disque est un lecteur externe lent, que j'ai été forcé d'utiliser parce que j'ai manqué
00:07:17d'espace.
00:07:17L'ordinateur passe donc le plus clair de son temps à attendre et presque aucun temps à travailler réellement sur la
00:07:23requête.
00:07:24D'accord, alors pour le deuxième test, donnons-lui une vraie machine.
00:07:28Le deuxième test concerne donc ma station de travail puissante.
00:07:30Elle possède une RTX 5090 et 64 gigaoctets de RAM.
00:07:35Et cette fois, j'ai chargé le modèle sur un disque interne rapide.
00:07:39Heureusement, sur cette machine, j'avais effectivement 350 gigaoctets d'espace libre pour le charger sur le
00:07:45disque interne.
00:07:46Et cette fois, j'ai demandé quelque chose d'un peu plus consistant.
00:07:49Explique l'intrication quantique en termes simples.
00:07:52Et la réponse était vraiment super.
00:07:54Il m'a donné cette petite explication claire avec des pièces de monnaie magiques.
00:07:57C'était donc un résultat véritablement utile.
00:07:59Et côté vitesse, il a atteint environ 0,8 jeton par seconde.
00:08:03Et le premier mot est apparu en environ 17 secondes au lieu des deux minutes entières.
00:08:09C'est donc environ huit fois plus rapide que sur mon Mac.
00:08:12Et encore une fois, regardons l'écran de profilage car il raconte la même histoire, mais de l'
00:08:17autre côté.
00:08:18Vous vous souvenez sur le Mac, plus de 80 % du temps n'était que de l'attente sur le disque ?
00:08:23Eh bien, sur cette station de travail puissante, l'attente chute à environ 48 %, soit pratiquement divisée par deux.
00:08:29Et pour la première fois, vous voyez que la machine passe réellement de vrais morceaux de temps à faire des
00:08:34maths au lieu de simplement patienter.
00:08:36Le calcul s'est donc vraiment amélioré ici.
00:08:39Alors pourquoi celle-ci est-elle bien meilleure ?
00:08:41Eh bien, il serait tentant de dire, eh bien, évidemment parce qu'elle possède une RTX 5090.
00:08:46Mais ce n'est pas vraiment la raison.
00:08:48Vous voyez, la raison est que cette machine a deux fois plus de RAM et qu'elle était sur un disque interne plus
00:08:54rapide, donc une portion beaucoup plus grande du modèle peut simplement résider en mémoire, prête à l'emploi.
00:09:00Moins de retours au disque, moins d'attente et plus de travail réel accompli.
00:09:06La 5090 était donc en fait dans un coin, ne transpirant pratiquement pas à ce stade.
00:09:10Et c'est ce que je ne m'attendais pas à voir en me lançant dans cette expérience.
00:09:14On suppose que la carte graphique est ce qui fait tout, n'est-ce pas ?
00:09:19Eh bien, ce n'est pas le cas.
00:09:20Le facteur numéro un qui retient ces modèles sur du matériel normal est en réalité la mémoire.
00:09:25Quelle quantité du modèle vous pouvez garder en RAM à la fois, pour ne pas constamment attendre
00:09:30le disque.
00:09:31Ce qui est honnêtement une conclusion plutôt rude en ce moment, car si vous avez acheté de la RAM
00:09:36récemment, vous savez qu'elle est devenue vraiment chère.
00:09:38Il n'est donc pas étonnant que tous ces fournisseurs de cloud rachètent toute la RAM sur laquelle ils peuvent mettre
00:09:44la main.
00:09:44En gros, ce n'est pas la carte graphique tape-à-l'œil qui vous y amène, c'est la RAM.
00:09:49Alors, peut-on exécuter un modèle de pointe de 744 milliards de paramètres sur du matériel grand public ?
00:09:55Oui, point final.
00:09:56Je l'ai fait deux fois, sur un ordinateur portable et sur mon bureau, et les deux m'ont donné de vraies réponses correctes.
00:10:03Il y a quelques années, cela aurait semblé absurde.
00:10:06Mais Vincenzo l'a véritablement fait.
00:10:08Cependant, la vérité honnête est que l'exécuter et l'exécuter correctement sont deux choses très différentes.
00:10:14Si vous regardez les propres benchmarks de Vincenzo sur le site de Calibri, les configurations qui obtiennent
00:10:19réellement des vitesses utilisables restent des machines sérieuses.
00:10:22Les configurations les plus rapides sont du genre cluster à 6 GPU ou serveur double Xeon avec un téraoctet complet
00:10:29de RAM.
00:10:30Et remarquez que le serveur avec un téraoctet de RAM et sans GPU sophistiqué bat à plate couture une seule RTX
00:10:375090.
00:10:38Tout revient donc à la mémoire, les amis.
00:10:41Le rêve d'un modèle de pointe ronronnant sur un ordinateur portable moyen n'est donc pas tout à fait là.
00:10:46Mais nous en sommes très, très proches.
00:10:48Voilà donc qui est fait, les amis.
00:10:50C'étaient tous mes points forts obtenus lors du test de Calibri.
00:10:54Mais je suis curieux de savoir si vous l'avez essayé ou si vous avez trouvé d'autres moyens astucieux de
00:10:59faire tourner des modèles de pointe sur du matériel grand public.
00:11:02Je suis vraiment curieux de connaître vos avis, alors dites-nous ce que vous en pensez dans les commentaires ci-
00:11:06dessous.
00:11:06Et les amis, si vous aimez ce genre d'analyses techniques, faites-le-moi savoir en pulvérisant
00:11:10ce bouton J'aime sous la vidéo.
00:11:13Et n'oubliez pas non plus de vous abonner à notre chaîne.
00:11:15C'était Andris de BetterStack et je vous dis à très vite dans de prochaines vidéos.
00:11:32vous