От перевода к инспекции: новый подход к Text-to-SQL
Большинство систем Text-to-SQL рассматривают задачу как простой перевод естественного языка в код. Однако это упускает главную проблему: запрос может быть синтаксически верным, но логически ошибочным из-за неоднозначности столбцов, дубликатов при JOIN или неочевидных форматов данных (например, «Alameda» vs «Alameda County»). Схема базы данных (schema) не содержит этих нюансов.
Команда Feyn AI (при поддержке Y Combinator) переосмыслила задачу. Модель SQRL (SQL Query Reasoning and Logic) не генерирует финальный запрос сразу. Вместо этого она может выполнять read-only (только для чтения) запросы к самой базе данных, чтобы «осмотреть» данные, разрешить неоднозначности и убедиться, что запрос верен, прежде чем вернуть результат пользователю.
Как работает механизм инспекции
Процесс взаимодействия построен на двух действиях:
<sql>— запрос к базе данных для получения наблюдений (например, выборка строк из таблицы).<answer>— финальный SQL-запрос, который будет выполнен.
Модель может делать до 5 шагов инспекции. Если контекста достаточно, она отвечает сразу. Если есть сомнения — запускает зондирующие запросы, получает результаты в теге <observation> и корректирует логику. Это позволяет избежать дорогостоящих ошибок, которые не ловятся стандартной валидацией SQL.
Результаты и сравнение с лидерами рынка
На бенчмарке BIRD Dev, который оценивает способность моделей работать с реальными, «грязными» базами данных, SQRL-35B-A3B показал результат 70.6% execution accuracy. Это выше, чем у Claude Opus 4.6 (68.77%) и других передовых моделей. Важно отметить, что флагман активирует всего около 3B параметров на токен, что делает его эффективным.
| Модель | Точность (BIRD Dev) | Примечание |
|---|---|---|
| SQRL-35B-A3B (Feyn AI) | 70.60% | Флагман, 3B активных параметров |
| SQRL-9B (Feyn AI) | 69.80% | Рекомендуемый для деплоя баланс |
| SQRL-4B (Feyn AI) | 68.80% | Маленькая модель, self-hostable |
| Claude Opus 4.6 | 68.77% | Закрытая проприетарная модель |
| Claude 4.5 Sonnet | 67.34% | — |
| Qwen3-Coder-480B-A35B | 66.17% | — |
| GLM-4.7 | 63.82% | — |
Обучение через CISPO и дистилляцию
Ключевая сложность обучения таких моделей — научить их когда нужно делать запрос к БД. Feyn использовала метод CISPO (от MiniMax M1), который клиппирует веса importance-sampling, сохраняя градиентный сигнал от редких, но важных токенов. Обучение шло на «смешанной зоне» траекторий, где часть попыток была успешной, а часть — нет, что позволяло модели выделять решения, ведущие к успеху.
Для создания моделей меньшего размера (4B и 9B) использовалась дистилляция: отбирались успешные траектории флагмана (около 10 200 примеров), включающие рассуждения, инспекции и финальные ответы. Эти модели построены на базе Qwen3.5/Qwen3.6.
Деплой и технические детали
Все три модели (4B, 9B, 35B-A3B) доступны на Hugging Face. Feyn рекомендует SQRL-9B как оптимальный вариант для production. Деплой осуществляется через vLLM. Критически важно при интеграции не использовать парсеры рассуждений на уровне сервиса, которые могут удалить теги <sql> или <answer> после тега </thinking>. Необходимо парсить сырой контент сообщения и сохранять всё после последнего тега think.
Бенчмарки
| Бенчмарк | SQRL-35B-A3B | Claude Opus 4.6 | SQRL-4B | SQRL-9B |
|---|---|---|---|---|
| BIRD Dev | 70.6% | 68.77% | 68.8% | 69.8% |
Жирным — лучший результат в строке. Источник цифр — официальная публикация.
Источник: MarkTechPost ↗
