در هیاهوی جدولهای ردهبندی مدلهای زبانی، نمرات خیرهکننده همیشه بهمعنای کارایی یک ایجنت در محیط عملیاتی نیست. بسیاری از اعداد تبلیغاتی تحت تأثیر نشت دادههای آموزشی یا تستهای نامطمئن قرار دارند؛ بنابراین اگر برای توسعهی دستیارهای برنامهنویسی یا ایجنتهای تصمیمگیر به این دادهها تکیه کنید، در مرحلهی استقرار واقعی غافلگیر خواهید شد.
این درس سه استاندارد معتبر ارزیابی یعنی SWE-bench (برای باگزدایی و اصلاح کد)، GAIA (برای تعامل چندوجهی و فراخوانی ابزارها) و AgentBench (برای تصمیمگیری در محیطهای ناهمگن) را کالبدشکافی میکند. با یادگیری سازوکار فیلترهایی مانند FAIL_TO_PASS و تحلیل پدیدهی آلودگی داده، میتوانید معیار ارزیابی دقیق، قابلاتکا و متناسب با نیاز سیستم خود بسازید.
در سال 2026، ارزیابی ایجنتها بر پایهی سه بنچمارک اصلی استوار است: SWE-bench اصلاح کد با تکهکدها (patch) را میسنجد؛ GAIA فراخوانی ابزارها بهصورت عمومی را ارزیابی میکند؛ و AgentBench استدلال در محیطهای چندگانه را به چالش میکشد. ساختار این بنچمارکها، ماجرای آلودگی دادههای آنها و جنبههایی را که اندازه نمیگیرند بهخوبی بشناسید.
اهداف یادگیری
- نامبردن بستر آزمایشی (test harness) در SWE-bench (معیار FAIL_TO_PASS) و توضیح دلیل تکیهی آن بر آزمونهای واحد (unit tests).
- توضیح دلیل پیدایش SWE-bench Verified (توسط OpenAI با 500 تسک) و مواردی که از آن حذف شده است.
- تشریح طراحی GAIA: ساده برای انسان، سخت برای هوش مصنوعی؛ در سه سطح دشواری.
- نامبردن هشت محیط AgentBench و مانع اصلی مدلهای زبانی متنباز در آن.
- خلاصهسازی یافتههای مربوط به نسبت آلودگی (contamination) در SWE-bench+ و پیامدهای آن.
صورت مسئله
جدولهای ردهبندی (leaderboards) فقط میگویند کدام مدل در یک بنچمارک برنده شده است، اما این نکات را روشن نمیکنند:
- آیا بنچمارک آلوده است یا نه (وجود راهحلها در دادههای آموزشی، نشت تستها).
- آیا بنچمارک دقیقاً همان چیزی را میسنجد که برای شما مهم است یا نه (کدنویسی در برابر وبگردی یا کارهای عمومی).
- آیا ارزیاب استحکام کافی دارد یا خیر (تطبیق AST، بررسی وضعیت سیستم، بازبینی انسانی).
پیش از آنکه به عددی استناد کنید، این سه بنچمارک محوری و حالتهای شکست (failure modes) آنها را بشناسید.
مفاهیم کلیدی
SWE-bench (ارائهشده توسط Jimenez و همکاران، مقالهی شفاهی ICLR 2024)
- 2,294 ایشوی واقعی گیتهاب از 12 مخزن محبوب پایتون.
- ورودی به ایجنت: کد مخزن در commit پیش از رفع باگ + شرح متنی ایشو به زبان طبیعی.
- خروجی ایجنت: یک تکه (patch).
- ارزیاب: اعمال تکه و اجرای تستهای مخزن. تکه باید تستهای FAIL_TO_PASS را پاس کند (تستهایی که قبلاً رد میشدند و حالا باید قبول شوند)، بدون آنکه تستهای PASS_TO_PASS را خراب کند.
ایجنت SWE-agent (توسط Yang و همکاران، 2024) در زمان انتشار با تمرکز بر رابطهای تعاملی ایجنت و کامپیوتر (دستورهای ویرایشگر فایل و سینتکس جستوجویی که مدل بفهمد) به امتیاز 12.5% رسید.
SWE-bench Verified
ارائهشده توسط OpenAI در اوت 2024؛ زیرمجموعهای شامل 500 تسک که با نظارت انسان گلچین شده است. ایشوهای مبهم، تستهای غیرقابلاتکا و تسکهایی با راهحل نامشخص از آن حذف شدهاند. این مجموعه بنچمارک اصلی برای سنجش این پرسش است: «آیا ایجنت شما تکههای واقعی و قابلاستفاده تحویل میدهد؟»
نسبت آلودگی
- بیش از 94% از ایشوهای SWE-bench پیش از تاریخ نهایی دادههای آموزشی (cutoff) اکثر مدلها ثبت شدهاند.
- پروژهی SWE-bench+ نشان داد در 32.67% از تکههای موفق، راهحل در متن ایشو لو رفته بود (مدل راهحل را در توضیحات دیده بود) و 31.08% نیز بهدلیل پوشش ضعیف تستها مشکوک بودند.
- نسخهی Verified تمیزتر است، اما کاملاً عاری از آلودگی نیست.
نتیجهی عملی: مدلی که در SWE-bench امتیاز 50% میگیرد، ممکن است در SWE-bench+ به 35% برسد. اگر ادعای عملکردی در SWE-bench دارید، همیشه هر دو معیار را گزارش کنید.
GAIA (ارائهشده توسط Mialon و همکاران، نوامبر 2023)
- 466 پرسش؛ 300 مورد برای جدول ردهبندی خصوصی در huggingface.co/gaia-benchmark نگهداشته شده است.
- فلسفهی طراحی: «از نظر مفهومی ساده برای انسان (92%)، اما سخت برای هوش مصنوعی (GPT-4 همراه با افزونهها: 15%).»
- سنجش استدلال، چندوجهی بودن، وب و فراخوانی ابزار (tool use).
- دارای سه سطح دشواری؛ سطح 3 نیازمند زنجیرههای طولانی ابزار در میان چند مودالیتی است.
برای سنجش «توانمندی عمومی» باید به سراغ GAIA بروید؛ آن را با بنچمارکهای ویژهی کد اشتباه نگیرید.
AgentBench (ارائهشده توسط Liu و همکاران، ICLR 2024)
- 8 محیط مختلف شامل کد (Bash، پایگاهداده، گراف دانش)، بازیها (Alfworld، LTP)، وب (WebShop، Mind2Web) و تولید آزاد متن.
- چندنوبتی، با حدود 4k تا 13k نوبت گفتوگو (turn) در هر بخش.
- یافتهی اصلی: استدلال بلندمدت، تصمیمگیری و پیروی از دستورالعملها، موانع اصلی مدلهای متنباز برای رسیدن به مدلهای تجاری هستند.
مواردی که این بنچمارکها اندازه نمیگیرند
- هزینهی عملیاتی در دنیای واقعی (مصرف توکن، زمان واقعی اجرا).
- رفتار امنیتی در شرایط خصمانه.
- عملکرد روی دامنهی کاری خاص شما (از ارزیابیهای اختصاصی خودتان استفاده کنید، درس 30).
- شکستهای نادربهوقوع یا دمبلند (بنچمارکها میانگین میگیرند؛ اما اپراتورهای محیط پروداکشن نگران بدترین 1% خروجیها هستند).
خطاهای رایج در بنچمارکگیری
- تمرکز روی یک تکعدد. عدد 50% در SWE-bench اطلاعات بسیار کمتری نسبت به توزیع هزینهها و گامها در P50، P75 و P95 به شما میدهد.
- ادعاهای آلوده. گزارش امتیاز SWE-bench بدون اشاره به Verified یا SWE-bench+ گمراهکننده است.
- تبدیل بنچمارک به هدف نهایی توسعه. بهینهسازی صرفاً برای بنچمارک، کارایی مدل در محیط پروداکشن را کاهش میدهد.
پیادهسازی از صفر
فایل code/main.py یک بستر آزمایشی (harness) جمعوجور شبیه SWE-bench را پیادهسازی میکند:
- تسکهای ساختگی رفع باگ (3 تسک).
- یک «ایجنت» اسکریپتی که تکهها را پیشنهاد میدهد.
- یک اجراکنندهی تست که FAIL_TO_PASS (باگ اکنون برطرف شده) و PASS_TO_PASS (چیزی خراب نشده) را بررسی میکند.
- یک دستهبندیکنندهی سطح دشواری به سبک GAIA بر اساس عمق خردکردن مسئله.
اجرایش کنید:
python3 code/main.py
خروجی برنامه نرخ رفع مشکل را بهتفکیک هر تسک و هر سطح دشواری نشان میدهد و قواعد ارزیاب را ملموس میکند.
استفاده از ابزارهای واقعی
- SWE-bench Verified برای ایجنتهای کدنویسی. همیشه نمرات Verified را گزارش کنید.
- GAIA برای ایجنتهای همهمنظوره. از بخش خصوصی جدول ردهبندی استفاده کنید.
- AgentBench برای مقایسه در محیطهای گوناگون.
- ارزیابیهای سفارشی (درس 30) متناسب با ساختار واقعی محصول شما.
خروجی این درس
مستند outputs/skill-benchmark-harness.md یک بستر آزمایشی به سبک SWE-bench برای هر جفت «مخزن کد-تسک» با فیلترهای FAIL_TO_PASS و PASS_TO_PASS میسازد.
تمرینها
- بستر آزمایشی این درس را طوری تغییر دهید که روی یک مخزن واقعی (یکی از پروژههای خودتان) اجرا شود. برای 3 باگ مشخص، تستهای FAIL_TO_PASS بنویسید.
- یک متریک برای تعداد گامها اضافه کنید. در این 3 تسک، ایجنت برای حل هر مسئله به چند گام نیاز دارد؟
- مقالهی SWE-bench+ را بخوانید. سازوکاری برای بررسی نشت راهحل پیادهسازی کنید (تطبیق الگو بین متن ایشو و diff تغییرات).
- یک پرسش GAIA را از مجموعهی عمومی دانلود کنید. ردگیری محاسبات (Trace) اقدامات یک ایجنت در سطح GPT-4 را مشخص کنید. چنین ایجنتی به چه ابزارهایی نیاز دارد؟
- تحلیل تفکیکی هر محیط را در مقالهی AgentBench بخوانید. کدام محیط بیشترین شباهت را به محصول شما دارد؟ بهترین مدلهای موجود (SOTA) در آن محیط چه عملکردی دارند؟
اصطلاحات کلیدی
| اصطلاح | برداشتی که رایج است | معنای واقعی آن |
|---|---|---|
| SWE-bench | «بنچمارک ایجنت کدنویسی» | 2,294 ایشوی گیتهاب؛ تکه باید تستهای FAIL_TO_PASS را پاس کند |
| SWE-bench Verified | «نسخهی تمیز SWE-bench» | 500 تسک گلچینشده توسط انسان، OpenAI |
| FAIL_TO_PASS | «فیلتر رفع باگ» | تستهایی که قبلاً رد میشدند و پس از اعمال تکه باید حتماً قبول شوند |
| PASS_TO_PASS | «فیلتر عدم بازگشت باگ» | تستهایی که قبلاً قبول میشدند و همچنان باید پاس شوند |
| GAIA | «بنچمارک عمومی» | 466 پرسش چندابزاری؛ ساده برای انسان و دشوار برای هوش مصنوعی |
| AgentBench | «بنچمارک چندمحیطی» | 8 محیط؛ با نوبتهای گفتوگوی متعدد و افق زمانی طولانی |
| نسبت آلودگی (Contamination) | «نشت دادههای آموزشی» | حضور تسکهای بنچمارک در دادههای آموزش مدل |
| SWE-bench+ | «ممیزی آلودگی» | کشف 32.67% نشت راهحل در تکههای موفق SWE-bench |
برای مطالعهی بیشتر
- Jimenez et al., SWE-bench (arXiv:2310.06770) — بنچمارک اصلی
- OpenAI, SWE-bench Verified — زیرمجموعهی گلچینشده
- Mialon et al., GAIA (arXiv:2311.12983) — بنچمارک همهمنظوره
- Liu et al., AgentBench (arXiv:2308.03688) — مجموعهی آزمونهای چندمحیطی
