
هوش مصنوعی هنوز آماده جایگزینی برنامهنویسان انسانی در عیبیابی نیست
تاریخ انتشار:
مقدمه
در چند سال اخیر، هوش مصنوعی در حوزه توسعه نرمافزار بهطور قابل توجهی مورد استفاده قرار گرفته است. از کدنویسی با احساس ("vibe coding") گرفته تا ابزارهایی مانند GitHub Copilot و استارتاپهایی که برنامههای سریع و ابتدایی با کمک مدلهای زبان بزرگ (LLMs) میسازند، هوش مصنوعی بهطور عمیق در این حوزه ادغام شده است.
چالشهای عیبیابی
با این حال، افرادی که ادعا میکنند ما تنها چند ماه با جایگزینی برنامهنویسان توسط عوامل هوش مصنوعی فاصله داریم، باید انتظارات خود را تعدیل کنند. زیرا مدلها در بخش عیبیابی بهاندازه کافی خوب نیستند و عیبیابی بخش عمدهای از زمان یک توسعهدهنده را به خود اختصاص میدهد. این نکته توسط محققان مایکروسافت مطرح شده است که ابزاری جدید به نام debug-gym ساختهاند تا توانایی مدلهای هوش مصنوعی در عیبیابی نرمافزار را آزمایش و بهبود بخشند.
ابزار Debug-gym
Debug-gym که در GitHub در دسترس است و در یک پست وبلاگی توضیح داده شده، محیطی است که به مدلهای هوش مصنوعی اجازه میدهد تا سعی کنند هر مخزن کدی را با دسترسی به ابزارهای عیبیابی که بهطور تاریخی بخشی از این فرآیند نبودهاند، عیبیابی کنند. مایکروسافت دریافت که بدون این رویکرد، مدلها در انجام وظایف عیبیابی بهطور قابل توجهی ضعیف هستند. با این رویکرد، آنها بهتر عمل میکنند اما هنوز هم فاصله زیادی با آنچه که یک توسعهدهنده انسانی با تجربه میتواند انجام دهد دارند.
توضیحات محققان مایکروسافت درباره Debug-gym
محققان مایکروسافت debug-gym را بهصورت زیر توصیف میکنند:
"Debug-gym فضای عمل و مشاهده یک عامل را با بازخورد از استفاده از ابزارها گسترش میدهد و به تعیین نقاط توقف، ناوبری در کد، چاپ مقادیر متغیرها و ایجاد توابع تست اجازه میدهد. عوامل میتوانند با ابزارها تعامل کنند تا کد را بررسی یا در صورت اطمینان، آن را بازنویسی کنند. ما معتقدیم عیبیابی تعاملی با ابزارهای مناسب میتواند به عوامل کدنویسی قدرت دهد تا به وظایف واقعی مهندسی نرمافزار بپردازند و این موضوع مرکزی برای تحقیقات عوامل مبتنی بر LLM است. اصلاحات پیشنهادی توسط یک عامل کدنویسی با قابلیتهای عیبیابی و سپس تأیید شده توسط یک برنامهنویس انسانی، در زمینه مخزن کد مربوطه، اجرای برنامه و مستندات قرار خواهد گرفت، نه اینکه تنها به حدسهایی که بر اساس دادههای آموزشی قبلی دیده شدهاند، تکیه کند."
نتایج آزمایشات با استفاده از Debug-gym
این رویکرد بهمراتب موفقتر از تکیه بر مدلها بهصورت معمولی است، اما وقتی بهترین حالت شما نرخ موفقیت ۴۸.۴ درصد است، هنوز برای زمان واقعی آماده نیستید. محدودیتها احتمالاً به این دلیل است که مدلها بهطور کامل نمیدانند چگونه بهترین استفاده را از ابزارها داشته باشند و همچنین دادههای آموزشی فعلی آنها برای این مورد خاص مناسب نیست.
در پست وبلاگی آمده است: "ما معتقدیم این به دلیل کمبود دادههایی است که رفتار تصمیمگیری دنبالهای (مانند ردیابیهای عیبیابی) را در مجموعه دادههای آموزشی فعلی LLM نمایندگی میکند. با این حال، بهبود قابل توجه عملکرد... تأیید میکند که این یک جهت تحقیقاتی امیدوارکننده است."
گامهای بعدی در تحقیقات
این گزارش اولیه تنها آغاز تلاشهاست. گام بعدی "تنظیم دقیق یک مدل جستجوی اطلاعات تخصصی در جمعآوری اطلاعات لازم برای حل باگها" است. اگر مدل بزرگ باشد، بهترین اقدام برای صرفهجویی در هزینههای استنتاج ممکن است "ساخت یک مدل جستجوی اطلاعات کوچکتر باشد که میتواند اطلاعات مربوطه را به مدل بزرگتر ارائه دهد."
نتیجهگیری
این اولین باری نیست که نتایجی را مشاهده میکنیم که نشان میدهد برخی از ایدههای بلندپروازانه درباره جایگزینی مستقیم عوامل هوش مصنوعی بهجای توسعهدهندگان، از واقعیت بسیار دور است. مطالعات متعددی نشان دادهاند که حتی اگر یک ابزار هوش مصنوعی گاهی اوقات یک برنامهای ایجاد کند که به نظر کاربر برای یک وظیفه خاص قابل قبول باشد، مدلها تمایل دارند کدی تولید کنند که پر از باگها و آسیبپذیریهای امنیتی باشد و معمولاً قادر به رفع این مشکلات نیستند.
این یک گام اولیه در مسیر به سمت عوامل کدنویسی هوش مصنوعی است، اما بیشتر محققان توافق دارند که احتمالاً بهترین نتیجه، عاملی است که زمان قابل توجهی از یک توسعهدهنده انسانی را صرفهجویی میکند، نه اینکه بتواند همه کارهایی را که آنها انجام میدهند، انجام دهد.

