La nouvelle IA de Google génère plus de 1 000 jetons par seconde (DiffusionGemma)
BBetter Stack
Computing/SoftwareVideo & Computer Games
Transcript
00:00:00Google fait beaucoup parler de lui dernièrement. La semaine dernière, j'ai fait une vidéo sur leur modèle
00:00:05Gemma 4 révolutionnaire sans encodeur, et cette semaine, ils ont sorti un autre modèle incroyablement innovant. Il s'appelle Diffusion
00:00:11Gemma, et ce modèle est fulgurant. Il est capable de générer plus de mille jetons
00:00:18par seconde, et la raison pour laquelle il en est capable, c'est qu'il génère du texte d'une manière
00:00:23complètement différente de tout autre modèle que vous avez pu utiliser auparavant. Dans cette vidéo, nous allons donc examiner
00:00:29Diffusion Gemma, voir comment il fonctionne et je vous montrerai également comment vous pouvez le tester par vous-même.
00:00:35Ça va être très amusant, alors plongeons dans le vif du sujet.
00:00:41Tous les modèles linguistiques avec lesquels vous avez interagi fonctionnent de la même manière fondamentale. Ils sont auto-régressifs,
00:00:48ce qui est un terme sophistiqué pour dire qu'ils génèrent un jeton à la fois, de gauche à droite. Ils écrivent un mot,
00:00:54puis ils examinent tout ce qui a été écrit jusqu'à présent et prédisent le mot suivant, et le cycle
00:00:59se répète. Et la façon dont cela fonctionne pour les grands modèles commerciaux comme Claude ou GPT, c'est que lorsqu'un serveur
00:01:06génère un jeton, le plus clair du temps n'est pas consacré au calcul, mais au chargement des poids du modèle
00:01:12depuis la mémoire. Et c'est assez inefficace si vous ne servez qu'un seul utilisateur. C'est pourquoi les serveurs regroupent des centaines
00:01:19d'utilisateurs, chargent les poids une seule fois et les exécutent pour tout le monde en même temps. Ainsi,
00:01:25vous pouvez servir 256 utilisateurs avec un seul chargement en mémoire. Mais lorsque vous exécutez un modèle localement, vous êtes le seul utilisateur,
00:01:33donc personne n'est là pour être regroupé avec vous. Le GPU charge la partie massive des poids, effectue un tout petit
00:01:39calcul pour produire un jeton, puis reste inactif avant de tout recommencer. En termes techniques,
00:01:46cela s'appelle être limité par la mémoire (memory bound). Votre coûteux GPU passe la majeure partie de son temps à attendre le prochain
00:01:52jeton au lieu de réellement calculer. Google DeepMind s'est donc penché sur ce problème et a posé une question
00:01:58intelligente : si le cloud comble le temps d'inactivité en servant 256 utilisateurs à la fois, que se passerait-il si nous comblions ce temps
00:02:07d'inactivité pour un seul utilisateur ? Au lieu d'un jeton pour 256 personnes, que se passerait-il si nous générions 256 jetons pour une
00:02:16personne, tous en même temps ? C'est toute l'idée derrière Diffusion Gemma. Au lieu d'écrire mot après mot,
00:02:23le modèle commence avec une toile (canvas), qui est une ligne de 256 jetons de remplacement complètement aléatoires. Donc, ce n'est que
00:02:31du bruit. Et son travail consiste à corriger cette toile, toutes les positions à la fois, et à la transformer en vrai texte. Ainsi, en prédisant
00:02:38les 256 jetons en un seul coup, vous donnez à votre GPU une grosse charge de travail réel au lieu de le laisser inactif. De cette façon,
00:02:46vous faites passer le modèle d'une limitation par la mémoire à une limitation par le calcul, et toute cette puissance inutilisée est enfin exploitée.
00:02:53Mais ce n'est pas aussi simple qu'il y paraît. Prédire 256 jetons à la fois est vraiment difficile.
00:03:01Car comment le modèle peut-il deviner le jeton numéro 254 alors qu'il n'a aucune idée de ce que sont devenus les jetons
00:03:091 à 253 ? C'est exactement ce qui se passe. Les premiers jetons sont bons, mais plus on avance,
00:03:15plus tout cela sombre dans le non-sens. Mais que se passerait-il si, au lieu de faire un seul passage, le modèle en faisait
00:03:21plusieurs ? C'est là l'astuce clé. Le modèle passe sur la toile encore et encore, mais maintenant il
00:03:28peut voir ses propres suppositions précédentes. Les jetons qu'il a prédits avec confiance deviennent des indices contextuels qui
00:03:35aident à corriger les jetons plus confus. Et le plus cool, c'est qu'il n'a besoin que de quelques passages. Bien moins de passages que
00:03:42le nombre total de 256 jetons. C'est exactement de là que vient la vitesse du modèle. Vous avez probablement déjà vu
00:03:49cette astuce auparavant. Cela s'appelle la diffusion. Vous partez d'un bruit et vous l'affinez étape par étape. Et
00:03:55c'est exactement la même idée qui alimente les générateurs d'images par IA. La façon dont le modèle l'apprend est
00:04:01en ajoutant délibérément du bruit à de vraies images lors de l'entraînement, puis en apprenant à prédire et à soustraire ce bruit.
00:04:07Mais comment appliquer ce même concept au texte ? C'est là que réside la difficulté. Car avec une image,
00:04:14le bruit est facile. Rendre un pixel un peu plus rouge ou bleu. Mais avec du texte, comment rendre le mot
00:04:19« le » un peu moins « le » ? Que signifie même ce bruit pour un mot ? Eh bien, DeepMind a trouvé
00:04:27quelque chose appelé « uniform state diffusion » (diffusion d'état uniforme). Au lieu de jouer avec les lettres, vous traitez le mot
00:04:32remplacé au hasard comme étant le bruit. Pour corrompre votre texte d'entraînement, vous remplacez certains vrais mots par des mots
00:04:38aléatoires. Et le travail du modèle consiste à comprendre quels mots sont des déchets et à les corriger progressivement par plusieurs passages.
00:04:45Il existe en fait une version plus simple pour faire cela, appelée diffusion par masquage, qui efface simplement les jetons.
00:04:51Mais celle-ci présente un gros défaut. Une fois que le modèle s'est engagé sur un mot, il est bloqué pour toujours. Il a le même
00:04:57problème que les modèles auto-régressifs. Mais la diffusion d'état uniforme résout cela en gardant toujours une sorte de jeton dans
00:05:04chaque position. Ainsi, un modèle peut examiner un mot qu'il a accepté trois étapes auparavant, décider s'il ne convient
00:05:10plus et le remplacer. Nous pouvons donc essentiellement le corriger tout du long. Mais cette solution
00:05:15a aussi un piège. La diffusion nécessite un encodeur pour comprendre votre invite et un débruiteur pour nettoyer la
00:05:23toile. DeepMind a donc développé un patch encodeur-débruiteur. Il est construit sur leur modèle existant de 26 milliards
00:05:30de paramètres GEMMA4, et il bascule entre les deux modes lors de la génération de votre réponse. En mode encodeur,
00:05:36le modèle lit votre invite, essaie d'en extraire un peu de contexte et de conseils. Il recueille tout cela
00:05:42dans un cache KV, puis le transmet directement au débruiteur. Le travail du débruiteur consiste essentiellement à
00:05:49nettoyer la toile. Il fait cela en faisant deux choses. D'abord, souvenez-vous de la façon dont un LLM normal produit un
00:05:56score de confiance ou un logit pour chaque position, mais les rejette tous sauf le dernier ? Soit dit
00:06:02en passant, si vous êtes confus ici, j'ai aussi fait une vidéo il y a quelque temps expliquant comment les LLM fonctionnent plus
00:06:07en détail. Alors regardez cette vidéo si cela vous intéresse. Essentiellement, Diffusion GEMMA ne rejette pas
00:06:13les scores. Il conserve tous ces scores de confiance parce que chaque position sur la toile a besoin de sa propre prédiction.
00:06:19Et deuxièmement, ce débruiteur n'utilise pas l'attention causale, qui est la règle selon laquelle un mot ne peut
00:06:25regarder que vers l'arrière, ce qui est la façon dont fonctionnent les modèles auto-régressifs. À la place, il la remplace par une attention
00:06:31bi-directionnelle. Donc, maintenant, chaque jeton peut voir tous les autres jetons dans toutes les directions. Ainsi, pour chaque position,
00:06:38vous appliquez ces scores de confiance, regardez les autres jetons et nettoyez la toile lentement, étape par étape.
00:06:44C'est ainsi que Diffusion GEMMA est capable d'atteindre sa vitesse incroyable de plus de 1000 jetons par seconde
00:06:51sur un GPU H100. Maintenant, je dois être franc avec vous. Ce n'est pas une solution miracle. Avec ces nouvelles tactiques,
00:06:58Diffusion GEMMA échange essentiellement la qualité contre la vitesse. Pour un travail de qualité maximale, le GEMMA 4 standard
00:07:05reste un meilleur choix. Ce modèle est construit spécifiquement pour des tâches locales critiques comme l'édition en ligne, le remplissage de code
00:07:13ou l'itération rapide. Et il est particulièrement fort pour les tâches non linéaires comme remplir le milieu
00:07:19d'un bloc de code ou même résoudre un puzzle de Sudoku, ce pour quoi les modèles normaux de gauche à droite sont vraiment assez mauvais.
00:07:26Tout cela semble fascinant, mais testons-le par nous-mêmes et voyons comment cela fonctionne en action.
00:07:33Google a ouvert le code source des poids sous licence Apache 2.0 sur Hugging Face.
00:07:38Donc, si vous avez un GPU puissant comme une RTX 5090, vous pourriez essayer de l'exécuter localement. Et il existe aussi une
00:07:44recette spéciale pour VLLM que vous pouvez exécuter sur Docker pour rationaliser ce processus. Mais je suis vraiment curieux de
00:07:51voir si ce modèle peut vraiment atteindre plus de 1000 jetons par seconde. Donc, pour ce test, je vais essayer d'exécuter
00:07:58le modèle sur un GPU H100 en utilisant un conteneur RunPod et voir comment ça se passe. Soit dit en passant, j'ai aussi
00:08:04publié un modèle Diffusion GEMMA pour l'exécuter sur RunPod. Donc, si vous voulez reproduire ce test,
00:08:10tout ce que vous avez à faire est d'exécuter ce modèle lors de la création d'un nouveau pod. Donc, pour faire ce test sur RunPod,
00:08:15je vais choisir le conteneur H100. Et comme je l'ai mentionné avant, j'ai créé un modèle Diffusion GEMMA
00:08:22que vous pouvez réutiliser. Donc, vous pouvez juste cliquer sur « volume disk » et ensuite cliquer sur « deploy »
00:08:28à la demande. Et cela prendra quelques minutes jusqu'à ce qu'il télécharge le conteneur et lance tout.
00:08:34Et si nous allons dans les journaux, si vous voyez « application startup complete », cela signifie que VLLM est prêt
00:08:40et qu'il est maintenant accessible via le port 8000. Si nous ouvrons ceci, vous verrez « detail not found »,
00:08:46mais ne vous en inquiétez pas. Cela signifie qu'il fonctionne réellement. Nous avons juste besoin de copier cette URL. Donc, pour
00:08:52configurer Diffusion GEMMA pour l'exécuter dans un terminal d'agent IA, quelque chose comme OpenCode, vous devez
00:08:58configurer vos paramètres OpenCode pour accéder au serveur distant. Donc, vous pouvez faire cela avec cette simple
00:09:04commande et cela ouvrira le fichier de configuration. Et ici, je spécifie simplement notre serveur RunPod et
00:09:11il a le modèle Diffusion GEMMA sélectionné. Et vous pouvez juste sauvegarder ce fichier et lancer OpenCode.
00:09:17Donc, dans ce test, je vais lui demander de générer un tableau de suivi des finances personnelles appelé « Ledger ».
00:09:24Et voyons à quelle vitesse il peut générer ça. Regardez ça. Instantanément, il commence à diffuser tout de suite.
00:09:34Regardez à quelle vitesse fulgurante c'est. Incroyable. Wow. C'est fou. Et ici dans les journaux,
00:09:43nous pouvons voir qu'il atteint en moyenne 700 jetons par seconde. Donc, pour la phase de sortie, ça a un peu baissé,
00:09:50mais pendant la phase de raisonnement, c'est monté jusqu'à 700 jetons par seconde. C'est fou. Alors ouvrons-le.
00:09:58OK. Donc ça ressemble à un tableau de bord. C'est sympa. OK. Nous avons effectivement quelques catégories
00:10:06et des trucs qui se passent ici. Si nous ajoutons quelque chose ici. Oh, il l'ajoute en tant que dépense. Donc les
00:10:13dépenses ne se mettent pas vraiment à jour. Donc ce n'est pas entièrement fonctionnel, mais au moins certaines parties sont interactives.
00:10:20Pour cette tâche suivante, voyons s'il peut réellement créer un jeu de style arcade.
00:10:26Alors lançons-le. Encore une fois, la vitesse est tout simplement folle. OK. Celui-ci prend un peu plus de temps.
00:10:36Nous avons effectivement deux fichiers ici. Intéressant, intéressant. OK. Donc il a remarqué une faute de frappe et il a ensuite
00:10:44re-traité le fichier HTML, ce qui est plutôt bien. OK. Très bien. Ouvrons celui-ci. Restart.
00:10:52Oh, wow. Celui-ci, il fonctionne. Oh, wow. C'est cool. Wow. Très sympa. C'est impressionnant. Donc le jeu est
00:11:03entièrement fonctionnel et il a fallu 14 secondes pour générer ce jeu. 14 secondes pour générer un jeu comme celui-ci.
00:11:11Donc, bien que leur page marketing disait que nous pourrions attendre des vitesses de 1000 jetons par seconde sur le H
00:11:18100. Ce n'était pas mon observation. Euh, je ne sais pas. Peut-être qu'il y a quelque chose que je devrais ajuster dans le
00:11:26modèle ou dans mes invites, mais néanmoins, je suis vraiment impressionné. C'est une bête. Donc voilà,
00:11:33les amis. C'est Diffusion Gemma en quelques mots. Je pense que celui-ci est l'une des versions les plus intéressantes
00:11:38de l'année car il prouve que vous pouvez prendre un paradigme de génération totalement différent du monde de l'image,
00:11:44l'appliquer à un modèle existant que vous avez déjà entraîné et débloquer de réels gains de vitesse pour des configurations
00:11:51locales à utilisateur unique. Et je pense que cela ouvre aussi la porte à toute une nouvelle famille de modèles locaux rapides et interactifs
00:11:58qui utilisent le plein potentiel de votre matériel au lieu de le laisser inactif. Alors, que pensez-vous
00:12:04de Diffusion Gemma ? L'avez-vous essayé ? L'utiliserez-vous ? Dites-le-nous dans la section des commentaires ci-dessous.
00:12:09Et les amis, si vous aimez ces types d'analyses techniques, faites-le moi savoir en cliquant sur
00:12:14le bouton « J'aime » sous la vidéo. Et n'oubliez pas non plus de vous abonner à notre chaîne. C'était
00:12:19Andrus de Betterstack et je vous verrai dans les prochaines vidéos.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video