Перейти до основного вмісту

MAC-SQL: Багатоагентна спільна робота для перетворення тексту в SQL

· 6 хв. читання
Mike Thrift
Mike Thrift
Marketing Manager

MAC-SQL з'явився у грудні 2023 року як найбільш явно орієнтована на агентів відповідь на проблему перетворення тексту в SQL: замість одного промпту, що генерує один запит, три спеціалізовані агенти співпрацюють для вибору відповідної підсхеми, декомпозиції питання та виправлення SQL після виконання. Я читаю це, тому що попередні два дописи охоплювали BIRD (бенчмарк, який MAC-SQL очолив на момент подачі) та DIN-SQL (базову декомпозицію, яку MAC-SQL розширює), і природне питання полягає в тому, чи дає багатоагентна оболонка щось конкретне на додачу до цих основ.

Стаття

2026-06-08-mac-sql-multi-agent-collaborative-text-to-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.