RadixAttention של SGLang צמצמה את זמן ההמתנה לטוקן הראשון (warm-up time-to-first-token) ל-68ms במערכת עם שני כרטיסי RTX 3090, בעוד ש-PagedAttention של vLLM נותרה על 184ms — פער שיהוי (latency) של 82.9% שהופך אינטראקציות של סוכנים (agents) רב-שלביות לחלקות הרבה יותר.
שני הפרויקטים מנסים להאיץ את תהליך ה-inference של מודלי שפה גדולים (LLM), אך הבנצ'מרק מתמקד בעומסי עבודה המניעים עוזרים אוטונומיים: הנחיות מערכת (system prompts) ארוכות, סכמות של קריאה לכלים (tool-calling schemas) והיסטוריה מתגלגלת של תורות משתמש-עוזר. הטוקנים החוזרים הללו יושבים בזיכרון ה-GPU; אם המטמון (cache) אינו מנוהל ביעילות, הם הופכים לצוואר בקבוק חישובי שמעכב את השיחה.
עומס העבודה ששינה את מאזן הכוחות
שרתי LLM מסורתיים עושים אופטימיזציה עבור חילופין בודדים — הנחיית משתמש, תשובת מודל, וזהו. עם זאת, סוכנים מודרניים שומרים על "מצב שיחה" (conversation state) שיכול להשתרע על עשרות תורות, כשכל אחד מהם מוסיף מאות טוקנים למטמון. ערכת הבדיקות הריצה מחדש לולאה רב-שלבית כזו על שני כרטיסי RTX 3090, תוך מדידת:
- Warm time-to-first-token (TTFT) – השהיה לפני הופעת הטוקן הראשון לאחר תחילת תור חדש.
- Overall latency – זמן ממוצע לכל טוקן לאורך כל הלולאה.
- Sustained throughput – מספר הטוקנים המעובדים בשנייה כאשר הלולאה רצה ברציפות.
- Cache-hit ratio – היחס של טוקנים שנוצלו מחדש מה-KV cache במקום להיות מחושבים מחדש.
SGLang ניצחה את vLLM בכל מדד: 68ms לעומת 184ms ב-TTFT, הפחתת שיהוי (latency) של 82.9%, תפוקה (throughput) גבוהה ב-39.8% ויחס cache-hit של 96.8% בהשוואה ל-84.2% של vLLM.
PagedAttention לעומת RadixAttention
שני המנועים מאחסנים זוגות KV ביניים בזיכרון ה-GPU, אך הם מארגנים את הזיכרון הזה בצורה שונה.
- PagedAttention (vLLM) מחלק את המטמון לבלוקים בגודל קבוע. אם הנחיה מסתיימת באמצע בלוק, הטוקנים שבסופה חייבים להיות מחושבים מחדש בכל תור, כיוון שלא ניתן להשתמש בחלק מהבלוק מחדש. הגישה פשוטה ועובדת כאשר ההנחיות מתואמות עם גבולות הבלוקים, אך היא מבזבזת מחזורי חישוב על טוקני ה"קצה" שמשתנים בתדירות הגבוהה ביותר בלולאות של סוכנים.
- RadixAttention (SGLang) מתייחס למטמון כאל עץ. הוא מוצא את הקידומת המשותפת הארוכה ביותר בין ההנחיה הנוכחית לבין מה שכבר שמור במטמון, ללא קשר למגבלות הבלוקים, ומבצע גיזום (pruning) לעלים שאינם בשימוש. זה מאפשר להנחיית מערכת (system prompt) ענקית להישאר מקובעת בזיכרון ה-GPU בזמן שרק התור החדש ביותר מעובד, מה שמעלה את יחס ה-cache-hit ומצמצם עבודה מיותרת.
מתי כל מנוע מצטיין
| תרחיש | מנוע מועדף |
|---|---|
| סוכנים אוטונומיים רב-שלביים, קריאה אינטנסיבית לכלים, חשיבה מסוג tree-of-thought | SGLang (RadixAttention) |
| תמיכה רחבה בחומרה (כולל מאיצי AMD ו-Gaudi), speculative decoding, מודלי vision-language | vLLM (PagedAttention) |
ההבדל אינו רק בביצועים; הוא נוגע גם לאקו-סיסטם. התאימות הרחבה יותר של vLLM לחומרה הופכת אותו לבחירה בטוחה יותר כברירת מחדל עבור ארגונים עם אשכולות מחשוב הטרוגניים. תכונת ה-speculative decoding שלו — יצירת מספר מועמדים לטוקנים במקביל — יכולה להאיץ יצירה של תור בודד (single-turn), תחום שבו ה-caching מבוסס העץ של RadixAttention מציע יתרון פחות משמעותי.
שורה תחתונה
עבור מפתחים שבונים סוכנים רב-שלביים המטפלים בהנחיות ארוכות ובעדכונים הדרגתיים, RadixAttention של SGLang מספק חוויה מהירה ויעילה הרבה יותר מבחינת שימוש במטמון על גבי GPU לצרכן. צוותים הזקוקים לכיסוי חומרה רחב או המתמחים ביצירת single-turn עשויים עדיין להסתמך על vLLM. הבחירה כעת תלויה בשאלה האם עומס העבודה הוא "עמוס סוכנים" (agent-heavy) או "מגוון חומרה" (hardware-diverse).
