Набір даних DeNovoSWE опубліковано для генерації коду з довгим горизонтом

icon MarsBit
Поділитися
AI summary iconКороткий зміст

Зі зростанням здатностей LLM Code Agent все більше дослідників усвідомлюють, що настав час перейти до наступного етапу — довгострокових завдань, більш близьких до реальних потреб. З’являються нові бенчмарки для оцінки довгострокових завдань, такі як NL2RepoBench та BeyondSWE. Очікування щодо ролі Code Agent поступово змінюються: він більше не просто підтримує репозиторій, а стає архітектором, здатним планувати та виконувати довгострокові завдання з кодом усього репозиторію.

Недавно висока школа штучного інтелекту Університету людських наук Китая завершила відповідне дослідження та випустила набір даних DeNovoSWE, який зосереджений на довготривалих завданнях програмної інженерії, зокрема на завданнях повного створення коду на рівні репозиторію.

DeNovoSWE

Посилання на статтю: https://arxiv.org/pdf/2606.10728

Посилання на сховище: https://github.com/AweAI-Team/DeNovoSWE

Посилання на дані: https://huggingface.co/collections/AweAI-Team/denovoswe

Створення високоякісного набору даних за допомогою механізмів Divide & Conquer та Critic & Repair, а також успішне досягнення масштабування довготривалих SWE-завдань — цей результат надав Code Agent масштабний набір даних, що містить 4 818 реальних прикладів, і значно покращив довготривалі здібності Code Agent.

DeNovoSWE

У статті також наведено метод фільтрації за складністю завдань, що ефективно зменшує проблему компромісу між часткою складних завдань та якістю траєкторій.

DeNovoSWE

Експерименти показали, що Qwen3-30B-A3B-Instruct, навчений на DeNovoSWE, покращив результати з 5,8% до 47,2% на BeyondSWE-Doc2Repo та з 4,3% до 23,0% на NL2RepoBench, що свідчить про значне підвищення здатності до генерації коду на рівні репозиторіїв завдяки довгостроковим даним.

Відновлення всього репозиторію з одного документа

За останній рік, зі збільшенням масштабів великих наборів даних SWE, таких як Scale-SWE, кодові агенти швидко покращили свою продуктивність у реальних завданнях програмної інженерії, зокрема на SWE-bench. Але коли моделі все краще стають у вмінні «виправляти issue» або «змінювати кілька рядків багів», починає виявлятися більш критичне питання: чи мають агенти справжні довгострокові навички програмної інженерії? Згідно з результатами передових моделей, таких як BeyondSWE-Doc2Repo та NL2RepoBench, ефективність залишається низькою.

Розробка програмного забезпечення у реальному світі часто полягає не в тому, щоб змінити одну функцію або додати умову, а в розумінні вимог, плануванні архітектури, створенні файлів, проектуванні API, обробці залежностей, інтеграції модулів та нарешті — запуску всього репозиторію через тести.

Іншими словами, складною є генерація на рівні репозиторію з довгим горизонтом: від документа з завданням до створення повного, виконуваного та перевіряємого програмного репозиторію. Саме цю проблему намагається вирішити DeNovoSWE.

Якісний документ завдання «генерація репозиторію з нуля»

У генерації документа до репозиторію документ — це не лише README чи простий список API. Він є єдиним точкою входу для розумного агента, що відновлює весь репозиторій.

Якісний документ із завданням повинен відповідати щонайменше двом основним критеріям.

По-перше, він має бути добре структурованим.

Завдання на рівні репозиторію природно складні, оскільки містять кілька модулів, інтерфейсів, конфігурацій, структур даних та інтерактивних процесів. Якщо документація просто збирає описи функцій разом, агент легко втратиться в фрагментарній інформації. Тому документація повинна спочатку надавати чіткий огляд репозиторію, а потім розділяти матеріал на розділи за функціональними можливостями або робочими потоками, щоб кожна частина відповідала чітким межам функціоналу.

Друге, він повинен базуватися на надійній оцінці.

