Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

vLLM-MLX - Pour remplacer l'API d'OpenAI par votre propre Mac

Par : Korben ✨
18 mai 2026 à 11:23

Si vous avez un Mac avec une puce Silicon et que vous en avez marre de raquer pour des tokens à chaque requête API à un LLM à la con, y'a un projet qui mérite, je trouve, le détour. Ça s'appelle vLLM-MLX , et c'est un serveur d'inférence local qui transforme votre Mac en machine à générer du texte, à analyser des images et vidéos, et même capable de gérer de l'audio... et tout ça sans que l'inférence ne passe par le cloud des zaméricains.

Pour installer le bouzin, ça se fait avec :

uv tool install vllm-mlx

Puis vous lancez suivi du nom d'un modèle et hop, vous obtenez un endpoint API compatible OpenAI qui tourne en local sur votre machine :

vllm-mlx serve %MODEL%

Au début je pensais que j'étais parti pour une séance de configuration qui aller durer des heures mais en fait non. Par exemple moi j'ai lancé ça :

vllm-mlx serve mlx-community/GLM-4.7-Flash-4bit

Vous pouvez aussi opter pour un modèle plus petit :

vllm-mlx serve mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Du coup, si vos scripts causent déjà avec l'API d'OpenAI, basculer sur ça en local rien qu'en changeant l'URL de base, c'est un jeu d'enfant !

Côté perfs, et là je reprends les benchmarks officiels du repo (M4 Max 128 Go, mono-requête), on tourne autour de 418 tok/s sur un petit Qwen3-0.6B en 8-bit. Ensuite, ça tombe à environ 206 tok/s sur du Llama-3.2-3B et 128 tok/s sur un gros Qwen3-30B-A3B.

Le débit grimpe aussi quand plusieurs requêtes tapent en même temps à la porte... Donc sur les petits modèles ça file vite, mais par contre, sur les gros, faudra pas s'attendre à la même vitesse, hein... Et un Qwen3-30B vous bouffera dans les 18 Go de RAM unifiée, donc sur un Mac à 8 ou 16 Go vous pouvez oublier les gros modèles (Mais qui n'a pas encore un Mac Studio 128 Go ?? hein ? Quiiii ?).

Et c'est pas juste un serveur de texte comme je vous le disais, puisque le projet gère les modèles de vision type Gemma 3, Qwen3-VL, Pixtral, pour analyser images et les vidéos, et côté audio y'a du TTS natif (avec Kokoro, Chatterbox et compagnie) + de la transcription Whisper qui monte jusqu'à 197x le temps réel avec whisper-tiny, ou 55x avec le modèle turbo.

Attention par contre, il vous faudra la version avec l'extra audio (espeak-ng et un modèle spaCy), car c'est pas inclus dans la commande de base. Mais une fois en place, y a de quoi se monter un vrai assistant vocal 100% local et causer synthèse vocale sans louer un GPU chez Azure ou AWS.

Même le endpoint /v1/messages est compatible Anthropic, ce qui permet de brancher Claude Code ou OpenCode directement sur votre serveur comme je vous l'expliquais ici . Suffit d'utiliser ces variables d'environnement et votre éditeur IA ira taper sur votre propre machine plutôt que sur des serveurs distants.

unset ANTHROPIC_API_KEY
export ANTHROPIC_BASE_URL="http://127.0.0.1:8000"
export ANTHROPIC_AUTH_TOKEN="dummy"
claude --model mlx-community/GLM-4.7-Flash-4bit

ou :

claude --model mlx-community/Qwen2.5-Coder-3B-Instruct-4bit

Avouez que c'est trop cool hein ? Vous pouvez trouver tous les modèles pour MLX ici sur HugginFace si vous cherchez un truc plus spécifique.

Y'a aussi un endpoint d'embeddings pour faire du RAG en local, de l'appel d'outils externe via MCP avec une douzaine de parsers et le support des modèles de raisonnement qui extraient proprement le processus de réflexion entre les balises <think> pour Qwen3 et DeepSeek-R1.

J'adore !

Côté bidouille si vous vous lancer, sachez qu'il y a 2 ou 3 flags vachement utiles à connaitre.

