آشنایی با AlphaEvolve؛ عامل کدنویسی تکاملی گوگل برای حل مسائل علمی و ریاضی

کشف‌های علمی یا طراحی الگوریتم‌های ارزشمند معمولاً فرایندی زمان‌بر هستند؛ شامل ایده‌پردازی، آزمون و خطا، آزمایش و در نهایت تأیید نتایج. در سال‌های اخیر، مدل‌های زبانی بزرگ (LLMها) به ابزاری قدرتمند برای خودکارسازی بخش‌هایی از این مسیر تبدیل شده‌اند.سیستم جدید دیپ‌مایند به نام AlphaEvolve دقیقاً برای همین منظور طراحی شده است.AlphaEvolve و ترکیب هوش مصنوعی و محاسبات تکاملی این عامل هوش مصنوعی با ترکیب محاسبات تکاملی و تولید کد توسط LLMها می‌تواند الگوریتم‌های جدید بسازد، آن‌ها را آزمایش کند و به مرور بهبود دهد.

ویژگی مهم AlphaEvolve این است که کدهای پیشنهادی را اجرا کرده و به‌صورت خودکار ارزیابی می‌کند؛ به همین دلیل از خطاها و پیشنهادهای نادرست جلوگیری می‌شود. در نتیجه، این سیستم قادر است الگوریتم‌هایی کاملاً متفاوت از نسخه‌های اولیه و حتی بهتر از روش‌های موجود کشف کند.

روش AlphaEvolve و محاسبات‌ تکاملی

AlphaEvolve یک عامل کدنویسی است که یک پایپ‌لاین خودکار از محاسبات را سازمان‌دهی می‌کند. این پایپ‌لاین شامل پرسش‌وپاسخ با مدل‌های زبانی بزرگ (LLMs) است وLLM برای کشف علمی در نهایت الگوریتم‌هایی تولید می‌کند که وظیفه‌ی مشخص‌شده توسط کاربر را حل می‌کنند.

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

مشخص‌سازی وظیفه

برای اینکه AlphaEvolve بتواند یک مسئله را حل کند، کاربر باید:

  1. تعریف مسئله را مشخص کند.

  2. کدی برای ارزیابی فراهم کند که بتواند کیفیت راه‌حل‌ها را به صورت خودکار بسنجند.

این ارزیابی معمولاً به شکل یک تابع پایتونی به نام evaluate پیاده‌سازی می‌شود که خروجی آن یک دیکشنری از معیارهای عددی (scalar metrics) است. به‌طور پیش‌فرض این معیارها باید بیشینه شوند.

  • برای مسائل ساده‌ی ریاضی، این تابع بسیار ساده است. مثلاً اگر بخواهیم بزرگ‌ترین گراف ممکن با یک ویژگی خاص را پیدا کنیم، کد تکاملی یک گراف می‌سازد، ویژگی بررسی می‌شود، و اندازه‌ی گراف به‌عنوان امتیاز بازگردانده می‌شود.

  • در مسائل پیچیده‌تر، این تابع می‌تواند شامل اجرای یک الگوریتم جستجو یا حتی آموزش و ارزیابی یک مدل یادگیری ماشین باشد.

نتایج ضرب ماتریس سریع‌ تر

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

در سال ۱۹۶۹ الگوریتم معروف استراسن نشان داد که می‌توان ضرب ماتریس‌ها را سریع‌تر از روش معمول انجام داد. اما با وجود گذشت چند دهه، حتی برای ضرب ساده‌ی ماتریس‌های ۳×۳ هم هنوز بهترین روش قطعی پیدا نشده است؛ این نشان می‌دهد مسئله چقدر پیچیده است.

اینجاست که سیستم جدید دیپ‌مایند، AlphaEvolve، وارد عمل شد. این هوش مصنوعی توانست:

  • برای ۱۴ حالت مختلف ضرب ماتریس الگوریتم‌های بهتری از بهترین راه‌حل‌های شناخته‌شده ارائه دهد.

  • و مهم‌تر از همه: الگوریتمی طراحی کند که ضرب دو ماتریس مختلط ۴×۴ را تنها با ۴۸ ضرب اسکالر انجام می‌دهد؛ در حالی که الگوریتم استراسن به ۴۹ ضرب نیاز داشت.

این یعنی AlphaEvolve توانست پس از ۵۶ سال رکورد جهانی را بشکند و یک پیشرفت تاریخی در ریاضیات کاربردی و علوم کامپیوتر رقم بزند.

بهینه‌سازی زیرساخت‌های محاسباتی تکاملی گوگل

AlphaEvolve فقط در نظریه ریاضی موفق نبود؛ بلکه در عملیات مهندسی در مقیاس بزرگ گوگل هم استفاده شد و نتایج چشمگیری داد:

 زمان‌بندی و بهینه‌سازی دیتاسنتر گوگل