Документ не повинен бути надто коротким, інакше завдання перетвориться на недостатньо визначене, що може змусити модель вгадувати без певної логіки, щоб пройти оцінку; але й не повинен бути надто довгим, інакше він безпосередньо розкриває деталі реалізації, знижуючи виклик завдання.

Насправді якісний документ повинен описувати ключові поведінки, від яких залежить оцінка: шляхи імпорту, публічні API, вхідні та вихідні дані, значення параметрів за замовчуванням, поведінку при виникненні винятків, параметри конфігурації, шаблони рядків, поля повернення тощо, а також загальну функціональність, яку потрібно реалізувати. Іншими словами, документ повинен бути достатнім для того, щоб агент міг відтворити перевіряєму поведінку, але не перетворюватися на копію коду реалізації.

Це також є основною ідеєю DeNovoSWE: зробити документи зрозумілими, реалізованими та перевірними.

Метод DeNovoSWE

DeNovoSWE перетворює «генерацію повного репозиторію з документів» у масштабну, перевірну довготривалу задачу програмної інженерії. Вона не є ручним написанням документів, а автоматично створює якісні приклади за допомогою sandboxed багатоагентного робочого процесу. Цілий підхід можна описати як два кроки: Divide та Conquer.

На етапі Divide система спочатку аналізує цільовий репозиторій і розбиває його на кілька repository capabilities.

Кожна здатність відповідає одній із ключових функцій або робочих процесів у сховищі, наприклад, аутентифікація та підключення, читання та запис даних, пакетна обробка, процеси експорту тощо. Це дозволяє розбити велику проблему генерації сховища на кілька чітко структурованих розділів документації.

Одночасно DeNovoSWE виконує оригінальні юніт-тести та збирає trace виконання, щоб визначити, які функції, класи та інтерфейси справді впливають на оцінку, і далі розрізняти прямі компоненти, основні непрямі компоненти та неосновні непрямі компоненти: інтерфейси, які безпосередньо викликаються тестами, повинні бути детально задокументовані; основні непрямі компоненти, що впливають на спостережувану поведінку, також повинні бути охоплені; а неосновні внутрішні реалізації можна залишити на розсуд агента.

На етапі Conquer DeNovoSWE використовує механізм Draft-Critic-Repair для поетапного створення документації. Агент Draft спочатку пише чернетку; агент Critic перевіряє, чи не відсутні ключові API, поведінкові контракти або структурна інформація; агент Repair виправляє документ на основі зворотного зв’язку. Цей цикл повторюється до тих пір, поки кожен розділ здатності не стане достатньо чітким, повним і збігатиметься з evaluation.

Нарешті, різні документи з можливостями будуть об’єднані в один повний документ завдання, який стане єдиним основою для генерації репозиторію агентом з нуля.

Складність: чому це завдання на довгий термін?

Складність завдання DeNovoSWE полягає у фундаментальній зміні: воно більше не пов’язане з виправленням на рівні issue, а передбачає генерацію цілого репозиторію.

У традиційних завданнях SWE агенти зазвичай стикаються з вже існуючим репозиторієм, де потрібно лише знайти баг, внести зміни у локальний код і пройти тести.

У DeNovoSWE агент стикається з очищеним середовищем: вихідний код і тести видалені, історія git скинута, а всі потенційні канали витоку — кеш, залишки site-packages, pip wheel, тимчасові скомпільовані продукти — також очищені. Це означає, що агент повинен справді полагодитися на документації для повного відновлення репозиторію. Йому потрібно планувати структуру проекту, створювати модулі, визначати публічні інтерфейси, реалізовувати взаємодію між файлами, обробляти залежності та конфігурації, а також постійно виправляти помилки під час багаторазових редагувань і зворотного зв’язку від тестів.

Будь-яке відхилення від підпису API, полів відповіді, типів винятків або поведінки за замовчуванням може призвести до невдачі тестування. Помилки також накопичуються на довгих етапах: один неправильно спроектований модуль на початку може вплинути на кілька наступних файлів і ланцюжків викликів.

