برنامهنویسی خودکار این روزا روز به روز داره قویتر و باحالتر میشه. یکی از چیزایی که خیلی روی کار برنامهنویسا تأثیر گذاشته، کد جنریشنه، یعنی همون تولید خودکار کد توسط ماشین. واقعاً خیلی فرق میکنه وقتی یک مدل میتونه با خوندن توضیحات طبیعی (مثلاً به زبان آدمیزاد) خودش دست به کیبورد بشه و برات کد بزنه! این باعث شده کلی از بار برنامهنویسها کمتر بشه و اونایی هم که مبتدین راحتتر وارد این دنیا بشن.
حالا اینجوری هم نیس که همه چی گل و بلبل باشه. مدلای هوش مصنوعیای که بهشون میگن LLM ها — یعنی همون مدلهای زبانی خیلی بزرگ، مثلاً ChatGPT و باردا و اینا — الان واقعاً ترکوندن تو تولید برنامه، ولی هنوز یه سری نقطه ضعف دارن. مثلاً وقتی کار پیچیده میشه یا مدل مجبور میشه مرحله به مرحله فکر کنه (همون Multi-step reasoning یعنی اینکه هوش مصنوعی پشت سر هم چند تا استدلال کنه و نتیجش رو بسازه)، یا باید دغدغه کاربر رو خوب بفهمه، خیلی وقتا گیر میکنه یا کد قوی و بینقصی نمیده. از اون بدتر، اگه کار سختتر باشه معمولاً برنامه آخر سر حتی همه تستکیسها رو هم پاس نمیکنه.
اینجا یه روش جدید اومده به اسم Blueprint2Code که کلی چیز باحال داره. داستانش اینه که اومده کار یه تیم برنامهنویس واقعی رو شبیهسازی کنه، یعنی چی؟ یعنی چهار تا عامل یا به قول خودمون ایجنت (Agent یعنی مدلهایی که مخصوص یه کار هستن و با هم همکاری میکنن) گذاشته که هر کدوم یه وظیفه دارن:
- Previewing Agent: اول میاد کل صورت سوال رو یه نگاه کلی میاندازه، دقت میکنه دقیقاً چی میخوان.
- Blueprint Agent: بعدش مثل یه معمار، نقشه راه حل رو میکشه؛ یعنی به جای اینکه یهو کد بزنه، اول طرح ریزی میکنه که قراره چه مراحل و فانکشنهایی بنویسه.
- Coding Agent: حالا این یکی میاد خودش این نقشه رو به کد واقعی تبدیل میکنه.
- Debugging Agent: آخر سر هم یکی هست که کل برنامه رو اجرا میکنه، خطاها رو در میاره و هی تکرار میکنه تا همه تستکیسها پاس بشن. (یعنی برنامه واقعاً کار کنه نه فقط تئوری!)
کل این فرایند باعث میشه یه چرخه کامل از فهمیدن سوال، برنامهریزی، کدنویسی و رفع اشکاله وجود داشته باشه؛ دقیقاً همون کاری که یه تیم قوی برنامهنویسی انجام میدن.
اما حالا این روش چه فرقی با قدیمیا داره؟ توی مقایسه با مدلای معمولی، این «بلوپرینت۲کد» خیلی بهتر عمل کرده، مخصوصاً تو مسائلی که پیچیدگی بالایی دارن. یه سری آزمایش سنگین هم روش انجام دادن روی مجموعهدادههایی که برای سنجش کیفیت برنامهنویسی با هوش مصنوعی معروفن. مثلاً HumanEval (همون مجموعهای که به مدل تست برنامه واقعی میدن)، MBPP (یعنی مسائل برنامهنویسی ابتدایی)، و نسخههای گسترش یافتهشون مثل HumanEval-ET و MBPP-ET، همینطور APPS که مسابقهیه واسه مسائل برنامهنویسی سخته.
نتایج واقعاً عجیبغریب بوده:
- تو HumanEval تونسته ۹۶.۳٪ از مسائل رو در اولین تلاش درست حل کنه! (pass@1 یعنی همون بار اول جواب درست رو بده)
- رو MBPP هم ۸۸.۴٪ بوده.
- HumanEval-ET رو با ۸۶.۵٪ و MBPP-ET رو با ۵۹.۴٪ زده.
- حتی رو APPS که واقعاً سختتره، به عدد ۲۴.۶٪ رسیده. برای مدلای هوش مصنوعی این عدد خیلی خوبه ها!
اگر دلت میخواد خودت کد این ماجرا رو ببینی، گذاشتنش تو گیتهاب: https://github.com/MKH99918/Blueprint2Code، میتونی بری ور بزنی و از نزدیک ببینی چطور کار میکنه.
در کل، این «بلوپرینت۲کد» داره نشون میده کار تیمی فقط واسه آدما نیست؛ هوش مصنوعیها هم اگه قشنگ کنار هم کار کنن، میتونن کدهای عجیباً خوب و قابل اعتمادی بنویسن.
منبع: +