Le décodage spéculatif n’est pas un curseur magique de vitesse : c’est un échange explicite entre passes avant supplémentaires du brouillon et moins d’étapes coûteuses du vérifieur. Sur la mémoire unifiée Apple M4, la configuration gagnante est celle qui survit à un essai prolongé avec votre mix de prompts réel, et non le classement qui oublie le taux d’acceptation et la pression RAM.

Sur cette page : prérequis matériels · comparaison des méthodes · balayage des paramètres · repli en cas d’échec · FAQ

Mémo d’acceptation neutre vis-à-vis du framework : prolongez avec MLX-LM et Transformers, llama.cpp et Ollama, routage multi-modèles, DSPy et nœud distant, OpenTelemetry GenAI et quotas RAG.

  • Acceptation : un draft rapide mais rejeté taxe le mur sans épargner le vérifieur.
  • Mémoire unifiée : deux poids chauds élargissent RSS et KV ; la crête prime sur la moyenne affichée.
  • Queues : annulations groupées aux blocs gonflent p95/p99 inter-jetons.

Objectif ingénierie : livrer une carte de décision reproductible pour les équipes plateforme qui arbitreront débit, latence de queue et empreinte RAM sans se fier aux captures d’écran isolées. Chaque affirmation ci-dessous doit pouvoir être attachée à un journal structuré — sinon elle reste au stade de démo marketing.

Prérequis matériels

Banc Mac mini M4, secteur stable, bureau réaliste. Mémoire unifiée : draft, vérifieur, KV et runtime partagent un pool — le spéculatif élargit l’empreinte. Sur 24 Go, visez 8–12 Go de marge macOS et services ; notez quantification, tokenizer et gabarits par run. Long contexte : le débit suit souvent la bande passante ; calibrez préremplissage via la matrice RAG liée.

Évitez les modes économie d’énergie agressifs pendant la collecte : un cœur bridé fausse à la fois le débit et la thermique. Si vous virtualisez ou conteneurisez, documentez les limites CPU et I/O comme des dimensions de test, pas comme du bruit ignoré.

Comparaison des méthodes

AR : un pas vérifieur par jeton. Spéculatif : bloc proposé puis acceptation groupée. Quatre signaux : débit mural, queues, acceptation, pic mémoire.

Axe AR standard Spéculatif M4
Calcul Une passe vérifieur / jeton Draft + vérifs groupées Surveillez le vérifieur, pas seulement le draft
Débit Plafond vérifieur Vérifieur × bloc accepté − rollbacks Faible acceptation = AR + taxe draft
Queues Souvent lisse Pics aux frontières de blocs Publiez p95/p99
Mémoire Vérifieur + KV Vérifieur + draft + activations Pic RSS en soak ; éviter pression rouge longue
Qualité Un chemin d’échantillonnage Alignement draft / runtime JSON et outils dérivent avant la perplexité

Le tableau résume le compromis structurel : le spéculatif ne supprime pas la limite du vérifieur, il tente de rembourser son coût via des blocs acceptés. Lorsque votre runtime expose des métriques internes, ajoutez le ratio passes draft sur passes vérifieur pour repérer tôt un déséquilibre compute.

Seuils indicatifs (gabarits SLO, pas garanties). Baseline AR : 38 tok/s médiane, 52 ms p95 inter-jetons (chat batch un). Candidat prod si, mêmes prompts et température : ≥44 tok/s médiane (~1,16×), p95 ≤45 ms, acceptation médiane ≥0,55 pour bloc draft quatre jetons. Échec si acceptation <0,40 sur deux fenêtres de cinq minutes — repli ci-dessous.

Étapes de balayage des paramètres

Un levier à la fois sur banc figé. Commencez par rejouer trois fois la baseline AR pour obtenir un intervalle de confiance rudimentaire sur TTFT et tok/s avant toute courbe spéculative ; sinon vous optimiserez le bruit thermique du matin contre le calme du soir.

  1. Artefacts : checksums, quant, runtime, flags GPU/Metal.
  2. Prompts : court, moyen, long + préfixe RAG si besoin.
  3. Géométrie : grille {2,3,4,6} jetons draft ; log acceptation et tok/s mural.
  4. Timings : TTFT, préremplissage, décodage stable séparés.
  5. Soak : ≥600 s avec bureau ouvert ; RSS et swap bornés.
  6. Télémétrie : mêmes champs qu’AR + acceptation, rollbacks, passes draft (noms GenAI).

Checklist mémoire unifiée

  • Marge : ex. 10 Go libres sur 24 Go en soak.
  • Pression : pas de rouge continu >60 s.
  • Swap : cumul ≤200 Mo sur la fenêtre interactive.
  • Thermal : 0 throttle cible sous ambiant déclaré.
  • TTFT :+8 % médiane AR sur invites courtes.
  • Qualité : mini-jeu JSON/outils dans ±0,5 pt vs AR.

Repli en cas d’échec

Feature flag : couper le spéculatif si acceptation chute, swap monte ou canari qualité régresse ; défaut AR pur avec mêmes métadonnées d’échantillonnage. Repli graduel : réduire le bloc draft, alléger la quant draft si permis, retirer le draft du hot path.

Archivez chaque bascule avec identifiant de build et plage horaire : les incidents nocturnes ressemblent souvent à une dérive de tokenizer mineure. Rejouez sur Mac mini M4 distant (OS et binaires épinglés) quand le portable mélange sommeil, Spotlight et bruit de fond — les courbes deviennent enfin comparables aux rapports DSPy et OTel déjà publiés sur le blog.

FAQ

Latence toujours meilleure ? Non si acceptation basse ou rollbacks groupés ; la moyenne peut masquer des queues p99 inacceptables pour l’UI.

N’importe quel petit modèle ? Non sans tokenizer et alignement compatibles — traiter comme versioning et verrouiller les artefacts dans le même dépôt que le vérifieur.

Comparer des frameworks ? Mêmes prompts, température, plafonds, alimentation ; publier acceptation + débit + TTFT + mémoire + qualité ; sinon la comparaison est narrative.

Multi-flux ? KV multipliée ; plafonner la concurrence (routage) avant d’agrandir le draft, sinon vous déplacez seulement le goulet d’étranglement.

Résumé : système couplé — draft, acceptation, vérifieur, mémoire unifiée doivent passer ensemble ; figez, balayez, repliez, puis industrialisez.

Pages publiques : tarifs, achat, aide, blog — sans connexion.