AlphaCode DeepMind بر کدنویسی غلبه می‌کند و به خوبی هوش داده‌های پلاتوبلاکچین انسان را عمل می‌کند. جستجوی عمودی Ai.

AlphaCode DeepMind کدنویسی را تسخیر می کند و به خوبی انسان ها عمل می کند

راز برنامه نویسی خوب ممکن است نادیده گرفتن همه چیزهایی باشد که در مورد نوشتن کد می دانیم. حداقل برای AI.

به نظر مضحک می رسد، اما هوش مصنوعی کدنویسی جدید DeepMind تقریباً 50 درصد از برنامه نویسان انسانی را در یک رقابت برنامه نویسی بسیار رقابتی شکست داد. در ظاهر، وظایف نسبتاً ساده به نظر می رسند: هر کدنویس با یک مشکل در زبان روزمره مواجه می شود، و شرکت کنندگان باید برنامه ای بنویسند تا کار را در سریع ترین زمان ممکن حل کنند - و امیدواریم که بدون خطا باشد.

اما این یک چالش بزرگ برای کدنویسان هوش مصنوعی است. عامل ها باید ابتدا وظیفه را درک کنند - چیزی که به طور طبیعی برای انسان ها اتفاق می افتد - و سپس کدی برای مشکلات پیچیده ای تولید کنند که حتی بهترین برنامه نویسان انسانی را به چالش می کشد.

برنامه نویسان هوش مصنوعی چیز جدیدی نیستند. در سال 2021، آزمایشگاه تحقیقاتی غیرانتفاعی OpenAI منتشر شد نسخه قدیمی، برنامه ای مسلط به بیش از دوازده زبان برنامه نویسی و تنظیم شده به زبان طبیعی و روزمره. چه چیزی انتشار هوش مصنوعی DeepMind را تنظیم می کند - دوبله آلفا کد- جدا تا حدی چیزی است که به آن نیاز ندارد.

برخلاف کدگذارهای قبلی هوش مصنوعی، AlphaCode نسبتا ساده است. هیچ دانش داخلی در مورد نحو یا ساختار کد رایانه ای ندارد. در عوض، تا حدودی مشابه کودکان نوپا که زبان اول خود را درک می کنند، یاد می گیرد. AlphaCode یک رویکرد "فقط داده" دارد. با مشاهده سطل‌های کد موجود می‌آموزد و در نهایت می‌تواند به طور انعطاف‌پذیری «کلمات» و «عبارات» - در این مورد، تکه‌هایی از کد - را برای حل مشکلات جدید ساختارشکنی و ترکیب کند.

هنگامی که با CodeContest - عذاب نبرد رپ برنامه نویسی رقابتی - به چالش کشیده شد، هوش مصنوعی حدود 30 درصد از مشکلات را حل کرد، در حالی که نیمی از رقبای انسانی را شکست داد. ممکن است میزان موفقیت ناچیز به نظر برسد، اما اینها مشکلات فوق العاده پیچیده ای هستند. برای مثال، کدکس OpenAI در مواجهه با معیارهای مشابه، موفقیت تک رقمی را به دست آورد.

"این بسیار چشمگیر است، عملکردی که آنها می توانند در برخی از مشکلات بسیار چالش برانگیز به دست آورند." گفت: دکتر آرماندو سولار-لزاما در MIT که در این تحقیق شرکت نداشت.

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

شاید مهمتر از آن، AlphaCode راه را برای یک روش جدید برای طراحی کدگذارهای هوش مصنوعی هموار می کند: تجربه گذشته را فراموش کنید و فقط به داده ها گوش دهید.

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

زبان به کد

AlphaCode تنها آخرین تلاش برای استفاده از هوش مصنوعی برای تولید برنامه های بهتر است.

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

هر یک از این پارامترها - مثلاً کاکائو برای تهیه شکلات داغ - در یک برنامه کامپیوتری "متغیر" نامیده می شوند. به زبان ساده، یک برنامه باید متغیرها را تعریف کند - مثلاً برای cacao "c" را تعریف کنیم. سپس «c» را با سایر متغیرها، مانند متغیرهای شیر و شکر، مخلوط می‌کند تا مشکل نهایی را حل کند: یک لیوان بخارپز خوب از شکلات داغ.

قسمت سخت این است که همه اینها را به هوش مصنوعی ترجمه کنید، مخصوصاً وقتی یک درخواست به ظاهر ساده را تایپ می کنید: برای من یک شکلات داغ درست کنید.

بازگشت در 2021، Codex اولین تلاش خود را برای نوشتن کدهای هوش مصنوعی انجام داد. ایده تیم این بود که بر GPT-3 تکیه کنند، برنامه ای که با مهارت خود در تفسیر و تقلید زبان انسان، جهان را غرق در طوفان کرده است. از آن زمان به رشد رسیده است GPT چت، سرگرم کننده و نه چندان بد ربات چت که درگیر مکالمات شگفت انگیزی پیچیده و لذت بخش است.

پس فایده چیست؟ همانند زبان‌ها، کدنویسی همه چیز در مورد سیستمی از متغیرها، نحو و ساختار است. اگر الگوریتم های موجود برای زبان طبیعی کار می کنند، چرا از یک استراتژی مشابه برای نوشتن کد استفاده نمی کنید؟

AI کدگذاری هوش مصنوعی

AlphaCode این رویکرد را در پیش گرفت.

