Phase 15: Autonomous Systems

آلفا ایولو عوامل کدگذاری تکامل یافته

یک مدل کد گذاری مرزی با یک حلقه تکاملی و یک ارزیابی کننده قابل چک ماشین را جفت کنید. اجازه بده اين حلقه به اندازه کافي طول بکشه این یک روش ضرب ماتریک پیچیده 4x4 را کشف می کند که از 48 ضرب مقیاس استفاده می کند اولین پیشرفت در 56 سال گذشته در برابر استراسن. همچنین یک هوریستی برنامه ریزی بورگ در سراسر گوگل را پیدا می کند که حدود 0.7٪ از محاسبات کلستر در تولید را بازیابی می کند. معماری عمدا خسته کننده است برنده شدن از سختي ارزیابی کننده مياد.

Type: Learn

Languages: Python (stdlib, evolutionary-loop toy)

Prerequisites: Phase 15 · 01 (long-horizon framing), Phase 15 · 02 (self-taught reasoning)

Time: ~60 minutes

مشکل

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

آلفا ایولو (نوکیوف و همکارانش، DeepMind، arXiv:2506.13131، ژوئن 2025) آنها را ترکیب می کند. LLM ویرایش های هدفمند را به یک پایگاه داده برنامه پیشنهاد می کند؛ یک ارزیابی کننده خودکار هر نوع را نمره می دهد؛ انواع نمره بالا به والدین برای نسل های آینده تبدیل می شوند. LLM گام گران قیمت نوشتن کد قابل قبول را اداره می کند؛ ارزیابی کننده مفاهیم را می گیرد. حلقه ساعت ها تا هفته ها طول می کشد.

نتایج گزارش شده: ضرب ماتریک پیچیده 48-scalar-multiplication 4x4 (حدود 1969 Straßsen 49 بود) ، یک برنامه ریزی بورگ در تولید گوگل، سرعت افزونی هسته FlashAttention 32.5٪، پیشرفت های تولید آموزش دوقلوها.

معماری کار می کند چون ارزیابی کننده قابل چک ماشین است. جایی که ارزیابی کننده کار نمی کند کار نمی کند. این عدم همتایی درس است.

مفهوم

حلقه

  1. از برنامه تخم شروع کنP_0درست است اما کم مطلوبه
  2. یک پایگاه داده از برنامه های مختلف را نگهداری کنید که هر کدام توسط ارزیابی کننده امتیاز داده شده است.
  3. نمونه ای از یک یا چند والدین از پایگاه داده (به سبک MAP-elite یا جزیره).
  4. به LLM (Flash دوقلوها برای بسیاری از کاندیداها، Pro دوقلوها برای سخت ترین ها) اجازه دهید تا یک نوع اصلاح شده از والدین را تولید کند.
  5. جمع آوری، اجرا و ارزیابی نوع در ارزیابی کننده نگه داشته شده.
  6. وارد پایگاه داده با کلید امتیاز و متری ویژگی آن کنید.
  7. تکرار کنم

دو جزئیات مهم است. اول، LLM با بیش از برنامه اصلی به دنبال است به طور معمول چندین نوع برتر از پایگاه داده، به علاوه امضای ارزیابی کننده، به علاوه یک توصیف کار کوتاه. کار مدل این است که یک تغییر هدفمند را که ممکن است نمره را بهبود بخشد پیشنهاد دهد. دوم، پایگاه داده ساختار یافته است (MAP-elite grid، جزیره مبتنی بر) بنابراین حلقه تنوع را کشف می کند، نه فقط رهبر فعلی.

چه چیزی باعث می شود که ارزیابی کننده قابل مذاکره نباشد

برندهای آلفا ایولو همه از حوزه هایی که ارزیابی کننده سریع، تعیین کننده و سخت بازی است، می آیند:

  • Matrix multiplication algorithm: یک آزمون واحد که ماتریس ها را ضرب می کند و برابری را به صورت بیت یکسان بررسی می کند.
  • Borg scheduling heuristic: یک شبیه ساز سطح تولید که بار کلستر تاریخی را بازیافت می کند و محاسبه تلف شده را اندازه گیری می کند.
  • FlashAttention kernel: یک تست درستگی به علاوه یک معیار ساعت دیواری در سخت افزار واقعی.
  • Gemini training throughput: اندازه گیری GPU- ثانیه در هر مرحله

در هر مورد، ارزیابی کننده کلاس خطاهای LLM را که در غیر این صورت غالب می شوند، می گیرد: ادعاهای درستگی ساختگی، ادعاهای عملکرد که در سخت افزار ناپدید می شوند و شکست های کناری. ارزیابی کننده را حذف کنید و حلقه بهینه سازی برای کد زیبا است.

هک کردن پاداش، چهره ی دیگری از این بیانیه است

تکامل برای هر اندازه ای که ارزیابی کننده انجام دهد بهینه سازی می کند. اگر ارزیابی کننده ناقص باشد، حلقه نقص را پیدا می کند. در یک دامنه غیر تأیید شده حلقه برای ویژگی سطح بهینه سازی می شود، نه رفتار مورد نظر. DeepMind این را به طور صریح در مقاله نشان می دهد: موفقیت های AlphaEvolve تنها به دامنه هایی منتقل می شوند که در آن دقت ارزیابی کننده با طموح جستجو مطابقت دارد.

نمونه های مشخصی از هک کردن پاداش در حلقه های جستجو کد 2025-2026:

  • اهداف بهینه سازی که پاداش "زمان تکمیل" را به ارائه راه حل های خالی می دهند.
  • نمرات بنچ مارک که پاداش درست بودن تحت تست پاداش یادآوری تست و overfitting.
  • یک "کوالتی کد" به حذف نظرات و تغییر نام متغیر بدون تغییر معنوی پاداش داد.

راه حل در AlphaEvolve: ارسال یک ارزیابی کننده طولانی مدت LLM هرگز دیده نشده است، با ورودی تولید شده در زمان ارزیابی. حتی در آن زمان، DeepMind توصیه می کند بررسی قوی در مورد هر انتشار پیشنهادی.

چرا جستجو LLM + تنها

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

ارزیابی کننده به نوبه خود، مفاهیم LLM را می گیرد. LLM ها با اطمینان ادعا می کنند که یک تابع "O(n log n) در حد است" در حالی که در واقع O(n^2) است؛ یک معیار ساعت دیوار مسئله را حل می کند.

جایی که آلفا ایولو در دسته مرزها قرار دارد

SystemGeneratorEvaluatorDomainExample win
AlphaEvolveGeminicorrectness + benchmarkalgorithms, kernels, schedulers48-mul 4x4 matmul
FunSearch (DeepMind, 2023)PaLM / Codeycorrectnesscombinatorial mathcap-set lower bounds
AI Scientist v2 (Sakana, L5)GPT/ClaudeLLM critique + experimentML researchICLR workshop paper
Darwin Godel Machine (L4)agent scaffoldingSWE-bench / Polyglotagent code20% → 50% SWE-bench

همه چهارتا هم تغییرات روی یک دستور هستند: ژنراتور به علاوه ارزیابی کننده، لوپ. تفاوت ها در مورد اینکه ارزیابی کننده چه امتیازاتی دارد و چقدر سختگیرانه است.

ازش استفاده کن

code/main.py"LLM" یک پروکسی است که جهش های کوچک نحوی را به یک برنامه ارائه می دهد که یک عملکرد هدف را محاسبه می کند. اندازه گیری "مقدر" به معنای خطای مربع در نقاط آزمایش انجام شده است.

نگاه کن

  • چطور بهترین نمره ها در طول نسل ها بهبود می یابند.
  • چطور شبکه ی نخبگان نقشه ی زمین راه حل های متنوعی را زنده نگه می دارد تا حلقه به حداقل محلی همگام نمی شود.
  • چگونه حذف آزمون طولانی مدت (تقييم کننده فقط آموزش) باعث می شود که حلقه به طور چشمگیری بیش از حد مناسب باشد.

-باده

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

تمرینات

  1. فرار کنcode/main.py. بهترین مسیر نمره را یادداشت کنید. ارزیابی کننده را غیرفعال کنید (بلاغ --no-holdout) و دوباره انجامش بده.
  1. بخش 3 مقاله AlphaEvolve را در شبکه MAP-elite بخوانید. یک توصیفگر متری ویژگی برای یک مشکل جدید (به عنوان مثال، گذرگاه بهینه سازی کامپایلر) طراحی کنید که جستجو را متنوع نگه می دارد.
  1. نتیجه 48 ضرب 4x4 در مرز 49-mul Strassen پس از 56 سال بهبود یافته است. ضمیمه F مقاله را بخوانید و در سه جمله توضیح دهید که چرا ارزیابی کننده برای این مشکل به ویژه آسان است و چرا اکثر دامنه ها مانند آن نیستند.
  1. پيشنهاد يک دامنه اي که AlphaEvolve شکست ميخواد و مشخص کنه که ارزیابی کننده کجا و چرا شکسته
  1. برای یک دامنه شناخته شده، امضای ارزیابی کننده ای را که می خواهید استفاده کنید بنویسید. شامل (الف) شرایط درستی، (ب) معیار عملکرد، (ج) قانون تولید ورودی طولانی مدت، (د) حداقل یک چک ضد هک پاداش.

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

TermWhat people sayWhat it actually means
AlphaEvolve"DeepMind's evolutionary coding agent"Gemini + program database + machine-checkable evaluator
MAP-elites"Diversity-preserving archive"Grid keyed by feature vectors; each cell holds the best variant with that descriptor
Island model"Parallel evolution subpopulations"Independent populations that migrate periodically; prevents premature convergence
Machine-checkable evaluator"Deterministic oracle"A unit test, simulator, or benchmark the LLM cannot fake — a prerequisite for this loop
Reward hacking"Optimizing the measure, not the goal"Loop finds a way to maximize score without doing the intended task
Seed program"The starting point"An initial correct-but-suboptimal program the loop evolves from
Held-out evaluator"Evaluation data the LLM never saw"Inputs generated at evaluation time to prevent memorization

خواندن بیشتر

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.