در دیتاسنترهای گوگل، وظیفه‌ی مهمی وجود دارد: تخصیص بهینه‌ی کارها به ماشین‌ها.
  • AlphaEvolve یک تابع ابتکاری (heuristic function) طراحی کرد که منابع (CPU، حافظه) را خیلی کارآمدتر مدیریت می‌کرد.

  • نتیجه: در کل دیتاسنترهای گوگل، به‌طور متوسط ۰.۷٪ منابع محاسباتی آزاد شدند (این مقدار در مقیاس گوگل بسیار عظیم است).

 بهینه‌سازی کرنل‌های Gemini

  • برای آموزش مدل‌های زبانی بزرگ مثل Gemini، کرنل‌های ریاضی خاصی روی TPUها اجرا می‌شوند.

  • AlphaEvolve توانست یک روش جدید برای تقسیم‌بندی ماتریس‌ها (tiling heuristic) پیدا کند که سرعت کرنل‌ها را ۲۳٪ افزایش داد.

  • این بهبود باعث شد زمان کلی آموزش Gemini حدود ۱٪ کاهش یابد.

 طراحی سخت‌افزار (TPU)

  • AlphaEvolve روی کدهای Verilog (زبان طراحی سخت‌افزار) هم آزمایش شد.

  • توانست تغییر کوچکی در یکی از مدارهای اصلی TPU ایجاد کند که هم توان مصرفی و هم فضای سخت‌افزاری را کاهش داد.

  • این تغییر توسط مهندسان گوگل بررسی و تأیید شد و در نسل بعدی TPU ادغام خواهد شد.

 بهینه‌سازی کد کامپایلر (XLA IR)

  • AlphaEvolve روی کدهای میانی (IR) تولیدشده توسط کامپایلر گوگل (XLA) برای عملیات Transformer آزمایش شد.

  • توانست سرعت FlashAttention را تا ۳۲٪ افزایش دهد.

  • همچنین در بخش‌های پیش‌پردازش و پس‌پردازش هم ۱۵٪ سرعت بیشتر ایجاد کرد.

این نتایج نشان می‌دهد که AlphaEvolve نه‌تنها می‌تواند در ریاضی و نظریه بلکه در زیرساخت‌های واقعی و حیاتی هم بهبودهای قابل‌توجهی در زمینه AlphaEvolve ترکیب هوش مصنوعی و محاسبات تکاملی ایجاد کند.

آزمایش‌های مقایسه‌ای

 هدف این بخش این است که بفهمیم کدام اجزای AlphaEvolve بیشترین نقش را در موفقیت آن دارند. برای این کار چند نسخه‌ی تغییر یافته از سیستم اجرا شد و با نسخه‌ی کامل مقایسه شدند.

رویکردهای مقایسه‌ای

در آزمایش‌ها، AlphaEvolve روی دو مسئله تست شد:

  1. یافتن تجزیه‌های تانسوری با رتبه پایین برای ضرب ماتریس

  2. بهبود کران‌ها در مسئله Kissing Numbers (بخش ۳.۲).

مقایسه‌ها شامل حالت‌های زیر بود:

  • بدون تکامل (No evolution): فقط برنامه‌ی اولیه بارها به LLM داده می‌شود، بدون اینکه راه‌حل‌های قبلی در نسل‌ها استفاده شوند.

  • بدون زمینه در پرامپت (No context in the prompt): هیچ توضیح یا نتیجه‌ی قبلی به مدل داده نمی‌شود.

  • بدون تکامل پرامپت (No meta prompt evolution): پرامپت‌ها فقط ثابت هستند و خودشان تغییر و تکامل پیدا نمی‌کنند.

  • بدون تکامل فایل کامل (No full-file evolution): فقط بخش کوچکی (مثل تابع لا‌س) تغییر می‌کند، نه کل فایل.

  • فقط مدل کوچک (Small base LLM only): فقط یک مدل ساده استفاده می‌شود، بدون ترکیب مدل‌های قوی‌تر.

کارهای مرتبط

AlphaEvolve ترکیب هوش مصنوعی و محاسبات تکاملی و روش‌های آن

AlphaEvolve در امتداد یک سنت قدیمی در برنامه‌نویسی تکاملی قرار می‌گیرد؛ جایی که مجموعه‌ای از عملگرهای جهش  و ترکیب برای بهبود یک جمعیت از برنامه‌ها استفاده می‌شود.

  • روش‌های کلاسیک تکاملی در حوزه‌هایی مثل رگرسیون نمادین ، کشف علمی خودکار و بهینه‌سازی زمان‌بندی موفقیت‌هایی داشته‌اند.

  • مشکل این روش‌ها: معمولاً نیاز به طراحی دستی عملگرهای تکاملی دارند که هم سخت است و هم ممکن است ویژگی‌های مهم مسئله را نادیده بگیرد.

