Любой разработчик, который просил языковую модель задокументировать код на русском, сталкивался с одним из трёх сценариев: модель переключается на английский, выдаёт дословный перевод технических терминов («развёртывание» вместо «деплой») или нарушает структуру докстринга так, что IDE перестаёт его распознавать. Причина системная — существующие датасеты для обучения кодинг-моделей либо не содержат русского языка вовсе, либо ориентированы на поиск кода, а не на генерацию документации.

Исследователи из MWS ИИ подошли к проблеме с академической стороны. Они собрали датасет StRuCom, включающий 153 тысячи пар «код — комментарий» на русском языке для пяти языков программирования: Python, Java, Go, C# и JavaScript. Работа представлена на конференции ACL 2025. Принципиальное отличие от существующих наборов данных — отсутствие машинного перевода: все примеры либо взяты из реальных русскоязычных репозиториев на GitHub, либо синтетически сгенерированы с сохранением авторского стиля.

Язык программированияСтандарт документацииЭффективность улучшения (MIQU-70B)
GoGoDoc84%
PythonGoogleDocзатруднено (требования к типам)
JavaScriptJSDocзатруднено (требования к типам)
JavaJavadoc
C#XML

Сбор данных оказался нетривиальной задачей. GitHub API не позволяет фильтровать репозитории по языку коммитов, поэтому авторам пришлось скачивать репозитории с русскоязычными описаниями и открытыми лицензиями, а затем прогонять их через парсеры и языковые детекторы. Для определения языка использовали комбинацию FastText и Lingua — последняя показала лучшую точность при работе с очищенным текстом без меток кода. Из потока данных вычищали код библиотек (где документация почти всегда на английском), автогенерацию и дубликаты.

Данные взяты из реальных репозиториев GitHub, машинный перевод не использовался.

Отдельным этапом стала валидация структуры. Команда разработала инструмент, проверяющий соответствие пяти стандартам документации: GoogleDoc для Python, Javadoc для Java, GoDoc для Go, XML для C# и JSDoc для JavaScript. Комментарии делились на три группы: полные (есть описание всех аргументов и возвращаемого значения), частичные и некорректные. В итоговый датасет вошли только первые две категории.

Реальных данных не хватало — особенно для Python и JavaScript, где разработчики нередко пропускают полные докстринги. Для расширения датасета использовали модель MIQU-70B — мощную open-source модель с хорошим пониманием русского языка. Применяли два сценария: дописывание недостающих полей в существующих комментариях без изменения авторского текста и генерация докстрингов с нуля для кода без документации. Go оказался наиболее простым для автоматического улучшения — эффективность составила 84%, что объясняется минималистичностью стандарта GoDoc. Python и JavaScript давались сложнее из-за требований к явному указанию типов.

Для оценки полезности датасета исследователи провели дообучение моделей семейства Qwen2.5-Coder четырёх размеров: 0.5B, 1.5B, 3B и 7B параметров. Качество измеряли по двум метрикам: BERTScore (семантическая близость текста) и chrF++ (символьное совпадение, критичное для точного синтаксиса). Дообучение дало статистически значимый прирост для всех размеров моделей. Наибольший эффект получили малые модели — 0.5B и 1.5B: после тонкой настройки они начали генерировать докстринги, по качеству приближающиеся к результатам значительно более крупных моделей. Дополнительно использовали метод LLM-as-a-judge: в 80% случаев автоматическая оценка совпала с мнением живых экспертов. Часть датасета опубликована на Hugging Face.