Electrosens R&D
Electrosens LLM auto hébergées · 11 November 2026

llama.cpp 0.5.0 : dans le ventre du moteur invisible de l’IA locale

Il n’a pas d’interface, pas de logo clinquant, pas de levée de fonds. Pourtant, quand vous lancez un modèle open-weights sur votre machine en 2026, il y a de fortes chances qu’un binaire C/C++ discret travaille en sous-main. Retour sur la refonte 0.4.0 → 0.5.0, celle qui a fait passer llama.cpp de « bidouille de génie » à socle industriel de l’IA personnelle — et sur ce que la mue de l’écosystème, de Windows ML à llm-d 1.0, change pour vous.


Le moteur qu’on ne voit jamais : pourquoi llama.cpp est devenu le socle invisible de l’IA locale

Il y a une ironie savoureuse dans l’écosystème de l’IA locale. Les outils dont tout le monde parle — Ollama, LM Studio, les interfaces graphiques chatoyantes, les « harnais » d’agents qui font la une depuis le printemps 2026 — reposent presque tous, en dernière instance, sur un projet que leurs utilisateurs ne verront jamais : llama.cpp. Pas de fenêtre, pas d’icône dans la barre des tâches. Juste un exécutable, quelques flags de compilation, et une bibliothèque de tenseurs qui tourne.

Le paradoxe est d’autant plus frappant que le débat public de 2026 s’est déplacé vers les couches hautes. On disserte sur les « harnais » — ces assemblages de mémoire, de routage de compétences et de boucles d’orchestration qui, selon la formule consacrée depuis le printemps, « comptent plus que la taille du modèle ». On compare les modèles chinois (DeepSeek, Qwen, Kimi, GLM) sur des grilles d’usage. On s’extasie devant des machines comme l’AMD Ryzen AI Halo à 3 999 $, capable de faire tourner des modèles jusqu’à 120B+ grâce à 128 Go de mémoire unifiée. Mais tout cela, in fine, s’exécute sur un moteur d’inférence. Et ce moteur, dans l’immense majorité des cas, c’est llama.cpp.

Un détail révélateur de cette centralité : depuis octobre 2026, Windows ML a ajouté un support expérimental de llama.cpp pour les modèles GGUF, avec une API locale compatible OpenAI et de nouveaux outils de runtime. Autrement dit, même Microsoft, qui pousse son propre format ONNX, a fini par intégrer le chemin GGUF/llama.cpp dans son runtime Windows. Quand un géant de la plateforme adopte le moteur du voisin, c’est que le voisin est devenu une infrastructure.

C’est précisément ce qui rend la refonte de 2026 intéressante. Le passage en 0.4.0 puis 0.5.0 n’est pas une énième release cosmétique : c’est le moment où le projet a dû admettre que son succès l’avait dépassé, et réécrire des pans entiers de son fonctionnement pour rester le socle fiable d’un écosystème qui, lui, avançait à toute vitesse. Cet article démonte ce que ces versions changent réellement — architecture interne, gains mesurables, pièges de migration — au-delà du changelog marketing.

De 0.3.x à 0.5.0 : la refonte qui devait tout casser (et pourquoi elle était inévitable)

Pour comprendre la bascule, il faut mesurer la pression qui s’exerçait sur le dépôt amont. En 2026, llama.cpp n’est plus seulement utilisé par des bidouilleurs : il est le moteur sous le capot d’Ollama, de LM Studio, et d’une myriade de runtimes maison. Or ces forks avancent vite — parfois plus vite que l’amont. Un chiffre suffit à le sentir : Ollama est passé de la version 0.23.0 à la 0.24.0 en seulement 11 jours en mai 2026, avec cinq point releases (0.23.0 à 0.23.4) dans l’intervalle. Cette cadence infernale signifie que chaque fonctionnalité ajoutée côté fork finit par réclamer un équivalent côté moteur, sous peine de voir l’amont se transformer en goulot d’étranglement.

Gains de vitesse et cadences de release cités dans les sourcesGain décodage spéculat2valeurs hétérogènes (x, jours, $, Go)Ollama 0.23.0 → 0.24.011valeurs hétérogènes (x, jours, $, Go)Point releases Ollama 5valeurs hétérogènes (x, jours, $, Go)Prix AMD Ryzen AI Halo3999valeurs hétérogènes (x, jours, $, Go)Mémoire unifiée Ryzen 128valeurs hétérogènes (x, jours, $, Go)Taille app Llama (Mo)1valeurs hétérogènes (x, jours, $, Go)

