اشتراک
تصویری از معیار SWE-PolyBench
تصویری از معیار SWE-PolyBench
هوش مصنوعی فناوری برنامه نویسی

AWS، SWE-PolyBench را معرفی می‌کند: یک معیار چندزبانه متن‌باز جدید برای ارزیابی عوامل کدنویسی هوش مصنوعی

در یک نگاه چکیدهٔ خودکار موتور هوش مصنوعی افق آبی

AWS AI Labs ابزار جدیدی به نام SWE-PolyBench معرفی کرده است که معیاری چندزبانه و متن‌باز برای ارزیابی عوامل کدنویسی هوش مصنوعی ارائه می‌دهد. این معیار با هدف ارزیابی کارآیی برنامه‌های هوش مصنوعی که توانایی تولید، اصلاح و درک کد را دارند، طراحی شده است. برخلاف معیارهای پیشین که بیشتر به زبان پایتون محدود بودند، SWE-PolyBench چهار زبان برنامه‌نویسی Java، JavaScript، TypeScript و Python را شامل می‌شود و از ۲۱ مخزن GitHub با ۲،۱۱۰ کار عملیاتی همچون رفع اشکال و بازسازی کد بهره می‌برد. این معیار درخواست‌های واقعی pull را شامل می‌شود و ارزیابی دقیقی از عملکرد عوامل کدنویسی ارائه می‌دهد. برای ارزیابی، SWE-PolyBench از یک خط لوله اجرای ارزیابی استفاده می‌کند که شامل آزمون‌های fail-to-pass (F2P) و pass-to-pass (P2P) است. ابزار دیگری به نام SWE-PolyBench500 ارائه شده که برای آزمایش سریعتر با حفظ تنوع زبان‌ها و مشاغل طراحی شده است. بررسی‌ها نشان می‌دهد که عملکرد عوامل کدنویسی توسط زبان و نوع وظایف تحت تاثیر قرار می‌گیرد. برای مثال، بهتر شدن عملکرد در Python و کاهش عملکرد در TypeScript مشاهده شده است. این یافته‌ها نشان می‌دهد که قرار گرفتن در معرض آموزش پیشین و آشنایی با نحو برنامه‌نویسی می‌تواند بر عملکرد مدل‌ها تاثیر بگذارد. در نهایت، SWE-PolyBench با پرداختن به محدودیت‌های معیارهای قبلی، زمینه‌ای برای تحقیقات آینده در بهبود قابلیت‌های تعمیم و استحکام عوامل کدنویسی هوش مصنوعی فراهم می‌کند.

پیشرفت‌های اخیر در مدل‌های زبانی بزرگ (LLM) توسعه عوامل کدنویسی مبتنی بر هوش مصنوعی را ممکن ساخته است که می‌توانند کد نرم‌افزاری را تولید، اصلاح و درک کنند. با این حال، ارزیابی این سیستم‌ها محدود باقی مانده و اغلب به معیارهای مصنوعی یا با دامنه محدود، عمدتاً در پایتون محدود می‌شود. این معیارها به ندرت تنوع ساختاری و معنایی پایگاه‌های کد دنیای واقعی را منعکس می‌کنند و در نتیجه، بسیاری از عوامل به جای نشان دادن قابلیت‌های قوی و قابل انتقال، الگوهای خاص معیار را بیش از حد یاد می‌گیرند.

AWS، SWE-PolyBench را معرفی می‌کند: یک چارچوب ارزیابی جامع‌تر

برای رفع این چالش‌ها، AWS AI Labs،

SWE-PolyBench
را معرفی کرده است، یک معیار چندزبانه در سطح مخزن که برای ارزیابی مبتنی بر اجرای عوامل کدنویسی هوش مصنوعی طراحی شده است. این معیار شامل ۲۱ مخزن GitHub در چهار زبان برنامه‌نویسی پرکاربرد—Java، JavaScript، TypeScript و Python—شامل ۲،۱۱۰ کار است که شامل رفع اشکال، پیاده‌سازی ویژگی‌ها و بازسازی کد است.

برخلاف معیارهای قبلی، SWE-PolyBench شامل درخواست‌های pull واقعی (PR) است که مسائل واقعی را بسته و شامل موارد آزمایشی مرتبط است و امکان ارزیابی قابل تأیید را فراهم می‌کند. یک زیرمجموعه کوچکتر و طبقه‌بندی‌شده—

SWE-PolyBench500
—نیز برای پشتیبانی از آزمایش سریعتر و در عین حال حفظ تنوع کار و زبان منتشر شده است.

ساختار فنی و معیارهای ارزیابی

SWE-PolyBench یک خط لوله ارزیابی مبتنی بر اجرا را اتخاذ می‌کند. هر کار شامل یک عکس فوری از مخزن و یک بیانیه مسئله است که از یک issue GitHub گرفته شده است. این سیستم پچ ground truth مرتبط را در یک محیط آزمایشی کانتینری که برای اکوسیستم زبان مربوطه پیکربندی شده است (به عنوان مثال، Maven برای Java، npm برای JS/TS و غیره) اعمال می‌کند. سپس معیار نتایج را با استفاده از دو نوع آزمون واحد اندازه‌گیری می‌کند:

fail-to-pass (F2P)
و
pass-to-pass (P2P)
.

برای ارائه ارزیابی دقیق‌تر از عوامل کدنویسی، SWE-PolyBench معیارهای مبتنی بر

Concrete Syntax Tree (CST)
را معرفی می‌کند. این موارد شامل نمرات بازیابی در سطح فایل و سطح گره است که توانایی عامل را در یافتن و اصلاح بخش‌های مرتبط پایگاه کد ارزیابی می‌کند. این معیارها بینش‌هایی فراتر از نتایج باینری pass/fail، به ویژه برای اصلاحات پیچیده و چند فایلی ارائه می‌دهند.

ارزیابی تجربی و مشاهدات

سه عامل کدنویسی متن‌باز—

Aider
،
SWE-Agent
و
Agentless
—برای SWE-PolyBench اقتباس شدند. همه از Claude 3.5 Anthropic به عنوان مدل زیربنایی استفاده کردند و برای رسیدگی به الزامات چندزبانه در سطح مخزن معیار اصلاح شدند.

این ارزیابی تفاوت‌های قابل توجهی را در عملکرد بین زبان‌ها و انواع وظایف نشان داد. به عنوان مثال، عوامل در وظایف Python بهترین عملکرد را داشتند (تا 24.1٪ نرخ قبولی) اما با TypeScript مشکل داشتند (به اندازه 4.7٪). Java، با وجود پیچیدگی بیشتر از نظر تغییرات متوسط گره، نرخ موفقیت بالاتری نسبت به TypeScript به دست آورد، که نشان می‌دهد که قرار گرفتن در معرض پیش آموزش و آشنایی با نحو نقش مهمی در عملکرد مدل ایفا می‌کند.

عملکرد در زبان‌های مختلف
عملکرد در زبان‌های مختلف

عملکرد همچنین با پیچیدگی کار متفاوت بود. وظایف محدود به تغییرات تک تابعی یا تک کلاسی، نرخ موفقیت بالاتری را به همراه داشت (تا 40٪)، در حالی که وظایف نیازمند تغییرات ترکیبی یا چند فایلی کاهش قابل توجهی را نشان دادند. جالب اینجاست که دقت و یادآوری بالای بازیابی - به ویژه برای شناسایی گره فایل و CST - همیشه به نرخ قبولی بالاتر تبدیل نمی‌شود، که نشان می‌دهد محلی‌سازی کد برای حل مسئله ضروری است اما کافی نیست.

عملکرد در مقابل پیچیدگی کار
عملکرد در مقابل پیچیدگی کار

نتیجه‌گیری: به سوی ارزیابی قوی عوامل کدنویسی هوش مصنوعی

SWE-PolyBench یک چارچوب ارزیابی قوی و دقیق برای عوامل کدنویسی ارائه می‌دهد و محدودیت‌های کلیدی در معیارهای موجود را برطرف می‌کند. با پشتیبانی از چندین زبان برنامه‌نویسی، پوشش طیف گسترده‌تری از انواع وظایف و گنجاندن معیارهای آگاه از نحو، یک ارزیابی نماینده‌تر از کاربرد دنیای واقعی یک عامل ارائه می‌دهد.

این معیار نشان می‌دهد که در حالی که عوامل هوش مصنوعی قابلیت‌های امیدوارکننده‌ای از خود نشان می‌دهند، عملکرد آنها در بین زبان‌ها و وظایف ناهمگون باقی می‌ماند. SWE-PolyBench پایه‌ای برای تحقیقات آینده با هدف بهبود قابلیت تعمیم، استحکام و قابلیت‌های استدلال دستیاران کدنویسی هوش مصنوعی فراهم می‌کند.

اشتراک:
این گزارش ترجمه و بازنویسی خبری با موتور هوش مصنوعی افق آبی است و برای خوانندهٔ فارسی‌زبان بازتنظیم شده. منبع اصلی: marktechpost