Web Analytics

BIRD-Interact

⭐ 598 stars Persian by bird-bench

🌐 زبان

BIRD-INTERACT 1.0 HKU Logo Google Cloud Logo

License Leaderboard HuggingFace Python OpenAI

⚠️ اطلاعیه

لطفاً توجه داشته باشید که قبل از شروع فرایند ارزیابی، هنگام بارگذاری پایگاه داده‌ها توسط Docker، ممکن است به علت ناسازگاری محیطی گاهی اوقات خطاهایی رخ دهد (این خطاها باعث توقف فرایند نمی‌شوند اما در لاگ‌های Docker نمایش داده می‌شوند). در نتیجه ممکن است برخی پایگاه داده‌ها به درستی بارگذاری نشوند و پایگاه داده‌های خالی ایجاد شود. این موضوع باعث می‌شود نتایج ارزیابی به طور غیرعادی پایین باشد. 👉 بنابراین، اکیداً توصیه می‌کنیم قبل از اجرای ارزیابی لاگ‌های Docker را از نظر وجود خطا بررسی کرده و مطمئن شوید که همه پایگاه داده‌ها با موفقیت بارگذاری شده‌اند.

👉 ما دستورالعمل‌های ارسال را به‌روزرسانی کرده‌ایم که اکنون اسکافلدهای عامل سفارشی را پشتیبانی می‌کند. لطفاً جهت مشاهده دستورالعمل‌های کامل ارسال اینجا را بررسی نمایید.

📰 اخبار

این مقاله جزئیات کامل، روش‌شناسی و ارزیابی معیار تعاملی متن به SQL ما را ارائه می‌دهد. 👉 برای اطلاعات بیشتر درباره ایده‌های پشت BIRD-Interact مراجعه کنید.

این مجموعه چالش‌برانگیز است — بهترین مدل‌های زبان بزرگ تنها به 16.33% موفقیت دست یافته‌اند و فقط 10.0% در بخش‌های c-interact و a-interact. 👉 برای جزئیات بیشتر به وبسایت پروژه مراجعه فرمایید.

اگر دسترسی زودهنگام می‌خواهید، لطفاً طبق دستور سایت ایمیل بزنید تا دانلود خودکار دریافت کنید.

نسخه کامل LiveSQLBench-Base و -Large به زودی ارائه خواهد شد!

🧸 نمای کلی

BIRD-INTERACT، یک بنچمارک تعاملی تبدیل متن به SQL، ارزیابی Text-to-SQL را از منظر تعاملات پویا بازآفرینی می‌کند. محیط، پایگاه دانش سلسله‌مراتبی، مستندات پایگاه داده و شبیه‌ساز کاربر مبتنی بر عملکرد را ترکیب می‌کند تا محیط‌های واقعی سازمانی را در عملیات کامل CRUD بازسازی کند. دو حالت ارزیابی دقیق ارائه می‌دهد: (1) تعامل مکالمه‌ای غیر فعال و (2) تعامل عاملانه فعال، که دربرگیرنده ۶۰۰ وظیفه برچسب‌خورده شامل هوش تجاری (BI)، عملیات CRUD و غیره است، و هر یک توسط تست کیس‌های قابل اجرا محافظت می‌شوند. ارزیابی‌های معمولی ۱,۹۶۸ تا ۵,۴۹۶ دور تعامل بین مدل و شبیه‌ساز کاربر را تحریک می‌کنند، در حالی که مدل‌های استدلال پیشرفته فقط ≈۲۴٪ و ≈۱۸٪ وظایف را حل می‌کنند که چالش بنچمارک را نشان می‌دهد.

✅ دو حالت ارزیابی

BIRD-INTERACT دو حالت ارزیابی را همانطور که گفته شد پشتیبانی می‌کند:

🐣 نسخه سبک

نسخه سبک BIRD-INTERACT، bird-interact-lite-exp را منتشر می‌کنیم که شامل ۲۷۰ وظیفه واقعی با کیفیت بالا مخصوص PostgreSQL است. این نقطه شروع خوبی برای آزمایش سریع است.

