Vibe coding avec un LLM local : jusqu’où peut aller Qwen3.8-27B ?

Les tests de modèles de langage se résument souvent à des benchmarks, des scores de programmation ou quelques questions complexes. J’ai voulu tester autre chose : la capacité d’un modèle local à réaliser un petit projet complet avec très peu d’informations de départ.

Pour cette expérience, j’utilise Qwen3.8-27B en Q8, exécuté localement, avec seulement deux grandes sources d’information :

  • la base de données statique du jeu EVE Online ;
  • la documentation et les exemples du moteur 3D GeeXLab.

L’objectif est volontairement simple à formuler : créer une représentation 3D de la carte d’EVE Online, permettre la navigation dans les systèmes stellaires et générer leurs planètes de manière procédurale.

L'idée : donner un objectif, pas la solution

Le but n'est pas de fournir au modèle une architecture détaillée puis de lui demander de remplir les fonctions une par une.

Au contraire, je veux lui donner le minimum nécessaire et observer comment il transforme une idée en projet.

Il doit donc lui-même déterminer :

  • comment exploiter la base de données d'EVE ;
  • quelles tables et quelles informations sont utiles ;
  • comment reconstruire les connexions entre systèmes ;
  • comment représenter plusieurs milliers de systèmes dans une scène 3D ;
  • comment gérer les énormes coordonnées utilisées par EVE ;
  • comment permettre la sélection et la navigation ;
  • comment générer visuellement les planètes à partir des quelques informations disponibles.

C'est précisément cette partie qui m'intéresse.

Écrire une fonction Python correcte est une chose. Comprendre un problème incomplet, élaborer une solution, rencontrer une difficulté puis modifier son approche en est une autre.

Un bon terrain de jeu pour tester le raisonnement

EVE Online est particulièrement intéressant pour cette expérience.

La base contient énormément de données, mais il faut comprendre leur organisation avant de pouvoir en faire quelque chose : régions, constellations, systèmes solaires, stargates, planètes, lunes, etc.

Le modèle doit progressivement reconstruire une représentation logique proche de :

Région → Constellation → Système solaire → Objets célestes

Les stargates permettent ensuite de transformer les systèmes en véritable graphe afin de dessiner les routes entre les étoiles.

Mais un autre problème apparaît rapidement : les coordonnées astronomiques d'EVE ne peuvent pas simplement être envoyées telles quelles dans une scène 3D.

Il faut donc trouver une représentation adaptée, par exemple en recentrant et en changeant l'échelle des coordonnées :

Position scène = (Position EVE - Centre) × Échelle

Ce sont exactement les petits problèmes d'ingénierie que je veux voir le modèle identifier sans lui donner directement la solution.

Des planètes procédurales plutôt que des milliers d'assets

La seconde partie du projet consiste à représenter les systèmes solaires.

Il serait évidemment absurde de créer manuellement les textures et modèles de chaque planète.

Le programme doit donc utiliser les informations disponibles dans EVE et compléter ce qui manque par génération procédurale.

Une planète peut par exemple être définie par son type et son identifiant EVE. Cet identifiant devient une seed déterministe utilisée pour générer couleurs, relief, nuages, atmosphère ou éventuellement anneaux.

Ainsi, la planète n'est pas réellement stockée sous forme d'asset : elle est reconstruite de la même manière à chaque lancement.

Cette partie est intéressante parce qu'elle oblige le modèle à distinguer les données réelles du jeu de ce qui peut être généré uniquement pour leur représentation graphique.

Les erreurs font partie du test

Je ne cherche pas spécialement à voir Qwen produire immédiatement un programme parfait.

Je veux surtout observer ce qu'il fait lorsqu'il se trompe.

S'il invente une fonction GeeXLab qui n'existe pas, la question devient : est-il capable de comprendre l'erreur, retourner dans la documentation et trouver une autre méthode ?

Même chose si la carte fonctionne avec quelques systèmes mais s'effondre à 15 FPS lorsqu'on affiche toute la galaxie.

Va-t-il simplement modifier quelques paramètres ou comprendre qu'il faut revoir la méthode de rendu, réduire les draw calls, utiliser l'instancing ou regrouper certaines données ?

Pour moi, c'est là qu'un test de vibe coding devient beaucoup plus intéressant qu'un benchmark classique.

Ce que je vais mesurer

Je vais surtout suivre quelques indicateurs simples :

  • nombre d'interventions humaines nécessaires ;
  • nombre de prompts ;
  • erreurs rencontrées et erreurs corrigées sans aide ;
  • qualité de l'architecture produite ;
  • capacité à utiliser une documentation inconnue ;
  • capacité à modifier une solution devenue mauvaise ;
  • performances finales de l'application.

Je conserverai également les mauvais choix et les hallucinations rencontrées pendant le développement. Ils font partie du résultat.

Pourquoi faire ce test avec un modèle local de 27B ?

Qwen3.8-27B n'est évidemment pas un modèle géant fonctionnant dans un datacenter. Dans mon cas, il tourne localement en Q8.

C'est justement ce qui rend l'expérience intéressante.

La question n'est pas de savoir s'il peut battre tous les modèles commerciaux sur un benchmark de code, mais plutôt :

Est-ce qu'un modèle local de cette taille est déjà capable de devenir un véritable assistant de développement, capable de prendre un objectif assez vague et de le transformer progressivement en application fonctionnelle ?

EVE Online et GeeXLab devraient fournir un terrain suffisamment complexe pour le découvrir.

Et si, à partir d'une base de données, d'une documentation moteur et de quelques lignes décrivant l'objectif, le modèle arrive effectivement à construire et déboguer cette carte 3D presque seul, ce sera probablement beaucoup plus parlant qu'un score supplémentaire sur un benchmark.

Pourquoi le Strix Halo est excellent pour du LLM et mauvais pour de la diffusion

L'AMD Strix Halo (gfx1151) a une réputation méritée dans la communauté du LLM local : 96GB de RAM unifiée, une bande passante mémoire correcte, et un support ROCm qui, sans être parfait, tient la route pour de l'inférence texte. Ce que j'ai voulu vérifier cette semaine, c'est si cette réputation tenait aussi pour la génération d'image. Verdict : non, pas du tout.

Lire la suite

Open WebUI & MTP : Retour d’expérience sur une évaluation technique en vue d’une intégration entreprise

Petite digression sur mon projet actuel. Suite à une demande concrète, je me suis penché sur l’évaluation d’Open WebUI pour une potentielle mise en production en environnement professionnel. L’objectif ? Identifier ses forces, mais aussi ses limites, tout en testant des configurations matérielles et logicielles optimisées pour simuler une charge réelle.

Lire la suite

Le cluster en juin 2026 : trois machines, trois rôles, un seul objectif

Depuis les premiers billets sur ce blog, l'infrastructure a beaucoup évolué. Ce qui était au départ une seule machine qui faisait tourner un LLM en local est devenu un cluster de trois nœuds, chacun avec un rôle distinct et des responsabilités claires. Il me semble utile de faire un point complet sur l'état actuel — non pas pour décrire chaque composant dans le détail technique, mais pour expliquer ce que chaque machine fait concrètement et comment elles s'articulent.

Lire la suite

Quand le projet devient multi-utilisateurs

Depuis les premiers billets sur ce projet, j’ai surtout parlé de modèles, d’embeddings et de pipelines RAG. Tout ce qui se passe côté machine. Mais il y a un autre axe d’évolution que j’ai mené en parallèle ces dernières semaines, moins spectaculaire techniquement mais tout aussi important en  […]

Lire la suite

Pourquoi j’ai ajouté un mode RAG piloté par agents dans Internal LLM

Au départ, un LLM local peut déjà aider pour écrire, expliquer ou générer du code. Mais il a une limite simple : il ne connaît pas automatiquement mes documents, mes scripts, mes exports ou la structure réelle de mes projets. C’est pour ça que j’ai ajouté un vrai mode RAG dans Internal LLM. L’idée  […]

Lire la suite

Internal LLM : pourquoi l’architecture repose sur trois moteurs spécialisés

Dans Internal LLM, je n’ai pas choisi un seul modèle pour tout faire. J’ai préféré une architecture en trois services spécialisés, chacun avec un rôle précis. Le service principal du code repose sur Qwen3-Coder-30B-A3B-Instruct en Q5_K_M sur le port 8080, le service de raisonnement sur Qwen3-32B en  […]

Lire la suite

Internal LLM : pourquoi j’ai choisi Ubuntu, un kernel récent et une architecture LLM en plusieurs modèles

Après avoir présenté le projet, je voulais revenir sur un point essentiel : dans un environnement d’IA locale, le choix du système compte presque autant que le choix des modèles. Pour Internal LLM, j’ai retenu Ubuntu 24.04.4 LTS avec un kernel 6.14.0-37, sur une machine basée sur AMD Ryzen AI Max+ 395 avec Radeon 8060S. Ce n’est pas un choix “par défaut”, mais un compromis entre compatibilité matérielle, stabilité et capacité d’expérimentation.

Lire la suite

Haut de page