Le deuxième facteur, c’est l’arrivée de modèles open-weights réclamant des chemins d’inférence spécifiques. Le décodage spéculatif — en particulier le MTP (Multi-Token Prediction) — est devenu la norme en 2026. Ollama 0.23.1, le 5 mai 2026, a ainsi ajouté le décodage spéculatif Gemma 4 MTP via son runner MLX, avec un gain de vitesse supérieur à 2x sur Gemma 4 31B sur Apple Silicon. LM Studio 0.4.14 a de son côté promu le décodage spéculatif MTP en stable. Côté llama.cpp, le support de Qwen 3.6 MTP a été fusionné via la PR #22673 en mai 2026. Autrement dit : les modèles ont commencé à exiger du moteur qu’il comprenne des schémas de génération que l’ancienne architecture traitait mal ou pas du tout.

Le troisième déclencheur, plus prosaïque, est l’explosion des formats de quantification. Entre les variantes Q4_K_M, Q8_0, et une prolifération de formats intermédiaires, le code de chargement et de calcul est devenu un labyrinthe de cas particuliers. Ajoutez à cela la fin de support de l’ancien backend — un nettoyage douloureux mais nécessaire — et vous obtenez la tempête parfaite : un projet qui doit simultanément rester compatible avec l’existant, absorber des modèles toujours plus exotiques, et ne pas se faire distancer par ses propres forks. La refonte 0.4.0 → 0.5.0 n’est pas un caprice d’architecte : c’est une survie.

Dans le ventre de la bête : GGUF, scheduler, offload et KV cache après la refonte

Entrons dans le moteur. La première brique, c’est la gestion des fichiers GGUF — le format qui empaquette poids, tokenizer et métadonnées dans un seul fichier. Le chargement repose sur le mmap (memory mapping) : plutôt que de lire tout le fichier en RAM, le moteur mappe les pages et laisse le système d’exploitation gérer la pagination. C’est ce qui permet de « charger » un modèle de plusieurs dizaines de Go sur une machine qui n’a pas autant de RAM libre — au prix de ralentissements si le fichier déborde du cache disque. La quantification, elle, reste le levier principal : un modèle en Q4_K_M occupe environ un quart de sa taille en pleine précision, ce qui change radicalement ce qui « rentre » sur un GPU consumer.

Le scheduler de graphes de calcul est la partie la plus profondément réécrite. Là où l’ancienne version construisait un graphe relativement statique, la nouvelle approche segmente le calcul en unités plus fines, ce qui permet de mieux décider quoi exécuter où. C’est le cœur de la stratégie d’offload CPU/GPU : toutes les couches ne montent pas en VRAM. Le moteur répartit les tenseurs entre mémoire vidéo et mémoire système selon l’espace disponible, en gardant sur le GPU ce qui bénéficie le plus de la bande passante. Sur un GPU consumer avec peu de VRAM, cela signifie qu’on peut faire tourner un modèle plus gros que la VRAM disponible, en acceptant une pénalité de débit sur les couches restées en RAM.

Le KV cache — la mémoire des tokens déjà traités — a lui aussi été retravaillé. Sa quantification permet de réduire drastiquement l’empreinte mémoire sur les longs contextes, au prix d’une légère perte de précision. C’est ce qui rend possible de tenir des fenêtres de contexte étendues sans saturer la VRAM. Comme le rappelle notre dossier sur les runtimes locaux, le KV cache est le « poste de dépense invisible » de toute inférence : à mesure que le contexte s’allonge, il peut dépasser en empreinte les poids eux-mêmes. Un moteur qui le quantifie correctement ne se contente pas d’être plus rapide — il rend tout simplement possible ce qui ne rentrait pas avant.

Quant à l’API locale repensée, elle mérite sa propre section, car c’est probablement le changement le plus visible pour les utilisateurs.

L’API locale repensée : ce que le serveur intégré change pour vos scripts et vos outils

