بهبود هوش مصنوعی در حل مشکلات در مسابقات کدنویسی

بهبود هوش مصنوعی در حل مشکلات در مسابقات کدنویسی

مصاحبه توانایی‌های مدل‌های زبان بزرگ تجاری برای حل مشکلات برنامه‌نویسی رقابتی را می‌توان با هدایت دقیق فرآیندهای آن از طریق مهندسی سریع هوشمندانه به طور قابل توجهی افزایش داد.

برای نشان دادن این موضوع، Codium AI مستقر در اسرائیل، AlphaCodium و منتشر شد نرم افزار در GitHub این ماه. AlphaCodium به خودی خود یک مدل زبان بزرگ نیست. در عوض، این روشی است که توانایی حل مسئله ابزارهای مولد هوش مصنوعی مانند GPT-4 را با استفاده از چیزی که ایتامار فریدمن، مدیر اجرایی آن «مهندسی جریان» می‌نامد، بهبود می‌بخشد.

ابتدا یک سوال برنامه نویسی به مدل زبان بزرگ زیرین داده می شود و از آن خواسته می شود تا مشکل را توصیف و خلاصه کند. سپس آن اطلاعات راهنمایی می کند که چگونه باید شروع به حل مشکل کند. AlphaCodium چیزهایی را تعریف می کند، مانند ورودی ها و خروجی ها در هنگام ارائه راه حل. همه اینها به زبان طبیعی مشخص شده است.

سپس مدل شروع به تولید کدی می‌کند که با مشخصاتی که توضیح داده شد، همسو می‌شود. مسابقات برنامه نویسی که از مدعیان درخواست می کنند تا برای مشخصات کدنویسی کنند، معمولاً آزمایش هایی را ارائه می دهند که نشان می دهد یک اسکریپت باید چه خروجی برای یک ورودی داده شود. AlphaCodium تعداد بیشتری از این موارد تست را تولید می کند و سپس با راه حل های ممکن اجرا می شود تا بررسی کند که آیا کد مطابق انتظار کار می کند یا خیر.

اگر نتواند با هیچ یک از خروجی های تعریف شده در هر یک از تست ها مطابقت داشته باشد، مدل راه حل های مختلفی تولید می کند تا زمانی که تمام تست ها را با موفقیت پشت سر بگذارند یا شکست بخورند. هنگامی که کد آن کامپایل نمی شود یا اشتباه است، ممکن است خطا ایجاد شود.

می توانید مراحل مختلف فرآیند مهندسی جریان را در نمودار زیر مشاهده کنید. این تا حد زیادی به یک مرحله پیش پردازش تقسیم می شود، جایی که سیستم مشکل را به زبان طبیعی تجزیه و تحلیل می کند، و یک مرحله تکرار کد، که در آن راه حل های ممکن را در برابر تست های عمومی و تولید شده توسط هوش مصنوعی اجرا می کند.

آلفاکودیوم

تمام مراحل گسترده ای که AlphaCodium را به سمت تولید کد برای حل مشکلات هدایت می کند

فریدمن گفت: «ما مشکل را نمی‌گیریم و به سراغ مدل می‌رویم و به آن می‌گوییم: «هی، لطفا راه‌حل نهایی را ایجاد کنید». ثبت نام. ما از مدل می‌خواهیم که لطفاً این مشکل را در نقاط گلوله دوباره تعریف کند.» ساده کردن آن و تقسیم کردن چیزها به تکه‌ها، تولید کد بعدی برای بخش‌های مختلف الگوریتم را برای مدل آسان‌تر می‌کند.

اساساً، مهندسی جریان روشی است که فرآیند حل مسئله مدل را با تقسیم آن به مراحل کاملاً تعریف شده هدایت می کند. به ما گفته می‌شود که «کد تولید شده را به توابع فرعی کوچک، با نام‌ها و عملکردهای معنی‌دار تقسیم کند»، منجر به باگ‌های کمتری می‌شود و تست و رفع کد را آسان‌تر می‌کند.

