آلفا ایولو عوامل کدگذاری تکامل یافته
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٪، پیشرفت های تولید آموزش دوقلوها.
معماری کار می کند چون ارزیابی کننده قابل چک ماشین است. جایی که ارزیابی کننده کار نمی کند کار نمی کند. این عدم همتایی درس است.
مفهوم
حلقه
- از برنامه تخم شروع کن
P_0درست است اما کم مطلوبه - یک پایگاه داده از برنامه های مختلف را نگهداری کنید که هر کدام توسط ارزیابی کننده امتیاز داده شده است.
- نمونه ای از یک یا چند والدین از پایگاه داده (به سبک MAP-elite یا جزیره).
- به LLM (Flash دوقلوها برای بسیاری از کاندیداها، Pro دوقلوها برای سخت ترین ها) اجازه دهید تا یک نوع اصلاح شده از والدین را تولید کند.
- جمع آوری، اجرا و ارزیابی نوع در ارزیابی کننده نگه داشته شده.
- وارد پایگاه داده با کلید امتیاز و متری ویژگی آن کنید.
- تکرار کنم
دو جزئیات مهم است. اول، 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) است؛ یک معیار ساعت دیوار مسئله را حل می کند.
جایی که آلفا ایولو در دسته مرزها قرار دارد
| System | Generator | Evaluator | Domain | Example win |
|---|---|---|---|---|
| AlphaEvolve | Gemini | correctness + benchmark | algorithms, kernels, schedulers | 48-mul 4x4 matmul |
| FunSearch (DeepMind, 2023) | PaLM / Codey | correctness | combinatorial math | cap-set lower bounds |
| AI Scientist v2 (Sakana, L5) | GPT/Claude | LLM critique + experiment | ML research | ICLR workshop paper |
| Darwin Godel Machine (L4) | agent scaffolding | SWE-bench / Polyglot | agent code | 20% → 50% SWE-bench |
همه چهارتا هم تغییرات روی یک دستور هستند: ژنراتور به علاوه ارزیابی کننده، لوپ. تفاوت ها در مورد اینکه ارزیابی کننده چه امتیازاتی دارد و چقدر سختگیرانه است.
ازش استفاده کن
code/main.py"LLM" یک پروکسی است که جهش های کوچک نحوی را به یک برنامه ارائه می دهد که یک عملکرد هدف را محاسبه می کند. اندازه گیری "مقدر" به معنای خطای مربع در نقاط آزمایش انجام شده است.
نگاه کن
- چطور بهترین نمره ها در طول نسل ها بهبود می یابند.
- چطور شبکه ی نخبگان نقشه ی زمین راه حل های متنوعی را زنده نگه می دارد تا حلقه به حداقل محلی همگام نمی شود.
- چگونه حذف آزمون طولانی مدت (تقييم کننده فقط آموزش) باعث می شود که حلقه به طور چشمگیری بیش از حد مناسب باشد.
-باده
outputs/skill-evaluator-rigor-audit.mdشرط پیش فرض برای بررسی یک حلقه سبک AlphaEvolve در یک دامنه جدید است: آیا ارزیابی کننده شما واقعاً شکست هایی را که به آنها اهمیت می دهید می بیند؟
تمرینات
- فرار کن
code/main.py. بهترین مسیر نمره را یادداشت کنید. ارزیابی کننده را غیرفعال کنید (بلاغ--no-holdout) و دوباره انجامش بده.
- بخش 3 مقاله AlphaEvolve را در شبکه MAP-elite بخوانید. یک توصیفگر متری ویژگی برای یک مشکل جدید (به عنوان مثال، گذرگاه بهینه سازی کامپایلر) طراحی کنید که جستجو را متنوع نگه می دارد.
- نتیجه 48 ضرب 4x4 در مرز 49-mul Strassen پس از 56 سال بهبود یافته است. ضمیمه F مقاله را بخوانید و در سه جمله توضیح دهید که چرا ارزیابی کننده برای این مشکل به ویژه آسان است و چرا اکثر دامنه ها مانند آن نیستند.
- پيشنهاد يک دامنه اي که AlphaEvolve شکست ميخواد و مشخص کنه که ارزیابی کننده کجا و چرا شکسته
- برای یک دامنه شناخته شده، امضای ارزیابی کننده ای را که می خواهید استفاده کنید بنویسید. شامل (الف) شرایط درستی، (ب) معیار عملکرد، (ج) قانون تولید ورودی طولانی مدت، (د) حداقل یک چک ضد هک پاداش.
اصطلاحات کلیدی
| Term | What people say | What 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 |
خواندن بیشتر
- Novikov et al. (2025). AlphaEvolve: A coding agent for scientific and algorithmic discovery تمام مقاله
- DeepMind blog on AlphaEvolve ثبت فروشنده با نتایج
- AlphaEvolve results repositoryالگوریتم های کشف شده، از جمله 48-mul 4x4 matmul.
- Romera-Paredes et al. (2023). Mathematical discoveries from program search with LLMs (FunSearch) سیستم پیشین
- Anthropic — Responsible Scaling Policy v3.0 (Feb 2026) استقلال مرتبط با ارزیابی کننده را به عنوان یک جهت اصلی تحقیق قرار می دهد.
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.