🦜 نسخه کامل

نسخه کامل BIRD-INTERACT، bird-interact-full، یک بنچمارک جامع با ۶۰۰ وظیفه برای PostgreSQL است. طیف وسیعی از عملیات SQL و پرسش‌های کاربر را پوشش می‌دهد. نسخه کامل به زودی ارائه می‌شود.

نتایج عملکرد مدل‌ها روی BIRD-INTERACT-FULL

#### ۱. عملکرد c-Interact Text-to-SQL | رتبه | نام مدل | پاداش نرمال‌شده | هزینه متوسط (دلار)/وظیفه | سطح | |:----:|:-------------------|:-----------------:|:-------------------:|:------------------:| | 1 | Gemini-2.5-Pro | 20.92 | $0.04 | 🏆 چت عالی | | 2 | O3-Mini | 20.27 | $0.07 | 🏆 چت عالی | | 3 | Claude-Sonnet-4 | 18.35 | $0.29 | 💎 چت خوب | | 4 | Qwen-3-Coder-480B | 17.75 | $0.11 | 💎 چت خوب | | 5 | Deepseek-Chat-V3.1 | 15.15 | $0.12 | ✨ استاندارد | | 6 | Claude-Sonnet-3.7 | 13.87 | $0.29 | ✨ استاندارد | | 7 | GPT-5 | 12.58 | $0.08 | ⚪ پایه‌ای |

#### 2. عملکرد a-Interact Text-to-SQL | رتبه | نام مدل | پاداش نرمال‌شده | متوسط هزینه (دلار)/وظیفه | سطح | |:----:|:-------------------|:-----------------:|:-------------------:|:------------------------:| | 1 | GPT-5 | 25.52 | $0.24 | 🏆 تعامل عالی | | 2 | Claude-Sonnet-4 | 23.28 | $0.51 | 🏆 تعامل عالی | | 3 | Claude-Sonnet-3.7 | 17.45 | $0.60 | 💎 تعامل خوب | | 4 | Gemini-2.5-Pro | 17.33 | $0.22 | 💎 تعامل خوب | | 5 | O3-Mini | 16.43 | $0.06 | ✨ استاندارد | | 6 | Deepseek-Chat-V3.1 | 13.47 | $0.06 | ✨ استاندارد | | 7 | Qwen-3-Coder-480B | 10.58 | $0.07 | ⚪ پایه‌ای |

\ پارامترهای بودجه: بودجه اولیه/بودجه صبر کاربر، بر حسب ارز مجازی bird-coin* . برای جزئیات بیشتر به bird_interact_agent/README.md مراجعه کنید.

مقیاس‌گذاری زمان تعامل (ITS)

مقیاس‌گذاری زمان تعامل (ITS) به توانایی یک مدل برای افزایش مستمر عملکرد نهایی خود از طریق تعاملات چندمرحله‌ای اشاره دارد. زمانی که این عملکرد تعاملی از عملکرد تک‌مرحله‌ای ایده‌آل مدل در یک وظیفه کاملاً مشخص و بدون ابهام فراتر رود، گفته می‌شود مدل از قانون ITS پیروی می‌کند. با افزایش صبر کاربر و تجمع تعداد تعاملات، عملکرد مدل بهبود می‌یابد، که نشان می‌دهد مدل می‌تواند ارتباط مؤثر را در گفتگوی طولانی حفظ کند. در حال حاضر، تنها claude-3-7-sonnet مطابق با قانون ITS است.

راه‌اندازی محیط

> اگر فقط می‌خواهید روی bird-interact-lite ارزیابی انجام دهید، می‌توانید سرویس postgresql_full را در docker-compose.yml کامنت کنید تا راه‌اندازی محیط سریع‌تر شود. محیط را با اجرای دستور زیر راه‌اندازی کنید:
   cd env
   docker compose pull 
   docker compose up -d
   ``
   چند دقیقه منتظر بمانید تا پایگاه داده مقداردهی اولیه شود.
   
  شما می‌توانید پیشرفت ساخت را با موارد زیر پیگیری کنید:
  `bash
  docker compose logs -f --tail=100 bird_interact_postgresql_full # or bird_interact_postgresql for bird-interact-lite
  `
  اگر کار تمام شده باشد، باید لاگ‌ها را بدون خطا مشاهده کنید مانند:

`bash bird_interact_postgresql_full | 2025-10-28 17:58:30.413 HKT [1] LOG: database system is ready to accept connection ` اگر قبلاً کانتینر ساخته‌اید و می‌خواهید آن را دوباره بسازید، می‌توانید فرمان زیر را اجرا کنید:

`bash docker compose down -v # this cmd removes the containers and the volumes docker compose pull # pull the latest images from Docker Hub docker compose up -d --force-recreate # build and start the containers again. --force-recreate means force the recreation of the containers. # Or docker compose up -d --force-recreate bird_interact_eval to only recreate the bird_interact_eval container about evalution code environment. ` این دستور ۳ کانتینر را با استفاده از ایمیج‌های آماده از Docker Hub اجرا می‌کند:

  • bird_interact_postgresql: پایگاه داده PostgreSQL برای bird-interact-lite
  • bird_interact_postgresql_full: پایگاه داده PostgreSQL برای bird-interact-full
  • bird_interact_eval: محیط ارزیابی برای هر دو a-Interact و c-Interact.
اکنون می‌توانید محیط ارزیابی را با اجرای دستور زیر راه‌اندازی کنید: `bash docker compose exec bird_interact_eval bash `

  • (اختیاری) محیط را به صورت دستی بسازید (اگر می‌خواهید تصاویر را از ابتدا بسازید):
  • فایل‌های دامپ پایگاه داده را دانلود کنید
  • bird-interact-lite. آن را از حالت فشرده خارج کرده و به نام env/postgre_table_dumps تغییر دهید.
  • bird-interact-full. آن را از حالت فشرده خارج کرده و به نام env/postgre_table_dumps_full تغییر دهید.
  • محیط را با اجرای docker-compose.build.yml به صورت دستی بسازید.
`bash cd env/ docker compose -f docker-compose.build.yml build docker compose -f docker-compose.build.yml up -d `

  • (توصیه می‌شود) بررسی کنید که کانتینرهای پایگاه داده با موفقیت ساخته و اجرا شده‌اند.
  • لاگ‌های ساخت کانتینر را چاپ کنید تا مطمئن شوید پایگاه‌های داده بدون خطا ساخته شده‌اند:
`bash docker logs bird_interact_postgresql > build_bird_interact_postgresql.log 2>&1 docker logs bird_interact_postgresql_full > build_bird_interact_postgresql_full.log 2>&1 ` اگر خطاهایی رخ دهند، "خطاها در هنگام وارد کردن رخ دادند:" در فایل‌های گزارش چاپ خواهد شد.

  • بررسی کنید که کانتینرهای پایگاه داده در وضعیت مناسبی باشند.
از اسکریپت پایتون ارائه شده توسط ما برای بررسی متادیتای پایگاه داده استفاده کنید:
`bash docker compose exec bird_interact_eval bash cd /app/env python check_db_metadata.py --host bird_interact_postgresql python check_db_metadata.py --host bird_interact_postgresql_full ` نتایج مورد انتظار:
  • bird-interact-lite:
  • 📈 تعداد پایگاه‌های داده: ۱۸
  • 📋 تعداد جدول‌ها: ۱۷۵
  • 🔢 تعداد ستون‌ها: ۲۲۸۶
  • 📈 میانگین تعداد ردیف‌ها در هر جدول: ۱۰۳۸.۴۸
  • 💾 کل حجم: ۲۰۷.۱۵ مگابایت (تقریباً)
  • bird-interact-full:
  • 📈 تعداد پایگاه‌های داده: ۲۲
  • 📋 تعداد جدول‌ها: ۲۴۴
  • 🔢 تعداد ستون‌ها: ۲۰۱۱
  • 📈 میانگین تعداد ردیف‌ها در هر جدول: ۱۱۲۱.۱۹
  • 💾 کل حجم: ۲۷۲.۰۰ مگابایت (تقریباً)