FunSearch و توسعه آن

 AlphaEvolve ادامه‌ی مستقیم FunSearch است (سیستمی که ۲۰۲۳ معرفی شد).

  • FunSearch فقط می‌توانست یک تابع پایتونی کوچک را تکامل دهد.

  • AlphaEvolve می‌تواند کل یک کدبیس بزرگ در زبان‌های مختلف را تکامل دهد.

  • FunSearch روی یک معیار واحد بهینه‌سازی می‌کرد. AlphaEvolve قابلیت بهینه‌سازی چندمعیاری را دارد.

  • FunSearch فقط از LLMهای کوچک استفاده می‌کرد. AlphaEvolve از مدل‌های پیشرفته (frontier LLMs) و context غنی استفاده می‌کند

ارتباط با AI Co-Scientist

AI Co-Scientist سیستمی است که مراحل مختلف کشف علمی (مثل تولید فرضیه، رتبه‌بندی فرضیه‌ها و مرور ادبیات) را خودکار می‌کند.

تفاوت اصلی:

  1. AI Co-Scientist فرضیه‌ها را به زبان طبیعی نمایش می‌دهد.

  2. AlphaEvolve فرضیه‌ها را به شکل کد قابل‌اجرا نمایش می‌دهد و با توابع ارزیابی خودکار آن‌ها را می‌سنجد.

این انتخاب باعث می‌شود AlphaEvolve بتواند از مشکل توهم LLM (hallucination) تا حد زیادی دور بماند، چون نتیجه همیشه باید توسط کد تست شود.

فوق بهینه سازی و کشف الگوریتم

AlphaEvolve همچنین به‌عنوان یک سیستم فوق بهینه سازی (superoptimization) هم دیده می‌شود: یعنی بهبود تکراری کد اولیه با استفاده از بازخورد اجرای آن.

  • ایده‌ی فوق بهینه سازی از دهه ۱۹۸۰ وجود داشت (با روش‌هایی مثل جستجوی کامل، الگوریتم‌های ژنتیکی، نمونه‌برداری مونت‌کارلو، و یادگیری تقویتی).

  • سیستم‌هایی مثل AlphaTensor هم قبلاً توانسته بودند الگوریتم‌های جدیدی برای ضرب ماتریس پیدا کنند.

اما تفاوت AlphaEvolve:

  • به جای تمرکز روی یک مسئله خاص، یک سیستم عمومی است که می‌تواند روی حوزه‌های بسیار متفاوت عمل کند.

  • می‌تواند کدهای بزرگ و چندبخشی را تکامل دهد، نه فقط یک تابع.

اهمیت و دستاوردها

AlphaEvolve نشان می‌دهد که ترکیب مدل‌های زبانی پیشرفته (LLMs) با ارزیابی خودکار در یک چارچوب تکاملی می‌تواند منجر به کشفیات تازه در ریاضی، علوم کامپیوتر و حتی بهبودهای عملی در زیرساخت‌های محاسباتی بزرگ شود.

  • در ریاضیات: توانست رکوردهای دهه‌ها حل‌نشده (مثل ضرب ماتریس ۴×۴) را جابه‌جا کند.

  • در علوم مهندسی: بهبودهایی واقعی در دیتاسنترهای گوگل، کرنل‌های Gemini و طراحی TPUها ایجاد کرد.

  • در حوزه الگوریتم‌ها: الگوریتم‌های جدید و اثباتاً درست کشف کرد که فراتر از روش‌های موجود هستند.

این موفقیت‌ها نشان می‌دهند که عامل‌های کدنویسی تکاملی مثل AlphaEvolve می‌توانند در آینده بخشی جدایی‌ناپذیر از فرایندهای کشف علمی و بهینه‌سازی صنعتی باشند.

مسیرهای آینده

مقاله پیشنهاد می‌کند که در آینده:

  • ترکیب با آزمایش‌های انسانی: در مسائلی که نیاز به داده آزمایشگاهی دارند، AlphaEvolve می‌تواند پیشنهادهایی تولید کند و انسان‌ها آن‌ها را آزمایش کنند.

  • ادغام در چرخه طراحی نرم‌افزار و سخت‌افزار: AlphaEvolve می‌تواند بخشی از فرایند مهندسی روزمره شود و به‌طور خودکار پیشنهاد بهبود بدهد.

  • استفاده در کشف علمی بین‌رشته‌ای: چون AlphaEvolve بر پایه‌ی کد است، می‌تواند در حوزه‌های مختلف (ریاضی، فیزیک، شیمی، مهندسی) عمل کند.

  • عامل‌های مشترک انسان و ماشین: همکاری نزدیک‌تر بین ریاضی‌دان‌ها و سیستم‌های AI برای کشف راه‌حل‌های جدید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *