Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Модель научили переводить вопросы на естественном языке в SQL без единой размеченной пары «вопрос — запрос». В работе, которая не прошла рецензирование и приводит числа, полученные самими авторами, SQL-Zero повысил точность Qwen2.5-Coder на BIRD dev на 6,6–7,3 процентного пункта. Такой подход может сократить зависимость от разметки при адаптации к корпоративным базам, но повторные циклы обучения пока ухудшают перенос большей модели.
Постановщик подбирает задачи под текущего решателя
SQL-Zero использует две копии одной базовой модели: постановщика и решателя (challenger и solver). Постановщик создаёт учебные задания, а решатель пишет SQL по вопросу и схеме базы данных. Обе роли начинают с Qwen2.5-Coder-Instruct и затем наследуют собственные веса из предыдущего цикла.
Задание строится от SQL, а не от вопроса. Постановщик сначала генерирует запрос для доступной схемы, затем формулирует соответствующий вопрос на естественном языке. Система выполняет запрос и оставляет его, только если он корректен, возвращает непустой результат и не ведёт себя недетерминированно.
После фильтрации система убирает запросы с повторяющейся структурой. Литералы и конкретные значения маскируются, поэтому два запроса с одинаковым шаблоном не превращаются в отдельные учебные примеры только из-за разных чисел или строк. Дополнительный штраф мешает постановщику свести весь набор к нескольким удобным конструкциям.
Сложность задания определяет текущий решатель. Он несколько раз отвечает на вопрос, после чего постановщик получает наибольшую награду за задачу, которую удалось решить лишь в одной попытке. Полностью простые и полностью недоступные задачи почти не дают сигнала для обучения.
Затем роли меняются местами в учебном цикле. Решатель обучается методом GRPO — это обучение с подкреплением, где результат отдельных ответов сравнивают со средней наградой внутри группы. Правильным считается SQL, который при выполнении возвращает тот же набор данных, что и запрос постановщика; исполняемый, но неверный запрос получает небольшую промежуточную награду.
Модель видит полную схему: определения таблиц, ключи, типы и примеры строк. Отдельного этапа, который заранее выбирает нужные таблицы и столбцы, нет. Единственным источником правильного ответа служит выполнение запросов на самой базе.
Первый цикл даёт основной прирост, следующие меняют баланс
На BIRD dev лучшая версия Qwen2.5-Coder-3B прибавила 6,6 процентного пункта к базовой модели без дополнительного обучения, а версия Qwen2.5-Coder-7B — 7,3 пункта. Большая часть прироста появилась уже после первого цикла. Последующие циклы не складывались в последовательное улучшение.
Контрольная модель обучалась тем же способом на человеческой разметке BIRD. Все версии SQL-Zero оказались выше неё, однако статистическая проверка не подтвердила, что разрыв выходит за пределы погрешности. Поэтому работа показывает, что разметка не обязательна для получения прироста, но не доказывает превосходство самоигры над качественными размеченными данными.
Внешние системы CSC-SQL, OmniSQL и Arctic-Text2SQL-R1 сохранили более высокую абсолютную точность. Их нельзя напрямую использовать для оценки пользы разметки: они отличаются исходными моделями, данными, способом обучения и генерацией при проверке.
Перенос разделил две версии SQL-Zero. Меньшая модель после каждого цикла превосходила исходную на Spider test с незнакомыми базами и на Spider-Syn с изменёнными формулировками. Большая сохранила перенос только после первого цикла, а затем стала хуже исходной модели на обоих наборах, хотя продолжила улучшаться внутри BIRD.
Постановщик также постепенно терял разнообразие, а учебный сигнал решателя переставал расти. Наследование весов между циклами закрепляло специализацию на BIRD вместо накопления общей способности работать с новыми схемами.
Для продукта это пилот без разметки, а не готовая замена конвейера
SQL-Zero меняет планы там, где уже есть исполняемая база со схемой и содержимым, но нет корпуса вопросов с эталонным SQL. Вместо заказа разметки команда может запустить один цикл самоигры и проверить, даёт ли выполнение запросов достаточный сигнал на собственной предметной области.
Останавливаться после первого цикла разумнее, если продукт должен работать с новыми базами или часто меняющимися формулировками. Работа не показала, что длительная совместная эволюция ролей накапливает качество: у большей модели дополнительные циклы обменяли перенос на точность внутри обучающей среды.
Проверять такой подход следует отдельно на знакомых и новых схемах. Один совокупный показатель скроет именно тот эффект, который обнаружили авторы: модель лучше отвечает в пределах исходного распределения, но хуже переносит навык за его границы.
Эксперименты охватывают одну семью Qwen2.5-Coder, базы SQLite и одиночную генерацию ответа. Обучение шло на базах BIRD, а перенос проверяли на BIRD dev, Spider test и Spider-Syn; каждый вариант запускали один раз. Эти условия позволяют рассматривать SQL-Zero как схему для пилота, но не как подтверждение результата для других диалектов SQL, моделей и производственных нагрузок.
Для систем, где ошибка запроса влияет на деньги или данные, самоигра не отменяет приёмочные тесты и проверку целевых сценариев. Её практическая ценность уже уже: получить специализированную модель без предварительного корпуса и решить по независимому набору, стоит ли затем вкладываться в разметку.
Источники
Иллюстрация: рисунок из статьи «SQL-Zero: Self-Evolving Text-to-SQL», Daniel Machado Pedrozo, Julia Soares Dollis, Bryan Lincoln Marques de Oliveira и др., CC BY 4.0
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