Par exemple, le --warm-prompts (couplé au continuous batching) précharge les préfixes populaires au démarrage et, dans le bon scénario, vous gagne entre 1,3 et 2,25x sur le temps de première réponse.

Sur les gros modèles MoE genre Qwen3-30B-A3B, le --moe-top-k réduit aussi le nombre d'experts activés pour gratter 7 à 16% de débit. Le hic, c'est que vous y perdez un poil de qualité.

Et pour les agents qui brassent des contextes énormes, le --ssd-cache-dir déverse le cache de préfixes sur SSD pour soulager la RAM, au prix d'un peu de latence quand ça tape sur le disque.

Bref, si vous cherchez une alternative à Ollama qui tape direct dans le GPU de votre Mac avec du batching et du multimodal, le tout avec une compatibilité API aux petits oignons, foncez les amis ! C'est open source (Apache 2.0), ça dépote et ça s'installe en deux commandes !

Et si vous êtes sur PC plutôt que sur Mac, j'ai écrit la suite sur Lemonade SDK , l'équivalent côté AMD qui tape dans le NPU Ryzen AI.

Merci à Christian pour la découverte !

Notepad++ débarque sur MacOS - Le portage non officiel

Par : Korben ✨
28 avril 2026 à 08:28

Andrey Letov vient de sortir Notepad++ for Mac , un portage natif Apple Silicon de l'éditeur culte créé par Don Ho. Notez quand même que Don Ho n'a rien à voir avec ce projet. C'est un portage communautaire indépendant, lancé en mars dernier.

Vous récupérez le binaire universel qui tourne nativement sur les puces M1 à M5 et sur les vieux Macs Intel. C'est de l'Objective-C++ compilé pur jus avec le même moteur d'édition Scintilla qu'utilise la version Windows (Scintilla est cross-platform avec un build Cocoa officiel).

Après, tout le reste a dû être refait à la main, parce que le Notepad++ original utilise massivement Win32 pour son interface. Letov a donc réécrit la couche UI from scratch en Cocoa pour coller aux conventions macOS, avec menus, dialogues, file pickers et raccourcis clavier qui se comportent comme ceux d'une vraie app Mac.

L'interface de Notepad++ sous macOS

Côté prérequis, comptez sur macOS 11 (Big Sur) au minimum, en dessous ça ne tournera pas. Donc si vous êtes resté sur Catalina ou plus vieux, ouais, désolé pour vous, faut passer votre tour.

Côté fonctionnalités, on retrouve le pack classique du Notepad++ qu'on connaît, coloration syntaxique pour 80 langages, recherche regex, find in files, bookmark de lignes, recherche incrémentale, split view pour bosser sur deux fichiers en parallèle, enregistrement de macros pour automatiser les tâches répétitives, écosystème de plugins, et l'interface dispo dans plus de 90 langues.

C'est gratuit, sous licence GPL v3 mais attention quand même, les plugins Windows compilés en .dll ne sont pas portables tels quels. Il vous faudra une version macOS recompilée pour chacun, et le catalogue dispo aujourd'hui est forcément plus maigre qu'en face. Bref, du Notepad++ comme on l'aime, mais avec moins d'extensions pour l'instant.

Après tant que Letov tiendra le rythme, ça roulera, mais le jour où il décrochera ou que la version Windows partira dans une direction qu'il ne suit pas, le port macOS va probablement diverger ou s'éteindre. On verra bien.

En attendant, si vous bossez sur Mac et que Notepad++ vous manque depuis votre époque Windows (on fait tous des erreurs ^^), foncez le tester, l'app a l'air bien fichue à première vue et le projet itère vite.

Bref, j'espère que ça durera.

Mocker - Le clone Docker natif pour Mac Apple Silicon

Par : Korben ✨
24 avril 2026 à 09:27

Si vous bossez sur Mac et que Docker Desktop commence à vous prendre la tête, les amis, y'a une alternative super cool qui vient de débarquer. Ça s'appelle Mocker , c'est écrit en Swift, c'est sous licence AGPL-3.0, et le principe c'est de remplacer la CLI de Docker à l'identique : mêmes flags, mêmes formats de sortie, même syntaxe pour Compose. mocker run, mocker ps, mocker compose up (...bref, le README annonce 111 commandes et sous-commandes couvertes avec les flags qui matchent).

