Moteur d'Inférence Bodega : Optimisation de l'inférence LLM pour la mémoire unifiée d'Apple Silicon

Bodega est un moteur d'inférence conçu spécifiquement pour l'architecture de mémoire unifiée d'Apple Silicon, développé sur 2,5 ans avec des optimisations proches de la couche Metal sur MLX. Il résout les limitations fondamentales de débit auxquelles les développeurs sont confrontés lors de l'exécution de LLM sur le matériel Mac.
Pourquoi Apple Silicon nécessite une optimisation différente
Apple Silicon utilise une mémoire unifiée où le CPU, le GPU et le moteur neuronal partagent un seul pool physique via un bus unique sur puce. Cela diffère fondamentalement des GPU discrets comme ceux de NVIDIA, qui disposent de pools de VRAM et de RAM système séparés connectés par PCIe. La bande passante mémoire varie d'environ 400 Go/s sur le M1 Max à environ 800 Go/s sur le M3 Ultra (avec une pénalité inter-puces réduisant le débit réel à 1,6-1,8 fois les performances d'une seule puce).
Implications architecturales clés :
- Le décodage est limité par la bande passante mémoire - chaque jeton nécessite le chargement des poids du modèle depuis le bus partagé
- Le pré-remplissage est limité par le calcul - dominé par les TFLOPS du GPU pour la multiplication matrice-matrice
- Le bus mémoire est partagé avec tout - le cache KV, les poids du modèle, le système d'exploitation et les applications se disputent tous la même bande passante de 400-800 Go/s
Cette architecture rend les ports directs des implémentations de traitement par lots de vLLM ou llama.cpp inefficaces sur MLX, car elles ont été conçues pour des architectures mémoire différentes.
Ce que Bodega construit
Le développeur a étudié les mécanismes internes de vLLM, y compris le traitement par lots continu, le décodage spéculatif, le pré-remplissage par blocs et la mise en cache des préfixes, puis a reconstruit chaque composant pour MLX et le modèle de mémoire unifiée d'Apple.
L'idée centrale pour le traitement par lots continu : générer un seul jeton pour une seule séquence charge tous les poids du modèle pour une multiplication matrice-vecteur, ce qui est inefficace sur un matériel avec une bande passante de 400+ Go/s. La solution exécute plusieurs séquences simultanément en utilisant poids × matrice de vecteurs au lieu de poids × vecteur unique.
La gestion du cache KV a été repensée pour la mémoire unifiée où l'éviction des blocs de cache a des implications de coût différentes par rapport aux systèmes VRAM isolés.
Implications pratiques
Le développeur rapporte des tests sur plusieurs configurations Apple Silicon, y compris deux M3 Ultra (256 Go et 512 Go), un M4 Max 128 Go et un M1 Max 64 Go. Le plafond commun identifié est le débit utilisateur unique avec une requête à la fois et le GPU principalement inactif.
Le dépôt inclut des benchmarks qui peuvent être vérifiés avec un simple script curl pour la configuration.
📖 Read the full source: r/LocalLLaMA
👀 See Also

PromptForest : Détection d'injection de prompts local-first avec incertitude
PromptForest est une bibliothèque légère et locale qui détecte les injections de prompts et les jailbreaks, en les classant tout en évaluant la certitude, le tout sans augmenter la latence moyenne des requêtes.

JobPilot : Plugin Claude Code pour les Candidatures Automatisées
JobPilot est un plugin Claude Code qui automatise la recherche d'emploi et les processus de candidature en utilisant l'automatisation de navigateur Playwright. Il inclut des commandes pour rechercher sur les plateformes d'emploi, remplir automatiquement les candidatures, générer des lettres de motivation et suivre les statistiques de candidature.

Ollama Mise à Jour Ajoute la Prise en Charge d'OpenClaw pour le Modèle Cloud Kimi k2.5
Ollama a publié une mise à jour qui intègre le support OpenClaw pour les modèles cloud, incluant un accès gratuit au modèle Kimi k2.5 avec fonctionnalité de recherche web, fonctionnant sur les centres de données NVIDIA.

Recherche web hors ligne : Une alternative locale à Google Search pour les agents IA
Un développeur a créé offline-web-search pour remédier aux faibles capacités de recherche hors ligne des agents d'IA, en créant un remplacement direct qui imite les outils web de Claude avec un classement BM25, une indexation SQLite FTS5, et une prise en charge des archives ZIM et des robots d'indexation personnalisés.