پرش به محتوای اصلی

MAC-SQL: تبدیل متن به SQL از طریق همکاری چند-عامل

· زمان مطالعه 7 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

مدل MAC-SQL در دسامبر ۲۰۲۳ به عنوان صریح‌ترین پاسخ عامل‌محور به مسئله تبدیل متن به SQL معرفی شد: به جای استفاده از یک پرامپت (Prompt) برای تولید یک پرس‌وجو، سه عامل تخصصی با یکدیگر همکاری می‌کنند تا یک زیر-طرحواره (sub-schema) مرتبط را انتخاب کنند، سوال را تجزیه نمایند و 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" (وانگ و همکاران، COLING 2025) وضعیتی را هدف قرار می‌دهد که بنچمارک BIRD در روش‌های تک-پرامپتی قبلی آشکار کرد: پایگاه‌های داده بزرگ با طرحواره‌های (schemas) شلوغ و سوالات پیچیده چندمرحله‌ای، مدل‌هایی را که سعی می‌کنند همه چیز را در یک مرحله تحلیل کنند، مستأصل می‌کنند.

معماری این سیستم دارای سه عامل است. یک انتخاب‌گر (Selector) با فیلتر کردن جداول و ستون‌های نامرتبط قبل از شروع تولید SQL، یک پایگاه داده بزرگ را به یک زیر-طرحواره مرتبط محدود می‌کند. یک تجزیه‌کننده (Decomposer) موتور اصلی است — این عامل سوالات پیچیده به زبان طبیعی را به زیر-مسائل تقسیم کرده و SQL را به صورت تدریجی با استدلال زنجیره تفکر (chain-of-thought) و چند نمونه‌ای (few-shot) تولید می‌کند. یک اصلاح‌کننده (Refiner) کاندیدای SQL را در پایگاه داده واقعی اجرا می‌کند، پیام‌های خطا را کلمه به کلمه می‌خواند و به صورت تکرار شونده تا رسیدن به حد مجاز بازآزمایی، پرس‌وجو را تصحیح می‌کند. لزوماً هر سه عامل برای هر پرس‌وجو فعال نمی‌شوند؛ وظایف ساده‌تر بر اساس سیگنال‌های پیچیدگی، مراحل انتخاب یا اصلاح را نادیده می‌گیرند.

نویسندگان همچنین مدل SQL-Llama (مبتنی بر Code Llama 7B) را روی خروجی‌های تولید شده توسط این چهارچوب تنظیم دقیق (Fine-tune) کرده‌اند تا یک نسخه متن‌باز و کوچک‌تر ارائه دهند.

ایده‌های کلیدی

  • کاهش طرحواره پیش از تولید: عامل Selector پایگاه داده را به یک زیر-طرحواره مرتبط فیلتر می‌کند. تحلیل حذف اجزا (Ablation) بهبود ۲.۱۱ درصدی را در نسخه توسعه BIRD تایید می‌کند — واقعی، اما متوسط.
  • اصلاح هدایت‌شده توسط اجرا: عامل Refiner پیام‌های خطای واقعی پایگاه داده را می‌خواند و SQL را تصحیح می‌کند. این بزرگترین سهم را در تحلیل حذف اجزا دارد: حذف آن باعث افت ۴.۶۳ واحدی در دقت BIRD می‌شود، که بیش از حذف Selector (-۲.۱۱) یا حتی Decomposer (-۳.۸۵) است.
  • اعزام مشروط عامل: هدایت پرس‌وجوهای ساده‌تر به خارج از مسیر Selector و Refiner باعث صرفه‌جویی در توکن‌ها می‌شود بدون اینکه به دقت در موارد آسان لطمه بزند.
  • شکاف تقطیر متن‌باز: مدل SQL-Llama (7B) به دقت ۴۳.۹۴٪ در BIRD می‌رسد در حالی که پایه GPT-4 حدود ۴۶.۳۵٪ است. این شکاف با توجه به تفاوت تعداد پارامترها چشمگیر نیست، اما مدل ۷ میلیاردی تنظیم‌شده هنوز ۱۵+ واحد از امتیاز تست ۵۹.۵۹٪ مدل کامل GPT-4+MAC-SQL عقب است.
  • نتیجه تست BIRD: ۵۹.۵۹٪ دقت اجرا، که در زمان ارائه در صدر جدول امتیازات بود و عملکردی بهتر از DAIL-SQL+GPT-4 (۵۷.۴۱٪) با اختلاف ۲.۱۸ واحد داشت.

چه چیزی ماندگار است و چه چیزی نه

عامل Refiner بهترین ایده در اینجا است و تحلیل حذف اجزا نیز آن را نشان می‌دهد. عاملی که پیام خطای واقعی پایگاه داده را می‌خواند و SQL خود را اصلاح می‌کند، کاری بسیار اصولی‌تر از یک مدل زبانی انجام می‌دهد که در خلاء حدس‌های دوم می‌زند — این همان اصل نقد تعاملی ابزار (CRITIC) است که مستقیماً و به طور عینی در بازخورد اجرای SQL اعمال شده است.

سهم Selector مثبت اما اندک است. برای پایگاه‌های داده با صدها جدول، احتمالاً اهمیت بیشتری دارد؛ برای طرحواره‌های معمول BIRD حاشیه‌ای است و مقاله گزارش نمی‌دهد که Selector چند وقت یک‌بار فعال می‌شود یا دقت آن در حفظ ستون‌های مرتبط چقدر است — این بخش مانند یک جعبه سیاه با یک عدد تجمعی واحد عمل می‌کند.

