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 escritura
    • Para dejar de forma significativa los intentos y reflexiones de los últimos aproximadamente 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, y antes de generar una respuesta real el proceso de razonamiento tardaba más de 5 min, por lo que suspendí el experimento local
  • Investigué la forma de recopilar datasets para entrenar un modelo especializado en Godot
    • Verifiqué el dataset wallstoneai/godot-gdscript-dataset de Hugging Face como referencia
    • Analicé con Gemini cómo se había creado ese dataset
    • La clave consistía en combinar, a nivel de 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 versiones 3/4 de Godot
    • En particular, al aprovechar pistas por versión 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
  • Vi un video de fine‑tuning sobre el lenguaje de programación clásico OPL para comprender el flujo de fine‑tuning
  • Pregunté al coach de SSAFY cómo recopilar 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 procesarlos como dataset de instrucciones, en lugar de usar los datos crudos tal cual
    • Sin este proceso, un pedido como “diseña un mapa” probablemente sería respondido con la solución centrada en Python que el modelo ya ha aprendido mucho
  • 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 datos de entrenamiento exclusivos de Godot 4
    • Me pregunté “¿Podría hacer que el modelo responda sobre Godot sin mencionar Godot?”, pero concluí que, dado el gran peso del modelo en Python, proporcionar explícitamente el contexto Godot en la pregunta aumenta la probabilidad de obtener la respuesta correcta
  • Consulté a un senior de la universidad sobre RAG y la dirección del prompting
    • Me aconsejaron que, en lugar de inyectar todos los datos al modelo, sería 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 documentos masivos es costoso y lleva tiempo, por lo que en esta etapa una arquitectura basada en búsqueda/prompting puede ser más adecuada que el entrenamiento
  • Diseñé la arquitectura inicial para crear un modelo de codificación especializado en Godot
    • Inicialmente pensé en una estructura simple: recopilación de dataset → generación de dataset de preguntas/respuestas → entrenamiento del modelo
    • Pero surgió el problema de que, para filtrar y generar datos correctos, era necesario comprender a fondo los cambios de Godot 3 a Godot 4
    • Temía que códigos de Godot 3, Python o APIs antiguas 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 la clasificación y conversión de versiones Godot 3/4
    • La idea es rastrear la documentación oficial de migración de Godot y la documentación de Godot 4, crear un chatbot RAG y usarlo para determinar si los datos recopilados pertenecen a Godot 3 o a Godot 4
    • Luego, solo los datos identificados como Godot 4 se procesarían como dataset de instrucciones
  • Obtuve más ideas 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 en Godot 4, rechazo/corrección de API de Godot 3, etc.
    • En DPO/Preference se puede construir datos de preferencia con respuesta mala = respuesta con código Godot 3 mezclado, respuesta buena = respuesta pura de código Godot 4
  • Utilicé unclecode/crawl4ai para rastrear la documentación oficial de Godot
  • Pedí a un senior de la universidad más consejo sobre el cuello de botella de I/O de disco en la tubería de almacenamiento y entrenamiento de datos
    • Me recomendaron que, en lugar de hacer fine‑tuning en tiempo real, es mejor procesar la adquisición y el pre/post‑procesamiento de datos lo más cerca posible del tiempo real, y ejecutar el entrenamiento de forma batch
    • Decidimos considerar un procesamiento batch basado en métricas, ejecutando aprendizaje reforzado o fine‑tuning cuando el dataset supera 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
    • Rastrear la documentación oficial y construir una base de conocimiento RAG basada en Godot 4
    • Recopilar proyectos de Godot en GitHub y combinar README, estructura del proyecto y archivos GDScript por repositorio
    • Filtrado inicial usando la configuración project.godot y las diferencias de sintaxis entre Godot 3/4
    • Usar el chatbot RAG para determinar si el contenido es Godot 3/4, si usa APIs antiguas y su idoneidad para Godot 4
    • Generar datos de instrucción/respuesta a partir de los datos filtrados como Godot 4
    • Entrenar el modelo de codificación Godot 4 con datos SFT y DPO/Preference
  • Retrospectiva
    • En los últimos 10 días, al intentar dejar solo los resultados terminados, no logré registrar el proceso
    • Sin embargo, los experimentos fallidos, los puntos bloqueados y los cambios de criterio a mitad de camino son los registros que realmente guían la siguiente dirección
    • En adelante, en lugar de buscar solo resultados perfectos, mantendré un registro continuo de intentos y decisiones para seguir mejorando
  • Retrospectiva de desarrollo: docs/retrospectives/2026-06-12.md