Qwen3 vs Qwen3.5 : ce qui change vraiment

Qwen3.5 n'est pas un simple scaling. L'architecture change en profondeur. Voici ce qui compte pour quelqu'un qui écrit un moteur d'inférence.

Attention hybride : le vrai changement

Qwen3 utilise une attention softmax classique dans chaque couche. Qwen3.5 introduit un design hybride : 75% des couches utilisent un nouveau mécanisme, le Gated DeltaNet.

Le pattern : sur 4 couches consécutives, 3 utilisent DeltaNet, 1 utilise l'attention classique. Ce bloc se répète 12 ou 15 fois selon le modèle.

Gated DeltaNet : comment ça marche

L'attention classique stocke tous les vecteurs K et V passés dans un cache qui grossit linéairement avec la séquence. À 32K tokens, ce cache domine la mémoire et la bande passante.

Gated DeltaNet remplace ce cache par une matrice d'état comprimée S, de taille fixe, mise à jour à chaque token avec une règle delta :

S(t) = beta(t) . S(t-1) + alpha(t) . k(t) . v(t)^T

La sortie est simplement : o(t) = S(t)^T . q(t)

Concrètement, pour Qwen3-Next-80B, l'état S fait 16 x 128 x 32 x 128 = 32 Mo par couche en f32. C'est fixe : que la séquence fasse 1K ou 256K tokens, la taille ne change pas. À comparer avec un KV cache classique qui grossit de plusieurs Go sur des contextes longs.

Conv1D causale

Avant le calcul DeltaNet, l'entrée passe par une convolution causale 1D avec un kernel de taille 4. Ce mécanisme (similaire à celui de Mamba) donne à chaque position un contexte local de 4 tokens pour calculer les portes alpha et beta. C'est ce qui permet à la récurrence de "savoir" quand oublier et quand retenir.

Prefill parallèle

La formule récurrente semble imposer un traitement séquentiel, mais en pratique le prefill peut être parallélisé avec un scan parallèle (même technique que Mamba-2). Pendant le décode token par token, c'est une simple mise à jour de S en O(d_k . d_v) par couche -- bien plus rapide que l'attention sur toute la séquence.

Pourquoi pas pur linéaire ?

L'attention linéaire pure perd la recherche précise token-à-token (le problème "needle in a haystack"). La matrice S comprime l'information, donc elle peut rater un token précis enfoui dans un long contexte.

Solution : les couches d'attention complète tous les 4 pas servent de points de contrôle pour la recherche exacte. DeltaNet gère la propagation longue distance efficacement, l'attention classique corrige ponctuellement.

Résultat annoncé : 8.6x plus rapide à 32K tokens, 19x à 256K, contexte 1M+ avec mémoire constante.

MoE : plus d'experts, moins d'activation

Qwen3-30BQwen3.5-397B
Experts totaux128512
Experts actifs/token810
Taille par expert7681024
Expert partagéNonOui
Ratio d'activation6.25%1.95%

4x plus d'experts, mais le ratio d'activation chute à 1.95%. Chaque expert est spécialisé plus finement. L'ajout d'un expert partagé (toujours actif) garantit une capacité de base quel que soit le routage.

RoPE partiel

Dans Qwen3, RoPE s'applique à toutes les dimensions (128 dims, 64 paires). Dans Qwen3.5, seules 25% des 256 dims sont encodées par rotation. Le nombre de dims rotatives reste 64, mais 192 dims sont libres de position. Même idée que GPT-NeoX / Phi.

Impact moteur

Le seul primitif nouveau est la couche Gated DeltaNet. Tout le reste est du scaling ou de la configuration.

Ce qui est trivial : vocabulaire plus grand, gate de sortie attention, YaRN scaling.

Ce qui demande du travail : état récurrent par couche, scan parallèle pour le prefill, Conv1D causale (kernel=4), logique de gating. Les couches d'attention complète (1 sur 4) sont ce qu'on a déjà, avec des têtes plus larges et un RoPE partiel.

La conclusion : le KV cache, qui est le mur principal en inférence longue, disparaît pour 75% des couches. C'est un changement fondamental pour l'inférence locale.