idea_world_labDEV JOURNAL
пятница, 12 июня 2026 г.

12 июня 2026 г.

  • Окончательно решили снова написать обзор разработки после долгого перерыва

    • За это время из‑за желания оставлять только идеальные записи откладывал их написание
    • Чтобы осмысленно зафиксировать попытки и размышления, проделанные за последние примерно 10 дней, собрал исследование и процесс проектирования архитектуры для создания специализированной модели кодинга Godot
  • Провёл эксперимент по размещению модели семейства Qwen на локальном ПК, чтобы сократить расходы на RunPod

    • Пытался запустить 9‑млрд‑параметровую модель в WSL на системе с RTX 3060
    • Однако проблемы с пропускной способностью сети и задержкой отклика были серьёзными, и даже на этапе «размышления» перед генерацией ответа требовалось более 5 минут, поэтому эксперимент с локальным запуском был прекращён
  • Для обучения специализированной модели Godot сначала исследовал способы сбора датасетов

    • Проверил датасет wallstoneai/godot-gdscript-dataset на Hugging Face (ссылка)
    • С помощью Gemini проанализировал, как был создан этот датасет
    • Ключевой подход заключался в объединении в один текст README.md (ссылка), файлов .gd и структуры проекта на уровне репозитория GitHub, а затем классификации версий Godot 3/4 с помощью файла настроек project.godot и различий в синтаксисе GDScript
    • Особенно, используя такие версии‑специфичные подсказки, как config_version, config/features, onready var, @onready, KinematicBody, CharacterBody3D, можно фильтровать версии даже для нишевых языков без файлов зависимостей на основе JSON, что дало важное понимание
  • Чтобы понять процесс дообучения, посмотрел обучающее видео по дообучению на старом языке программирования OPL

    • Ссылка: https://www.youtube.com/watch?v=5wGD92ktQL4
    • При этом понял, что сбор датасета и приведение его к форме, пригодной для обучения, — это отдельные задачи
  • Спросил у наставника SSAFY, как эффективно собирать данные нишевых языков определённой версии

    • Получил ответ, что текущий датасет Godot больше похож на набор «сырого» кода, а не на Q&A‑датасет для обучения ассистента
    • Чтобы создать чат‑бот, лучше не просто загружать сырые данные, а генерировать пары вопрос‑ответ с помощью LLM и формировать инструкционный датасет
    • Без этого модель будет склонна отвечать, как обычно, на запросы вроде «спроектируй карту», используя преимущественно обученные ответы, ориентированные на Python
  • Рассмотрел инструкционный датасет ise-uiuc/Magicoder-Evol-Instruct-110K в качестве кандидата

    • Большая часть данных сосредоточена на Python, поэтому их нельзя напрямую использовать как обучающий материал исключительно для Godot 4
    • Возник вопрос: «Можно ли заставить модель отвечать про Godot, даже если в запросе не упомянут Godot?», но из‑за сильного веса Python‑весов в базовой модели лучше явно указывать контекст Godot, чтобы повысить вероятность правильного ответа
  • Проконсультировался со старшим коллегой по поводу RAG и стратегии промптинга

    • Получил совет, что вместо подачи всей информации модели лучше построить векторный поиск по markdown‑документам и направлять модель к нужным данным
    • Поскольку переиндексация больших объёмов текста требует значительных затрат времени и ресурсов, на текущем этапе более целесообразно использовать поиск/промптинг, а не обучение
  • Спроектировал начальную архитектуру для создания специализированной модели кодинга Godot

  • Сначала я думал о простой структуре вроде сбор набора данных -> создание набора вопросов/ответов -> обучение модели

    • Однако возникла проблема: чтобы точно фильтровать и генерировать правильные данные, нужно хорошо разбираться в переходе от Godot 3 к 4
    • Было решено пересмотреть архитектуру, поскольку при ошибке в ответы могут попасть код Godot 3, Python‑код и устаревший API
  • Для классификации и преобразования версий Godot 3/4 спроектирована структура с размещением RAG‑чатбота на переднем плане, основанного на официальной документации

    • Идея: собрать официальные документы по миграции Godot и документацию Godot 4, создать RAG‑чатбот и с его помощью классифицировать, относится ли собранный материал к Godot 3 или 4
    • Затем обрабатывать только данные, определённые как Godot 4, в набор инструкций
  • Через ChatGPT получили дополнительные идеи по обучению SFT/DPO

    • В SFT можно создавать задачи типа классификации Godot 3/4, преобразования Godot 3 → 4, генерации кода Godot 4, исправления ошибок Godot 4, отклонения/коррекции API Godot 3
    • В DPO/Preference можно сформировать предпочтительные данные, где плохой ответ = ответ с кодом Godot 3, хороший ответ = чистый код Godot 4
  • Для краулинга официальной документации Godot использовали unclecode/crawl4ai

    • Начальный документ: https://docs.godotengine.org/en/stable/tutorials/migrating/upgrading_to_godot_4.html
    • Были собраны и задокументированы почти 1 500 страниц, включая официальную документацию Godot 4, документы миграции Godot 3 → 4, справочник классов Godot 4 и учебные материалы
    • Хотя объём показался большим, по сравнению с общим контекстом модели это примерно 3 %
  • По поводу узкого места дискового ввода‑вывода в пайплайне хранения и обучения данных получили дополнительный совет от старшего коллеги

    • Вместо постоянного онлайн‑тюнинга лучше обрабатывать сбор и пред/пост‑обработку данных почти в реальном времени, а обучение проводить пакетно
    • Планируется использовать метрико‑ориентированную пакетную обработку, когда после накопления определённого объёма данных запускаются усиленное обучение или дообучение
    • Поскольку полностью избавиться от расходов на переиндексацию невозможно, стабильность пайплайна сбора и обработки данных важнее, чем реальное время обучения
  • Текущий общий план

    • Скраулить официальную документацию и построить базу знаний RAG на основе Godot 4
    • Собрать проекты Godot с GitHub и объединить README, структуру проекта и файлы GDScript на уровне репозитория
    • Выполнить первичную фильтрацию с помощью настроек project.godot и различий синтаксиса Godot 3/4
    • С помощью RAG‑чатбота дополнительно определить, относится ли материал к Godot 3/4, использует ли устаревший API и подходит ли он для Godot 4
    • На основе отфильтрованных данных Godot 4 создать наборы инструкций/ответов
    • Обучить модель кодирования Godot 4 на данных SFT и DPO/Preference
  • Ретроспектива

    • За последние 10 дней я пытался оставить только готовый результат, поэтому не зафиксировал процесс
    • Однако неудачные эксперименты, блокирующие моменты и изменённые решения являются важными записями для определения дальнейшего направления
    • В дальнейшем я буду фиксировать ход мыслей и принятые решения, а не только идеальный результат, чтобы постепенно развиваться
  • Разбор разработки: docs/retrospectives/2026-06-12.md