בו-זמניות (concurrency) ומקביליות (parallelism)

הפרמטר concurrency קובע כמה תוכניות נוצרות ומוערכות בו-זמנית. הפרמטר הזה הוא היפר-פרמטר זמן הריצה הכי משמעותי.

  • n = 1 (שרשרת עוקבת): יצירת תוכנית אחת, המתנה להערכה ואז יצירת התוכנית הבאה. כל דור רואה את התוצאה הקודמת, וכך נוצרת שרשרת של שיפורים מצטברים שמתמקדת באופטימום מקומי. הגישה הזו מניבה את התפוקה הכי נמוכה, אבל היא הכי ממוקדת. אפשר להשתמש במצב הזה כדי להתמקד באופן מכוון באזור ספציפי.

  • n = 3-12 (נקודת האיזון): זהו הטווח הנפוץ ביותר בשימוש בפועל, שמאזן בין חיפוש נישות לבין ניצול נישות. יש כמה תוכניות שפועלות בו-זמנית, ולכן חלק מהגנרציות לא רואות את התוצאות האחרונות, מה שיוצר גיוון טבעי. מסד הנתונים האבולוציוני שומר על נפח נתונים מספיק כדי לשמור על דינמיקה בריאה של האוכלוסייה.

  • n = 13-30 (חקירה גבוהה): הרבה תוכניות פועלות במקביל. ברוב המקרים, דורות שונים לא רואים את התוצאות של דורות אחרים. המצב הזה שימושי לבעיות לא קמורות מאוד עם הרבה אופטימום מקומי, שבהן חקר רחב חשוב יותר מניצול מעמיק.

  • n = 23-30 (מוגבל; מומלץ להימנע): חריגה מ-30 גנרטורים מקבילים תגרום להגבלת קצב הבקשות של העורף של מודל ה-LLM. הבקשות מצטברות בתור, מה שגורם להגדלת זמן האחזור לכל דור. אלא אם יש לכם הקצאת נפח אחסון ייעודית, אל תעברו את ה-30.

המלצות

ההמלצות הבאות הן נקודת התחלה להגדרת מקביליות וריבוי משימות מקביליות ב-AlphaEvolve.

סוג הבעיה בו-זמניות (concurrency) הסבר
גישה ידועה ומובנת היטב להתאמה ‫3–5 ניצול ממוקד
אופטימיזציה כללית, הדפסה לרוחב בגודל לא ידוע ‫8-12 איזון בין איתור מקורות תנועה לבין ניצול מקורות תנועה
לא קמור מאוד, הרבה אופטימום מקומי ‫15-25 חיפוש רחב
התקרבות מכוונת לאופטימום מקומי 1 שרשרת עוקבת

מתחילים עם concurrency=10 ומתאימים לפי האינדיקטורים הבאים:

  • הציון לא משתנה: כדי לצאת מאופטימום מקומי, צריך להגדיל את הבו-זמניות (concurrency).

  • הרבה הערכות נכשלות: צריך להקטין את מספר הפעולות המקבילות כדי לצמצם את השימוש המבוזבז במחשוב.

  • הערכות איטיות (מעל 5 דקות): רמת מקביליות גבוהה גורמת לכך שצינור ההערכה יהיה עמוס.

  • הערכות מהירות (פחות מ-10 שניות): רמת מקביליות נמוכה מאפשרת ליצירות עוקבות להתבסס ישירות על התוצאות של היצירות הקודמות.