عامل Decomposer نسبت به DIN-SQL یک پیشرفت تدریجی است. DIN-SQL پیش از این پرس‌وجوها را به زیر-مسائل با خود-اصلاحی تقسیم می‌کرد؛ MAC-SQL این فرآیند را در قالب یک گفتگوی چند-عاملی بازآفرینی کرده است. تقسیم معماری به سه عامل نام‌گذاری شده بیشتر شبیه به یک انتخاب در طراحی نرم‌افزار است تا یک الگوریتم استنتاجی جدید. اینکه آیا ساختار پرامپت سه-عاملی نسبت به یک عامل واحد با پرامپت طولانی‌تر (با کنترل تعداد کل توکن‌ها) برتری دارد یا خیر، هرگز آزمایش نشده است. محدودیت‌های پذیرفته شده — پرامپت‌هایی که "به طور گسترده مهندسی نشده‌اند" و تنظیم دقیق که به مدل 7B محدود شده است — واقعی هستند، اما نقص اساسی‌تر، نبود تحلیل حذف اجزا روی طول پرامپت در مقابل معماری است.

بستر زمانی برای کالیبراسیون اهمیت دارد. امتیاز ۵۹.۵۹٪ MAC-SQL در تست BIRD در دسامبر ۲۰۲۳ پیشرو بود. تا اواسط سال ۲۰۲۵، جدول امتیازات BIRD سیستم‌هایی را نشان می‌دهد که از مرز ۸۱٪ عبور کرده‌اند. ایده‌های خاص — فیلتر کردن زیر-طرحواره، تجزیه سوال، بازآزمایی اجرا — توسط کارهای بعدی با استفاده از آموزش مبتنی بر استدلال، RLVR و زنجیره تفکر غنی‌تر جذب و گسترش یافته‌اند. MAC-SQL به عنوان یک محصول قدیمی به نظر می‌رسد؛ اما MAC-SQL به عنوان یک الگوی معماری، همچنان روزآمد باقی مانده است.

چرا این برای هوش مصنوعی مالی اهمیت دارد

Beancount از beanquery — یک زبان پرس‌وجو شبیه به SQL — به عنوان رابط برنامه‌نویسی اصلی خود روی داده‌های دفتر کل استفاده می‌کند. یک فایل واقعی beancount چند ساله دارای طرحواره‌ای است که شامل ده‌ها حساب سازماندهی شده در یک سلسله‌مراتب، چندین ارز، برچسب‌های متادیتا و ستون‌های موجودی محاسباتی است. این دقیقاً همان مشکل پایگاه داده بزرگ و طرحواره شلوغی است که Selector هدف قرار می‌دهد.

عامل Decomposer مستقیماً در مورد انواع پرس‌وجوهایی که کاربران واقعاً می‌پرسند کاربرد دارد: "مجموع هزینه‌های غذاخوری من به یورو در سه ماهه سوم ۲۰۲۴ به جز تراکنش‌های مسترد شده، به تفکیک ماه چقدر بود؟" این یک مسئله تجزیه است — فیلتر بر اساس پیشوند حساب، فیلتر بر اساس محدوده تاریخ، حذف تراکنش‌های علامت‌گذاری شده، تجمیع در هر ماه. عامل Refiner نیز به طور طبیعی قابل ترجمه است: قبل از ثبت یک ورودی تولید شده در beancount، یک عامل می‌تواند آن را از طریق پارسر beancount به صورت آزمایشی اجرا کند، خطاهای نحو یا تراز را دریافت کرده و بازنگری کند. حلقه بازخورد اجرایی که MAC-SQL نشان می‌دهد، همان حلقه‌ای است که یک لایه ایمنی نوشتن (write-back) به آن نیاز دارد.

نتیجه تقطیر متن‌باز یک هشدار است: تنظیم دقیق یک مدل 7B برای تقریب زدن به یک خط لوله مبتنی بر GPT-4 مدلی حاصل می‌کند که هنوز بسیار عقب‌تر است. اگر Bean Labs یک مدل محلی برای تولید پرس‌وجوی دفتر کل بسازد، شکاف MAC-SQL نشان می‌دهد که مدل‌های کوچک به داده‌های آموزشی خاصِ دامنه، بسیار فراتر از آنچه یک تنظیم دقیق عمومی فراهم می‌کند، نیاز دارند.

چه چیزی را در ادامه بخوانیم

  • DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — ارزیابی بنچمارک مهندسی پرامپت سیستماتیک که MAC-SQL مستقیماً روی آن در BIRD بهبود می‌یابد؛ برای مطالعه تحلیل حذف اجزای کنترل شده در نمایش طرحواره و انتخاب نمونه‌های چند-نمونه‌ای ارزش خواندن دارد.
  • SQLFixAgent (arXiv:2406.13408) — تصحیح SQL هدایت‌شده توسط اجرا را به یک سیستم چند-عاملی با بررسی سازگاری گسترش می‌دهد که نواده مستقیم ایده Refiner در MAC-SQL است.
  • BIRD-Critic / SWE-SQL (2025) — مسیر استدلال جدیدتر BIRD که مستلزم درک خطاهای اجرا است؛ تکامل طبیعی کاری که Refiner در MAC-SQL انجام می‌داد.