در منطقه در علم کامپیوتر، شاید هیچ وظیفه اساسی تر از مرتب سازی وجود نداشته باشد. حباب، پشته، ادغام – انتخاب خود را انتخاب کنید. روش‌های مرتب‌سازی مجدد داده‌ها در رایانه تا حد مرگ تئوری‌سازی شده‌اند، به‌عنوان تمرین‌های تمرینی برای میلیون‌ها تازه‌کار عمل می‌کنند و طی دهه‌ها توسط توسعه‌دهندگان خبره بهینه‌سازی شده‌اند. یک تابع sort() را در هر زبان برنامه نویسی تایپ کنید و کدی است که می توانید روی آن تکیه کنید. بهش دست نزن. الان عالی کار میکنه

اما سال گذشته، یک سیستم هوش مصنوعی که توسط مهندسان Deepmind گوگل توسعه یافته بود، به اندازه کافی بهبود یافت تا تفاوت ایجاد کند. این سیستم که Deepmind آن را AlphaDev می نامد، وظیفه ارائه روشی جدید برای مرتب‌سازی توالی‌های کوتاه اعداد در C++، زبان برنامه‌نویسی محبوب را داشت. این به معنای زیر سرپوش گذاشتن و وادار کردن هوش مصنوعی برای ساخت الگوریتم‌های جدید در کد اسمبلی بود – دستورالعمل‌هایی که فاصله بین زبان‌های برنامه‌نویسی مانند C++ و سخت‌افزار رایانه را پر می‌کند. وقتی یک توسعه‌دهنده ++C به رایانه می‌گوید «مرتب‌سازی» کند، این دستورات به کد قابل خواندن توسط ماشین تبدیل می‌شوند که به حافظه و پردازنده رایانه می‌گوید دقیقاً چه کاری انجام دهند: کجا داده‌ها را منتقل کنند و چگونه آن‌ها را تغییر دهند. این جایی است که بیت ها با فلز برخورد می کنند.

آزمایش جواب داد. از آوریل سال گذشته، C++ به لطف مجموعه جدیدی از الگوریتم‌های مرتب‌سازی ایجاد شده توسط هوش مصنوعی، کمی سریع‌تر اجرا می‌شود. اما به گفته مهندسان AlphaDev، که کار را امروز در طبیعت، این فقط اولین قدم است. دانیل مانکوویتز، یکی از همکاران پژوهشی در Deepmind که پروژه مرتب‌سازی را رهبری می‌کند، می‌گوید: ما می‌خواهیم کل پشته محاسباتی را بهینه کنیم. Mankowitz می‌گوید که AlphaDev قبلاً الگوریتم‌ها را نه تنها برای مرتب‌سازی، بلکه برای سایر کارهای اساسی مانند هش کردن نیز بهبود داده است.

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

این البته با محدودیت های قابل توجهی همراه است. او می افزاید: “اینها برنامه های کوچک و کوچکی هستند” – در مجموع بیش از چند ده دستورالعمل کد اسمبلی نیست. اما این برنامه‌های کوچک اغلب بر عملکرد رایانه تأثیر می‌گذارند، زیرا تا آنجایی که انسان می‌تواند آنها را فشار دهد بهینه شده‌اند. به طور کلی، الگوریتم‌های مرتب‌سازی C++ جدید AlphaDev 1.7 درصد کارآمدتر از روش‌های قبلی در مرتب‌سازی دنباله‌های طولانی اعداد و تا 70 درصد سریع‌تر برای دنباله‌های پنج عنصری هستند. مانکوویتز می‌گوید در مقیاس، این پیشرفت‌ها جمع می‌شوند. از آنجایی که کد نوشته شده توسط هوش مصنوعی به Libc++، یک کتابخانه منبع باز اصلی برای C++ ارسال شد، تخمین می‌زند که الگوریتم‌ها تریلیون‌ها بار در روز استفاده شده‌اند.

این پیشرفت‌ها به لطف تکنیکی به نام یادگیری تقویتی است که همان رویکردی است که برای کمک به بازی‌های استاد هوش مصنوعی Deepmind مانند شطرنج و رفتن استفاده می‌شود. این نوع هوش مصنوعی با انجام دادن یاد می گیرد. این کار با برخورد با یک کار – مانند نوشتن یک برنامه اسمبلی – به عنوان یک بازی کار می کند که در آن هوش مصنوعی برای انجام حرکات هوشمندانه که کارایی برنامه را افزایش می دهد پاداش می گیرد. با گذشت زمان، سیستم کار می کند تا این پاداش را به حداکثر برساند و در نتیجه یک استراتژی Go برنده یا یک برنامه مونتاژ سریعتر ایجاد می کند. این با نوع هوش مصنوعی موجود در مدل‌های زبان بزرگ مانند GPT-4 متفاوت است، که برای یادگیری نحوه نوشتن کلمات یا کد به مقادیر زیادی داده متکی هستند. این برای ایجاد متنی که لحن اینترنت را منعکس می کند یا ایجاد بخش های کد عمومی عالی است. اما در ایجاد راه‌حل‌های جدید و پیشرفته برای چالش‌های کدنویسی که هوش مصنوعی قبلاً ندیده است، چندان خوب نیست.