هوش مصنوعی بر روی یک مدل یادگیری ماشینی به نام "مدل زبان بزرگ" ساخته شده است که زیربنای GPT-3 است. جنبه حیاتی در اینجا داده های زیادی است. برای مثال، GPT-3 میلیاردها کلمه از منابع آنلاین مانند کتاب‌های دیجیتال و مقالات ویکی‌پدیا برای شروع «تفسیر» زبان انسانی تغذیه شد. Codex بر روی بیش از 100 گیگابایت داده خراشیده شده از Github، یک کتابخانه نرم‌افزار آنلاین محبوب آموزش داده شد، اما در صورت مواجهه با مشکلات دشوار، باز هم شکست خورد.

AlphaCode "قلب" Codex را به ارث می برد، زیرا به طور مشابه با یک مدل زبان بزرگ عمل می کند. کولتر توضیح داد، اما دو جنبه آن را متمایز می کند.

اولین مورد داده های آموزشی است. علاوه بر آموزش AlphaCode بر روی کد Github، تیم DeepMind یک مجموعه داده سفارشی از CodeContests از دو مجموعه داده قبلی با بیش از 13,500 چالش ایجاد کرد. هر کدام با توضیحی از کار در دست، و راه‌حل‌های بالقوه متعدد در چندین زبان ارائه شد. نتیجه یک کتابخانه عظیم از داده های آموزشی است که متناسب با چالش موجود است.

کولتر می‌گوید: «مسلماً، مهم‌ترین درس برای هر سیستم ML [یادگیری ماشینی] این است که باید بر روی داده‌هایی که مشابه داده‌هایی است که در زمان اجرا می‌بیند، آموزش داده شود.

ترفند دوم قدرت در اعداد است. وقتی یک هوش مصنوعی کد را قطعه قطعه (یا نشانه به نشانه) می نویسد، نوشتن کد نامعتبر یا نادرست آسان است و باعث از کار افتادن برنامه یا خروج نتایج عجیب و غریب می شود. AlphaCode با ایجاد بیش از یک میلیون راه حل بالقوه برای یک مشکل - تعداد زیادی بزرگتر از تلاش های قبلی هوش مصنوعی، با این مشکل مقابله می کند.

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

سیستم به طرز شگفت انگیزی خوب کار کرد. وقتی AlphaCode با مجموعه جدیدی از مشکلات به چالش کشیده می شود، راه حل های بالقوه را در دو زبان محاسباتی Python یا C++ ارائه می دهد و در عین حال راه حل های ظالمانه را حذف می کند. زمانی که هوش مصنوعی در مقابل بیش از 5,000 شرکت‌کننده انسانی قرار گرفت، از 45 درصد برنامه‌نویسان خبره بهتر عمل کرد.

نسل جدیدی از کدنویسان هوش مصنوعی

در حالی که هنوز در سطح انسان نیست، نقطه قوت AlphaCode در نبوغ کامل آن است.

AlphaCode به جای کپی و چسباندن بخش‌های کد آموزشی قبلی، قطعه‌های هوشمندانه‌ای را بدون کپی کردن تکه‌های بزرگ کد یا منطق در «مواد خواندن» خود ارائه کرد. این خلاقیت می تواند به دلیل روش یادگیری مبتنی بر داده باشد.

کولتر گفت: آنچه در AlphaCode وجود ندارد، «هر گونه طراحی معماری در مدل یادگیری ماشینی است که به… تولید کد مربوط می شود». نوشتن کدهای کامپیوتری مانند ساختن یک ساختمان پیچیده است: ساختار بسیار بالایی دارد و برنامه‌هایی نیاز به یک نحو تعریف‌شده با زمینه به وضوح تعبیه‌شده برای ایجاد راه‌حل دارند.

AlphaCode هیچ کدام را انجام نمی دهد. در عوض، کدی شبیه به نحوه تولید متن توسط مدل‌های زبان بزرگ تولید می‌کند، کل برنامه را می‌نویسد و سپس اشتباهات احتمالی را بررسی می‌کند (به عنوان یک نویسنده، این به‌طور عجیبی آشنا به نظر می‌رسد). اینکه چگونه هوش مصنوعی دقیقاً به این امر دست می‌یابد، همچنان مرموز باقی می‌ماند - کارهای درونی این فرآیند در داخل «ذهن» ماشینی هنوز غیرقابل درک آن مدفون است.

این بدان معنا نیست که AlphaCode آماده است تا برنامه نویسی را به عهده بگیرد. گاهی اوقات تصمیمات جدی می گیرد، مانند تولید یک متغیر اما استفاده نکردن از آن. همچنین این خطر وجود دارد که الگوهای کوچک را از تعداد محدودی از نمونه‌ها به خاطر بسپارد - دسته‌ای از گربه‌ها که من را خراش دادند برابر است با همه گربه‌ها بد هستند - و خروجی آن الگوها. کولتر توضیح داد که این می‌تواند آنها را به طوطی‌های تصادفی تبدیل کند که هوش مصنوعی هستند که مشکل را درک نمی‌کنند اما می‌توانند طوطی‌سازی کنند یا راه‌حل‌های احتمالی را «تقلید کورکورانه» کنند.

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

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

کولتر به بهترین شکل بیان کرد: «AlphaCode قالب را ریخت. مجموعه داده ها عمومی هستند. بیایید ببینیم آینده چه خواهد شد.»

تصویر های اعتباری: Deepmind

تمبر زمان:

بیشتر از تکینگی هاب