فریدمن افزود: «ما اساساً 95 درصد از زمان خود را صرف مهندسی جریان کردیم و فقط 5 درصد را در مهندسی سریع صرف کردیم و دستورات را برای هر [مرحله] تغییر ندادیم».

مهندسان شرکت Codium عملکرد مدل خود را بر روی صدها مشکل مورد استفاده در تأیید و تست بخش‌های مجموعه داده CodeForces که دو سال پیش توسط Google DeepMind گردآوری شده بود، آزمایش کردند. آنها ادعا می کنند که AlphaCodium در حل مشکلات کدنویسی بهتر از مدل های AlphaCode و AlphaCode2 Google DeepMind بوده است.

در نتایج گزارش شده در یک arXiv مقاله [PDF]، AlphaCodium قادر به پاسخ صحیح به 44 درصد از سؤالات در مقایسه با 24 درصد AlphaCode بود، در حالی که تنها پنج راه حل در مقایسه با ده راه حل انتخابی AlphaCode برای 107 مسئله اعتبار سنجی ایجاد کرد. جالب اینجاست که وقتی نوبت به حل 165 مسئله تست با AlphaCodium 29 درصد در مقایسه با AlphaCode 28 درصد رسید، شکاف کاهش یافت.

AlphaCode ده راه حل امیدوار کننده را از بین ده ها هزار یا صدها هزار اسکریپت ممکن که تولید می کند انتخاب می کند - اجرای آن را از نظر محاسباتی فشرده می کند.

فریدمن گفت: «ما بیشتر روی کل جریان آزمایش تمرکز کردیم. برای [گوگل]، آنها کار زیادی روی نسل انجام دادند. آنها سعی می‌کنند صدها گزینه دیگر را تولید کنند و ما راه‌حل‌های بسیار کمی تولید می‌کنیم، اما آنها را به خوبی آزمایش می‌کنیم تا به بهبود کد کمک کنند.»

او افزود که AlphaCodium کمی بهتر از آخرین مدل AlphaCode2 Google DeepMind است که 10,000 برابر کارآمدتر از AlphaCode قبلی است.

آلفاکودیوم_2

چگونه AlphaCodium از نظر دقت و کارایی با سایر مدل های پیشرفته مقایسه می شود

فریدمن گفت که او مطمئن است که عملکرد AlphaCodium به دلیل نشت داده ها نیست، جایی که مدل زیربنایی روی همان مشکلات آموزش دیده و آزمایش شده است. نسخه GPT-4 که ​​AlphaCodium را تامین می کند تا سپتامبر 2021 بر روی متن خراشیده شده از اینترنت آموزش داده شده بود، در حالی که مشکلاتی که سیستم خود را روی آن آزمایش کرد از مجموعه داده های CodeForces فوق الذکر گرفته شده بود که خیلی دیرتر منتشر شد.

با این حال، یک مقایسه سیب به سیب بهتر که فرآیند مهندسی جریان را ارزیابی می‌کند، به توانایی GPT-4 برای حل همان سوالات با و بدون استفاده از AlphaCodium است. GPT-4 ساده قدیمی تنها می‌توانست به ترتیب به 19 و 12 درصد از مشکلات در مجموعه‌های تست و اعتبارسنجی پاسخ صحیح دهد، در مقایسه با نوع 44 و 29 درصدی نسخه‌های AlphaCodium.

به طور خلاصه، به نظر می‌رسد که اجرای یک خط لوله دقیق که داده‌های اضافی را برای راهنمایی نحوه تولید کد و بهبود فرآیند آزمایش ایجاد می‌کند، می‌تواند مؤثرتر از تلاش برای آموزش یک مدل زبان بزرگ از ابتدا باشد.

Codium اخیرا ابزار جدیدی را برای پشتیبانی از توسعه دهندگان پایتون منتشر کرده است، که اکنون می توانند AlphaCodium را برای حل مستقیم مشکل کدگذاری در IDE خود فراخوانی کنند. میتونی باهاش ​​بازی کنی اینجا. ®

تمبر زمان:

بیشتر از ثبت نام