آیا مدل هوش مصنوعی شما واقعاً کدنویس خوبی است؟
با پیشرفت خیرهکننده مدلهای زبان بزرگ (LLM) در زمینه کدنویسی، معیارهای ارزیابی سنتی به تدریج کارایی خود را از دست میدهند. چالش اینجا است که با وجود امتیازات مشابه و بالای بسیاری از مدلها در این معیارها، انتخاب بهترین گزینه برای پروژههای واقعی توسعه نرمافزار و نیازهای سازمانی همچنان دشوار است.
در همین راستا، مقاله جدیدی از «دانشگاه Yale» و «دانشگاه Tsinghua»، روشی نوین را برای سنجش توانایی مدلها در حل مسائل «تولید کد خود-فراخوانی» (Self-invoking code) ارائه میدهد. این نوع مسائل نیازمند ترکیبی از استدلال، تولید کد و استفاده مجدد از کدهای موجود در فرآیند حل مسئله هستند؛ مهارتی که شباهت بسیاری به سناریوهای واقعی برنامهنویسی دارد و درک عمیقتری از تواناییهای واقعی مدلهای LLM به ما میدهد.
«تولید کد خود-فراخوانی» چیست؟
دو معیار محبوب برای ارزیابی توانایی کدنویسی مدلهای زبان بزرگ، «HumanEval» و «MBPP» (Mostly Basic Python Problems) هستند. این معیارها مجموعهدادههایی از مسائل ساده هستند که از مدل میخواهند کدی برای یک وظیفه مشخص بنویسد.
اما این آزمونها تنها بخشی از چالشهای دنیای واقعی را پوشش میدهند. در عمل، توسعهدهندگان نرمافزار فقط کد جدید نمینویسند؛ بلکه باید کدهای موجود را درک کرده و از آنها استفاده کنند. آنها همچنین برای حل مسائل پیچیده، قطعات کد قابل استفاده مجدد ایجاد میکنند.
محققان مینویسند: «توانایی درک و سپس استفاده از کد تولیدشده توسط خود مدل، یا به عبارت دیگر «تولید کد خود-فراخوانی»، نقشی کلیدی در بهکارگیری قابلیتهای استدلالی مدلهای زبان بزرگ برای تولید کد ایفا میکند؛ چیزی که معیارهای فعلی قادر به ارزیابی آن نیستند.»
برای آزمایش این توانایی، محققان دو معیار جدید به نامهای «HumanEval Pro» و «MBPP Pro» ایجاد کردند. هر مسئله در این معیارهای جدید، بر اساس یک مسئله موجود در مجموعه داده اصلی ساخته شده است، اما یک لایه پیچیدگی به آن اضافه میکند.
- مثال ساده: فرض کنید مسئله اصلی نوشتن یک تابع برای جایگزینی تمام نمونههای یک کاراکتر خاص در یک رشته با کاراکتری جدید باشد.
- مثال خود-فراخوانی: مسئله گسترشیافته این خواهد بود که تابعی بنویسید که نمونههای چندین کاراکتر را در یک رشته با جایگزینهای مشخصشده تغییر دهد. این کار نیازمند آن است که مدل یک تابع جدید بنویسد که تابع سادهتر قبلی را که خود تولید کرده بود، فراخوانی کند.
محققان تاکید میکنند: «این ارزیابی، بینش عمیقتری درباره قابلیتهای برنامهنویسی مدلهای زبان بزرگ ارائه میدهد و فراتر از محدوده تولید کد برای مسائل تکمرحلهای میرود.»
نتایج شگفتانگیز: حتی برترین مدلها نیز با چالش مواجهاند
محققان، معیارهای «HumanEval Pro» و «MBPP Pro» را روی بیش از ۲۰ مدل متنباز و خصوصی از جمله «GPT-4o»، «OpenAI o1-mini»، «Claude 3.5 Sonnet» و سری مدلهای «Qwen»، «DeepSeek» و «Codestral» آزمایش کردند.
یافتههای آنها تفاوت قابل توجهی را میان عملکرد مدلها در معیارهای سنتی و وظایف «خود-فراخوانی» نشان داد. محققان مینویسند: «در حالی که مدلهای زبان بزرگ پیشرفته در تولید قطعات کد منفرد عالی عمل میکنند، اغلب در استفاده مؤثر از کد تولیدشده توسط خودشان برای حل مسائل پیچیدهتر با مشکل مواجه میشوند.»
برای مثال، مدل «o1-mini» در معیار «HumanEval» به امتیاز ۹۶.۲٪ دست مییابد، اما عملکرد آن در «HumanEval Pro» به ۷۶.۲٪ کاهش پیدا میکند.
یافته جالب دیگر این است که اگرچه تنظیم دقیق مبتنی بر دستورالعمل (instruction fine-tuning) بهبودهای چشمگیری در وظایف کدنویسی ساده ایجاد میکند، اما تأثیر آن در «تولید کد خود-فراخوانی» بسیار کمتر است. این موضوع نشان میدهد که باید در نحوه آموزش مدلهای پایه برای وظایف پیچیده کدنویسی و استدلال بازنگری کنیم.
جایگاه معیارهای جدید در دنیای ارزیابی مدلها
این خانواده جدید از معیارها، در زمانی مطرح میشود که معیارهای قدیمی به سرعت توسط مدلهای پیشرفته فتح شدهاند. در عین حال، معیارهای بسیار پیچیدهتری مانند «SWE-Bench» وجود دارند که توانایی مدلها را در وظایف مهندسی نرمافزار از ابتدا تا انتها ارزیابی میکنند. «SWE-Bench» یک معیار بسیار دشوار است و حتی پیشرفتهترین مدلها نیز در آن عملکرد متوسطی دارند.
یک یافته تعجبآور: «مدل «OpenAI o1» که بهطور خاص برای استدلال طراحی شده، در آزمون «SWE-Bench Verified» تنها امتیاز ۳۰٪ را کسب کرد که بسیار پایینتر از ادعای ۴۸.۹٪ خود شرکت بود. جالبتر اینکه، مدل «Claude» در همان چارچوب به امتیاز ۵۳٪ دست یافت. این موضوع تردیدهایی جدی را درباره «استدلال پیشرفته» مدل «o1» مطرح کرده است.»
معیارهای «تولید کد خود-فراخوانی» جایی بین معیارهای ساده و آزمونهای پیچیدهای مانند «SWE-Bench» قرار میگیرند. این روش به ارزیابی یک نوع خاص از توانایی استدلال، یعنی استفاده از کدهای موجود برای حل مسائل پیچیدهتر، کمک میکند.
چشمانداز آینده: به سوی مدلهایی با توانایی استدلال واقعی
معیارهای «تولید کد خود-فراخوانی» میتوانند به عنوان یک شاخص عملی برای سنجش کارایی مدلهای زبان بزرگ در محیطهای واقعی عمل کنند؛ جایی که برنامهنویسان انسانی کنترل را در دست دارند و دستیاران هوش مصنوعی به آنها در انجام وظایف خاص کمک میکنند.
محققان در پایان مینویسند: «معیارهای «HumanEval Pro» و «MBPP Pro» به عنوان ابزارهای ارزیابی ارزشمندی برای حوزه کدنویسی مطرح شدهاند و میتوانند با روشن کردن نقاط ضعف فعلی مدلها و تشویق به نوآوری در روشهای آموزش، الهامبخش توسعه نسل آینده مدلهای زبان بزرگ باشند.»