چیت‌شیت

بنچ‌مارک‌های ایجنت: از SWE-bench تا OSWorld

Agent Benchmarks: SWE-bench to OSWorld

بنچ‌مارک را انتخاب کنید، با تست‌های مناسب گیت بگذارید، آلودگی داده‌ها را بررسی کنید و اجراها را بر پایه‌ی مخرج‌های برابر مقایسه نمایید.

  • ۱۱ بخش
  • ۳ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه‌ی پهلو‌به‌پهلوی بنچ‌مارک‌های تک‌ایجنتی
  2. مقایسه‌ی پهلو‌به‌پهلوی بنچ‌مارک‌های چندایج smash
  3. چه زمانی از X استفاده کنیم
  4. گیت SWE-bench: دستور run_task
  5. پایپ‌لاین Harness Bench
  6. اجرای درس‌ها و پروژه
  7. سنجه‌های بستر آزمایشی ساده در پایتون
  8. پیش‌فرض‌های CLI
  9. عیب‌یابی
  10. اعداد کلیدی برای به‌خاطرسپردن
  11. چک‌لیست راستی‌آزمایی ادعاها

مقایسه‌ی پهلو‌به‌پهلوی بنچ‌مارک‌های تک‌ایجنتی

مقایسه
فاکتورSWE-benchGAIAWebArenaOSWorld
آزمون‌هاپچ کردن کداستفاده از ابزار همه‌منظورهوظایف وب، افق زمانی بلندوظایف رایانه‌ای واقعی
حجم2,294 ایشو، 12 مخزن پایتون466 سؤال، 300 مورد خصوصی812 وظیفه، 4 برنامه369 وظیفه، 3 سیستم‌عامل
ورودی ایجنتکدبیس در کامیت پیش از اصلاح + ایشوسؤال. وب، چندحالتهبرنامه‌های خودمیزبان + ابزارهای کمکیاسکرین‌شات‌های 1920×1080
ارزیابتست‌های FAIL_TO_PASS و PASS_TO_PASSذکر نشدهمبتنی بر اجرا، APIهای gymذکر نشده
بهترین در زمان انتشارSWE-agent با 12.5٪GPT-4 با پلاگین‌ها 15٪ایجنت GPT-4 با 14.41٪بهترین مدل 12.24٪
انسانذکر نشده92٪78.24٪72.36٪
دام اصلیآلودگی داده‌هااشتباه گرفتن با بنچ‌مارک‌های کدنسخه‌های پین‌شده‌ی قدیمی برنامه‌هاانطباق بصری در رابط کاربری

مقایسه‌ی پهلو‌به‌پهلوی بنچ‌مارک‌های چندایج smash

مقایسه
فاکتورMARBLECOMMAMedAgentBoardSWE-bench Pro
سنجه‌هاتوپولوژی‌های ستاره‌ای، زنجیره‌ای، درختی و گرافیاطلاعات نامتقارن چندحالته4 دسته‌بندی وظایف پزشکیبدون آلودگی، تاریخ‌های قطع بعدی
امتیازدهیشاخص‌های کلیدی عملکرد بر پایه‌ی مایل‌استون، پیشرفت نسبیهمکاری ایجنت با ایجنتچندایج smash در برابر تک‌LLM و در برابر مبتنی بر قاعده1865 مسئله، 41 مخزن
تیتر اصلیگراف برای پژوهش بهترین استمدل‌های پیشرو در برابر تصادفی چالش دارندچندایج smash همیشه برتر نیستحدود 23٪ روی Pro در برابر +70٪ روی Verified
درس آموختهبرنامه‌ریزی شناختی حدود 3٪ می‌افزایدپیش از ادعا کردن اندازه بگیریدبسیاری از سیستم‌ها بیش‌از‌حد مهندسی شده‌اندVerified به‌تنهایی شواهد محسوب نمی‌شود

چه زمانی از X استفاده کنیم

نکته‌ها
  • SWE-bench Verified: ایجنت کد. همیشه امتیازات Verified را گزارش کنید.
  • SWE-bench Pro: ارزیابی واقعی آلودگی داده‌ها. Pro آزمون گیت فعلی است.
  • GAIA: ایجنت همه‌منظوره. از بخش خصوصی تابلوی امتیازات استفاده کنید.
  • AgentBench: مقایسه میان چند محیط در 8 محیط مختلف.
  • WebArena Verified: ایجنت وب. برای ارزیابی مداوم آن را خودمیزبان اجرا کنید.
  • OSWorld: ایجنت دسکتاپ. آن را در ناوگانی از ماشین‌های مجازی اجرا کنید.
  • MARBLE: زمانی که توپولوژی‌های هماهنگی را به شکلی کاملاً برابر مقایسه می‌کنید.
  • AgentArch: وقتی باید تک‌تک لایه‌های یک استک سازمانی را توجیه کنید.
  • ارزیابی‌های سفارشی: جریان‌های کاری محصول شما. مسیرهای کامل اجرای مرجع را برای 20 وظیفه‌ی برتر ثبت کنید.

گیت SWE-bench: دستور run_task

گام‌به‌گام
  1. بستر آزمایشیکپی کردن state_before. شمارش چک‌های موفق FAIL_TO_PASS و PASS_TO_PASS.
  2. ایجنتاِعمال پچ روی نسخه‌ای کپی‌شده از وضعیت.
  3. بستر آزمایشیشمارش دوباره‌ی چک‌های موفق روی وضعیت جدید.
  4. گیت اصلاحهمه‌ی تست‌های FAIL_TO_PASS باید پس از پچ پاس شوند.
  5. گیت بدون پسرفتمقدار ptp_broke باید صفر باشد.
  6. نتیجهresolved فقط زمانی درست است که هر دو گیت پاس شوند.
  7. گزارشنرخ حل برابر است با وظایف حل‌شده تقسیم بر کل وظایف.

پایپ‌لاین Harness Bench

معماری
مواردNewModelContextModelپاسخنتیجهفایل Cases JSONشناسه، پرامپت، مورد انتظارCases()رمزگشایی سخت‌گیرانه، حداکثر 1000EvaluatePolicy()3 خط‌مشی، بودجه‌ی فراخوانیLeaderboard()مخرج‌های برابرRecordingمجموعه‌داده‌ی نمونه authored_fixtureHTTPModel()فرمت chat-completionsCorrect()قرارداد پاسخ دقیق

اجرای درس‌ها و پروژه

دستورها
دستورعملکرد
python3 code/main.pyاجرای بستر آزمایشی ساده‌ی درس‌های 14.19، 14.20 و 16.24
python3 scripts/project_test.py harness-bench --init /tmp/harness-bench-workساخت میز کار یادگیرنده
python3 scripts/project_test.py harness-bench --stage 1 --path /tmp/harness-bench-work --strictنمره‌دهی به یک مرحله
python3 scripts/project_test.py harness-bench --all --solution --strictنمره‌دهی به راه‌حل مرجع
go run . --budget 2 --out /tmp/orchard-budget.jsonبازپخش Orchard با 2 فراخوانی برای هر خط‌مشی
go run . --cases <cases.json> --endpoint <url> --model <model>فراخوانی یک مدل زنده‌ی chat-completions
--key-env <VAR>نام‌گذاری متغیر محیطی حاوی کلید

سنجه‌های بستر آزمایشی ساده در پایتون

کد
python
resolved = (ftp_post == len(task.fail_to_pass)) and (ptp_broke == 0)
score = steps + modalities + tools              # سطح GAIA: کمتر مساوی 2 برابر 1، کمتر مساوی 5 برابر 2، در غیر این صورت 3
efficiency = steps / task.gold_steps            # کارایی مسیر، 1.0 حالت ایدئال است
delta = r["accuracy_seen"] - r["accuracy_held"]
contam_flag = "*" if delta > 0.1 else " "       # دقت روی مجموعه‌ی ارزیابی پنهان، معیار مرجع است
vs_random = r["accuracy_held"] - rand_baseline  # خط مبنا 0.15
r = run_bench(sys, n_seen=40, n_held=160, seed=17)

پیش‌فرض‌های CLI

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
--casesfixtures/orchard-cases.jsonآرایه‌ی JSON از موارد
--recordingfixtures/orchard-recording.jsonوقتی --endpoint تنظیم شده باشد نادیده گرفته می‌شود
--budget4فراخوانی‌های مدل به ازای هر خط‌مشی، حداکثر 10000
--timeout30sمهلت زمانی هر خط‌مشی، حداکثر 5 دقیقه
--temperature0دمای نمونه‌برداری HTTP
--max-tokens128سقف توکن خروجی HTTP
Case limit1000فایل‌ها به یک مبی‌بایت محدود هستند
HTTP request capten secondsبازهدایت‌ها و اندپوینت‌های پرسمان رد می‌شوند

عیب‌یابی

عیب‌یابی
  • تابع Cases خطای ErrConflict می‌دهد

    علت
    دو مورد شناسه‌ی یکسان دارند
    راه‌حل
    به هر مورد یک شناسه‌ی یکتا بدهید
  • تابع Cases روی یک پاسخ معتبر خطا می‌دهد

    علت
    اشتباه املایی در کلید Expected
    راه‌حل
    کلید را اصلاح کنید. فیلدهای ناشناخته رد می‌شوند
  • تابع Leaderboard خطای ErrConflict می‌دهد

    علت
    چکیده‌ی مجموعه‌داده، چکیده‌ی مدل یا بودجه متفاوت است
    راه‌حل
    همه‌ی خط‌مشی‌ها را با یک پیکربندی دوباره اجرا کنید
  • پاسخ 15 min در برابر 15 minutes رد می‌شود

    علت
    قرارداد پاسخ دقیق
    راه‌حل
    حالت‌های گوناگون را در قراردادی جداگانه تعریف کنید
  • وضعیت budget-exhausted است

    علت
    تلاش مجدد بودجه را مصرف کرده است
    راه‌حل
    موارد بعدی در Total باقی می‌مانند. سقف --budget را افزایش دهید
  • خطای recording exhausted for requested prompt

    علت
    پرامپت وجود ندارد یا آرایه خالی شده است
    راه‌حل
    پرامپت دقیق خط‌مشی را به responses اضافه کنید
  • امتیاز 50٪ در SWE-bench روی +SWE-bench به 35٪ افت می‌کند

    علت
    نشت راه‌حل در متن ایشو
    راه‌حل
    امتیازهای Verified و +SWE-bench را گزارش دهید
  • اختلاف بالاتر از 0.1، علامت پرچم *

    علت
    وظایف دیده‌شده امتیاز بالاتری نسبت به وظایف پنهان می‌گیرند
    راه‌حل
    فقط دقت مجموعه‌ی پنهان را نقل‌قول کنید

اعداد کلیدی برای به‌خاطرسپردن

مفهوم‌ها
+SWE-bench
در 32.67٪ از پچ‌های موفق نشت راه‌حل رخ داده است. 31.08٪ تست‌های ضعیفی داشتند.
تاریخ قطع
بیش از 94٪ ایشوهای SWE-bench پیش از تاریخ قطع اغلب مدل‌ها بوده‌اند.
OSWorld-Human
برترین ایجنت‌ها 1.4 تا 2.7 برابر گام‌های بیشتری نسبت به انسان طی می‌کنند.
OSWorld-G
شامل 564 نمونه‌ی فقط انطباق بصری. انطباق را از برنامه‌ریزی تفکیک می‌کند.
دستاورد تیم‌های ایجنتی
30 تا 40 نمره اختلاف روی SWE-bench Pro.
مالیات هماهنگی
فراتر از حدود 4 ایجنت در توپولوژی گرافی نمایان می‌شود.
بازپخش Orchard
خط مبنا 1/3 در 3 فراخوانی، تلاش مجدد در خطا 2/3 در 4، شواهد 3/3 در 3.
اندازه‌گیری‌نشده
هزینه، امنیت در برابر نفوذ، دامنه‌ی کاری شما و بدترین 1٪ موارد نادر.

چک‌لیست راستی‌آزمایی ادعاها

پرسش و پاسخ
کدام بنچ‌مارک و بخش؟
شکاف میان Verified و Pro بسیار است. عدد به‌دست‌آمده از بخش نادرست فاقد ارزش است.
بررسی آلودگی داده‌ها؟
آیا بنچ‌مارک پس از تاریخ قطع آموزش منتشر شده است؟ اگر نه، با احتیاط برخورد کنید.
کدام خط مبنا؟
تک‌LLM، تصادفی و کارهای قبلی چندایج smash؛ نه یک نسخه‌ی تنظیم‌نشده از همان سیستم.
معناداری آماری؟
تعداد N آزمون، p-value و یک بازه‌ی اطمینان. تک‌اجراها گمراه‌کننده‌اند.
هزینه شفاف است؟
توکن‌ها به ازای هر وظیفه و زمان واقعی. مقادیر P50/P75/P95 را گزارش کنید، نه فقط یک عدد.
مستندات قابل‌مقایسه؟
یکسان بودن SHA-256 مجموعه‌داده، SHA-256 پیکربندی مدل و بودجه‌ی فراخوانی.
تلاش مجدد در پاسخ غلط؟
خیر. تلاش‌های مجدد در صورت خطا هرگز نباید پاسخ مورد انتظار را وارسی کنند.