Ornith 1.0 : un modèle de coding 100 % open-source peut-il remplacer Claude Code en local ?
Test grandeur réelle du modèle agentique Ornith 1.0 (9B vs 35B) sur un Mac Mini 16 Go, avec LM Studio et PI Agent : entre promesses alléchantes et désillusions bien réelles.
🧬 Ornith 1.0, c’est quoi exactement ?
Ornith 1.0 est une famille de modèles de langage open-source développée par DeepReinforce AI, un laboratoire de recherche connu pour ses travaux antérieurs comme CUDA-L1. Le nom « Ornith » vient du grec ancien signifiant « oiseau » — une référence à l’idée que le modèle construit lui-même son propre nid, c’est-à-dire son propre cadre de travail (son « scaffold »), avant de résoudre une tâche de code.
Concrètement, ces modèles sont entraînés par renforcement (RL) avec une particularité notable : au lieu de s’appuyer sur un harnais fixe conçu par des humains, Ornith apprend à générer son propre plan d’action, à déclencher ses propres outils, à inspecter ses résultats intermédiaires et à corriger ses erreurs de façon autonome. C’est ce que DeepReinforce appelle le self-scaffolding.
Les modèles sont construits sur des bases pré-entraînées Gemma 4 et Qwen 3.5, deux familles déjà réputées pour leurs capacités agentiques et leurs performances en codage local.
Les 4 tailles disponibles
ℹ️ Tous les modèles sont publiés sous licence MIT, sans restriction régionale, et disponibles librement sur Hugging Face.
📊 Que disent les benchmarks officiels ?
Comme toujours avec les chiffres communiqués par les créateurs d’un modèle, une bonne dose de scepticisme est de rigueur : le meilleur test reste celui qu’on fait soi-même, sur son propre matériel et son propre cas d’usage. Cela dit, voici les grandes lignes des évaluations mises en avant, qui portent sur trois familles de tests bien différentes :
- Terminal-Bench 2.1 : la capacité du modèle à naviguer dans un terminal et exécuter des actions concrètes (appels d’outils, commandes).
- SWE-Bench Verified / Pro : la capacité à comprendre un bug dans une base de code existante et jamais vue, puis à le corriger.
- ClawEval (OpenClaw) : l’aptitude du modèle à opérer de façon autonome dans un agent type « OpenClaw » pour réaliser des tâches.
Sur ces trois familles d’évaluation, les versions 9B, 31B et 35B affichent des scores étonnamment proches les uns des autres — un résultat qui a de quoi surprendre pour un écart de taille aussi important entre les modèles.
⚠️ Le détail qui change tout
Ces benchmarks ne mesurent pas la capacité d’un modèle à construire une application complète depuis zéro. Ils testent soit la navigation dans un harnais existant, soit la correction d’un bug ponctuel dans du code déjà écrit. Or, c’est justement la création from scratch qui intéresse le plus les développeurs solo — et c’est précisément ce que la vidéo va mettre à l’épreuve.
🖥️ Le setup matériel et logiciel du test
Pour ce test, l’auteur de la vidéo utilise une configuration volontairement modeste, représentative de ce que beaucoup d’utilisateurs ont sous la main :
Pourquoi pas Claude Code ?
L’auteur précise que Claude Code reste son éditeur de code préféré, mais que le temps d’attente devient rédhibitoire avec un petit modèle local sur du matériel limité — jusqu’à 3 ou 4 minutes pour la première réponse. PI Agent s’est montré nettement plus rapide et plus utilisable dans ce contexte précis.
Paramétrage dans LM Studio
- Deux variantes du 9B disponibles : GGUF et MLX (cette dernière plus rapide sur silicium Apple, notamment au chargement du contexte).
- Poids du modèle : environ 6,2 Go en mémoire pour la quantization choisie.
- Fenêtre de contexte maximale annoncée : jusqu’à 260 000 tokens.
- Avec ~12 Go de budget mémoire, le modèle peut monter à environ 186 000 tokens de contexte — un résultat jugé « exceptionnel » par l’auteur, bien supérieur à un modèle comme Gemma 4 12B testé précédemment (~70 000 tokens dans la même limite).
- Activer le flash attention et quantiser le cache KV en Q8 permet de pousser jusqu’au contexte maximal en ne consommant qu’environ 10,3 Go.
⚡ Vitesse de génération : le match des tokens/seconde
Premier indicateur très concret avant même de juger la qualité du code : la vitesse de génération.
Le modèle 35B tourne ici sur une machine bien plus puissante (un Mac Studio), donc la comparaison n’est pas strictement équitable en termes de matériel. Mais l’écart de vitesse — environ 5 fois plus rapide pour le 35B — reste un point de repère intéressant pour qui voudrait dimensionner son propre setup.
🎮 Le grand test : créer un jeu de tower defense en un seul fichier HTML
Place à l’épreuve du feu. La consigne donnée aux deux modèles est volontairement simple et identique : créer un fichier HTML unique reproduisant un jeu de tower defense, sur le même principe qu’une démo déjà réalisée avec Qwen 3.6 35B en moins de 4 minutes.
Lancement du prompt sur Ornith 9B
Le modèle commence par élaborer un plan détaillé, avec un grand nombre de « tokens de réflexion » avant de produire la moindre ligne de code — un comportement jugé plutôt prometteur sur le papier.
Lancement en parallèle sur Ornith 35B (MLX)
Sur le Mac Studio, la génération est quasi instantanée à l’œil nu — la vitesse est telle que l’auteur ne parvient même pas à observer la génération en temps réel.
Premier résultat : le 35B fonctionne, mais…
Le jeu se charge, les tours (archer, canon, mage des glaces, sniper) sont visibles, mais en plaçant un archer, celui-ci ne tire pas sur les ennemis. Un bug bloquant dès la première utilisation.
Le 9B, lui, ne livre tout simplement pas un résultat fonctionnel
Le fichier généré par le modèle 9B ne produit rien d’exploitable à l’ouverture dans le navigateur : aucune interaction possible.
Tentative de correction sur le 35B
Après un nouveau prompt signalant le bug des tours qui ne tirent pas, le modèle 35B finit par produire une version jouable, bien qu’imparfaite (la vague 2 sur 765 ne semble pas vraiment se dérouler normalement, mais le jeu reste « praticable »).
Et le 9B, alors ?
C’est là que les choses se corsent franchement. Le modèle 9B s’avère incapable de corriger son propre code : les tentatives de débogage tournent en boucle et aggravent même la situation, selon les observations de l’auteur. Il faut finalement faire intervenir le modèle 35B, en lui fournissant directement la base de code à corriger, pour obtenir — après 4 à 5 itérations — une version à peu près fonctionnelle, bien que nettement moins aboutie que le jeu généré directement par le 35B.
| Critère | Ornith 1.0 – 9B | Ornith 1.0 – 35B MoE |
|---|---|---|
| Génération initiale fonctionnelle | ❌ Non | ⚠️ Partiel (bug des tours) |
| Taille du fichier généré | ~800-900 lignes | ~600-750 lignes |
| Capacité d’auto-débogage | ❌ Boucle, aggrave le problème | ✅ Correction en 4-5 itérations |
| Vitesse observée | ~16 tokens/s | ~100 tokens/s (machine différente) |
| Résultat final jouable | Seulement via correction par le 35B | Oui, après itérations |
🔍 Pourquoi le 9B peine autant ?
L’analyse de l’auteur est claire et plutôt instructive pour quiconque s’intéresse aux petits modèles locaux : à 9 milliards de paramètres, la précision manque structurellement, et ce n’est pas spécifique à Ornith — le même phénomène s’observe avec d’autres familles de petits modèles. Les symptômes typiques observés :
- Des fonctions créées mais jamais déclarées correctement.
- Des fonctions vides, ou définies mais jamais appelées ailleurs dans le code.
- Des appels d’outils (tool calls) parfois mal formés, que l’agent (PI Agent) ne parvient plus à interpréter.
- Des fautes de frappe ou erreurs de syntaxe qui cassent l’assemblage global de l’application.
💡 Le takeaway principal de la vidéo
Avec un modèle de 9 milliards de paramètres pour des tâches de code, il faut soit réduire ses attentes, soit réduire la portée du projet. Le modèle 35B a clairement la capacité de produire du bon travail — la précision manque simplement à l’échelle inférieure pour assembler correctement une application complète et cohérente.
L’auteur note aussi un point de variabilité intéressant : un test similaire mené la veille avec le même modèle 35B avait fonctionné « du premier coup », sans le bug des tours immobiles. Un rappel utile que les LLM restent probabilistes, et qu’un même prompt peut donner des résultats différents d’une exécution à l’autre.
✅ Ce qu’il faut retenir
- Ornith 1.0 (DeepReinforce AI) est une famille de 4 modèles open-source (9B, 31B, 35B MoE, 397B MoE) spécialisés en coding agentique, basés sur Gemma 4 et Qwen 3.5.
- Le format 9B tient dans 16 Go de RAM et atteint un contexte impressionnant (jusqu’à ~186 000 tokens), mais manque cruellement de précision pour des tâches de génération complète depuis zéro.
- Le format 35B MoE produit des résultats nettement plus convaincants, capable de déboguer son propre code en plusieurs itérations.
- Les benchmarks officiels (Terminal-Bench, SWE-Bench, ClawEval) ne reflètent pas forcément la capacité réelle à construire une application complète « from scratch » — un écart à garder en tête en lisant n’importe quel comparatif de ce type.
- PI Agent s’est montré une alternative pertinente à Claude Code pour piloter de petits modèles locaux sans subir des temps d’attente trop longs.
🚀 Envie de tester par vous-même ?
Ornith 1.0 est disponible librement sous licence MIT sur Hugging Face (organisation deepreinforce-ai), compatible avec LM Studio, Ollama ou vLLM.
🎬 Regarder la vidéo source

📑 Sommaire cliquable
- Présentation d’Ornith 1.0 et de ses 4 tailles
- Lecture des benchmarks officiels (Terminal-Bench, SWE-Bench, ClawEval)
- Setup matériel : Mac Mini M4, LM Studio, gestion du contexte
- Test de vitesse : tokens/seconde du 9B vs 35B
- Lancement du test pratique : créer un tower defense
- Premiers résultats et bugs rencontrés
- Tentatives de débogage : le 9B en boucle, le 35B s’en sort
- Conclusion et takeaways sur les petits modèles locaux
⏱️ Les horodatages sont des repères approximatifs basés sur le déroulé de la vidéo.
