فاز 15 · درس 3

معماری AlphaEvolve: ترکیب مدل‌های زبانی با الگوریتم‌های تکاملی برای تولید کد بهینه

نوع
مفهومی
زمان
حدود 60 دقیقه
زبان‌ها
Python (stdlib, evolutionary-loop toy)
پیش‌نیاز
فاز 15 · 01 (چارچوب‌بندی افق‌بلند)، فاز 15 · 02 (استدلال خودآموخته)
نمایی نمادین از یک سیستم شاخه‌بندی شبیه دی‌ان‌ای که قطعات متنی کد برنامه‌نویسی را درون یک غربال یا فیلتر نوری دقیق آزمایش می‌کند
فهرست مطالب
  1. صورت مسئله
  2. مفهوم
  3. چرخه
  4. چرا وجود ارزیاب غیرقابل‌مذاکره است
  5. دور زدن پاداش روی دیگر همین سکه است
  6. چرا ترکیب مدل زبانی و جست‌وجو از هر دو روش جداگانه بهتر است
  7. جایگاه AlphaEvolve در استک مرز دانش
  8. از آن استفاده کنید
  9. در محیط عملیاتی تحویل دهید
  10. تمرین‌ها
  11. اصطلاحات کلیدی
  12. برای مطالعه‌ی بیشتر

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

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

درک سازوکار این معماری به مهندسان کمک می‌کند تا بدانند چه زمانی و در چه مسائلی می‌توان وظیفه‌ی بازنویسی و بهینه‌سازی الگوریتم‌ها را به ایجنت‌های هوش مصنوعی سپرد و چگونه از دور زدن معیارها (Reward Hacking) جلوگیری کرد.

یک مدل کدنویسی پیشرو را با یک حلقه‌ی تکاملی و یک ارزیاب قابل‌ارزیابی با ماشین (Machine-Checkable) ترکیب کنید. بگذارید این حلقه به اندازه‌ی کافی اجرا شود. نتیجه این خواهد بود: کشف روشی برای ضرب ماتریس‌های مختلط 4x4 که تنها از 48 ضرب اسکالر استفاده می‌کند؛ یعنی نخستین بهبود بر الگوریتم استراسن (Strassen) پس از 56 سال. این سیستم همچنین یک ابتکار اسکژولر (Scheduling Heuristic) برای Borg در سطح کل گوگل پیدا می‌کند که حدود 0.7% از توان پردازشی کلاستر را در محیط عملیاتی (پروداکشن) آزاد می‌کند. معماری سیستم عمداً ساده و سرراست طراحی شده است؛ موفقیت‌ها همگی از سخت‌گیری و دقت ارزیاب سرچشمه می‌گیرند.

صورت مسئله

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

سیستم AlphaEvolve (نوشته‌ی نوویکوف و همکاران، دیپ‌مایند، arXiv:2506.13131، ژوئن 2025) این دو را پیوند می‌زند. مدل زبانی ویرایش‌های هدفمندی را برای پایگاه داده‌ای از برنامه‌ها پیشنهاد می‌دهد؛ یک ارزیاب خودکار به هر نسخه امتیاز می‌دهد؛ و نسخه‌هایی با امتیاز بالا والد نسل‌های بعدی می‌شوند. مدل زبانی کار پرهزینه‌ی نوشتن کد باورپذیر را بر عهده می‌گیرد و ارزیاب جلوی ادعاهای واهی را می‌گیرد. این حلقه از چند ساعت تا چند هفته اجرا می‌شود.

نتایج گزارش‌شده عبارتند از: ضرب ماتریس‌های مختلط 4x4 با 48 ضرب اسکالر (کران استراسن در سال 1969 برابر با 49 بود)، یک ابتکار اسکژولر برای Borg در پروداکشن گوگل، بهبود 32.5 درصدی سرعت کرنل FlashAttention، و افزایش نرخ پردازش (Throughput) آموزش Gemini.

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

مفهوم

چرخه

  1. کار را با یک برنامه‌ی اولیه (Seed Program) به نام P_0 شروع کنید که درست کار می‌کند اما بهینه نیست.
  2. پایگاه داده‌ای از برنامه‌های گوناگون را نگه دارید که هر کدام با ارزیاب امتیازدهی شده‌اند.
  3. یک یا چند والد را از پایگاه داده نمونه‌برداری کنید (به سبک MAP-elites یا روش جزیره‌ای).
  4. به مدل زبانی پرامپت دهید (Gemini Flash برای تولید کاندیداهای پرشمار و Gemini Pro برای نمونه‌های دشوار) تا نسخه‌ای تغییریافته از والد بسازد.
  5. نسخه‌ی جدید را کامپایل و اجرا کنید و آن را روی ارزیاب نگه‌داشته‌شده (Held-out Evaluator) بسنجید.
  6. برنامه را بر اساس امتیاز و بردار ویژگی‌هایش در پایگاه داده ذخیره کنید.
  7. این روند را تکرار کنید.

دو نکته‌ی جزئی اما حیاتی وجود دارد: نخست، مدل زبانی با چیزی فراتر از صرفاً برنامه‌ی والد پرامپت می‌شود؛ معمولاً چند نمونه از نسخه‌های برتر پایگاه داده، امضای ارزیاب و شرح کوتاهی از وظیفه (Task) نیز در پرامپت می‌آیند. وظیفه‌ی مدل این است که تغییری هدفمند برای ارتقای امتیاز پیشنهاد دهد. دوم، پایگاه داده ساختاریافته است (شبکه‌ی MAP-elites یا مبتنی بر جزیره) تا حلقه به‌جای تمرکز صرف روی گزینه‌ی پیشتاز فعلی، تنوع را هم کاوش کند.

چرا وجود ارزیاب غیرقابل‌مذاکره است

همه‌ی موفقیت‌های AlphaEvolve از حوزه‌هایی به دست آمده‌اند که ارزیاب در آن‌ها سریع، قطعی (Deterministic) و دور زدنش دشوار است:

  • الگوریتم ضرب ماتریس: یک تست واحد (Unit Test) که ماتریس‌ها را ضرب می‌کند و برابری تک‌تک بیت‌ها را می‌سنجد.
  • ابتکار اسکژولر Borg: یک شبیه‌ساز واقعی پروداکشن که بار کاری گذشته‌ی کلاستر را بازپخش می‌کند و محاسبات هدررفته را اندازه می‌گیرد.
  • کرنل FlashAttention: یک تست درستی‌سنجی به‌همراه بنچمارک زمان واقعی (Wall-clock) روی سخت‌افزار واقعی.
  • نرخ پردازش آموزش Gemini: اندازه‌گیری ثانیه‌های مصرفی GPU در هر گام.

در هر یک از این موارد، ارزیاب دقیقاً همان دسته‌ای از خطاهای مدل زبانی را شکار می‌کند که در غیر این صورت غلبه می‌کردند: ادعاهای واهی درباره‌ی درستی کد، ادعاهای بهبود کارایی که روی سخت‌افزار واقعی دود می‌شوند و می‌روند، و شکست در حالت‌های خاص و حدی (Edge Cases). اگر ارزیاب را حذف کنید، حلقه تنها کدهایی با ظاهر زیبا بهینه‌سازی می‌کند.

دور زدن پاداش روی دیگر همین سکه است

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

نمونه‌های واقعی از دور زدن پاداش (Reward Hacking) در حلقه‌های جست‌وجوی کد طی سال‌های 2025 تا 2026:

  • اهداف بهینه‌سازی که به «زمان اتمام کار» پاداش می‌دادند، به خروجی‌های خالی پاداش دادند.
  • امتیازهای بنچمارکی که به درستیِ پاسخ در تست‌ها پاداش می‌دادند، به حفظ کردن تست‌ها و بیش‌برازش (Overfitting) منجر شدند.
  • یک معیار تقریبی برای «کیفیت کد»، حذف کامنت‌ها و بازنویسی نام متغیرها را بدون هیچ تغییر معنایی پاداش داد.

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