Щоб врахувати різницю у складності між різними репозиторіями, DeNovoSWE також запропонував фільтрацію траєкторій, що враховує складність. Простіше кажучи, для простих завдань слід встановлювати вищий поріг успішності, тоді як складні завдання не слід повністю відкидати лише тому, що не отримали ідеального балу. DeNovoSWE встановлює різні пороги фільтрації для різних діапазонів складності на основі оцінок структурної складності та складності, визначених LLM, щоб досягти балансу між якістю та різноманітністю.

Це особливо важливо для довгострокових завдань: чим складніший репозиторій, тим складніше пройти всі тести одразу, але саме складні репозиторії, низькі бали та частково успішні траєкторії містять цінну інформацію про здатність до довгострокового планування та реалізації.

DeNovoSWE

Результати експерименту

DeNovoSWE нарешті створив 4818 високоякісних екземплярів завдань document-to-repository. Це виконуваний, оцінюваний та навчальний середовище для довгострокового програмного інжинірингу.

DeNovoSWE

DeNovoSWE

Результати експерименту показали, що DeNovoSWE значно покращує здатність моделі до генерації довгострокових репозиторіїв. На Qwen3-30B-A3B-Instruct початкова модель показала лише 5,8% на BeyondSWE-Doc2Repo та 4,3% на NL2RepoBench. Використання звичайних даних SWE на рівні issue для навчання Scale-SWE-Agent підвищило показники до 29,2% і 18,3%, що свідчить про наявність ефекту перенесення звичайних даних SWE. Однак після навчання моделі за допомогою DeNovoSWE продуктивність подальше зросла до 47,2% і 23,0%.

Це означає, що дані, спрямовані на «виправлення багів», не можуть повністю замінити довготривалі дані, спрямовані на «генерацію повного репозиторію». Щоб агент справді навчився інженерії на рівні репозиторію, необхідно створити навчальне середовище, спеціально призначене для довготривалих завдань.

На більш потужному backbone Qwen3.5-35B-A3B DeNovoSWE також забезпечує стабільний прибуток: BeyondSWE-Doc2Repo зростає з 43,8% до 50,0%, а NL2RepoBench — з 23,5% до 27,1%. Це додатково підтверджує, що прибуток DeNovoSWE не є випадковим адаптацією до певної моделі, а походить саме від якісних довготривалих даних.

Закінчення

Наступний етап кодових агентів — це не просто швидше виправлення окремих проблем, а здатність розуміти документацію, планувати архітектуру, організовувати модулі, реалізовувати інтерфейси та нарешті генерувати повний працюючий репозиторій програмного забезпечення.

DeNovoSWE систематично створив цільовий набір даних, який можна навчати, перевіряти та масштабувати. Він відповідає на ключове питання: які дані дійсно дозволяють навчити агента володіти довгостроковими навичками програмної інженерії?

Відповідь — не більше фрагментарного коду чи простіших завдань, а якісні, структуровані, згідні з оцінкою та захищені від витоку завдання з генерацією повних репозиторіїв.

Почніть з документа, щоб відновити весь репозиторій. Це поріг, який повинен подолати довгостроковий кодовий агент.

Джерело: https://arxiv.org/pdf/2606.10728

Цей матеріал надійшов із微信-каналу «Новий розум», редагування: LRST

Відмова від відповідальності: Інформація на цій сторінці може бути отримана від третіх осіб і не обов'язково відображає погляди або думки KuCoin. Цей контент надається лише для загального інформування, без будь-яких запевнень або гарантій, а також не може розглядатися як фінансова або інвестиційна порада. KuCoin не несе відповідальності за будь-які помилки або упущення, а також за будь-які результати, отримані в результаті використання цієї інформації. Інвестиції в цифрові активи можуть бути ризикованими. Будь ласка, ретельно оцініть ризики продукту та свою толерантність до ризику, виходячи з ваших власних фінансових обставин. Для отримання додаткової інформації, будь ласка, зверніться до наших Умов використання та Розкриття інформації про ризики.