Pendant longtemps, le serveur intégré de llama.cpp a été le maillon faible : fonctionnel, mais bricolé, avec une compatibilité OpenAI approximative. La refonte en fait un point d’entrée crédible. Les endpoints couvrent désormais les chat completions, les embeddings et le streaming, avec une compatibilité suffisamment fidèle pour que la plupart des wrappers existants — ceux qui pointaient vers une API cloud — fonctionnent sans modification. C’est un basculement stratégique : pour un usage perso ou en petite équipe, remplacer une API cloud par un serveur local devient une opération de configuration, pas un projet de développement.

Source : codersera.com

La tendance est d’ailleurs générale, et c’est ce qui rend la refonte de llama.cpp si stratégique. L’application Llama, publiée par l’équipe llama.cpp et Hugging Face, illustre exactement cette philosophie : une petite app de barre de menu (1 Mo à télécharger, gratuite, open source, fonctionnelle hors ligne) qui expose une API locale « qui parle l’API OpenAI », sur localhost:9931/v1, pour que « les agents de code, les éditeurs et les scripts fonctionnent directement ». Le même mouvement se retrouve côté Strata, ce moteur « overfit » qui défraye la chronique depuis l’automne : sa documentation invite à connecter Cursor ou Claude Code à http://127.0.0.1:8080/v1. Partout, le point d’entrée local devient un clone d’API cloud — et llama.cpp, avec son serveur intégré, est le socle sur lequel cette compatibilité repose.

La gestion des sessions et du contexte a également été clarifiée. On peut maintenir plusieurs conversations, contrôler la réutilisation du KV cache entre requêtes, et piloter finement la longueur de contexte. Pour les intégrateurs, cela signifie moins de code maison fragile. Pour les utilisateurs d’outils comme Ollama ou LM Studio, c’est transparent — mais cela explique pourquoi ces couches hautes peuvent désormais offrir des fonctionnalités serveur qu’elles devaient autrefois implémenter elles-mêmes.

Tokens par seconde, RAM et watts : ce que 0.4.0 et 0.5.0 changent vraiment selon votre matériel

C’est ici qu’il faut être honnête : les gains dépendent énormément du matériel, et certains cas ne progressent pas du tout. Les chiffres qui suivent proviennent de la documentation du magazine et de tests communautaires, avec la méthode habituelle — llama-bench, quantifications Q4_K_M ou Q8_0 — et doivent être lus comme des ordres de grandeur, pas des garanties.

Matériel Modèle / quantification Débit observé Remarque
AMD Radeon 780M (iGPU) Llama 3 8B Q4 (Vulkan) ~10-12 tok/s Gain Vulkan +50 %, dont +12,9 % via réglage MMVQ
AMD Radeon 780M (iGPU) Mistral 7B Q4_K_M (Vulkan) ~8-11 tok/s —
AMD Radeon 780M (iGPU) Qwen 2.5 7B (Vulkan) ~10-12 tok/s —
AMD Strix Halo (unifié) Llama 3 8B Q4 (Vulkan) ~40-60 tok/s 256 Go/s de bande passante, 64-128 Go unifiés
AMD Strix Halo (unifié) Mixtral 8x7B Q4_K_M ~5-10 tok/s Modèles 70B-120B en 4-bit possibles
AMD RX 7800 XT — non précisé 16 Go de VRAM

Le point le plus parlant concerne les iGPU AMD : l’optimisation Vulkan a apporté un gain de l’ordre de +50 %, dont une part significative (+12,9 %) attribuable au seul réglage MMVQ. C’est le genre de détail qui ne fait pas de bruit dans un changelog mais qui transforme une machine « inutilisable » en machine « utilisable » pour du 7-8B. À l’inverse, sur les configurations où le goulot d’étranglement est la bande passante mémoire — et non le calcul — les gains de la refonte sont marginaux, voire nuls. Un CPU seul avec peu de bande passante ne rattrapera pas son retard grâce à un meilleur scheduler.

C’est une leçon que confirment les autres dossiers du magazine : sur un modèle donné, à batch size 1, les grands runtimes finissent souvent par se rejoindre, parce que le vrai plafond n’est pas le moteur mais la bande passante mémoire. Un RTX 4090 à 24 Go ne génère pas plus vite qu’un autre accélérateur sur un 70B qui déborde de sa VRAM — non par panne, mais par architecture. Le scheduler de llama.cpp peut optimiser la répartition, pas créer de la bande passante.