Pour l'installer, un brew tap us/tap && brew install mocker et c'est plié !

La plupart des images Docker Hub standards (format OCI) se pullent pareil, et votre fichier docker-compose.yml tourne le plus souvent sans rien retoucher. Attention quand même, si vous avez encore Docker Desktop qui tourne en parallèle, coupez-le avant de jouer avec mocker sinon vos ports vont faire la bagarre !

De plus, certaines features Docker très spécifiques (options de runtime exotiques, images qui tapent dans des sockets Linux particuliers) peuvent planter ou produire un avertissement côté Apple Containerization. Mais sur du stack web classique (nginx, postgres, redis, node), par contre, ça passe crème.

Mais alors, pourquoi ça fonctionne aussi bien ?

Hé bien parce que Mocker ne réinvente pas la roue, il l'enrobe. Rien de plus, rien de moins. En fait, sous le capot, c'est le framework Apple Container qui fait tout le boulot.

Pour rappel, c'est ce truc qu'Apple a sorti à la WWDC 2025 et qui permet ainsi de lancer une petite VM Linux dédiée par conteneur (au lieu de la grosse VM partagée à la Docker Desktop). Mocker délègue alors tout au binaire container d'Apple pour run, stop, exec et logs, tape directement dans le Containerization.ImageStore pour les pulls et les tags, et gère les ports via un petit proxy TCP userspace.

L'état des conteneurs, images, réseaux et volumes est alors stocké en JSON dans le dossier ~/.mocker/ sur votre Mac. Comme y'a rien de magique, vous pouvez tout inspecter à la main, ce qui est plutôt chouette !

Côté perfs, il y a quand même un coût. Selon les benchmarks publiés par le dev sur sa machine Apple Silicon, au démarrage d'un container Docker Desktop tourne à 320 ms, le CLI container d'Apple à 1030 ms, et Mocker à 1153 ms (3,6× plus lent que Docker, ~120 ms d'overhead sur Apple).

Dans la vraie vie, 800 ms de plus au boot c'est transparent si vous relancez 5 containers par jour en dev, mais ça devient clairement pénible si vous faites du CI local intensif avec 50 runs à la chaîne. Sur ces mêmes benchmarks, une fois que le container est up, CPU et mémoire s'en sortent ensuite pareil. Autrement dit, la VM par conteneur coûte au boot, mais pas au runtime. En tout cas, sur cette config de test pour les benchmarks.

Si vous voulez une alternative plus mature et commerciale, OrbStack reste encore une fois la référence sur Mac, mais c'est du freemium. Mocker, lui, est gratuit et open source du début à la fin.

Voilà les amis, si vous êtes sur Mac Apple Silicon et que Docker Desktop vous saoule, ça vaut grave le coup de tester !! Au pire vous revenez à Docker, au mieux vous gardez Mocker et vous arrêtez de payer la licence Business...

Apfel - Le LLM caché de votre Mac enfin libéré

Par : Korben
5 avril 2026 à 09:24

J'sais pas si vous saviez mais Apple a planqué un LLM dans votre Mac et ne veut pas que vous y touchiez... enfin, pas directement. En effet, leur modèle est là, intégré au système via le framework FoundationModels, il tourne sur le Neural Engine sans connexion internet mais Apple l'a verrouillé derrière Siri. Du coup, impossible de l'appeler depuis un script ou un pipe shell et c'est là qu' apfel intervient !

L'outil s'installe en une commande :

brew install Arthur-Ficial/tap/apfel

Et hop, vous avez accès au modèle directement depuis votre terminal. Faut Apple Intelligence actif également, sinon, ça ne fonctionnera pas.

Ensuite, vous lui posez une question, et il vous répond. Vous lui "pipez" un fichier, et il le traite. Et le tout sans rien télécharger puisque le modèle est déjà sur votre machine !

C'est un LLM de 3 milliards de paramètres, quantifié en 2 et 4 bits, qui tourne nativement sur la puce Apple Silicon (M1 et au-delà) et il se défend plutôt bien face à Qwen-2.5-3B, si on en croit les benchmarks. La fenêtre de contexte est limitée à 4096 tokens (entrée + sortie combinées), soit environ 3000 mots, donc faut pas espérer lui faire digérer un roman mais pour transformer du texte, classifier des données ou résumer un paragraphe... ça fait bien le taf.

Apfel expose donc ce modèle de trois façons différentes. En CLI pure (compatible stdin/stdout, sortie JSON, codes d'erreur propres), en serveur HTTP compatible OpenAI sur localhost:11434 (avec streaming SSE, tool calling et CORS activé), et en chat interactif multi-turn.

Le serveur OpenAI c'est malin parce que d'un coup, tous vos outils savent causer à l'API OpenAI (Cursor, Continue.dev, n'importe quel SDK) et peuvent utiliser l'IA locale de votre Mac sans rien changer à leur code. Et le support MCP (Model Context Protocol) natif c'est très chouette aussi puisqu'il suffit de lancer apfel avec le flag --mcp, pour qu'il découvre automatiquement les outils disponibles, exécute les appels et renvoie les résultats.

D'ailleurs côté vie privée, c'est du béton armé car le framework FoundationModels d'Apple n'a pas accès à vos contacts, emails, calendrier ou photos et tout tourne sur le Neural Engine et le GPU, sans connexion internet.

Si vous avez déjà bidouillé avec Ollama et les modèles locaux , apfel c'est un peu la même philosophie... sauf que là vous n'avez rien à télécharger et contrairement à Perspective Intelligence qui transforme votre Mac en serveur web avec PostgreSQL et tout le tralala, apfel reste hyper minimaliste.

Attention quand même, faut être sous macOS 26 Tahoe minimum donc si vous êtes encore sous Sequoia 15.x ou Ventura 13.x, c'est mort, le framework FoundationModels n'existe pas sur ces versions. Et si vous avez un Mac Intel... ben non plus, le Neural Engine c'est Apple Silicon only.

Le projet inclut aussi des scripts démo sympas dans le dossier demo/.

Y'a par exemple cmd qui convertit du langage naturel en commandes shell, explain qui décortique les messages d'erreur, gitsum qui résume vos commits récents, ou encore mac-narrator qui commente l'activité de votre système en temps réel (c'est votre Mac qui se raconte à lui-même).

