מסלולי ריצה ריקים המסמלים תורים ומכסות GPU בין צוותים
צילום: Jan van der Wolf / Pexels

AWS Batch מחלקת מכסות GPU בין צוותי SageMaker

AWS פרסמה מדריך מעשי לניהול מכסות GPU בין צוותים ב-AWS Batch עבור עבודות SageMaker Training. היכולת מחלקת קיבולת ל-quota shares, משאילה משאבים פנויים בין צוותים ומבצעת preemption כדי לפנות מקום לעבודות חשובות יותר — בלי לנהל ידנית תורים נפרדים לכל פרויקט.

הבעיה: GPU משותף, סדרי עדיפויות שונים

בסביבת ML ארגונית, כמה צוותים עשויים להפעיל אימונים על אותו מאגר קיבולת. הגבלה קשיחה לכל צוות מגינה מפני השתלטות על המשאבים, אבל משאירה GPU לא מנוצל כאשר צוות אחד אינו עובד. מנגד, מאגר פתוח לחלוטין עלול לדחות עבודה קריטית בגלל ניסוי גדול בעל עדיפות נמוכה.

בפוסט הרשמי מ-29 באוקטובר 2026 מסבירה AWS כיצד quota management יוצר שכבת תזמון בתוך תור העבודה. כל quota share מייצג צוות, פרויקט או סוג עומס ומקבל מגבלת קיבולת ואסטרטגיית שיתוף.

שלוש אסטרטגיות שיתוף

  • RESERVE — הקיבולת נשמרת לבעל המכסה גם כשהיא אינה בשימוש.
  • LEND — קיבולת פנויה יכולה לעבור למכסות אחרות, אך המכסה אינה לווה מאחרות.
  • LEND_AND_BORROW — המכסה יכולה גם להשאיל משאבים פנויים וגם ללוות כאשר יש קיבולת זמינה.

quota share פועל כתור וירטואלי היררכי בתוך job queue. AWS Batch מעדיף shares שנמצאים מתחת למגבלת הקיבולת שלהם. כאשר עבודה חדשה מגיעה למכסה שהשאילה משאבים, cross-share preemption מחזיר לה את הקיבולת. כך המנהל אינו צריך לאתר ידנית את העבודה הלווה ולסיים אותה.

Preemption בתוך הצוות

אפשר להפעיל גם in-share preemption. במצב זה עבודה בעדיפות גבוהה יכולה להקדים עבודה בעדיפות נמוכה שכבר נמצאת במצב SCHEDULED, STARTING או RUNNING. הדבר מתאים במיוחד לאימונים שתומכים ב-checkpointing, משום שעבודה שנקטעה יכולה להמשיך מנקודת שמירה במקום להתחיל מהתחלה.

חשוב לתכנן את מדיניות העדיפויות: preemption ללא checkpoints עלול לבזבז שעות GPU שכבר נצרכו. כדאי גם להגדיר retry limits, לעקוב אחר תדירות ההפסקות ולוודא שעבודות רקע אינן נכנסות לרעב מתמשך.

מה נדרש להקמה

לפי המדריך הרשמי של AWS, ההגדרה כוללת Scheduling Policy עם quotaSharePolicy, סביבת שירות שמגדירה את מגבלות המופעים, ותור SageMaker Training שמחובר לשניהם. לאחר מכן משייכים את ה-quota shares לתור. מודול aws_batch ב-SageMaker Python SDK מאפשר לשלוח עבודות לתור שתומך במכסות.

המלצות ליישום

  1. התחילו בשניים או שלושה shares שמייצגים גבולות בעלות ברורים.
  2. הגדירו עדיפות עסקית בנפרד מגודל העבודה.
  3. חייבו checkpointing לעבודות שניתנות ל-preemption.
  4. מדדו ניצולת GPU, זמן המתנה, מספר preemptions ועלות לכל אימון.
  5. בדקו תרחיש חזרה של קיבולת מושאלת לפני מעבר לייצור.

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


מקורות: AWS Machine Learning Blog, 29.10.2026; AWS Documentation — SageMaker Training job queues.

קרדיט תמונה: Jan van der Wolf / Pexels. רישיון Pexels מתיר שימוש באתר, בסושיאל ובשיווק, וכן עריכה; הקרדיט ניתן גם כאשר אינו חובה.

דילוג לתוכן