idea_world_labDEV JOURNAL
viernes, 12 de junio de 2026

12 de junio de 2026

  • Decidí volver a escribir una retrospectiva de desarrollo después de mucho tiempo
    • Durante ese tiempo, el deseo de dejar solo registros perfectos me hizo posponer la documentación
    • Para dejar de forma significativa los intentos y reflexiones de los últimos ~10 días, organicé la investigación y el diseño de arquitectura para crear un modelo de codificación especializado en Godot
  • Realicé un experimento para reducir el costo de RunPod desplegando un modelo de la familia Qwen en mi PC local
    • Intenté ejecutar un modelo de 9 B en WSL con una RTX 3060
    • Sin embargo, los problemas de velocidad de conexión y latencia fueron graves; la fase de razonamiento antes de generar la respuesta tardaba más de 5 min, por lo que suspendí el experimento local
  • Investigué primero la forma de recopilar datasets para entrenar un modelo especializado en Godot
    • Verifiqué el dataset de referencia de Hugging Face wallstoneai/godot-gdscript-dataset
    • Analicé con Gemini cómo se había creado ese dataset
    • La clave consistía en combinar, por repositorio de GitHub, el README.md, los archivos .gd y la estructura del proyecto en un solo texto, y usar el archivo de configuración project.godot y las diferencias de sintaxis de GDScript para clasificar entre Godot 3 y 4
    • En particular, al aprovechar pistas versionadas como config_version, config/features, onready var, @onready, KinematicBody, CharacterBody3D, se obtuvo la visión de que incluso lenguajes poco comunes sin archivos de dependencias basados en JSON pueden filtrarse por versión
  • Para comprender el flujo de fine‑tuning, consulté un video de fine‑tuning sobre el lenguaje de programación clásico OPL
  • Pregunté al coach de SSAFY cómo recolectar eficazmente datos de lenguajes poco comunes de una versión específica
    • Me respondieron que el dataset de Godot que había revisado se asemeja más a un dataset de código bruto que a un dataset de preguntas y respuestas para entrenamiento de asistentes
    • Para crear un producto tipo chatbot, es mejor generar pares pregunta/respuesta con un LLM y transformarlos en un dataset de instrucciones, en lugar de usar los datos crudos tal cual
    • Sin este paso, un modelo tendería a responder a solicitudes como “diseña un mapa” con respuestas centradas en Python, que son las que más ha aprendido
  • Evalué como candidato de dataset de instrucciones ise-uiuc/Magicoder-Evol-Instruct-110K
    • La mayor parte está escrita en Python, por lo que no es adecuada para usar directamente como dataset de entrenamiento exclusivo de Godot 4
    • Me pregunté “¿Podría hacer que el modelo responda sobre Godot sin mencionar explícitamente Godot?” pero concluí que, dado el gran peso del conocimiento de Python en el modelo, proporcionar claramente el contexto Godot en la pregunta aumenta la probabilidad de obtener la respuesta correcta
  • Consulté a un senior de la universidad sobre RAG y prompting
    • Me aconsejaron que, en lugar de inyectar todos los datos al modelo, podría ser más realista crear una estructura de búsqueda vectorial basada en documentos Markdown y guiar al modelo a buscar la información necesaria
    • Re‑indexar grandes volúmenes de documentos es costoso y lento; por ahora, una arquitectura basada en búsqueda/prompting parece más adecuada que el entrenamiento directo
  • Diseñé la arquitectura inicial para crear un modelo de codificación especializado en Godot
    • Inicialmente pensé en una cadena simple: recolección de dataset → generación de dataset Q&A → entrenamiento del modelo
    • Pero surgió el problema de que, para filtrar y generar datos correctos, era necesario comprender bien los cambios de Godot 3 a 4
    • Temí que código de Godot 3, código Python y APIs obsoletas se mezclaran en los datos de respuesta, por lo que reconsideré la arquitectura
  • Propuse una estructura que coloca un chatbot RAG basado en la documentación oficial al frente para clasificar y convertir versiones de Godot 3/4
    • Crawleé la documentación oficial de migración de Godot y la documentación de Godot 4 para crear un chatbot RAG, y usarlo para determinar si los datos recolectados pertenecen a Godot 3 o 4
    • Luego, solo los datos identificados como Godot 4 se procesarían para crear el dataset de instrucciones
  • Obtuve insights adicionales de ChatGPT sobre la dirección del entrenamiento SFT/DPO
    • En SFT se pueden crear tareas como clasificación Godot 3/4, conversión Godot 3 → 4, generación de código Godot 4, corrección de errores Godot 4, y rechazo/corrección de API Godot 3
    • En DPO/Preference se puede estructurar datos de preferencia con respuesta mala = respuesta que mezcla código Godot 3, respuesta buena = código puro de Godot 4
  • Utilicé unclecode/crawl4ai para rastrear la documentación oficial de Godot
  • Pedí consejo adicional a un senior sobre el cuello de botella de I/O de disco en la tubería de almacenamiento y entrenamiento
    • Me recomendaron procesar la adquisición y pre/post‑procesamiento de datos lo más cerca posible del tiempo real, y ejecutar el entrenamiento en modo batch
    • Decidí considerar un procesamiento por lotes basado en métricas, ejecutando refuerzo o fine‑tuning cuando el dataset supere cierto umbral
    • Como el costo de re‑indexado es estructuralmente difícil de eliminar, la estabilidad de la tubería de adquisición y procesamiento de datos es más importante que la latencia del entrenamiento
  • Dirección general actual
    • Crawl de la documentación oficial para construir una base de conocimiento RAG basada en Godot 4
    • Recolección de proyectos Godot en GitHub y fusión de README, estructura del proyecto y archivos GDScript por repositorio
    • Filtrado inicial usando la configuración project.godot y diferencias de sintaxis entre Godot 3/4
    • Uso de un chatbot RAG para determinar si el contenido es Godot 3/4, si usa APIs obsoletas y su idoneidad para Godot 4
    • Generación de datos de instrucción/respuesta a partir de los datos filtrados para Godot 4
    • Entrenamiento del modelo de codificación Godot 4 con datos SFT y DPO/Preference
  • Retrospectiva
    • Durante los últimos 10 días, el deseo de dejar solo resultados terminados me impidió registrar el proceso
    • Sin embargo, los experimentos fallidos, los obstáculos y los cambios de decisión intermedios son los registros que realmente guían la siguiente dirección
    • En adelante, en lugar de buscar la perfección, me comprometo a documentar continuamente el flujo de intentos y decisiones para seguir mejorando
  • Retrospectiva de desarrollo: docs/retrospectives/2026-06-12.md