Sur Apple Silicon, la situation est plus nuancée. La refonte profite aux Macs récents, mais la concurrence interne est rude : MLX 0.31.x, avec macOS 26.2, a débloqué les accélérateurs neuronaux M5 pour un TTFT jusqu’à 4x plus rapide. Autrement dit, sur Mac, llama.cpp reste solide mais n’est plus nécessairement le chemin le plus rapide — une réalité que les utilisateurs d’Ollama ont déjà intégrée, puisque le fork utilise le runner MLX pour le décodage spéculatif Gemma 4 MTP. L’app Llama de l’équipe amont elle-même s’appuie sur les réglages de llama.cpp pour choisir quantification, taille de contexte, décodage spéculatif et batch size « selon la façon dont llama.cpp fonctionne réellement » — preuve que le moteur reste la référence, même quand un autre backend accélère certains cas.

llama.cpp face à vLLM, TensorRT-LLM, MLX, Ollama et LM Studio : le match des runtimes en 2026

La force de llama.cpp n’est pas la performance brute — c’est la portabilité et l’absence de dépendances lourdes. Là où vLLM vise le débit serveur et TensorRT-LLM l’optimisation NVIDIA, llama.cpp tourne partout : CPU x86, ARM, CUDA, ROCm, Metal, Vulkan. C’est cette ubiquité qui en fait le socle invisible.

Source : dev.meta.ai
Runtime Force principale Faiblesse Public cible
llama.cpp Portabilité, quantification flexible, licence permissive Débit serveur inférieur, pas de batching continu avancé Bidouilleurs, intégrateurs, embarqué
vLLM Débit serveur, batching continu Dépendances lourdes, orienté GPU datacenter Serveurs, multi-requêtes
TensorRT-LLM Performance NVIDIA maximale Verrouillage NVIDIA, complexité Datacenter NVIDIA
MLX Intégration Apple, accélérateurs M5 Limité à Apple Silicon Mac
Ollama Simplicité d’installation Moins de contrôle fin Débutants, usage rapide
LM Studio Interface graphique, découverte de modèles Moins scriptable Utilisateurs GUI

vLLM v0.21.0 a stabilisé DeepSeek V4 sur Blackwell avec un nouveau backend TOKENSPEED_MLA — un signe que la course à la performance serveur se joue ailleurs. Et l’actualité la plus récente confirme que cette course s’est déplacée vers l’inférence distribuée : le 20 octobre 2026, llm-d 1.0 a été annoncé comme le framework open source qui rend l’inférence « production-scale » accessible hors du cloud, avec IBM Research rapportant 0,11 $ par million de tokens à l’échelle de production, soit environ 11,5 fois moins que les API commerciales. Le projet, gouverné par la Cloud Native Computing Foundation et porté par IBM, Red Hat, Google Cloud, CoreWeave et NVIDIA, s’appuie sur vLLM à l’intérieur. Mais pour l’utilisateur qui veut faire tourner un modèle chez lui sans se ruiner, la question n’est pas « qui est le plus rapide » mais « qui tourne sur ma machine ». Et sur ce terrain, llama.cpp reste difficile à battre.

Il faut d’ailleurs lire le chiffre de llm-d avec prudence : comme le souligne notre autopsie du framework, le « 11,5× » voyage sans méthodologie détaillée, et il compare des coûts d’inférence à l’échelle datacenter — pas le coût marginal d’un modèle qui tourne sur votre bureau. La vraie économie du local, elle, se calcule autrement : le Journal du Net rappelle que la rentabilité d’un serveur auto-hébergé dépend de deux paramètres — le coût du matériel amorti et le volume d’usage. Pour un particulier, llama.cpp reste le moyen le moins cher de transformer du matériel déjà possédé en serveur d’inférence.

Migrer depuis 0.3.x : les pièges qui font perdre un week-end

La migration n’est pas anodine. Premier piège : les formats GGUF. Certains fichiers quantifiés avec d’anciennes versions peuvent ne plus se charger, ou se charger avec des comportements inattendus. Vérifiez toujours qu’un modèle est bien re-quantifié ou compatible avec la version cible avant de supprimer votre ancienne installation.

Deuxième piège : les flags de compilation qui disparaissent. Si vous compilez vous-même, attendez-vous à des options obsolètes et à des messages d’erreur parfois trompeurs — un flag retiré peut produire une erreur qui pointe vers un problème de dépendance alors qu’il s’agit simplement d’une option supprimée.

Troisième piège, le plus sournois : les wrappers maison. Si vos scripts parlent directement à l’API locale, testez-les avant de basculer. La compatibilité OpenAI s’est améliorée, mais elle n’est pas totale : certains champs de réponse, certains comportements de streaming ou de gestion d’erreurs peuvent différer subtilement. Un script qui « marchait » peut échouer silencieusement sur un cas limite.

Quatrième piège, spécifique à Windows : la coexistence des chemins d’exécution. Depuis qu’AI Development on Windows intègre llama.cpp aux côtés de PyTorch et de Windows ML, il faut savoir quel runtime votre outil utilise réellement. Un modèle GGUF chargé par Windows ML et le même modèle chargé par un binaire llama.cpp compilé maison ne donneront pas forcément les mêmes performances ni les mêmes comportements. Vérifiez la chaîne d’exécution avant de conclure qu’une mise à jour « a cassé les performances ».

Cinquième piège, plus insidieux encore : les attentes de performance. Beaucoup d’utilisateurs migrent en espérant un bond universel de débit. La réalité est plus sélective : les iGPU AMD en Vulkan profitent largement de la refonte, les configurations limitées par la bande passante mémoire beaucoup moins. Avant de migrer, faites un llama-bench sur votre configuration actuelle, notez les chiffres, puis comparez après migration. Sans point de référence, vous ne saurez jamais si la refonte vous a aidé ou si vous avez simplement changé de version.

Ce que la refonte signifie vraiment pour « faire tourner des LLM chez soi sans se ruiner »

Revenons à la question du magazine. La refonte 0.4.0 → 0.5.0 de llama.cpp n’est pas un sujet d’architectes : c’est ce qui détermine, concrètement, ce que votre matériel peut faire.

Source : freedom.tech

Premier enseignement : la quantification reste le levier économique décisif. Un modèle en Q4_K_M tient dans un quart de sa taille pleine précision, et la refonte a rendu ce chemin plus fiable et plus rapide sur les iGPU. Pour celui qui possède un mini-PC à mémoire unifiée — les machines à 128 Go de mémoire unifiée, type Ryzen AI Halo à 3 999 $, ou les configurations visant 192 Go comme Gorgon Halo — llama.cpp est le moyen de faire tourner des modèles jusqu’à 120B+, voire au-delà, sans GPU dédié. C’est exactement le segment « sans se ruiner » : pas de carte graphique à 2 000 $, mais de la mémoire unifiée et un moteur capable de l’exploiter.

Deuxième enseignement : l’API locale compatible OpenAI transforme le calcul de rentabilité. Le coût d’un abonnement cloud se remplace par le coût d’amortissement du matériel déjà présent, plus l’électricité. Pour un usage personnel ou une petite équipe, le point de bascule arrive vite — et la refonte du serveur intégré abaisse le coût d’intégration, qui était souvent le vrai frein.

Troisième enseignement, plus nuancé : llama.cpp n’est plus seul. MLX accélère sur Mac, vLLM et llm-d visent le serveur, Strata explore l’offload agressif sur petite VRAM, Windows ML intègre GGUF. Mais tous ces chemins convergent vers le même format — GGUF — et souvent vers le même moteur sous-jacent. La refonte de llama.cpp n’a pas rendu le projet obsolète : elle l’a rendu assez solide pour rester la fondation pendant que l’écosystème se diversifie au-dessus.

La leçon finale est celle de tous les dossiers du magazine : le débit d’un LLM local ne se joue pas sur un seul chiffre, mais sur l’alignement entre le modèle, la quantification, la mémoire et le moteur. llama.cpp 0.5.0 n’est pas magique — il ne crée pas de bande passante — mais il est devenu le socle fiable sur lequel ce calcul d’équilibre peut enfin se poser sereinement. Et pour celui qui veut faire tourner des modèles ouverts chez lui sans se ruiner, c’est probablement la meilleure nouvelle de l’année.

Sources

Article recherché et rédigé automatiquement · Magazine Electrosens
📬 Restez à la pointe
Recevez chaque semaine les nouveautés de ce magazine par email.
💬 Une remarque, une correction ?
Aidez-nous à améliorer cet article. Nous prenons en compte vos retours.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *