idea_world_labDEV JOURNAL
vendredi 12 juin 2026

12 juin 2026

  • J’ai décidé de rédiger à nouveau un rétrospective de développement après une longue pause
    • Pendant ce temps, le désir de ne laisser que des enregistrements parfaits m’a en fait fait remettre à plus tard la prise de notes
    • Pour consigner de façon significative les essais et les réflexions des dix derniers jours, j’ai organisé les recherches et la conception d’architecture visant à créer un modèle de codage spécialisé pour Godot
  • Expérience de déploiement d’un modèle de la série Qwen sur le PC local afin de réduire les frais d’utilisation de RunPod
    • J’ai tenté de faire tourner un modèle 9B sous WSL sur une machine RTX 3060
    • Mais les problèmes de vitesse de connexion réseau et de latence de réponse étaient sévères, et même la phase de réflexion avant la génération de la réponse prenait plus de 5 minutes, ce qui a conduit à l’abandon de l’expérience locale
  • Recherche du mode de collecte de jeux de données pour l’entraînement d’un modèle spécialisé Godot
    • Le jeu de données de référence a été identifié comme wallstoneai/godot-gdscript-dataset sur Hugging Face
    • Analyse via Gemini de la façon dont ce jeu de données a été créé
    • L’idée centrale consistait à fusionner, pour chaque dépôt GitHub, le fichier README.md, les fichiers .gd et la structure du projet en un seul texte, puis à exploiter le fichier de configuration project.godot et les différences de syntaxe GDScript pour classer les versions Godot 3/4
    • En particulier, l’utilisation d’indices versionnels tels que config_version, config/features, onready var, @onready, KinematicBody, CharacterBody3D montre qu’il est possible de filtrer les langages peu courants sans fichier de dépendances JSON
  • Visionnage d’une vidéo de fine‑tuning sur le langage de programmation ancien OPL pour comprendre le flux de fine‑tuning
  • Question posée à mon coach SSAFY sur la collecte efficace de données de langages peu courants pour une version spécifique
    • La réponse indiquait que le jeu de données Godot consulté ressemble davantage à un jeu de données de code brut qu’à un jeu de données Q&A pour l’entraînement d’assistants
    • Pour créer un produit de type chatbot, il vaut mieux générer des paires question/réponse avec un LLM puis les transformer en jeu de données d’instructions, plutôt que d’utiliser les données brutes telles quelles
    • Sans cette étape, une requête du type « Conçois‑moi une carte » risquerait de produire une réponse centrée sur Python, largement apprise par le modèle
  • Exploration du jeu de données d’instructions ise-uiuc/Magicoder-Evol-Instruct-110K comme candidat
    • La majorité du contenu est orientée Python, ce qui le rend inadapté tel quel pour un entraînement dédié à Godot 4
    • Je me suis demandé s’il était possible d’obtenir des réponses Godot sans mention explicite de Godot, mais étant donné le poids important du modèle sur Python, il est préférable de fournir clairement le contexte « Godot » dans la question pour augmenter les chances d’une réponse correcte
  • Consultation d’un senior de l’université sur les directions RAG et prompting
    • Au lieu d’injecter toutes les données dans le modèle, il a suggéré de créer une structure de recherche vectorielle basée sur des documents Markdown et de guider le modèle vers les données nécessaires, ce qui paraît plus réaliste
    • Le coût et le temps de ré‑indexation de gros volumes de texte étant élevés, il estime que, à ce stade, une architecture basée sur la recherche/prompting est plus appropriée que l’entraînement complet
  • Conception d’une architecture initiale pour le modèle de codage spécialisé Godot
    • Au départ, j’envisageais une chaîne simple : collecte du jeu de données → génération du jeu de données Q/R → entraînement du modèle
    • Mais il est nécessaire de connaître en détail les changements de Godot 3 à 4 pour filtrer correctement et générer des réponses précises, sinon on risque d’inclure du code Godot 3, du code Python ou des API obsolètes dans les réponses
    • Cette réflexion a conduit à repenser l’architecture
  • Proposition d’une structure où un chatbot RAG basé sur la documentation officielle est placé en amont pour la classification et la conversion des versions Godot 3/4
    • L’idée est de crawler la documentation de migration officielle et la documentation Godot 4, de créer un chatbot RAG, puis d’utiliser ce chatbot pour déterminer si les données collectées proviennent de Godot 3 ou 4
    • Ensuite, seules les données identifiées comme Godot 4 seraient transformées en jeu de données d’instructions
  • Obtention d’insights supplémentaires via ChatGPT sur les orientations SFT/DPO
    • En SFT, on peut créer des tâches telles que classification Godot 3/4, conversion Godot 3 → 4, génération de code Godot 4, correction d’erreurs Godot 4, rejet/correction d’API Godot 3, etc.
    • En DPO/Preference, on peut constituer des données de préférence où « mauvaise réponse = réponse contenant du code Godot 3 », « bonne réponse = réponse purement Godot 4 »
  • Utilisation de unclecode/crawl4ai pour crawler la documentation officielle de Godot
    • Document de départ : https://docs.godotengine.org/en/stable/tutorials/migrating/upgrading_to_godot_4.html
    • Environ 1 500 pages ont été crawlées et documentées, incluant la documentation officielle Godot 4, les guides de migration Godot 3 → 4, la référence de classes Godot 4 et les tutoriels
    • Bien que le volume semble important, cela ne représente qu’environ 3 % du contexte total du modèle
  • Demande de conseil supplémentaire à un senior sur le goulot d’étranglement I/O du disque dans le pipeline de stockage et d’entraînement
    • Il a recommandé de privilégier un traitement en lot pour l’entraînement, tout en traitant la collecte, le pré‑ et post‑processing des données de façon quasi‑temps réel
    • Lorsque le jeu de données dépasse un certain seuil, on peut lancer un apprentissage par renforcement ou un fine‑tuning basé sur des métriques, adoptant ainsi un traitement par lots guidé par les métriques
    • Le coût de ré‑indexation ne peut être éliminé complètement, donc la stabilité du pipeline de collecte et de transformation des données prime sur la latence d’entraînement
  • Synthèse de la direction actuelle
    • Crawling de la documentation officielle pour créer une base de connaissances RAG centrée sur Godot 4
    • Collecte de projets Godot sur GitHub et fusion de README, structure du projet et fichiers GDScript par dépôt
    • Filtrage initial à l’aide du fichier project.godot et des différences de syntaxe Godot 3/4
    • Utilisation du chatbot RAG pour déterminer la version Godot, la présence d’API obsolètes et la pertinence pour Godot 4
    • Génération de paires instruction/réponse à partir des données filtrées pour Godot 4
    • Entraînement du modèle de codage Godot 4 avec des données SFT et DPO/Preference
  • Rétrospective
    • Au cours des dix derniers jours, le désir de ne laisser que des résultats « parfaits » m’a empêché de consigner le processus
    • J’ai réalisé que les expériences échouées, les blocages et les changements de décision intermédiaires sont exactement ce qui alimente les orientations futures
    • Dorénavant, je privilégierai la consignation continue des essais et des raisonnements plutôt que la recherche d’un résultat parfait
  • Rétrospective de développement : docs/retrospectives/2026-06-12.md