Présentation

Meta a publié Muse Spark Open, le plus grand modèle à poids ouvert dédié au codage agentique. Le modèle accepte du texte, des images, de l’audio et de la vidéo, ce qui lui permet d’analyser un screenshot, d’écouter une note vocale ou de visionner un enregistrement d’écran tout en générant ou déboguant du code. Deux checkpoints sont disponibles : Muse‑Spark‑Open‑816B‑A42B (BF16) et Muse‑Spark‑Open‑816B‑A42B‑NVFP4 (4‑bits).

Architecture et fonctionnement

Le cœur du modèle comporte 62 couches, une dimension cachée de 8192 et 128 têtes de requête couplées à 16 têtes clé‑valeur (grouped‑query attention). Chaque tête possède 64 dimensions, ce qui conduit à un cache KV de 126 976 valeurs par token, soit environ 250 KB en BF16. Le contexte maximal atteint 1 000 000 de tokens (max_position_embeddings = 1 048 576), incluant les tokens multimodaux.

Contrairement à Muse Glimmer, chaque couche de Muse Spark Open intègre un bloc Mixture‑of‑Experts (MoE). Un MoE possède 256 experts ; le routeur en sélectionne 8 pour chaque token. Chaque expert réalise une projection 8192 → 4096 → 8192 avec sa propre normalisation. Les experts représentent ~97 % du nombre total de paramètres, ce qui porte le modèle à 816 milliards de paramètres, mais le calcul effectif par token équivaut à environ 42 milliards de paramètres, car seules 8 experts sont activés.

Le modèle utilise un encodeur de perception de 1,8 M paramètres (50 couches, dimension 1536, 16 têtes) pour transformer images et cadres vidéo en tokens. Les images sont découpées en patchs 14 × 14, chaque patch génère un vecteur de 4096 dimensions. L’encodeur audio convertit le signal en tokens à raison de 12,5 tokens par seconde (un token toutes les 80 ms) grâce à une pyramide convolutionnelle à plusieurs tailles de patchs.

Déploiement et contraintes

Le checkpoint BF16 occupe ~1,5 TB en format safetensors et nécessite la mémoire d’un modèle de 816 B paramètres, même si le calcul se comporte comme un modèle de 42 B. Le checkpoint NVFP4, quant à lui, stocke les poids en précision 4 bits et s’exécute sur un seul nœud B200. En BF16, le modèle s’étale sur 4 nœuds de 8 GPU H200 avec un parallélisme tensoriel TP = 32 ; le parallélisme d’experts (EP) utilise la même taille de groupe.

Pour le lancement, Meta propose des recettes compatibles avec llama.cpp, vLLM et SGLang. La configuration distribuée se définit via DistributedConfig, où tp_size indique le nombre de dispositifs pour le sharding dense et ep_size le nombre de dispositifs pour la distribution des experts.

import os
from transformers import AutoModelForMultimodalLM, AutoTokenizer, DistributedConfig

distributed_config = DistributedConfig(
    tp_size=int(os.environ["WORLD_SIZE"]),
    ep_size=int(os.environ["WORLD_SIZE"]),
)

tokenizer = AutoTokenizer.from_pretrained("meta-models/Muse-Spark-Open-816B-A42B")
model = AutoModelForMultimodalLM.from_pretrained(
    "meta-models/Muse-Spark-Open-816B-A42B",
    distributed_config=distributed_config,
)

Analyse des performances et limites

Le ratio 8 experts / token réduit le coût de calcul tout en conservant la capacité expressive grâce aux 256 experts stockés. Cependant, la nécessité de charger l’ensemble des experts impose une empreinte mémoire comparable à un modèle de 816 B paramètres, ce qui contraint le déploiement à des clusters GPU haut de gamme. Le cache KV de 266 GB pour un contexte complet de 1 M tokens représente une barrière supplémentaire pour les scénarios à longue portée, notamment en génération vidéo où chaque image ajoute plusieurs centaines de tokens.

Le passage à la précision 4 bits (NVFP4) diminue l’encombrement disque, mais la perte de précision reste marginale uniquement sur les GPU Blackwell, limitant l’utilisation à du matériel NVIDIA récent. Enfin, le modèle ne permet pas de désactiver le raisonnement (« reasoning »), ce qui oblige à consommer un nombre minimal de tokens même pour des tâches simples, impactant l’efficacité énergétique.