MAC-SQL: Багатоагентна спільна робота для перетворення тексту в SQL
MAC-SQL з'явився у грудні 2023 року як найбільш явно орієнтована на агентів відповідь на проблему перетворення тексту в SQL: замість одного промпту, що генерує один запит, три спеціалізовані агенти співпрацюють для вибору відповідної підсхеми, декомпозиції питання та виправлення SQL після виконання. Я читаю це, тому що попередні два дописи охоплювали BIRD (бенчмарк, який MAC-SQL очолив на момент подачі) та DIN-SQL (базову декомпозицію, яку MAC-SQL розширює), і природне питання полягає в тому, чи дає багатоагентна оболонка щось конкретне на додачу до цих основ.
Стаття
"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang et al., COLING 2025) спрямований на режими збоїв, які BIRD виявив у попередніх методах з одним промптом: великі бази даних із зашумленими схемами та складні багатоетапні питання перевантажують моделі, які намагаються обміркувати все за один раз.
Архітектура складається з трьох агентів. Selector звужує велику базу даних до відповідної підсхеми, відфільтровуючи нерелевантні таблиці та стовпці перед початком генерації SQL. Decomposer є основним рушієм — він розбиває складні питання природною мовою на підзадачі та інкрементно генерує SQL за допомогою логічного ланцюжка міркувань (few-shot chain-of-thought). Refiner виконує кандидатний SQL-запит у реальній базі даних, дослівно зчитує будь-які повідомлення про помилки та ітеративно виправляє запит до досягнення ліміту спроб. Не всі три агенти активуються для кожного запиту; простіші завдання пропускають Selector або Refiner залежно від сигналів складності.
Автори також донавчили SQL-Llama (Code Llama 7B) на результатах, отриманих за допомогою фреймворку, надавши менший варіант з відкритим кодом.
Ключові ідеї
- Скорочення схеми перед генерацією: Selector фільтрує базу даних до відповідної підсхеми перед тим, як Decomposer почне писати SQL. Абляція підтверджує приріст у +2,11 відсоткових пункти на BIRD dev — результат реальний, але скромний.
- Виправлення на основі виконання: Refiner зчитує реальні повідомлення про помилки бази даних і виправляє SQL. Це найбільший поодинокий фактор успіху в абляційному дослідженні: його видалення знижує точність BIRD dev на 4,63 пункту, що більше, ніж видалення Selector (-2,11) або навіть Decomposer (-3,85).
- Умовна диспетчеризація агентів: Маршрутизація простіших запитів в обхід Selector та Refiner економить токени без шкоди для точності у легких випадках.
- Розрив у дистиляції з відкритим кодом: SQL-Llama (7B) досягає 43,94% на BIRD dev порівняно з 46,35% у базової GPT-4. Розрив не є драматичним, врахо вуючи різницю в кількості параметрів, але донавчена модель 7B все ще відстає від повного результату GPT-4+MAC-SQL у 59,59% на тестовому наборі на понад 15 пунктів.
- Результат тесту BIRD: 59,59% точності виконання, що дозволило очолити таблицю лідерів на момент подачі та випередити DAIL-SQL+GPT-4 (57,41%) на 2,18 пункту.
Що працює, а що — ні
Refiner — це найкраща ідея тут, і абляція це доводить. Агент, який зчитує реальне повідомлення про помилку бази даних і виправляє власний SQL, робить щось значно принциповіше, ніж LLM, яка намагається вгадати помилку в ізоляції — це принцип інструментально-інтерактивної критики (CRITIC), застосований безпосередньо до зворотного зв'язку виконання SQL.
Внесок Selector позитивний, але незначний. Для баз даних із сотнями таблиць він, ймовірно, має більше значення; для типової схеми BIRD він маргінальний, і стаття не повідомляє, як часто Selector спрацьовує або наскільки точно він зберігає релевантні стовпці — це «чорна скринька» з єдиним сукупним показником.
Decomposer є лише інкрементним покращенням DIN-SQL. DIN-SQL вже розбивав запити на підзадачі з самовиправленням; MAC-SQL перепаковує це як розмову між кількома агентами. Архітектурний поділ на трьох іменованих агентів ближчий до вибору дизайну програмного забезпечення, ніж до нового алгоритму висновку. Чи перевершує структура промпту з трьома агентами одного агента з довшим промптом (за однакової кількості токенів) — так і не було протестовано. Визнані обмеження — промпти «не пройшли глибоку інженерію», а донавчання обмежене моделлю 7B — реальні, але більш суттєвим упущенням є відсутність абляції довжини промпту проти архітектури.
Для оцінки важливий часовий контекст. Результат MAC-SQL у 59,59% на тесті BIRD був передовим у грудні 2023 року. До середини 2025 року таблиця лідерів BIRD показує системи, що долають позначку у 81%. Специфічні ідеї — фільтрація підсхеми, декомпозиція питань, повторні спроби виконання — були поглинені та розширені наступними роботами, що використовують навчання з пріоритетом на міркування (reasoning-first training), RLVR та багатші ланцюжки міркувань (CoT). MAC-SQL як артефакт виглядає застарілим; MAC-SQL як архітектурний шаблон залишається актуальним.
Чому це важливо для фінансового ШІ
Beancount використовує beanquery — мову запитів, подібну до SQL — як основний програмний інтерфейс для даних журналу. Реальний багаторічний файл beancount має схему, що включає десятки рахунків, організованих в ієрархію, кілька валют, теги метаданих та обчислювальні стовпці балансу. Це саме та проблема великої «зашумленої» схеми, на яку спрямований Selector.
Decomposer безпосередньо застосовний до типів запитів, які насправді ставлять користувачі: «Якими були мої загальні витрати на харчування в євро у третьому кварталі 2024 року, за винятком відшкодованих транзакцій, розбиті за місяцями?» — це проблема декомпозиції: фільтрація за префіксом рахунку, фільтрація за діапазоном дат, виключення позначених транзакцій, агрегація за місяцями. Refiner також природно адаптується: перед фіксацією згенерованого запису beancount агент міг би виконати його через парсер beancount, отримати помилки синтаксису чи балансу та внести виправлення. Цикл зворотного зв'язку виконання, який демонструє MAC-SQL, — це той самий цикл, який потрібен шару безпеки при записі даних.
Результат дистиляції моделей з відкритим кодом є застереженням: донавчання моделі 7B для наближення до пайплайну на базі GPT-4 дає модель, яка все ще значно відстає. Якщо Bean Labs розроблятиме локальну модель для генерації запитів до журналу, розрив, показаний MAC-SQL, свідчить про те, що малим моделям потрібні специфічні для домену навчальні дані, які виходять далеко за межі того, що забезпечує донавчання загального призначення.
Що почитати далі
- DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — систематична оцінка бенчмарку з інженерії промптів, яку MAC-SQL безпосередньо покращує в BIRD; варто прочитати заради контрольованої абляції представлення схеми та вибору прикладів для few-shot.
- SQLFixAgent (arXiv:2406.13408) — розширює виправлення SQL на основі виконання у багатоагентну систему з перевіркою узгодженості, прямий нащадок ідеї Refiner з MAC-SQL.
- BIRD-Critic / SWE-SQL (2025) — новіші напрямки міркувань у BIRD, що вимагають розуміння п омилок виконання, природна еволюція того, що робив Refiner у MAC-SQL.
