Présentation
Janas est un moteur d’inférence écrit en C pur qui permet d’exécuter des modèles de langage de grande taille, même lorsque la capacité mémoire du système est inférieure à la taille du modèle. Le projet cite une exécution de Qwen3‑Next‑80B, un modèle de 48 Go, sur un ordinateur portable disposant de 32 Go de RAM.
Mécanisme de streaming et architecture
Le principe repose sur le chargement séquentiel des poids depuis un disque NVMe. En lisant les blocs de paramètres à la volée, Janas évite le besoin de les placer entièrement en mémoire vive. Le moteur exploite les extensions SIMD (AVX2) et, sur GPU, l’API Vulkan pour accélérer les opérations de matrice. La quantisation des poids réduit la bande passante nécessaire, tandis que le décodage spéculatif (speculative‑decoding) anticipe les prochains tokens afin de masquer la latence d’accès disque. Le support du mélange d’experts (mixture‑of‑experts, MoE) permet de ne charger que les sous‑réseaux activés par le prompt, limitant encore le volume de données transférées.
Performances comparatives
Sur le même laptop, Janas atteint 37 tokens/s avec le modèle complet de 48 Go. En désactivant le mode draft, le débit chute à 24 tokens/s, ce qui reste plus de huit fois supérieur aux 2,8 tokens/s obtenus avec llama.cpp sur le même matériel. En lecture seule, Janas atteint 62 tokens/s contre 16 tokens/s pour llama.cpp. Le développeur indique que Janas surpasse llama.cpp sur les 13 modèles testés dans la série Q4_K_M, confirmant une amélioration de l’efficacité d’accès disque et de l’utilisation du CPU/GPU.
Limites et perspectives
Le débit reste limité par la bande passante du SSD NVMe et par la capacité du processeur à exploiter les instructions SIMD. Les gains observés dépendent fortement du modèle de disque et du support matériel du SIMD. De plus, le décodage spéculatif nécessite une gestion fine de la mémoire tampon pour éviter les incohérences de génération. Le projet ne fournit pas de benchmark détaillé sur GPU uniquement, ce qui empêche d’évaluer l’avantage de Vulkan dans des configurations dédiées. Enfin, l’absence de métriques de consommation énergétique rend difficile l’appréciation de l’impact environnemental du streaming continu.