Koda Showed How It Trained Next Edit Suggestions Model for Code Edit Prediction
Koda explained how it trained a Next Edit Suggestions model for IDE: instead of predicting line continuation, it predicts the next code change based on edit his

Koda рассказала, как обучила модель Next Edit Suggestions для автодополнения, которое пытается угадать не следующий токен, а следующую осмысленную правку разработчика. Такой подход двигает IDE от обычного completion к помощнику, который понимает ход рефакторинга, переименования и мелких серийных исправлений. NES отличается от классического автокомплита тем, что учитывает историю недавних изменений и работает не только под курсором, а в любом месте файла.
Модель может не просто добавлять код, но и удалять или заменять фрагменты. Практические сценарии для такого режима понятны: массовое переименование, обновление вызовов после смены сигнатуры, продолжение начатого рефакторинга, тиражирование однотипного фикса, выравнивание стиля, удаление мёртвого кода и даже мелкие линт-правки. В Koda считают, что на фоне бума вокруг AI-агентов такой инструмент всё равно остаётся полезным: многие мелкие исправления быстрее подтвердить одной клавишей, чем формулировать отдельный промпт.
При обучении команда сначала выбрала базовую модель под жёсткое ограничение по задержке. На своих целевых GPU-серверах разработчики измерили скорость инференса и сузили выбор до Qwen2.5-Coder-1.
5B и DeepSeek-Coder-1.3B. По совокупности метрик в качестве базы для supervised fine-tuning выбрали Qwen.
Источником данных стали накопленные за год анонимизированные частичные логи собственной модели код-комплишена. Эти FIM-логи сгруппировали по пользователю, сессии и файлу, чтобы восстановить цепочки локальных изменений кода. Проблема была в том, что одна реальная правка программиста в логах часто распадалась на десятки микро-событий.
Поэтому инженеры склеивали такие подпоследовательности в единые осмысленные изменения с помощью алгоритма Incremental Difference Detecting, описанного в исследовании по NES. После этого они отдельно отфильтровали примеры, где целевая правка действительно причинно связана с историей редактирования, а не является просто очередным логичным куском кода. В итоге из миллионов кандидатных сэмплов осталось лишь несколько десятков тысяч.
Дополнительно команда сделала апсемплинг replace-редактирований, чтобы лучше сбалансировать типы вставки, замены и удаления. Дальше Koda сравнила свою 1,5-миллиардную модель с открытыми NES-решениями от Continue, Zed и Sweep, а в качестве закрытых ориентиров упомянула Cursor Tab, GitHub Copilot NES и JetBrains AI Assistant. На собственном тестовом наборе из 500 примеров Koda-next-edit показала 27,2% по Exact Match и 28,2% по Judge, тогда как Zeta 2 получила 17,0% и 20,4% соответственно.
На нескольких наборах данных компания ставит более высокий приоритет именно оценке Judge, поскольку она лучше подходит для сравнения моделей с разными форматами ответов. По простому среднему их модель вышла на первое место, а по средневзвешенному результату осталась среди лидеров даже на фоне более крупных моделей на 7B и 8B параметров. Отдельно в Koda выделяют датасет NEP как более независимый бенчмарк, потому что он не является «родным» ни для одной из сравниваемых систем.
Функция уже появилась в бета-режиме в плагине KodaCode 0.9.0 для VS Code.
Дальше команда планирует обогащать контекст похожими фрагментами кода и подсказками линтера, а также тестировать более крупные модели, если удастся удержать нужную задержку. Ещё одно направление развития — интерфейс плагина: для NES важно не только предсказать правку, но и показать её так, чтобы разработчик мог быстро принять или отклонить предложение без потери темпа. История Koda показывает, что рынок AI-инструментов для программистов не сводится к агентам, которые пытаются сделать всё целиком.
Между ручным редактированием и полностью автономным исполнением есть большой слой задач, где наибольшую ценность даёт быстрый, локальный и предсказуемый совет прямо в редакторе. Если такие модели будут расти по качеству без потери скорости, именно этот класс помощников может стать самым массовым форматом AI в повседневной разработке.