اندازهگیری شلختگی کدهایی که هوش مصنوعی مینویسه
خلاصهٔ کاملتر
نویسندهی این مطلب که پیشزمینهی فیزیک داره و الان تو شرکت Earendil مسئول سنجش شلختگی کده، میگه مدلهای زبانی این روزا تقریباً کد بدون باگ تولید میکنن، چون کد هم قابل مقیاسگذاریه و هم راحت با تستهای خودکار قابل بررسیه. ولی درست بودن کد به معنی خوب بودنش نیست؛ خیلی از پروژههای «وایبکد شده» (یعنی نوشتهشده با هدایت زبانی به هوش مصنوعی بدون بازبینی دقیق) با هر فیچر جدید حجم خطهای کدشون منفجر میشه و دیگه هیچ آدمی نمیتونه باهاش همراه بمونه.
نویسنده روشهای رایج سنجش کیفیت کد رو نقد میکنه. مثلاً «هوش مصنوعی بهعنوان داور» که ازش خواسته میشه به کد نمره بده، تقریباً هیچ اعتباری نداره؛ حتی وقتی دو راهحل A و B رو با هم مقایسه میکنه، فقط با عوض کردن اسم راهحلها ترجیحش عوض میشه. داوری انسانی دقیقتره ولی برای بنچمارک کردن مدلهای زیاد اصلاً مقیاسپذیر نیست. حتی شمردن سادهی تغییر خطوط کد هم یه معیار غیرمنتظره خوبه، با این طنز که اگه شرکتها شروع کنن به بهینه کردن دقیقاً برای همین عدد، دیگه معنایی نداره.
برای همین نویسنده دو معیار از پژوهش SlopCodeBench معرفی میکنه. Verbosity نسبت خطهای تکراری یا اضافه (که با ابزاری مثل AST-Grep پیدا میشن) به کل خطهای کده. Erosion هم نشون میده چقدر از «وزن» یه پروژه تو چند تابع بزرگ و پیچیده (با پیچیدگی سیکلوماتیک بالای ۱۰) متمرکز شده. طبق دادههاش، ریپوهای انسانی معمولاً Verbosity حدود ۰.۱۵ و Erosion حدود ۰.۳۱ دارن، در حالی که کد تولیدشده با ایجنتها Verbosity حدود ۰.۳۳ و Erosion حدود ۰.۶۸ داره، یعنی تقریباً دو برابر شلختهتره.
نکتهی جالبتر اینه که خود ایجنتها هم نمیتونن این شلختگی رو جمع کنن. بنچمارک SlopCodeBench برخلاف بنچمارکهای معمول، به مدل یهجا همهی دستورات رو نمیده؛ در عوض تو چند مرحله دستور و تست میده و بین مرحلهها حافظهی مدل رو پاک میکنه، دقیقاً شبیه کاری که یه توسعهدهندهی واقعی با ایجنت انجام میده. تو این حالت، حتی پیشرفتهترین مدلها تو تست سختگیرانهای که باید تو همهی مراحل تستها رو پاس کنن، صفر درصد موفق شدن، چون تصمیمهای بد کد کمکم روی هم انباشته میشه.
نکات کلیدی:
- دو معیار جدید Verbosity و Erosion برای سنجش عددی شلختگی کد معرفی شدن
- کد نوشتهشده با ایجنتهای هوش مصنوعی بهطور میانگین حدود دو برابر ریپوهای انسانی شلختهتره (Verbosity ۰.۳۳ در برابر ۰.۱۵)
- روش «هوش مصنوعی بهعنوان داور» با تغییر اسم راهحلها هم عوض میشه و قابل اعتماد نیست
- تو بنچمارک چندمرحلهای SlopCodeBench حتی مدلهای پیشرفته با تست سختگیرانه صفر درصد موفقیت کامل داشتن
- سادهترین معیار، یعنی تغییر تعداد خطوط کد، هنوز بهشکل غیرمنتظرهای مؤثره




