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.
- Artefacts : checksums, quant, runtime, flags GPU/Metal.
- Prompts : court, moyen, long + préfixe RAG si besoin.
- Géométrie : grille {2,3,4,6} jetons draft ; log acceptation et tok/s mural.
- Timings : TTFT, préremplissage, décodage stable séparés.
- Soak : ≥600 s avec bureau ouvert ; RSS et swap bornés.
- 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.