Perso, cmd c'est celui qui m'a le plus plu, même si bon, avec 4096 tokens de contexte, faut pas lui demander des commandes ffmpeg de 200 caractères.

Mais au-delà des démos, c'est en vrai que ça devient fun. Je vous montre quelques usages classiques d'abord :

apfel -f README.md "Résume ce projet en 3 phrases"

apfel -f code.py -s "Tu es un développeur expérimenté" "Trouve les bugs"

echo "Traduis ça en allemand : Salut" | apfel

Et les trucs un peu plus funs :

git diff HEAD~1 | apfel -f CONVENTIONS.md "Review ce diff par rapport à mes conventions"

apfel -f old.swift -f new.swift "Qu'est-ce qui a changé entre ces deux fichiers ?"

demo/oneliner "compte les IPs uniques dans access.log"

Vous pouvez même piper la sortie en JSON pour chaîner avec jq, ou lancer le mode --serve et brancher Cursor dessus pour avoir de l'autocomplétion locale gratuite. Et si vous êtes du genre parano, le mode --chat avec --context-strategy summarize gère automatiquement le contexte quand la conversation dépasse les 4096 tokens.

Et côté écosystème, y'a aussi apfel-gui (une interface SwiftUI native pour chatter avec le modèle, avec speech-to-text et text-to-speech on-device) et apfel-clip qui est en développement (ce sont des actions IA qui s'ajoutent dans la barre de menus pour corriger la grammaire, traduire, résumer) et le tout sous licence MIT, évidemment.

Bref, c'est un super modèle mais avec 3 milliards de paramètres et 4096 tokens de contexte, faut pas s'attendre non plus à remplacer Claude ou GPT. Les maths complexes, la génération de code avancée et les longues conversations, c'est pas son truc mais pour du scripting, de la classification ou transformer du texte à la volée... ça dépanne carrément !

Et ce modèle préfère refuser plutôt qu'halluciner, ce qui est plutôt une bonne surprise je trouve. Voilà, si vous avez un Mac Apple Silicon sous macOS Tahoe, apfel et ses outils valent le coup d'œil pour vos petites tâches IA basiques / rapides de tous les jours.

❌
❌