Architecture¶
Le cœur du rapport, reconstruit depuis un fichier de 90 lignes.
La source¶
Il n'existe aucun rapport technique sur Qwen3.8-27B. Comme pour le
Max, tout ce qui suit vient d'une
seule source :
config.json.
Ce qu'un fichier de configuration a de bon
Il ne peut pas exagérer : il décrit ce que le code instancie, faute de quoi le modèle ne se charge pas.
Là où un communiqué demande d'être cru, un config.json se lit et se
recalcule. C'est une source plus fiable, pas moins.
Et ce qu'il a de mauvais
Il dit quoi, jamais pourquoi. Pourquoi 3:1 ? Pourquoi 48 têtes de valeur et 16 de clé ? Pourquoi un encodeur visuel de 27 couches ?
Aucune ablation n'est publiée. Ces questions sont rassemblées en Ce qui reste non publié.
Les quatre chapitres¶
01 · Vue d'ensemble¶
La structure complète en un schéma et un tableau : 64 couches, le motif 3:1, et où sont les 27,7 milliards de paramètres.
~15 min · ★★☆
02 · L'attention hybride¶
Les 48 couches Gated DeltaNet et les 16 couches d'attention complète gatée, avec leurs dimensions réelles.
~15 min · ★★★
03 · La voie visuelle¶
L'encodeur de 27 couches, la fusion vers le modèle de langage, et le mRoPE — ce qui distingue ce modèle du Max, dont les poids sont textuels.
~10 min · ★★★
04 · Contexte et cache¶
L'arithmétique du contexte long : 64 KiO par jeton, 75 % d'économie, et ce que cela change concrètement.
~15 min · ★★★
La configuration, en entier¶
Pour référence, le fichier commenté — layer_types abrégé, le reste intégral.
{
"architectures": ["Qwen3_5ForConditionalGeneration"], // multimodal
"model_type": "qwen3_5",
"language_model_only": false, // ← la voie visuelle est là
"image_token_id": 248056,
"video_token_id": 248057,
"text_config": {
"hidden_size": 5120,
"num_hidden_layers": 64,
"intermediate_size": 17408, // réseau dense — le modèle n'est PAS un MoE
"vocab_size": 248320,
"tie_word_embeddings": false,
// — attention complète —
"num_attention_heads": 24,
"num_key_value_heads": 4, // GQA 6:1
"head_dim": 256,
"attn_output_gate": true,
"partial_rotary_factor": 0.25,
"rope_parameters": {
"rope_theta": 10000000,
"mrope_interleaved": true, // RoPE multimodal
"mrope_section": [11, 11, 10] // temps, hauteur, largeur
},
// — attention linéaire (Gated DeltaNet) —
"linear_num_value_heads": 48,
"linear_num_key_heads": 16,
"linear_key_head_dim": 128,
"linear_value_head_dim": 128,
"linear_conv_kernel_dim": 4,
"output_gate_type": "swish",
"mamba_ssm_dtype": "float32",
// — alternance —
"full_attention_interval": 4, // 3 linéaires, 1 complète
"layer_types": ["linear_attention", "linear_attention",
"linear_attention", "full_attention", …], // 64 entrées
// — décodage —
"mtp_num_hidden_layers": 1,
"mtp_use_dedicated_embeddings": false,
"max_position_embeddings": 262144,
"hidden_act": "silu",
"rms_norm_eps": 1e-06,
"dtype": "bfloat16"
},
"vision_config": {
"depth": 27,
"hidden_size": 1152,
"intermediate_size": 4304,
"num_heads": 16,
"patch_size": 16,
"temporal_patch_size": 2, // la vidéo est prise par paires d'images
"spatial_merge_size": 2,
"num_position_embeddings": 2304,
"out_hidden_size": 5120, // se raccorde à la dimension du langage
"deepstack_visual_indexes": []
},
"transformers_version": "5.8.0.dev0"
}
Prérequis¶
Cette partie suppose acquis le vocabulaire de base : attention, attention linéaire, cache clé-valeur. Le cours d'entrée du rapport sur le Max le construit sans prérequis :
Commencer : Vue d'ensemble.