שיעור 10: Dynamic Batching ו-Serving — לצבור בקשות בזמן אמת
בפרודקשן הבקשות לא מגיעות ב-batch מסודר — הן מטפטפות אחת-אחת ממשתמשים שונים. אם תריץ כל אחת לבד, ה-throughput יקרוס. הפתרון של שרתי inference כמו Triton: dynamic batching — להמתין חלון זעיר, לצבור בקשות שהגיעו, ולהריץ אותן יחד. בשיעור הזה נבין את האיזון בין המתנה קצרה ל-throughput.
מעלית שיוצאת מיד עם נוסע אחד מבזבזת נסיעות. dynamic batching זה לחכות כמה שניות שעוד אנשים ייכנסו — לא יותר מדי, כדי שאף אחד לא יתעצבן — ואז לנסוע עם מעלית מלאה.
- Dynamic batching
- השרת אוסף בקשות נפרדות שהגיעו בחלון זמן קצר ל-batch אחד, עד גבול גודל או זמן.
- Max queue delay
- כמה זמן השרת מוכן לחכות כדי לצבור batch לפני שהוא מריץ. מכוונן את האיזון latency/throughput.
- Model instances
- מספר עותקים של המודל שרצים במקביל על אותו GPU כדי לשרת בקשות בו-זמנית (concurrency).