عملکرد هوش مصنوعی دیپمایند در کدنویسی بهبود مییابد
امروزه تصمیمگیری درمورد اینکه کدام زبان برنامهنویسی را یاد بگیریم، با توجه به میزان زمانبر بودن آن، برای توسعهدهندگان یک سؤال بزرگ است؛ سؤالی که میتواند در آیندهای که مدلهای هوش مصنوعی (AI) در آن با درک شرح یک مشکل و کدنویسی راهکارها فرآیندهای سنگینی را انجام میدهند، بیهوده بهنظر برسد.
به گزارش ZDNet، محققان واحد متمرکز بر هوش مصنوعی گوگل، موسوم به دیپمایند، مدعی شدهاند که سیستم آلفاکد (AlphaCode) این پروژه میتواند راهکارهایی برای حل مسائل کدنویسی ارائه دهد و در مسابقات برنامهنویسی که توسط توسعهدهندگان جدید انجام میشود، به نمره متوسط دست یابد. در این مسابقات، مسئلهای که به زبان طبیعی توصیف شده است، توسط انسان درک و سپس الگوریتم آن بهطور مؤثر کدنویسی میشود.
محققان دیپمایند در مقالهای جدید، جزئیاتی را درباره اینکه آلفاکد چگونه در ۱۰ مسابقه برنامهنویسی که با بیش از ۵۰۰۰ شرکتکننده برگزار شده بود، به میانگین رتبهبندی ۵۴٫۴ درصد از شرکتکنندگان برتر دست یافته است، منتشر کردند. این مسابقات روی پلتفرم مسابقه کدفورسس برگزار شد.
دیپمایند ادعا میکند که آلفاکد اولین سیستم تولید کد مبتنیبر هوش مصنوعی است که در سطح مسابقات کد برای توسعهدهندگان انسانی رقابت میکند. این تحقیق میتواند بهرهوری برنامهنویس را بهبود داده و ممکن است به افرادی که در این زمینه تخصصی ندارند کمک کند تا بدون نیاز به دانستن نحوه نوشتن کد، راهکاری برای حل مسائل ارائه دهند.
شرکتکنندگان انسانی و آلفاکد باید شرح یک چالش یا معما را تجزیهوتحلیل کرده و بهسرعت برنامهای برای حل آن چالش بنویسند. اینکار از آموزش مبتنیبر مدل با استفاده از دادههای گیتهاب برای حل یک چالش ساده کدنویسی، دشوارتر است.
آلفاکد مثل انسانها به درک توصیف زبان طبیعی، جزئیات روایت پسزمینه و توضیح راهکار موردنظر ازلحاظ ورودی و خروجی نیاز دارد.
آلفاکد برای حل این مشکل، باید الگوریتمی ایجاد و سپس آن الگوریتم را بهطور مؤثر پیادهسازی کند. آلفاکد همچنین باید بهطور بالقوه برای غلبهبر این محدودیتها، زبان برنامهنویسی سریعتری مثل C++ را انتخاب کند.
قبل از آموزش، مجموعه دادههای آلفاکد شامل ۷۱۵ گیگابایت کد از فایلهای موجود در مخازن گیتهاب بوده است که به زبانهای جاوا، گو، سیشارپ، سی پلاسپلاس، Rust، روبی، پیاچپی، پایتون، Lua، جاوا اسکریپت/تایپاسکریپت و Scala نوشته شدهاند. این تیم، مدل را با استفاده از مجموعه دادههایی از مشکلات برنامهنویسی رقابتی که از کدفورسز (Codeforces) و مجموعه دادههای مشابه جدا شده بودند، بهدقت تنظیم کردند.
دیپمایند با ترکیب مدلهای ترانسفورماتور در مقیاس بزرگ، به تقویت عملکرد آلفاکد کمک کرده است؛ مانند GPT-3 OpenAI و مدل زبان BERT گوگل. دیپمایند از مدلهای زبان مبتنیبر ترانسفورماتور برای تولید کد استفاده کرد و سپس خروجی را به مجموعه کوچکی از برنامههای امیدوارکننده که برای ارزیابی ارسال شدهبودند، فیلتر کرد.
تیم آلفاکد دیپمایند در یک پست وبلاگی توضیح داد:
در زمان ارزیابی، ما برای هر مسئله تعداد زیادی برنامه به زبانهای سی پلاسپلاس و پایتون ایجاد میکنیم. سپس آن راهکارها را فیلتر و دستهبندی کرده و مجددا برای ارزیابی خارجی به مجموعه کوچکی از ۱۰ برنامه محدود کرده و رتبهبندی میکنیم. این سیستم خودکار در اشکالزدایی، کامپایل، گذراندن تستها و درنهایت ارائه راهکار، جایگزین فرایند آزمون و خطای رقبا میشود.
دیپمایند نشان میدهد که آلفاکد چگونه راهکاری برای حل یک مسئله ارائه میدهد. این پروژه چند جنبه منفی بالقوه را درمورد آنچه که سعی دارد به آن دست یابد، درنظر میگیرد. بهعنوان مثال، مدلها میتوانند کدهایی با نقاط ضعف قابل بهرهبرداری ازجمله آسیبپذیریهای غیرعمدی از کدهای قدیمی یا موارد عمدی که توسط عوامل مخرب به مجموعهی آموزشی تزریق میشوند، تولید کنند.
در این زمینه هزینههای زیستمحیطی نیز وجود دارد. آموزش این مدل در مراکز داده گوگل به «صدها روز پتافلاپس» نیاز داشت، اما تولید کد هوش مصنوعی در بلندمدت میتواند به تولید سیستمهایی منجر شود که میتوانند خود را بهصورت بازگشتی بهبود داده و بهسرعت به سیستمهای پیشرفتهتر و بهتر تبدیل شوند.
این خطر وجود دارد که اتوماسیون، تقاضا را برای توسعهدهندگان کاهش دهد اما دیپمایند به محدودیتهای ابزار تکمیل کد امروزی اشاره میکند که بهرهوری برنامهنویسی را تاحد زیادی بهبود میبخشد. بااینحال پروژه آلفاکد فعلا به پیشنهادهای تکخطی، زبانهای خاص یا کدهای کوتاه محدود میشود.
دیپمایند براین نکته تأکید دارد که کار این پروژه بههیچوجه برای برنامهنویسان انسانی تهدید محسوب نمیشود، اما سیستمهایش میتوانند قابلیتهای حل مسئله را برای کمک به انسانها توسعه دهند.
محققان دیپمایند میگویند:
کاوش ما در زمینهی تولید کد، فضای گستردهای را برای پیشرفت باقی خواهد گذاشت و به ایدههای هیجانانگیزتری اشاره دارد که میتواند به برنامهنویسان کمک کند تا بهرهوری خود را بهبود بخشند و زمینه را برای افرادی که درحالحاضر کدنویسی نمیکنند، فراهم سازد.
نظرات