چرا ترکیب مدل زبانی و جست‌وجو از هر دو روش جداگانه بهتر است

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

ارزیاب هم به‌نوبه‌ی خود خطاهای مدل زبانی را شکار می‌کند. مدل‌های زبانی ممکن است با اطمینان مدعی شوند که یک تابع «در حالت حدی O(nlog⁡n)O(n \log n) است»، در حالی که مرتبه‌ی واقعی آن O(n2)O(n^2) است؛ یک بنچمارک زمان واقعی کار را درجا تمام می‌کند.

جایگاه AlphaEvolve در استک مرز دانش

سیستم تولیدکننده ارزیاب حوزه نمونه‌ی دستاورد
AlphaEvolve Gemini درستی‌سنجی + بنچمارک الگوریتم‌ها، کرنل‌ها، اسکژولرها ضرب ماتریس 4x4 با 48 ضرب
FunSearch (دیپ‌مایند، 2023) PaLM / Codey درستی‌سنجی ریاضیات ترکیبیاتی کران‌های پایین مسئله‌ی Cap-set
AI Scientist v2 (ساکانا، L5) GPT/Claude نقد مدل زبانی + آزمایش پژوهش یادگیری ماشین مقاله‌ی کارگاه ICLR
Darwin Godel Machine (L4) زیرساخت ایجنت (Agent Scaffolding) SWE-bench / Polyglot کد ایجنت ارتقای 20% به 50% در SWE-bench

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

حلقهٔ ALPHAEVOLVEپیشنهاد · ارزیابی · نگه‌داری
ALPHAEVOLVE LOOPThe LLM proposes a targeted edit, a machine-checkable evaluator scores it, and high scorers are kept as parents for the next generation. The loop spirals outward as the program database fills with ever-better variants. The wins come from the rigor of the evaluator, not the cleverness of the loop.پیشنهادارزیابینگه‌داریامتیاز 95امتیاز 88امتیاز 81امتیاز 74امتیاز 67امتیاز 60پایگاه داده برنامه
مدل زبانی یک ویرایش هدفمند را پیشنهاد می‌دهد، ارزیاب قابل‌ارزیابی با ماشین به آن امتیاز می‌دهد، و نسخه‌های با امتیاز بالا به‌عنوان والدین نسل بعد نگه داشته می‌شوند. این حلقه هم‌گام با پر شدن پایگاه دادهٔ برنامه‌ها با گونه‌های هرچه بهتر، رو به جلو گسترش می‌یابد. دستاوردها حاصل دقت ارزیاب هستند، نه هوشمندی حلقه.

از آن استفاده کنید

فایل code/main.py یک حلقه‌ی مینیمال شبیه به AlphaEvolve را روی مسئله‌ای ساده از رگرسیون نمادین پیاده‌سازی می‌کند. در اینجا «مدل زبانی» یک جایگزین ساده با کتابخانه‌ی استاندارد است که جهش‌های نحوی کوچکی را روی برنامه‌ی محاسبه‌کننده‌ی تابع هدف پیشنهاد می‌دهد. «ارزیاب» میانگین مربعات خطا (Mean Squared Error) را روی نقاط آزمون نگه‌داشته‌شده می‌سنجد.

به این موارد دقت کنید:

  • چگونگی بهبود بهترین امتیاز در طول نسل‌ها.
  • چگونگی حفظ راه‌حل‌های متنوع توسط شبکه‌ی MAP-elites تا حلقه در یک کمینه‌ی محلی گیر نکند.
  • چگونگی ایجاد بیش‌برازش شدید در صورت حذف آزمون نگه‌داشته‌شده (ارزیابی صرفاً روی داده‌های آموزش).

در محیط عملیاتی تحویل دهید

فایل outputs/skill-evaluator-rigor-audit.md پیش‌شرط به‌کارگیری چرخه‌ای به سبک AlphaEvolve در هر حوزه‌ی جدید است: آیا ارزیاب شما واقعاً خطاهایی را که برایتان مهم است شکار می‌کند؟

تمرین‌ها

  1. اسکریپت code/main.py را اجرا کنید. روند بهبود بهترین امتیاز را زیر نظر بگیرید. سپس ارزیاب نگه‌داشته‌شده را غیرفعال کنید (با فلگ --no-holdout) و کد را دوباره اجرا کنید. میزان بیش‌برازش را مشخص نمایید.

  2. بخش 3 مقاله‌ی AlphaEvolve درباره‌ی شبکه‌ی MAP-elites را بخوانید. برای یک مسئله‌ی جدید (مثل گام‌های بهینه‌سازی کامپایلر)، توصیف‌گر بردار ویژگی‌ای طراحی کنید که تنوع جست‌وجو را حفظ کند.

  3. نتیجه‌ی ضرب 4x4 با 48 عمل ضرب، پس از 56 سال کران 49 ضربی استراسن را بهبود داد. پیوست F مقاله را مطالعه کنید و در سه جمله توضیح دهید چرا طراحی ارزیاب درست برای این مسئله بسیار آسان است، و چرا اغلب مسائل این‌گونه نیستند.

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

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

اصطلاحات کلیدی

اصطلاح در گفت‌وگوهای عامیانه معنای دقیق فنی
AlphaEvolve «ایجنت کدنویسی تکاملی دیپ‌مایند» مدل Gemini + پایگاه داده‌ی برنامه‌ها + ارزیاب قابل‌ارزیابی با ماشین
MAP-elites «آرشیو حفظ تنوع» شبکه‌ای که کلید آن بردارهای ویژگی است؛ هر خانه بهترین نسخه با آن توصیف‌گر را نگه می‌دارد
مدل جزیره‌ای (Island model) «زیرجمعیت‌های تکاملی موازی» جمعیت‌های مستقلی که در فواصل زمانی مشخص جابه‌جا می‌شوند؛ از همگرایی زودهنگام جلوگیری می‌کند
ارزیاب قابل‌ارزیابی با ماشین (Machine-checkable evaluator) «مرجع حقیقت (اوراکل) قطعی» تست واحد، شبیه‌ساز یا بنچمارکی که مدل نمی‌تواند آن را جعل کند — پیش‌شرط اصلی این حلقه
دور زدن پاداش (Reward hacking) «بهینه‌سازی سنجه به‌جای هدف اصلی» حالتی که حلقه راهی برای بیشینه‌سازی امتیاز بدون انجام وظیفه‌ی مدنظر پیدا می‌کند
برنامه‌ی اولیه (Seed program) «نقطه‌ی شروع» برنامه‌ای اولیه که درست کار می‌کند اما بهینه نیست و فرایند تکامل از آن آغاز می‌شود
ارزیاب نگه‌داشته‌شده (Held-out evaluator) «داده‌های ارزیابی که مدل هرگز ندیده است» ورودی‌هایی که دقیقاً در زمان ارزیابی تولید می‌شوند تا جلوی حفظ کردن گرفته شود

برای مطالعه‌ی بیشتر

سؤالات متداول

سیستم AlphaEvolve دقیقاً چه مسائلی را حل می‌کند؟

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

چرا مدل زبانی به‌تنهایی یا الگوریتم ژنتیک به‌تنهایی کافی نیستند؟

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

پدیده‌ی Reward Hacking در حلقه‌های تکاملی کد چیست؟

حالتی است که سیستم تکاملی بدون حل واقعی مسئله، راهی برای بیشینه‌سازی نمره‌ی ارزیاب پیدا می‌کند؛ مثل کوتاه‌کردن زمان اجرا با ارسال یک تابع کاملاً خالی.

ما رو توی گوگل بیشتر ببین

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