La nouvelle pile d'antirez · La note Unified Memory · Matrice de location à trois paliers · Checklist de mise en route ds4-server
L'auteur de Redis, antirez, a écrit ds4 (DwarfStar 4) en environ une semaine de C, rendant enfin DeepSeek V4 Flash réellement exécutable sur un seul Mac. La contrepartie est la facture matérielle : 96 Go d'Unified Memory comme plancher, 256 Go pour un usage sérieux, 512 Go pour la zone de confort. Les prix vont d'environ 4 000 à plus de 14 000 dollars. Cet article apporte trois éléments aux développeuses indépendantes, chercheurs IA et petites équipes : premièrement, une facture matérielle honnête pour ds4 et Flash, avec un correctif sur l'idée fausse que PRO tournerait sur un Mac 512 Go ; deuxièmement, une matrice de décision échelonnée pour les nœuds Mac cloud 96 / 128 / 256 / 512 Go avec un TCO à trois ans ; troisièmement, une checklist minimale de mise en route de ds4 sur un nœud Mac VpsMesh, avec branchement Cursor et opencode.
ds4, abréviation de DwarfStar 4, est signé Salvatore Sanfilippo (antirez), l'auteur de Redis. Ce n'est pas un wrapper autour de llama.cpp, ni un chargeur GGUF générique, ni un énième UI web. C'est un moteur d'inférence natif conçu pour un seul modèle : DeepSeek V4 Flash. Les backends principaux sont Metal sur macOS et CUDA sur Linux, y compris le DGX Spark. AMD ROCm est maintenu sur une branche séparée. Cette spécialisation explique pourquoi ds4 a glané des dizaines de milliers d'étoiles GitHub en quelques jours et atteint des chiffres hors de portée des runners génériques.
Restreindre le périmètre rapporte des bénéfices tangibles. ds4 maîtrise la pipeline de routage MoE de DeepSeek V4 de bout en bout, ce qui lui permet d'appliquer une quantification 2-bit agressive aux experts de routage tout en conservant une précision plus élevée sur le reste du graphe. La fenêtre de contexte d'1 million de tokens est traitée comme une citoyenne de première classe grâce au déversement à la demande du cache KV sur disque, qui évite de recalculer le prefill à chaque session. Un boucle de tool calling et un agent de code sont intégrés au moteur, sans framework collé par-dessus. La liste ci-dessous récapitule les choix.
Un seul modèle, poussé à fond. Le README est explicite : ds4 n'est ni un runner GGUF, ni un wrapper, ni un framework. Chaque chemin d'exécution graphique est calibré pour la structure MoE de DeepSeek V4 Flash, ce qui permet une quantification agressive des experts de routage et le maintien de la précision ailleurs. Les runners génériques évitent cela pour des raisons de portabilité.
Metal d'abord, CUDA en parallèle, CPU pour le diagnostic. Sur macOS, make construit le backend Metal. Sur Linux, on utilise make cuda-spark ou make cuda-generic. Le README prévient que l'implémentation actuelle de la mémoire virtuelle macOS peut faire paniquer le noyau sur le chemin CPU : sur Mac, ne jamais inférer hors de Metal.
Cache KV sur disque intégré. Au lancement de ds4-server, on passe --kv-disk-dir et --kv-disk-space-mb. L'état KV est persisté et réutilisable entre sessions. Combiné au SSD interne d'un Mac, ce mécanisme transforme la fenêtre d'1 M tokens d'une taxe permanente en un coût récupérable.
Serveur compatible OpenAI avec agent intégré. ds4-server expose /v1/chat/completions, de sorte que Cursor, opencode, Claude Code ou tout client respectant le protocole OpenAI peuvent s'y connecter directement. Le tool calling est natif et permet une boucle d'agent de code productive sans framework supplémentaire.
Auditable par la petite taille. Le projet est autonome et n'embarque pas de runtime tiers. La base de code reste assez compacte pour qu'une petite équipe puisse auditer le graphe et les choix de quantification. Pour qui exécute de grands modèles en production, cet atout n'est pas anodin.
Une fois admis que ds4 cible exclusivement Flash par conception, la section suivante coule de source. L'affirmation récurrente selon laquelle PRO tournerait sur un Mac Studio 512 Go demande un correctif précis, d'autant qu'elle revient souvent.
Commençons par les caractéristiques du modèle. DeepSeek V4 Flash est un MoE de 284 milliards de paramètres avec 13 milliards activés par token. Les poids en BF16 occupent environ 570 Go. La quantification Q4 ramène le fichier autour de 150 Go. La variante q2 d'antirez s'établit aux alentours de 86,7 Go. Voilà pourquoi 96 Go forment le plancher permettant le chargement et 128 Go le minimum réaliste en laboratoire. DeepSeek V4 PRO joue dans une autre catégorie : 1,65 billion de paramètres avec 49 milliards activés, soit environ 3,2 To en BF16 et près de 800 Go même en Q4. Cela n'entre dans aucun Mac de 512 Go et la branche principale de ds4 ne cible pas PRO.
| Unified Memory | Mac typique / prix indicatif | Ce que ds4 sait faire | Vitesse de référence | Rôle pratique |
|---|---|---|---|---|
| 96 Go | MacBook Pro M3/M4/M5 Max haut de gamme, dès ~4 000 USD | plancher Flash q2 | q2 sur prompts courts uniquement | charge ; le swap arrive vite sur les contextes moyens |
| 128 Go | MacBook Pro M3 Max maxé ou Mac Studio M2 Max, ~5 000–6 500 USD | minimum de laboratoire Flash q2 | q2 prefill ~58,5 t/s et génération ~26,7 t/s sur prompt court ; ~250 t/s prefill sur prompt de 11,7k tokens | plancher reconnu par la communauté ; q2 résident possible |
| 256 Go | Mac Studio M2 Ultra ou M3 Ultra milieu de gamme, ~7 500–10 000 USD | Flash q4 viable | q4 fluide sur prompts courts ; pas de swap forcé en contexte moyen | palier de production sérieuse pour Flash |
| 512 Go | Mac Studio M3 Ultra haut de gamme, dès ~14 000 USD | Flash q4 et longs contextes confortables | q4 court : prefill ~79 t/s, génération ~35,5 t/s ; q4 long (~12k tokens) : prefill ~449 t/s, génération ~26,6 t/s | contextes longs et agent de code résident ; PRO ne tient toujours pas |
Trois nuances méritent une mention explicite. Loger les poids n'équivaut pas à générer fluidement. Le cache KV, la fenêtre de contexte et les autres processus système peuvent absorber plusieurs dizaines de Go. À 96 Go, le swap apparaît dès qu'on dépasse environ 100 000 tokens. L'écart entre q2 et q4 n'est pas linéaire. Sur un Mac Studio 512 Go, le prefill court en q2 dépasse légèrement q4 (84 t/s contre 79 t/s), mais q4 reprend l'avantage sur les contextes longs et la qualité du tool calling. Le DGX Spark GB10 128 Go en CUDA atteint ~344 t/s de prefill sur un prompt q2 de 7k tokens, mais seulement ~13,7 t/s en génération, ce qui montre que l'architecture Unified Memory garde un point fort pour le long contexte sur une seule machine.
ds4 abaisse le plancher d'exécution locale de DeepSeek V4 Flash à 96 Go, mais la ligne de confort reste 256–512 Go. Le vrai coût se mesure à la capacité à occuper la machine sur la durée du projet.
Si ds4 place Metal en premier, c'est par nécessité d'ingénierie. L'Unified Memory d'Apple Silicon (UMA) partage un pool unique entre CPU et GPU. Aucun aller-retour PCIe ne déplace les tenseurs entre VRAM et RAM système. Pour un modèle MoE comme Flash, où chaque token n'active qu'une partie des experts, l'UMA permet de tirer les poids nécessaires depuis un grand pool commun, sans buter sur un plafond de mémoire GPU dédié. Aux prix grand public, aucune autre plateforme n'offre 96 Go en bas de gamme et 512 Go en haut de gamme comme mémoire d'inférence effective.
Le deuxième facteur est la bande passante mémoire. Le M3 Max plafonne autour de 400 Go/s et le M3 Ultra double pour atteindre près de 800 Go/s. C'est cette bande passante qui explique les ~449 t/s de prefill long sur un Mac Studio M3 Ultra. La bande passante détermine la vitesse à laquelle les poids sont lus, ce qui constitue le goulot dominant pour l'inférence MoE. Sur un Mac, elle est contiguë, jamais fragmentée entre plusieurs GPU discrets.
Le troisième facteur passe souvent inaperçu. Les SSD NVMe internes des Mac modernes s'accordent parfaitement au cache KV sur disque de ds4. ds4-server écrit l'état KV dans le chemin fourni par --kv-disk-dir et limite l'empreinte avec --kv-disk-space-mb. À la reprise d'une même session, on économise plusieurs secondes voire minutes de prefill. Les SSD internes Apple atteignent 5 à 7 Go/s en séquentiel, ce qui rend l'option « décharger et recharger » plus économique que de payer en RAM pour chaque session simultanée.
Conseil : placer --kv-disk-dir sur le SSD interne. Les disques USB-C externes tombent souvent à un tiers en lecture/écriture aléatoire, transformant le rechargement KV en nouveau goulot. Réservez l'externe aux archives froides de sessions historiques.
Mises bout à bout, ces caractéristiques mènent à une conclusion limpide. Dans le matériel grand public de 2026, rien n'épouse mieux la combinaison « DeepSeek V4 Flash + ds4 + long contexte + KV sur disque » qu'un Mac à forte mémoire. La question qui reste est financière : pouvez-vous acquérir un Mac 256 ou 512 Go, et serez-vous en mesure de l'utiliser suffisamment pour rentabiliser l'investissement ?
Lorsqu'on superpose la facture matérielle au rythme réel d'un projet, une conclusion s'impose : la majorité des développeurs ne saturent pas un Mac Studio 512 Go en permanence. L'exploration initiale se contente souvent de 128 Go en Flash q2. La phase de produit passe à 256 Go en q4. Un agent de code résident à long contexte appelle finalement 512 Go. Cet escalier convient parfaitement aux nœuds Mac en cloud ; une machine achetée vous fige sur un palier. Pour les studios créatifs et les agences technologiques qui jonglent entre prototypes courts et productions longues, l'élasticité par palier rejoint un mode de travail déjà connu sur Apple Silicon.
| Rôle typique | Palier principal | Fréquence de changement | Achat Mac Studio haut de gamme, TCO 3 ans | Location de nœud Mac cloud, TCO 3 ans |
|---|---|---|---|---|
| Développeuse indépendante ou chercheur (moins de 20 heures/semaine) | surtout 128 Go Flash q2, parfois 256 Go | upgrade rare | Mac Studio 256 Go ~7 500 USD ; ~6 500+ USD sur 3 ans avec amortissement | 128 Go à la semaine + 256 Go au trimestre ; ~2 300–3 800 USD sur 3 ans |
| Petite start-up IA (30–60 heures/semaine, plusieurs projets) | surtout 256 Go Flash q4, parfois 512 Go long contexte | changement hebdomadaire | Mac Studio 512 Go ~14 000 USD ; ~12 000+ USD sur 3 ans | 256 Go résident au mois + 512 Go en burst ; ~5 700–9 000 USD sur 3 ans |
| Utilisateur intensif d'agent de code (plus de 60 heures/semaine) | surtout 512 Go Flash q4 long contexte | aucun changement | Mac Studio haut de gamme s'amortit bien | location longue durée 512 Go ; l'écart se resserre mais on garde la souplesse et l'absence d'exploitation |
| Équipe multi-région (proche des utilisateurs) | 128–256 Go par région | parallèle par région | plusieurs machines, dépenses dupliquées, gestion difficile | ouverture à la demande par région ; changement de région = commande, pas logistique |
La table dit l'essentiel. Un Mac Studio haut de gamme n'est gagnant que si vous occupez le palier 512 Go en continu, intensité qu'atteignent peu de développeurs indépendants et de petites équipes. La trajectoire raisonnable consiste à utiliser des nœuds cloud pour trouver le palier réel, puis à décider d'une éventuelle bascule sur du matériel propre. Souvent, à la fin de cette exploration, le nœud cloud reste tout simplement la meilleure réponse.
Attention : les coûts cachés d'un achat dépassent largement le prix catalogue : électricité, refroidissement, stockage de sauvegarde, réparations après garantie, et surtout les deux ou trois prochaines générations d'Apple Silicon attendues sur l'horizon de trois ans. Le haut de gamme d'aujourd'hui devient le milieu de gamme dans trois ans ; un nœud cloud absorbe cette courbe d'amortissement pour vous.
Les six étapes qui suivent compressent tout ce qui précède en un Runbook reproductible. Hypothèse de base : un nœud Mac VpsMesh, 128 Go minimum, 256 Go recommandé, 512 Go pour un confort longue contexte. Chaque étape comporte un critère succès/échec explicite et peut être réutilisée telle quelle par votre équipe.
Compiler ds4 avec le backend Metal. git clone https://github.com/antirez/ds4 && cd ds4 && make. Vous obtenez ./ds4 (CLI) et ./ds4-server (HTTP). Succès : les deux binaires existent et ./ds4 --help renvoie l'aide. Ne jamais exécuter make cpu sur macOS : le chemin CPU peut paniquer le noyau.
Test de bon fonctionnement Metal. Exécuter ./ds4 -p "Hello" --metal avec un prompt très court pour confirmer l'acquisition du device et le graphe de base. Sur un nœud de 128 Go ou plus, on peut passer directement au chargement des poids Flash q2. Succès : pas d'erreur « Metal device not available », pas d'OOM.
Télécharger et vérifier les poids DeepSeek V4 Flash q2 ou q4. Utiliser la source GGUF indiquée par le projet ds4 ; environ 86,7 Go pour q2 et 150 Go pour q4. Toujours vérifier le SHA256. Séparer les volumes : poids sur un disque de données ≥ 500 Go libre, KV sur le SSD interne du Mac. Succès : empreinte correcte ; df -h montre au moins 100 Go de marge sur le disque de données.
Démarrer ds4-server avec KV sur disque. Exemple : ./ds4-server --ctx 200000 --kv-disk-dir /Volumes/ssd-kv/ds4-kv --kv-disk-space-mb 16384 --bind 127.0.0.1:8080. Démarrer avec une fenêtre de 200k, pas 1M, pour éviter la pression mémoire initiale. Succès : le log de démarrage indique Metal prêt et le répertoire KV inscriptible ; curl http://127.0.0.1:8080/v1/models renvoie du JSON.
Brancher Cursor, opencode ou Claude Code. Faire pointer l'URL de base du client sur ds4-server via un tunnel SSH qui redirige le 8080 distant vers 127.0.0.1:8080 local. Ne jamais exposer 8080 sur 0.0.0.0. Régler l'en-tête Authorization conformément aux options de démarrage et choisir le nom de modèle documenté par la version courante de ds4. Succès : une petite requête streaming à /v1/chat/completions renvoie 200 OK.
Mettre en place l'observabilité et une règle de retrait. Surveiller mémoire et disque avec vm_stat, memory_pressure et iostat. Définir des déclencheurs : swap durablement élevé, prefill sous 50 % de la base, ou répertoire KV au-delà de 80 % de --kv-disk-space-mb — basculer sur une API cloud (OpenAI, Anthropic ou DeepSeek officiel). Succès : le chemin de bascule produit un résultat comparable pour la même entrée.
ssh -L 8080:127.0.0.1:8080 vpsmesh-mac-node \
'./ds4-server \
--ctx 200000 \
--kv-disk-dir /Volumes/ssd-kv/ds4-kv \
--kv-disk-space-mb 16384 \
--bind 127.0.0.1:8080'
curl -sS http://127.0.0.1:8080/v1/chat/completions \
-H "Authorization: Bearer $DS4_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek-v4-flash-q4","messages":[{"role":"user","content":"hello"}],"stream":false}' \
| jq .
Trois données clés à coller dans le README de l'équipe :
--kv-disk-space-mb à 16 Go et prévoir ~1–3 Go par session longue. Toujours utiliser le SSD interne ; un disque externe fait du rechargement KV le nouveau goulot.Si vous arbitrez entre l'achat d'un Mac Studio 256 ou 512 Go et la location d'un Mac cloud pour ds4, faites entrer deux postes dans votre comparaison. D'abord la facture cachée d'une machine physique : électricité, bruit, refroidissement, réparations après garantie, et les deux ou trois prochaines générations d'Apple Silicon attendues sur trois ans. Ensuite la charge d'exploitation de l'auto-hébergement : assurer la persistance de ds4-server à chaque redémarrage, surveiller le niveau du KV disque, garder la liaison Cursor ou opencode résiliente. Rien de tout cela n'est l'activité que vous valorisez. Pour les développeuses indépendantes, chercheurs et petites équipes qui préfèrent passer leur temps à faire tourner des modèles et écrire du code plutôt qu'à entretenir une machine, les nœuds Mac VpsMesh à forte mémoire — modulables entre 96 / 128 / 256 / 512 Go selon la demande — restent le choix le plus réaliste et le plus économique. Commencer par une semaine de 128 Go pour valider l'ajustement Flash q2, poursuivre par un mois de 256 Go pour rendre Cursor et un agent de code agréables à vivre, puis décider d'un 512 Go résident. Cette progression est nettement moins risquée que l'achat immédiat d'un Mac Studio haut de gamme au prix d'une petite voiture.
Non. La branche principale de ds4 vise exclusivement DeepSeek V4 Flash. Flash totalise 284 milliards de paramètres et 13 milliards activés par token. PRO atteint 1,65 billion de paramètres et 49 milliards activés, soit environ 3,2 To en BF16 et près de 800 Go même en Q4. Cela ne tient dans aucun Mac de 512 Go et sort du périmètre de ds4 comme des configurations Mac mono-boîtier. Pour Flash en particulier, consultez la page des tarifs VpsMesh et choisissez un nœud 128 Go ou plus.
C'est le plancher qui permet de charger q2, pas une zone de confort. Les contextes longs et la concurrence déclenchent rapidement du swap, surtout au-delà de 100k tokens. 128 Go forment le minimum réaliste en laboratoire, 256 Go le premier objectif sérieux pour faire tourner q4 sans swap sur des contextes moyens, et 512 Go la zone de confort des contextes longs avec un agent de code résident. Pour valider la faisabilité, louer un nœud cloud 128 Go pendant deux semaines coûte moins cher qu'un MacBook 96 Go acheté à neuf.
Règle simple : uniquement si vous saturez le palier 512 Go au moins 30 heures par semaine pendant au moins deux ans. En dessous, la location à l'usage l'emporte une fois pris en compte électricité, amortissement et les deux ou trois prochaines générations d'Apple Silicon. Le centre d'aide VpsMesh détaille la planification de capacité, et vous pouvez aussi ouvrir directement un nœud d'essai dimensionné à votre charge réelle depuis la page de commande.
Oui. ds4-server expose /v1/chat/completions et reste compatible OpenAI. Faire pointer l'URL de base du client sur le serveur, positionner le jeton et choisir une fenêtre de contexte alignée sur les options de démarrage. En production, lier ds4-server à 127.0.0.1 et y accéder via un tunnel SSH ou un réseau privé ; ne jamais exposer 0.0.0.0. Le modèle de tunnel SSH et les déclencheurs de retrait figurent en section 05.