چرا عوامل کدنویسی هوش مصنوعی شکست میخورند: شکاف حیاتی میان فایلها و خطوط
در حالی که عوامل کدنویسی هوش مصنوعی بهطور فزایندهای در رفع باگهای نرمافزاری توانمند شدهاند، مطالعه جدیدی نشان میدهد که آنها از یک مشکل بزرگ «مکانیابی» (localization) رنج میبرند. آنها میتوانند در یک پایگاه کد عظیم به فایل صحیح هدایت شوند، اما اغلب در شناسایی خطوط کد خاصی که برای اعمال اصلاحات لازم است، شکست میخورند.
معرفی SWE-Explore: فراتر رفتن از نرخهای تعمیر
از نظر تاریخی، اثربخشی عوامل کدنویسی هوش مصنوعی با یک معیار واحد و دوگانه سنجیده شده است: آیا عامل باگ را رفع کرد یا خیر؟ این رویکرد، «چراییِ» پشت یک شکست را نادیده میگیرد. یک تعمیر ناموفق میتواند به این معنا باشد که عامل یک وصله (patch) بد نوشته است، یا اینکه عامل اصلاً به منطق مربوطه نگاه نکرده است.
برای رفع این نقطه کور، یک تیم تحقیقاتی بینالمللی، شامل دانشمندانی از دانشگاه شانگهای جیائو تونگ، SWE-Explore را توسعه دادند. برخلاف بنچمارکهای سنتی، SWE-Explore مرحله جستجوی بالادستی (upstream search) را مجزا میکند. این ابزار توانایی یک عامل را در دریافت شرح باگ و بازگرداندن فهرستی رتبهبندیشده از بخشهای کد خاصی که واقعاً با مشکل مرتبط هستند، ارزیابی میکند. این مجموعه داده گسترده است و از ۸۴۸ وظیفه در میان ۲۰۳ پروژه متنباز و ده زبان برنامهنویسی، با تمرکز اصلی بر Python (۵۴۷ وظیفه)، بهره میبرد.
شکاف دقت: موفقیت در سطح فایل در مقابل شکست در سطح خط
چشمگیرترین یافته این مطالعه، تفاوت فاحش بین دقت در سطح فایل و دقت در سطح خط است. هنگامی که این عوامل در برابر عوامل همهمنظوره مانند Claude Code, Codex, and OpenHands آزمایش شدند، نتایج گویای واقعیت بود:
- دقت در سطح فایل: عوامل عملکرد خوبی دارند و با موفقیت فایلهای منبع صحیح را شناسایی کرده و آنها را در رتبههای بالا قرار میدهند.
- دقت در سطح خط: عملکرد فرو میپاشد. عوامل کدنویسی عمومی تنها ۱۴٪ تا ۱۹٪ از خطوط کد واقعی را که برای اعمال اصلاحات اهمیت داشتند، پوشش دادند.
جالب اینجاست که صرفاً ارتقای مدل زبانی بزرگ (LLM) زیربنایی، این مشکل را حل نمیکند. چه از مدلهای OpenAI، Anthropic، Google، Moonshot یا Zhipu استفاده شود، الگو یکسان باقی میماند: نرخ برخورد (hit rate) بالای فایل، اما پوشش بسیار ضعیف خطوط. این تحقیق خاطرنشان کرد که سیستمهای تخصصی مانند CoSIL با برخورد با کد به عنوان شبکهای از بلوکهای سازنده بههمپیوسته، از عوامل عمومی عملکرد بهتری داشتند؛ این امر نشان میدهد که تغییرات معماری مهمتر از قدرت خام مدل هستند.
اثر آستانه: چرا «خواندن بیشتر» اهمیت دارد
از طریق آزمایشهای حذف کنترلشده (ablation)، پژوهشگران یک «اثر آستانهای» در رابطه با زمینه (context) کشف کردند. آنها با تغییر میزان کد اصلی ارائهشده به مدل (از ۰٪ تا ۱۰۰٪)، دریافتند که بهبود اصلاحات بهصورت خطی نیست.
برای وظایف سادهتر، یک نقطه عطف مشخص وجود دارد: اگر یک عامل کمتر از ۵۰٪ از نواحی اصلی مورد نیاز را مشاهده کند، نرخ موفقیت اصلاح نزدیک به صفر باقی میماند. جهش قابلتوجهی در اصلاحات موفق تنها زمانی رخ میدهد که عامل به بین ۵۰٪ تا ۷۵٪ از زمینه مورد نیاز دسترسی داشته باشد. نکته حیاتی این است که مطالعه نشان داد ارائه کدهای «نویز» یا نامرتبط، به اندازه از دست دادن خطوط حیاتی به عملکرد آسیب نمیرساند. نتیجهگیری برای توسعهدهندگان روشن است: در عصر عوامل هوش مصنوعی، بهتر است زمینه بیشتری ارائه شود تا اینکه ریسک فیلتر کردن جزئیات ضروری وجود داشته باشد.
نکات کلیدی
- مکانیابی، گلوگاه است: عوامل هوش مصنوعی در یافتن فایل صحیح مهارت دارند، اما برای تعیین دقیق خطوط خاص کد که برای اصلاح لازم است، با دشواری زیادی روبرو هستند.
- مقیاسپذیری مدل یک راهکار جادویی نیست: ارتقا به LLMهای قدرتمندتر، شکاف دقت در سطح خط را برطرف نمیکند؛ رویکردهای معماری تخصصی مانند CoSIL مؤثرتر هستند.
- قانون ۵۰ درصدی زمینه: موفقیت در اصلاح توسط هوش مصنوعی از یک الگوی آستانهای پیروی میکند؛ به این معنا که پیش از محتمل شدن اصلاحات موفق، حداقل ۵۰ تا ۷۵ درصد از زمینه کد مرتبط باید قابل مشاهده باشد.