Les modèles Mixture-of-Experts n’utilisent que quelques experts par token. MoEVM garde les bons sur le GPU et pagine le reste depuis le SSD : des modèles qui dépassent le budget mémoire du GPU tournent ainsi sur Apple Silicon — avec une sortie identique à celle de llama.cpp sans MoEVM.
8.72 tok/s gpt-oss-120b (58 GiB) sur le GPU, médiane de 5 exécutions
3.1× Qwen3-Coder-Next face à l’op-offload de llama.cpp, même prompt
95.8 % taux de succès du cache d’experts en LRU (optimum : 97,5 %)
1Empaqueter
Les experts routés sont empaquetés dans un fichier sidecar — 4 608 enregistrements avec un index SHA-256.
2Préparer
Une arène en RAM avec éviction LRU ; 4 threads préchargent les experts que le routeur choisira probablement.
3Router
Lire le choix du routeur une fois par couche, planifier les slots GPU, échanger les identifiants d’experts de façon atomique.
4Calculer
Les experts s’exécutent depuis un pool Metal persistant ; le reste du modèle demeure sur le GPU.
5Protéger
Époques : un slot n’est jamais évincé avant que le GPU en ait fini. Un listener de pression mémoire allège la RAM.
6Vérifier
Chaque changement doit passer un contrôle de parité des logits face à llama.cpp sans MoEVM.
Les paliers de performance
llama.cpp op-offload4.24
Sidecar + pool Metal13.08
Durci, dynamic-K19.31
Contexte 4k21.88
Build du graphe, sans hook de copie21.90
Qwen3-Coder-Next Q4, tokens/s, mesures avec les traces de routage activées. Comparaison directe et propre, traces désactivées : 6,41 → 19,90 tok/s (3,1×).
Comment j’ai gardé des chiffres honnêtes
Parité ligne par ligne : écart maximal, argmax et token sur tout le vocabulaire.
Test de jitter : délais de 500 µs injectés et synchronisations forcées — toujours 0,0.
Critères de validation écrits avant les résultats ; médiane de 5 exécutions, jamais la meilleure ; chiffres à cache chaud refusés.
Ce qui n’a pas marché — et les limites
Chargement des experts par callback : 2,07 tok/s. Abandonné.
Quand un modèle tient en mémoire, llama.cpp seul l’emporte (49,69 tok/s). MoEVM sert aux modèles qui n’y tiennent pas.
Sur CPU, llama.cpp seul fait tourner gpt-oss-120b à 10,9–14,4 tok/s sur des prompts courts. L’atout de MoEVM, c’est le chemin GPU à mémoire bornée.
Le décodage spéculatif n’a apporté aucun gain réel sur le chemin final.
Autres études de cas
Mon produit · en développement
Where?
344étapes de parcours conçues
Planifier ses sorties seul ou en groupe, puis dévoiler la carte en y allant vraiment. Produit, UX, app iOS et backend — je fais tout, avec une équipe d’agents IA.
Des experts IA métier qui s’appuient sur les documents privés d’une entreprise — chaque affirmation est confrontée à ses sources avant d’être affichée. Tableau de bord et API entreprise.
Je prends des projets en freelance : je conçois, code et livre des outils IA branchés sur les logiciels que votre équipe utilise déjà. À distance, depuis la France.
Un assistant de direction IA dans WhatsApp, hébergé en France.
Contexte
Le fondateur de SouverainIA voulait un assistant de direction IA pour les dirigeants de PME, installé là où ils travaillent déjà — WhatsApp — avec chaque octet hébergé en France.
Ce que j’ai fait
J’ai construit le produit seul : backend Python, intégration WhatsApp (Meta), un « Chef IA » qui fixe les priorités du jour et envoie un résumé chaque soir.
Sécurité : double authentification TOTP, révocation des sessions, logs sans données personnelles.
Exploitation : Docker sur un VPS autogéré derrière nginx, releases versionnées avec un rollback écrit pour chaque déploiement.
J’ai conçu et livré la nouvelle landing page.
Résultat
En production sur souverainiafr.com, couvert par 1 749 tests automatisés.
Python
WhatsApp API
Docker
Redis
nginx
TOTP
2026 · Cofondateur · marque & site
Bastide
Des assistants IA privés pour les PME — offre, tarifs et site.
Contexte
Avec un associé, un studio qui conçoit des assistants IA privés pour les PME et les cabinets qui manipulent des données confidentielles — les experts-comptables d’abord.
Ce que j’ai fait
Positionnement, offre et tarifs : audit payant, mise en place en 6 semaines, suivi mensuel en option.
La marque et tout le site : export statique Next.js, pages par secteur, un comparatif « Bastide vs IA publique », une page sécurité.
Une boucle de contenu SEO + recherche IA : brouillons planifiés, veille concurrentielle et rapport de visibilité mensuel — rien n’est publié sans relecture humaine.
Next.js
Static export
SEO / GEO
Scheduled agents
2026 · Concept de refonte · proposition client
ESLITECH
La refonte du site d’un fabricant, branchée sur son CMS en production.
Contexte
ESLITECH (marque Smartfurry), fabricant d’aquariums et de produits pour animaux, avait un site daté. Le brief : mêmes contenus, mêmes pages, un rendu premium.
Ce que j’ai fait
J’ai refait le front-end en Vue 3 + Vite sur l’API de leur CMS en production, sans casser une seule URL, un seul call-to-action ni une seule popup.
Un système d’animations, des sections produits en bento et une page À propos dédiée.
J’ai livré une démo publique sur Cloudflare Workers : HTTPS, noindex, formulaires désactivés.
Vue 3
Vite
CMS API
Cloudflare Workers
2026 · Fondateur & CEO
Selvren
Des experts IA sur des documents privés, chaque affirmation confrontée à ses sources.
Contexte
Les équipes veulent des réponses tirées de leurs propres documents — preuves à l’appui. Selvren a commencé comme un chatbot pour animaleries, est devenu AquaChat pour les magasins d’aquariophilie, puis une plateforme B2B d’experts métier IA.
Ce que j’ai fait
J’ai fondé l’entreprise et dirigé le développement avec une équipe d’agents de codage IA : j’ai fixé l’architecture, les règles et la merge gate, et relu le travail.
Une recherche hybride sur les documents privés et un catalogue d’experts, puis un vérificateur à base de règles qui confronte chaque affirmation à ses sources — il s’abstient ou cite quand les sources sont trop minces.
Sécurité dès la conception : sécurité au niveau des lignes dans PostgreSQL, originaux chiffrés, antivirus sur les fichiers importés, proxy de sortie, clés API hachées et révocables.
Outillage RGPD : export des données, effacement, une doctrine de conservation écrite.
Résultat
3 182 commits en 11 semaines, 11 901 tests dans la merge gate, 28 décisions d’architecture documentées.
Fastify
TypeScript
PostgreSQL 17
pgvector
Mistral
React
TanStack Start
Clerk
2026 · R&D · IA local-first
Atelier
Idée brute → brief produit via 8 moteurs spécialisés, 100 % en local.
Contexte
Chaque produit que je construis part d’une idée brute. Atelier la transforme en un brief qu’une équipe technique — humaine ou IA — peut exécuter.
Ce que j’ai fait
Une chaîne local-first de 8 moteurs spécialisés, de l’exploration jusqu’au produit, où les données de chaque étape sont enregistrées.
Tout tourne sur un MacBook (M5 Pro) avec Ollama et MLX, sous une règle stricte de coût zéro : aucune API payante, aucune puissance de calcul louée.
J’ai mené un benchmark de modèles de code locaux pour choisir le moteur (qwen3-coder 30B : 5× plus rapide que qwen2.5-coder 32B).
Résultat
Idée → brief produit, de bout en bout, en cinq minutes environ et entièrement hors ligne.
Python
Ollama
MLX
Local LLMs
2026 · Produit, UX & app · partenaire
Naiad
L’app compagnon d’aquariums connectés, avec un assistant IA.
Contexte
Naiad est l’app compagnon des aquariums connectés d’un partenaire matériel — conçue comme une démo pour ce partenaire.
Ce que j’ai fait
J’ai conçu tout le parcours : un onboarding qui commence par le compte, avec données hébergées dans l’UE, reconnaissance des produits par QR code, profil du bac.
Un tableau de bord vivant (paramètres de l’eau, score de confiance), compatibilité des espèces, pilotage de l’éclairage et des pompes, un journal de bord.
Un assistant IA qui explique les tendances et prépare des actions sûres — mais qui ne pilote jamais un appareil sans la confirmation du propriétaire.
Mobile-first web app
IoT
AI assistant
EU data residency
2021–2023 · Le Mans Université
GLPI
La mise en place de GLPI pour le service desk et l’inventaire informatique.
Contexte
Le service informatique accompagne le personnel de tout un campus universitaire — chaque demande et chaque équipement doivent être suivis.
Ce que j’ai fait
J’ai mis en place GLPI : un service desk à tickets pour les demandes des utilisateurs et l’inventaire du parc informatique.
Je l’ai utilisé au quotidien avec l’équipe pour le suivi du support.
GLPI
Service desk
IT asset inventory
2021–2023 · Le Mans Université
Déploiement de PC
Un serveur de déploiement pour installer les postes du personnel.
Contexte
Les postes neufs ou réinstallés devaient arriver chez le personnel prêts à l’emploi, de la même façon à chaque fois.
Ce que j’ai fait
J’ai mis en place un serveur de déploiement pour installer les PC de travail de façon reproductible.
J’ai préparé et installé les postes du personnel.
Deployment server
Workstations
2021–2023 · Le Mans Université
Support & maintenance
Support utilisateurs, maintenance du réseau et des serveurs.
Contexte
Deux ans en alternance au sein de l’équipe informatique d’une université, en parallèle d’un Bac+2 systèmes et réseaux.
Ce que j’ai fait
Support au quotidien du personnel de l’université.
Maintenance du réseau et des serveurs avec l’équipe.
Maintenance matérielle des postes de travail.
Networks
Servers
Support
2026 · Serveur Minecraft · modpack
DataRace
Un serveur « Create Civilisations » de 223 mods, optimisé et hébergé.
Contexte
Je construis toujours pour Minecraft : un serveur survie moddé, bâti sur le pack « All of Create ».
Ce que j’ai fait
J’ai assemblé et livré sept versions en cinq jours (juin 2026) : colonies, génération du monde, trains, rendu longue distance, une passe de performance, puis des mods de contenu et de qualité de vie.
J’ai documenté chaque choix : aucun mod de protection de terrain, packs de mobs difficiles bloqués, chaque mod testé sur un monde de staging avant d’être rendu public.
Je l’ai optimisé et hébergé : mémoire serveur 4 → 10 Go avec réglages du GC, distance d’affichage 8, distance de simulation 6, sur un VPS doté d’un panneau de gestion de serveur de jeu.
Résultat
223 mods serveur sur Minecraft 1.21.1 (NeoForge), 20 TPS mesurés (5,3 ms par tick).
NeoForge 1.21.1
JVM tuning
VPS
Docker
2026 · Mod Minecraft · codéveloppé
Pokémon League
Un mod de ligue compétitive en Kotlin : arènes, ELO, tournois.
Contexte
Un mode compétitif complet construit sur Cobblemon, le mod Pokémon pour Minecraft.
Ce que j’ai fait
J’ai lancé le projet avec un autre développeur et construit son système économique.
Le mod comprend une ligue en 7 étapes avec 5 arènes, des matchs classés en 1v1 et 2v2 avec ELO, des tournois à double élimination jusqu’à 32 joueurs et 96 quêtes.
Kotlin
Fabric
Cobblemon
Minecraft 1.21.1
2025 · Mon produit · bêta
SyncCast
Garde les casters esport sur la même image, sur Twitch comme sur YouTube.
Contexte
Les casters esport commentent le même match depuis des endroits différents — et chaque plateforme le diffuse avec sa propre latence.
Ce que j’ai fait
J’ai construit le produit en 8 jours (268 commits, décembre 2025) : des salons, un caster leader qui sert de référence, et des resynchronisations planifiées sur une horloge serveur partagée (Ably).
La dérive de Twitch est mesurée chaque seconde ; un écart de plus de 500 ms déclenche un réalignement planifié.
Un relais HLS maison : streamlink + FFmpeg en segments d’une seconde sur Cloudflare R2, les segments envoyés avant la playlist.
Des équipes avec rôles Admin / Manager / Caster et invitations ; chat de salon et dessin en direct par-dessus la vidéo ; sécurité au niveau des lignes sur chaque table.
J’ai refait la landing page en 2026 pour expliquer le backend — uniquement avec ce que le code fait vraiment.
Résultat
En bêta, avec 52 tests unitaires et 14 tests de bout en bout.
Next.js
Ably
Supabase
hls.js
FFmpeg
Cloudflare R2
Ce site mesure son audience avec Google Analytics, seulement si vous acceptez. Votre choix est gardé 6 mois.