惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
博客园 - 叶小钗
F
Fortinet All Blogs
GbyAI
GbyAI
Martin Fowler
Martin Fowler
博客园 - 聂微东
I
InfoQ
B
Blog
IT之家
IT之家
美团技术团队
L
LangChain Blog
小众软件
小众软件
C
Check Point Blog
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
Last Week in AI
Last Week in AI
A
About on SuperTechFans
博客园 - Franky
P
Proofpoint News Feed
罗磊的独立博客
月光博客
月光博客
V
Visual Studio Blog
MyScale Blog
MyScale Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Как мы обучили Next Edit Suggestions модель
Dmitry_zm (K · 2026-04-27 · via Все публикации подряд на Хабре

Время на прочтение4 мин

Охват и читатели2

Что такое Next Edit Suggestions

Next Edit Suggestions (NES) это режим автодополнения, который предсказывает следующее редактирование программиста: что он изменит, где и как. Модель смотрит не только на код, но и на последнюю серию правок и предсказывает следующее действие в той же логике. Образно говоря, это модель которая работает в пространстве действий и намерений программиста.

В отличие от обычного автокомплита, NES:

  • опирается на историю недавних правок

  • работает не только под курсором, а в любом месте файла

  • может не только добавлять код, но и удалять и изменять

Типичные кейсы NES:

  • массовое переименование, если поменял название переменной в одном месте

  • обновление вызовов под новую сигнатуру

  • продолжение начатого рефакторинга

  • приведение к единому стилю

  • тиражирование фикса

  • добавление документации по аналогии

  • удаление мёртвого кода

  • балансировка скобок и мелкие линт-фиксы

На такую модель можно смотреть не как на модель текст -> текст, а как на модель последовательность действий -> последовательность действий.

Зачем это всё, если есть агенты

Есть мнение, что код-комплишн и некст-эдит не нужны, весь хайп на агентах. Например Sweep пишут: “We decided to shut down because autocomplete usage is declining industry-wide as agents have become significantly better”. Мы у себя в команде Koda видим ситуации при редактировании кода, когда надёжнее и в целом быстрее пробежаться что-то поправить контролируемо и с лёгкостью нажатия таба, и не нужно формулировать промпт.

В теории NES расширяем до next action / next everything, например можно представить что если следующее действие это открыть терминал или запустить сборку, было бы неплохо получать и такие предложения.

Как обучали

Для выбора базовой модели, было важно уложиться в желаемый латенси на запрос, поэтому мы замерили на скорость инференса на наших целевых гпу серверах семейство моделей, и остановились на Qwen2.5-Coder-1.5B и deepseek-coder-1.3b. Обе эти кодер модели которые была предобучены с исопльзованием FIM режима. По метрикам в итоге остановились на квен-кодере как базе для SFT.

По данным для обучения, у нас в Koda были накоплены за год работы анинимизированные частичные логи от нашей модели код-комплишена. Мы реализовали пайплайн превращения этих код-комплишн FIM логов для NES датасета. Сгруппировав по юзеру+сессии+файлу получили последовательности шумных частичных локальных изменений кода. Посколькую одна правка была представлена в таких логах десятками микро-событий, склеили подпоследовательности в те которые образут по логике одну правку, использовали для этого алгоритм мерджа Incremental Difference Detecting из работы “NES: An Instruction-Free, Low-Latency Next Edit Suggestion Framework Powered by Learned Historical Editing Trajectories”. Дальше было важно отфильтровать те их из оставшихся последовательностей правок, которые действительно близки природе NES таски, а именно те в которых таргет был бы сильно связан причинной связью с историей правок кода, а не просто быть следующим логичным кусочком кода. В итоге из миллионов сэмплов получили дясятки тысяч. Так же помогло сделать среди типов insert/replace/delete правок сделать апсемлинг replace. Обучили в SFT режиме, с выбором лучшего чекпоинта по прокси-метрикам.

Таблицы сравнений моделей

В опенсорсе на тему NES есть:

  • модель Instinct и датасет Instinct от разработчиков плагина Continue

  • модель Zeta и Zeta 2 и датасет Zeta от разработчиков редактора Zed

  • модели Sweep от разработчиков плагина Sweep AI

  • датасет NEP (переработанный CommitPack) от авторов статьи “Next Edit Prediction: Learning to Predict Code Edits from Context and Interaction History”

Из основных закрытых NES: Cursor Tab, GitHub Copilot NES, JetBrains AI Assistant.

Открытые модели главным образом дообучены на основе Qwen2.5-Coder моделей, кроме Zeta 2 которая на основе Seed-Coder-8B.

В качестве метрик используем: Exact Match (EM), Edit Similarity (ES), Prefix Similarity (PS), Judge. EM показывает точное совпадение, ES показывает сильно ли нужно править, Judge оценка через GPT-5.2

Таблица замеров моделей на нашем тестовом сете:

Our test (500 samples)

n_of_truncated

EM%

ES%

Judge%

Koda-next-edit (1.5B)

3

27.2

84.7

28.2

zeta-2 (8B)

0

17.0

94.3

20.4

Instinct (7B)

2

19.2

76.2

20.2

zeta (7B)

3

17.2

91.5

19.2

sweep-next-edit-v2-7B

0

9.4

77.3

9.6

sweep-next-edit-1.5B

26

3.2

72.7

4.0

sweep-next-edit-0.5B

232

1.6

45.6

2.4

На наш взгяд тут правильнее смотреть на оценку судьёй, из-за разницы форматов моделей.

Таблица замеров моделей судьёй на разных сетах (судьёй более честно сравнивать разные форматы между собой):

Judge%

Our test

Instinct test

NEP test

Zeta eval

Avg weighted

Avg

Koda-next-edit (1.5B)

28.2

6.9

58.6

46.7

22.7

35.1

zeta-2 (8B)

20.4

8.0

50.0

52.9

19.2

32.8

zeta (7B)

19.2

8.5

51.0

50.0

19.1

32.2

Instinct (7B)

20.2

23.1

35.2

26.7

23.9

26.3

sweep-next-edit-v2-7B

9.6

2.9

9.0

41.2

6.6

15.7

sweep-next-edit-1.5B

4.0

0.4

2.9

35.3

2.5

10.6

sweep-next-edit-0.5B

2.4

0.7

0.5

0.0

1.3

0.9

Тут на отдельном сете часто лучше та модель, для которой этот сет является родным. Простое среднее ставит нашу модель koda-next-edit (1.5B) на первое место, средневзвешенное (по числу сэмплов) на второе после Instinct (7B). Разница объясняется размером родного для Instinct теста, его вклад в средневзвешенное доминирует. Показательным сетом можно считать датасет NEP, как независимый бенчмарк (не является родным ни для одной из моделей). Итого, в среднем наша модель заняла топ-1 место, обогнав даже большие модели.

Что дальше

В планах у нас ставить искать подходы по обогащению контекста: попробуем добавлять в контекст так же наиболее похожие куска кода, и ещё добавлять подсказки от линтера. Так же будем пробовать модели побольше, если удастся ускорить инференс для нужного латенси. Так же ограничением для NES являются возможности UI, то как потом в плагине собственно показывать подсказки, тоже будем улучшать.

Как работает в плагине

Начиная с версии Kodacode 0.9.0 для VSCode мы добавили поддержку нашей модели в режиме бета тестирования. Пока есть что улучшить в части отображения подсказок и есть что подправить, но уже можно пробовать. В следующих версиях отшлифуем и будет кайф. Вот пример, как это работает:

nep_rename.gif

А вок как переключить в настройках на Next Edit

nep_settings.gif

Скачивайте и пользуйтесь KodaCode вот тут: https://download.kodacode.ru

И подписывайтесь на наш ТГК, чтобы не пропустить новую информацию про Koda, AI и всё что с ними связано!