2026 LONG CONTEXT ON
APPLE_SILICON_
KV_SWAP_MLX.

Data center memory workload abstract

Beaucoup d’équipes livrent d’abord le curseur 128K avant de réaliser que la facture réelle est la croissance du cache KV sur mémoire unifiée, pas la taille GGUF. Ce guide s’adresse aux ingénieurs qui font tourner MLX ou llama.cpp sur Apple Silicon et doivent garder des prompts RAG/agents auditables : quatre modes d’échec, un tableau budgétaire grossier 32K/64K/128K, une recette d’acceptation en cinq étapes (TTFT, percentiles decode, surface de swap) et une matrice pour savoir quand des nœuds MLX distants battent les portables surdimensionnés. Croisez les articles MACGPU sur le swap en mémoire unifiée, la concurrence vllm-mlx et SSH contre VNC pour Mac distants.

1. Décomposition de la douleur : pourquoi le long contexte pique plus que les paramètres

Premièrement, KV et working set évoluent avec la longueur de séquence et le prefill crée des pics. Deuxièmement, la mémoire unifiée est partagée avec le GPU, le chemin Neural Engine et les caches OS ; un rendu ComfyUI ou l’indexation Xcode vole discrètement la marge. Troisièmement, après un seuil de swap, l’inférence Metal ne se dégrade pas en douceur : le débit s’effondre à quelques tok/s. Quatrièmement, une moyenne decode sans TTFT ni métriques de swap masque le risque SLA sur prompts juridiques ou monorepo massifs.

2. Budgétisation grossière du KV : de la fenêtre marketing à l’enveloppe ingénierie

Poids résident ~ paramètres × octets de quant × batch ; borne KV ~ couches × têtes × dimension × 2 × longueur × dtype, avec facteur de fragmentation 1,2–1,35. Empiriquement, 32K reste souvent viable sur des notebooks 48 Go pour des piles 7B–13B Q4 ; 64K force des arbitrages de services concurrents ; 128K sur 64 Go entre souvent en conflit avec une seconde voie d’inférence.

FenêtreSignauxMitigation mono-machineDéclencheur MLX distant
32KTTFT p95 > ~8 s, forte variance decodeBatch=1, quant figée, arrêter les apps gourmandes GPUDeuxième service 30B ou 7x24 sans présence
64KRésident > ~78 % RAM, pics swapRAG par morceaux, réduire JSON outilsProduit exige collage intégral sans swap
128KVentilateur saturé, swap >2 Go durableMac d’inférence dédiéStudio 192 Go ou pool horaire

3. Acceptation en cinq étapes : portes swap et tok/s minimales

Étape 1 figer les jeux de prompts

8K/32K/128K synthétiques ou anonymisés, température 0, graines fixes.

Étape 2 figer quantification et concurrence

Au plus deux paliers de quant par train ; commencer avec une requête.

Étape 3 enregistrer TTFT, decode p50/p95, intégrale swap

Premier instant >512 Mo de swap avec tok/s associé.

Étape 4 publier des seuils tok/s minimaux

Exemple : chat support decode p95 ≥12 tok/s ; code ≥28 tok/s.

Étape 5 archiver CSV avec empreintes OS/runtime

Version mineure macOS, commit MLX ou llama.cpp, checksum du modèle.

/usr/bin/memory_pressure # Activity Monitor : mémoire, tendance Swap Used

4. Matrice : rester local, rétrécir la fenêtre, refondre le RAG, déporter MLX

DéclencheurMouvement préféréSecondÉviter
Swap >1 Go pendant 90 sRaccourcir la fenêtre ou stopper la 2e voieNœud distant 192 GoAugmenter seulement la concurrence
TTFT p95/p50 >2,8Couper prompt système et JSON outilsPrefill distant, petit orchestrateur localSauter vers un plus gros modèle aveuglément
Collage 128K obligatoireImage d’inférence dédiéePool Mac distant horairePortable 36 Go en production

Trois seuils wiki : résident >82 % RAM physique pendant 10 minutes avec un échantillon swap >768 Mo → rétrogradation auto 32K ou routage distant. Si decode p95 se dégrade de >35 % sous charge export par rapport à l’idleness graphique, file d’attente ou migration d’inférence. Deux OOM/jetsam par semaine → PoC hybride avant un troisième portable.

5. Cas : RAG juridique du collage 128K complet vers résumé par niveaux + 128K distant

Vendredi 6 Go de swap avec OCR 128K complet ; après déplacement vers un Studio MLX distant et orchestrateur 8B sur portable, P95 est passé de quatre minutes à vingt-deux secondes.

Six personnes utilisaient MLX pour des diffs contractuelles avec des centaines de pages OCR et JSON d’outils multi-tours. La semaine deux a superposé swap et percentiles TTFT : le prefill 128K évince les caches OS et fait trembler le decode. Remplacement par morceaux vectoriels et résumés de section ; seules clauses litigieuses montent en 128K ; branche fixée sur Mac Studio loué 192 Go. La direction reçoit un graphique swap avant/après et déplace le CapEx des notebooks vers l’heure Mac prévisible.

6. Perspectives : marketing de fenêtre contre SLA auditable

Les fiches modèle annonceront des fenêtres plus larges, mais la bande passante mémoire unifiée et le swap SSD ne doublent pas chaque trimestre. Restent les courbes de percentiles, l’intégrale de swap et les chemins de rétrogradation automatique. La production contractuelle 64K–128K exige une inférence Mac dédiée ou des pools distants élastiques avec alimentation et thermique stables. Lisez le guide SSH/VNC MACGPU et l’article vllm-mlx pour éviter de cumuler deux tueurs sur un même budget mémoire unifiée.

Le long contexte portable seul convient aux individus tolérant un jitter occasionnel. Quand le swap est inacceptable et la longueur non négociable, louer à l’heure des nœuds Mac à grande mémoire unifiée bat souvent la course au BTO maximal. MACGPU propose des Mac distants pour décharger les pics MLX sans basculer toute l’opération vers du CUDA-only — un argument pertinent pour les workflows créatifs Apple Silicon tout en gardant une conclusion technique honnête sur les limites thermiques des ultraportables.