
RWKV-7 (Goose) : Dans les coulisses de la pull request qui le chargerait enfin dans Transformers
- DeepSeekNOUVEAUDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.15 / $0.29 par million de tokens
- z-aiNOUVEAUZ.ai: GLM 5.32026-08-1860Intelligence75Code
- obsidianNOUVEAUQwen3.8 27B2026-08-1552Intelligence68Code
- qwenNOUVEAUQwen: Qwen3.8 27B (free)2026-08-13qwen/qwen3.8-27b-free
- deepseekNOUVEAUDeepSeek: DeepSeek V4 Pro 08132026-08-1253Intelligence69Code
- grokNOUVEAUSpaceXAI: Grok 4.62026-08-1261Intelligence77Code
- metaMeta: Muse Spark 1.22026-08-0557Intelligence72Code
- qwenQwen: Qwen3.8 Max2026-08-0358Intelligence72Code
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3152Intelligence69Code
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 par million de tokens
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
- anthropicAnthropic: Claude Opus 52026-07-2463Intelligence78Code
- googleGoogle: Gemini 3.6 Flash2026-07-2152Intelligence69Code
- googleGoogle: Gemini 3.5 Flash-Lite2026-07-2137Intelligence49Code
- metaMeta: Muse Spark 1.12026-07-1653Intelligence71Code
- kimiMoonshotAI: Kimi K32026-07-1560Intelligence76Code
- openaiOpenAI: GPT-5.6 Luna2026-07-0952Intelligence71Code
- openaiOpenAI: GPT-5.6 Terra2026-07-0957Intelligence77Code
- openaiOpenAI: GPT-5.6 Sol2026-07-0961Intelligence77Code
Le modèle RWKV le plus téléchargé sur Hugging Face le mois dernier n'était pas RWKV-7 (Goose), l'architecture que le projet a publiée depuis mars 2025, et ce n'était pas non plus RWKV7-G1, la série de raisonnement entraînée sur cette base. C'était RWKV/rwkv-4-169m-pile : un checkpoint RWKV-4 de 169 millions de paramètres datant de mai 2023, avec 8 824 téléchargements au cours des 30 jours précédant le 5 août 2026, contre 215 pour la version 1,5B RWKV-7 Goose World-3 et 316 pour la 2,9B. Le modèle de 2023 n'est pas meilleur. C'est celui qui se charge avec un simple appel from_pretrained et rien d'autre installé.
Le 4 août 2026, un contributeur nommé Hakureirm a ouvert la pull request #47780 sur huggingface/transformers, intitulée "Add RWKV-7 (Goose)". Au 5 août, elle est ouverte, non revue et non fusionnée, et il s'agit de la deuxième tentative — une proposition antérieure, #46984, avait été refusée. Rien n'a abouti, et cet article ne doit pas être lu comme une annonce de sortie. Mais le diff est public, et il aborde la chose la plus ennuyeuse et la plus décisive qui se dresse entre la lignée de LLM sans attention la plus ancienne et les piles que la plupart des équipes utilisent réellement : un chargeur.
Ce qui suit distingue trois types d’affirmations, car la couverture de RWKV les mélange généralement. Il y a ce qui est vérifiable dans la pull request et sur le Hub, et que vous pouvez vérifier vous-même. Il y a ce que le projet RWKV rapporte sur ses propres modèles, lors de ses propres évaluations. Et il y a le vaste ensemble de questions auxquelles personne n’a répondu publiquement, et c’est là que se trouve l’essentiel du risque intéressant.
Que contient réellement la pull request ?

Les faits mécaniques, lus sur la page PR et l'API GitHub le 5 août 2026 :
• Portée — trois commits, 12 fichiers modifiés, 4 423 lignes ajoutées et aucune supprimée, de la branche add-rwkv7-upstream vers huggingface:main. Étiqueté « Nouveau modèle ». Aucun assigné, aucun jalon.
• Ce que cela ajoute — RWKV-7 sous la forme de deux classes publiques, Rwkv7Model et Rwkv7ForCausalLM, ainsi qu'un Rwkv7Cache construit sur LinearAttentionLayer de la bibliothèque. Le dtype de l'état WKV est configurable indépendamment du dtype du modèle, ce qui importe car l'état récurrent est l'endroit où la dérive numérique s'accumule dans cette famille.
• Comment ça marche — PyTorch portable, sans dépendance à un moteur d’exécution tiers. Le préremplissage utilise une forme parallèle par blocs de la récurrence ; le décodage suit un chemin séquentiel traitant un jeton à la fois. Les noms des paramètres suivent l’implémentation de référence RWKV d’origine plutôt que d’être renommés pour ressembler à un transformer.
• Posture de test — au-delà des mixins de modèle standard, un test d'intégration qui correspond au runtime propre de BlinkDL, jeton pour jeton, plus une implémentation de référence NumPy qui ne partage aucun code avec le fichier de modélisation. Le bot de récapitulation CI du dépôt indique que la dernière exécution est un succès : 16 jobs, 179 151 tests, zéro échec, 16 heures 9 minutes de calcul.
• Où en est-on — la revue a été demandée à ArthurZucker et Rocketknight1 ; la page indique qu'au moins une revue approuvée est requise pour fusionner, et aucune n'a été donnée. L'API de GitHub décrivait toujours l'état de fusion comme « instable » lors de notre lecture, et un bot destiné aux mainteneurs a demandé que les suites de tests lents (auto et rwkv7) soient exécutées avant la fusion. En d'autres termes : vert sur le CI rapide, mais pas encore validé par un humain.
La partie la plus intéressante de la description est la concession. La tentative précédente, #46984, a été refusée parce que les checkpoints RWKV-7 publiés ne suivaient pas les conventions de Transformers, et la propre formulation de l'auteur est que « cette objection était correcte ». Le problème, exposé dans la PR, est que les poids RWKV-7 sur le Hub se présentent sous deux formes inutilisables par la bibliothèque :
• Les dépôts PTH — fichiers .pth bruts, pas de safetensors. Une implémentation de bibliothèque ne peut pas les charger, et les fichiers pickle PyTorch sont exactement ce qu'une revue de sécurité dans une grande entreprise refusera.
• Les dépôts HF — ceux-ci fournissent bien un model.safetensors, mais chacun inclut également un modeling_rwkv7.py et un auto_map, si bien que les charger exige trust_remote_code. C'est une exécution de code à distance comme condition de l'inférence, ce qui explique pourquoi tant de listes de contrôle d'entreprise s'arrêtent là.
Donc, la PR fait deux choses à la fois : elle ajoute un fichier de modélisation et elle pointe vers un nouvel ensemble de conversions réalisées directement à partir des versions .pth canoniques de BlinkDL qui suivent la structure standard — safetensors uniquement, pas de pickle, pas de code distant, un config.json normal portant les architectures et le model_type — allant de 0,1B à 7,2B. Le plus petit, Hakureirm/rwkv7-168m-pile-hf, a tous ses 399 tenseurs vérifiés comme bit-identiques par rapport au .pth source, plutôt que par sondage. Ce checkpoint est un modèle Pile, donc son tokenizer est le tokenizer rapide GPT-NeoX-20B ordinaire plutôt que le vocabulaire RWKV World — la même raison pour laquelle la page RWKV existante de la bibliothèque documente également un checkpoint Pile.
Pourquoi un checkpoint de 2023 se télécharge plus que l'architecture actuelle

Transformers est à la version 5.14.1, publiée le 16 juillet 2026. Si vous recherchez RWKV dans sa documentation, vous obtenez exactement une page de modèle, décrivant « le modèle RWKV (version 4) », contribué il y a des années, avec RWKV/rwkv-4-169m-pile comme exemple et un vocabulaire par défaut de 50 277 jetons. Il n'y a pas de pages pour RWKV-5, RWKV-6 ou RWKV-7. Trois générations d'architecture ont été publiées depuis que le support RWKV de la bibliothèque a été écrit, et aucune d'entre elles n'y figure.
Les chiffres de téléchargement montrent ce que l’écosystème a fait à ce sujet : il a contourné la bibliothèque. Classés par téléchargements sur les 30 derniers jours, les principaux dépôts RWKV-7 sont les versions .pth brutes de BlinkDL (rwkv7-g1 à 8 288, rwkv-7-world à 4 489) et une épaisse couche de quantifications GGUF communautaires du G1 de 13,3B — plusieurs uploaders distincts qui réalisent chacun entre un et trois mille téléchargements par mois. Les miroirs officiels au format transformers se situent deux ordres de grandeur en dessous des poids bruts. Le miroir flash-linear-attention du G1 de 2,9B atteint 1 843.
Ce pattern s'explique simplement. llama.cpp a intégré le support de RWKV v7 le 17 mars 2025 — un kernel GGML_OP_RWKV_WKV7 avec des backends CPU, CUDA, SYCL, Vulkan et Metal — environ un jour après la publication de l'article. Si vous vouliez exécuter RWKV-7 sur votre propre machine, le chemin rapide était GGUF, et cela dure depuis seize mois. Le chemin qui n'existait pas était celui que chaque script de fine-tuning, chaque adaptateur PEFT, chaque harnais d'évaluation et chaque wrapper de service interne suppose : AutoModelForCausalLM.from_pretrained, sans aucun flag.
Ce qu'est réellement RWKV-7 (Goose)
RWKV-7 est un réseau de neurones récurrent, et non un transformeur avec un noyau d’attention moins coûteux, et cette appellation prête constamment à confusion. Il fait avancer un état de taille fixe à travers la séquence au lieu d’un cache croissant des clés et valeurs passées. Concrètement, par rapport à un modèle d’attention standard :
• La mémoire augmente avec le contexte — le cache KV d'un transformer croît linéairement avec le nombre de jetons en cours de traitement ; RWKV-7 maintient un état dont la taille est fixée par l'architecture, et non par la conversation. Voilà tout l'argument d'efficacité.
• Coût par jeton — l'attention coûte plus par jeton à mesure que le contexte s'allonge ; le coût d'inférence par jeton de RWKV-7 est constant, ce qui explique pourquoi il continue d'apparaître dans les propositions edge et always-on-stream.
• Forme d'entraînement — contrairement à un RNN classique, la récurrence est parallélisable sur un bloc, de sorte que le pré-entraînement ne dégénère pas en une progression séquentielle. C'est ce que met en œuvre le chemin de préremplissage parallèle par blocs de la PR.
• Plafond de contexte — il n'y a pas de cache à faire sauter, donc le projet propose un contexte effectivement illimité. Ce qu'un état fixe ne peut pas faire, c'est contenir des détails illimités, ce qui est une vraie limitation plutôt qu'une note de bas de page.
La revendication architecturale de l'article, publié le 18 mars 2025 par Bo Peng, Yu Zhang, Songlin Yang et Ruichong Zhang sous le projet RWKV à la LF AI & Data Foundation, est une règle delta généralisée avec un gating à valeurs vectorielles, des taux d'apprentissage en contexte et une règle assouplie de remplacement de valeur, ainsi qu'un MLP simplifié (la matrice de gating supprimée, la dimension cachée élargie pour compenser). Le résultat théorique qui y est associé est la moitié la plus provocatrice : RWKV-7 peut effectuer le suivi d'état et reconnaître tous les langages réguliers tout en restant parallélisable à l'entraînement, ce qui, selon les auteurs, dépasse ce que les transformeurs peuvent accomplir sous les conjectures de complexité standard.
Tout est sous licence Apache 2.0. La famille que vous pouvez télécharger comprend 0,1B (12 couches, largeur 768), 0,4B (24 / 1024), 1,5B (24 / 2048), 2,9B (32 / 2560), 7,2B (32 / 4096) et 13,3B (61 couches, largeur 4096), toutes avec un vocabulaire World de 65 536 jetons et une taille de tête de 64. La série de base World a été entraînée sur un corpus multilingue de 3,1 billions de jetons ; la série G1 « GooseOne » poursuit cet entraînement sur World v3.5, un mélange élargi de 5,16 billions de jetons contenant davantage de romans, de textes web, de mathématiques, de code et de données de raisonnement. Les points de contrôle G1 ajoutent un mode de raisonnement à balise think, l'appel de fonctions JSON et le remplissage du milieu à partir de G1c. La dénomination est vraiment maladroite : G0 signifie moins d'une époque, G1 plus d'une, et les lettres de suffixe indiquent des révisions de données, les lettres plus récentes comportant de meilleures données.
Les nombres, et à qui ils appartiennent.
Voici l'état honnête des preuves. L'affirmation principale du benchmark — selon laquelle le modèle 2.9B a établi un nouvel état de l'art 3B sur des tâches multilingues et a égalé l'état de l'art 3B en anglais avec nettement moins de jetons d'entraînement — est celle de l'article lui-même, publié en mars 2025 et évalué par rapport aux modèles 3B de cette période. Il est passé par OpenReview, ce qui constitue un examen plus rigoureux qu'un article de blog de fournisseur, et il reste un résultat auto-déclaré sur un ensemble de comparaison vieux de quinze mois.
L'autre mesure publique du projet, UncheatableEval, est plus intéressante qu'une ligne de classement et ne reçoit presque aucune couverture. Plutôt que de noter des benchmarks à choix multiples qui fuient dans les ensembles d'entraînement, elle mesure le taux de compression sur des données qui n'existaient pas lors de l'entraînement du modèle : de nouveaux articles arXiv, de nouveaux dépôts GitHub, des actualités récentes. Cette conception rend la contamination beaucoup plus difficile, et RWKV affirme être compétitif avec des transformers de même taille sur ce point. Il s'agit néanmoins d'une évaluation que le projet réalise sur lui-même.
Ce qui n’existe pas, pour autant qu’on puisse le constater, c’est un score d’indice tiers indépendant pour un quelconque point de contrôle RWKV-7 — aucun agrégateur neutre n’a fait passer les 7,2B ou 13,3B dans le harnais d’évaluation utilisé pour les modèles de pointe. Les comparaisons que vous pouvez voir avec des modèles comme DeepSeek V4 Flash ou Qwen3.8-Max sont donc des erreurs de catégorie à double titre : personne n’a fait tourner RWKV-7 sur la même évaluation, et un RNN dense de 13,3B ne rivalise pas pour le même travail qu’un système de pointe. L’affirmation défendable est plus étroite et plus utile : de 1,5B à 13,3B, avec une mémoire constante, dans une douzaine de langues environ, avec des poids permissifs.
Exécuter RWKV-7 aujourd'hui, et ce que cela vous coûte

La page Hub de RWKV/RWKV7-Goose-World3-1.5B-HF est un bon aperçu des frictions actuelles. C'est un modèle BF16 de 1,52 milliard de paramètres avec le tokenizer RWKV World, sous licence Apache 2.0, taggué custom_code, répertoriant l'anglais, le chinois, le japonais, le coréen, le français, l'arabe, l'espagnol et le portugais. Ses instructions vous disent d'installer flash-linear-attention et une version récente de transformers avant le chargement. Et dans la barre latérale, là où un modèle hébergé afficherait des fournisseurs, il y est écrit sans détour : ce modèle n'est déployé par aucun fournisseur d'inférence.
Donc, vos options aujourd'hui sont toutes en libre-service :
• flash-linear-attention plus trust_remote_code — l'option la plus proche d'une utilisation normale du Hub, mais vous exécutez le code du dépôt et intégrez des kernels Triton, ce qui vous limite sur le plan matériel et sur tout ce qui implique une revue de sécurité.
• GGUF via llama.cpp — la voie la mieux prise en charge en pratique, y compris pour le 13.3B, et celle que les chiffres de téléchargement montrent que les gens adoptent réellement. Idéal pour l'inférence locale, pas une voie d'entraînement ou de fine-tuning.
• Le runtime propre au projet — le paquet pip rwkv et le dépôt de référence, le plus proche du canon, le plus éloigné des outils que votre équipe possède déjà.
Aucune de celles-là n'est une API que vous pouvez appeler, et il vaut la peine d'être direct quant à l'implication : RWKV-7 n'est pas sur OrcaRouter, car ce n'est pas un endpoint hébergé que nous puissions trouver où que ce soit. Si vous voulez RWKV-7, vous exécutez RWKV-7. Ce que nous pouvons dire honnêtement, c'est ce que cela implique pour le reste de la stack. Évaluer une architecture non éprouvée n'a un coût faible que si votre parcours de production ne dépend pas du résultat, et le moyen le moins coûteux de maintenir cela est de ne pas avoir d'intégration par fournisseur pour quoi que ce soit d'autre — une clé compatible OpenAI sur plus de 200 modèles, le prix catalogue du fournisseur répercuté directement avec une marge de 0 %, et un basculement automatique lorsqu'un fournisseur se dégrade. Ensuite, une expérience RWKV-7 auto-hébergée sur les deux charges de travail où la mémoire constante est réellement payante — un flux de longue durée, un assistant embarqué, un résumeur qui ne s'arrête jamais — est une expérience, pas une migration. Voilà la forme que la plupart des équipes devraient vouloir ici : une option par défaut routée, et un modèle à base d'état qui gagne sa place sur une tâche spécifique.
Qu'est-ce qui pourrait encore empêcher cet atterrissage ?
Prenez le précédent au sérieux : une proposition visant à ajouter cette architecture exacte a déjà été refusée une fois, pour des motifs que l'auteur reconnaît comme valables. La nouvelle est mieux argumentée et mieux testée, et il s'agit toujours d'une PR communautaire contre un dépôt qui est délibérément conservateur quant à l'admission d'architectures qu'il devra ensuite maintenir pour toujours.
Les questions ouvertes précises auxquelles nous voudrions avoir des réponses avant de considérer que c’est terminé :
• Revue, pas CI — les suites automatisées sont au vert ; deux mainteneurs ont été sollicités et aucun n'a approuvé. Transformers exige une revue approuvée, et les tests lents n'ont pas été exécutés.
• La vitesse de la voie sans dépendances — du PyTorch pur avec un décodage séquentiel à jeton unique est portable, et la portabilité est précisément le but, mais la PR ne publie pas de débit par rapport aux noyaux Triton de flash-linear-attention. Si le décodage natif est nettement plus lent, la bibliothèque devient la voie de compatibilité tandis que le serving sérieux reste ailleurs.
• Quels checkpoints arrivent — les conversions conformes à la convention couvrent de 0,1B à 7,2B. Le G1 13,3B, celui que les gens veulent vraiment, ne fait pas partie de cet ensemble, et l'exemple documenté est un modèle Pile avec un tokenizer GPT-NeoX plutôt qu'un modèle de chat à vocabulaire World. Un loader fusionné sans checkpoint phare derrière lui change moins les choses qu'il n'y paraît.
• La cible mouvante — le projet ne reste pas figé. Le dépôt G1 de BlinkDL a été mis à jour la même semaine où cette PR a été ouverte, les quantifications communautaires sont passées à des révisions de données plus récentes que G1c, et RWKV-8 « Heron » a été présenté publiquement avec un mécanisme d'automate à suffixes nommé ROSA. Heron n'est pas publié et n'a pas encore été évalué ; nous ne le mentionnons que parce qu'une intégration de bibliothèque qui arrive tard dans la vie d'une génération a une courte durée de vie.
Quatre questions auxquelles la fiche technique ne répond pas
Puis-je utiliser RWKV-7 dans Transformers maintenant, ou pas ?
Les deux, de manière agaçante, et c'est là toute l'histoire. Vous pouvez charger un checkpoint RWKV-7 via l'API transformers dès aujourd'hui, si vous installez flash-linear-attention et passez trust_remote_code afin que le fichier de modélisation du dépôt s'exécute. Ce que vous ne pouvez pas faire, c'est le charger depuis la bibliothèque elle-même, ce qui est précisément ce qui le fait fonctionner par défaut dans les outils construits au-dessus de la bibliothèque — scripts d'entraînement et d'alignement, adaptateurs, harnais d'évaluation, chemins d'exportation — et ce qui lui permet de passer une politique interdisant le code distant. C'est à cela que sert #47780.
La fusion rend-elle le modèle meilleur ?
Pas par un seul point sur aucun benchmark. Cela change la distribution, pas la qualité — et pour une architecture dont le problème n'a jamais été la qualité, la distribution est la contrainte déterminante. La comparaison est celle en haut de cet article : un modèle de 169M de 2023 téléchargé quarante fois plus que les poids de la génération actuelle, entièrement grâce au chargement sans drapeaux.
S'il n'y a pas de cache KV, est-ce que j'obtiens un contexte illimité gratuitement ?
Vous bénéficiez d'une longueur de contexte illimitée sans explosion de la mémoire, ce qui n'équivaut pas à une capacité de rappel illimitée. Un état de taille fixe possède une capacité d'information fixe ; si vous lui fournissez un million de jetons, il ne peut pas contenir un million de jetons de détails récupérables. L'attention avec un cache complet peut y parvenir, à un coût qui augmente tout du long. Considérez l'histoire du long contexte de RWKV-7 comme « un flux continu à faible coût, qui compresse au fur et à mesure », et testez la récupération spécifique dont vous avez besoin plutôt que de vous fier au mot infini.
Cela vaut-il la peine de s'en soucier à 13,3B lorsque les modèles de pointe comptent des centaines de milliards ?
Cela dépend entièrement de la valeur que la mémoire constante a pour vous. Si vous appelez une API hébergée et payez par token, presque certainement non — les modèles de pointe sont bien en avance en termes de capacités et vous ne payez pas directement pour le cache KV. Si vous déployez l'inférence sur du matériel que vous ne contrôlez pas, ou si vous exécutez un flux persistant où un cache qui grossit finit par tuer le processus, une architecture dont l'empreinte mémoire ne bouge pas est une réponse d'un autre ordre à une question différente. Ce sont les charges de travail où un RWKV-7 de 2,9B s'est discrètement montré compétitif, et ce sont celles où un chargeur natif compterait le plus.
Ce que nous regarderions ensuite
Quatre signaux concrets, par ordre approximatif de l'ampleur de leur impact sur notre lecture. Une critique favorable d'ArthurZucker ou de Rocketknight1, qui ferait passer ce diff de simple espoir à fonctionnalité planifiée. Une conversion conforme aux conventions du G1 13.3B avec le tokenizer World, ce qui rend le chargeur digne d'intérêt. Des chiffres de débit publiés pour le chemin de décodage sans dépendances face aux kernels Triton, ce qui décide si le support natif est une option de déploiement ou un simple shim de compatibilité. Et tout signe de RWKV-8, qui vous indiquerait si cette intégration survient au début d'une génération ou à la fin d'une autre.
Jusqu'à au moins le premier de ceux-ci, le résumé exact est le plus prosaïque : RWKV-7 (Goose) est réel, sous licence permissive, téléchargeable jusqu'à 13,3B, et toujours pas chargeable nativement dans la bibliothèque sur laquelle repose la majeure partie de l'écosystème. Une pull request ouverte le 4 août 2026 propose de remédier à cela. Elle n'a pas été fusionnée, et les pull requests visant à ajouter des architectures à transformers sont souvent fermées.
Comparés dans cet article1
Détecté à partir de cet article · Benchmarks : Artificial Analysis · mis à jour quotidiennement