📦 جزئیات دیتاست

توضیحات دیتاست

  • پایگاه داده: پایگاه داده کامل PostgreSQL را می‌توان از bird-interact-lite و bird-interact-full دانلود کرد.
  • data: هر نمونه داده شامل بخش‌های اصلی زیر است:
  • selected_database: نام پایگاه داده.
  • query: پرسش کاربر بدون ابهام.
  • amb_user_query: پرسش کاربر با ابهامات تزریق شده.
  • user_query_ambiguity: ابهاماتی که به پرسش کاربر تزریق شده‌اند.
  • non_critical_ambiguity: ابهامات غیر بحرانی مانند ترتیب، محدودیت و غیره.
  • knowledge_ambiguity: ابهاماتی که توسط مخفی‌سازی دانش‌های خارجی ایجاد شده‌اند.
  • sol_sql: راه حل SQL واقعی.
  • preprocess_sql: کوئری‌های SQL برای اجرا قبل از راه حل یا پیش‌بینی.
  • clean_up_sql: کوئری‌های SQL برای اجرا پس از تست‌ها جهت بازگرداندن تغییرات پایگاه داده.
  • test_cases: مجموعه‌ای از تست‌ها برای اعتبارسنجی SQL اصلاح شده پیش‌بینی شده.
  • follow_up: پرسش‌های پیگیری برچسب‌گذاری شده.
  • external_knowledge: دانش خارجی مرتبط با وظیفه خاص.
  • ارزیابی: کد ارزیابی در پوشه ./evaluation موجود است.
  • تهیه شده توسط: تیم BIRD و Google Cloud
  • مجوز: cc-by-sa-4.0
  • کارت دیتاست HuggingFace: bird-interact-lite
و bird-interact-full

موارد استفاده از دیتاست

برای جلوگیری از نشت داده‌ها از طریق خزیدن خودکار، راه‌حل‌های GT و موارد تست را همراه با داده‌ها قرار نمی‌دهیم. لطفاً برای دریافت داده‌های حقیقت پایه و موارد تست مربوط به دیتاست bird-interact-lite یا bird-interact-full، ایمیلی با عنوان [bird-interact-lite GT&Test Cases] یا [bird-interact-full GT&Test Cases] به آدرس bird.bench25@gmail.com ارسال نمایید تا اطلاعات به صورت خودکار برای شما ارسال گردد.

ترکیب داده‌های عمومی با حقیقت پایه و موارد تست

سپس از اسکریپت زیر برای ترکیب داده‌های عمومی با حقیقت پایه و موارد تست استفاده کنید:

نسخه کامل را به عنوان مثال در نظر بگیرید: (1) اجرا کنید:

bash python combine_public_with_gt.py /path/to/bird-interact-full/bird_interact_data.jsonl /path/to/bird_interact_full_gt_kg_testcases_08022.jsonl /path/to/bird_interact_data.jsonl # bird_interact_full_gt_kg_testcases_08022.jsonl is the data of ground-truth fields, which is obtained by emailing us.
این کار یک فایل جدید در مسیر /path/to/bird_interact_data.jsonl با داده‌های ترکیبی ایجاد خواهد کرد.

(2) سپس داده‌های عمومی اصلی را با داده‌های ترکیبی جایگزین کنید:

bash cp /path/to/bird_interact_data.jsonl /path/to/bird-interact-full/bird_interact_data.jsonl

برای نسخه‌های دیگر نیز همین کار را انجام دهید: bird-interact-lite، نسخه مینی و غیره. فقط مسیرهای صحیح را برای داده‌های عمومی، داده‌های حقیقت مبنا و داده‌های تست تنظیم کنید و سپس داده‌های عمومی را با داده‌های ترکیبی جایگزین نمایید.