כרטיס כותרת עבור vLLM PR #61018, המסומן כלא מאומת — PR טיוטה, לא ממוזג, עם הכותרת "3 שורות כדי ש-Qwen4Exp יוכל לדגום באופן מפוצל", ולצדו תגיות עבור מאגר המקור, תאריך הפתיחה 2026-10-10 וסטטוס הטיוטה הפתוחה.
Guides & Insights

דגימה מפולחת לפי אצוות של Qwen4Exp: בתוך vLLM PR #61018, ומה הוא אומר על Qwen 4

מחבר

Gideon Frost

תאריך פרסום

מודלים אחרונים · 20צפו בכל המודלים →
בנצ'מרקים: Artificial Analysis · מתעדכן יומית
חזרה לכל הפוסטים

המספר האינפורמטיבי ביותר בבקשת המשיכה (pull request)‏ #61018 של vLLM הוא הפסד: 1.5%. זהו הגבול העליון שהמחבר מציב לשינוי שלו — בערך 0.6 עד 0.8 מילישניות שנחסכות מתוך צעד ממוצע של 42 מילישניות, נמדד על מכונה שאינה בבעלותו, בתיקון שהוא כלל אינו יכול להריץ. בקשת המשיכה, שכותרתה "[Model] Qwen4Exp: support batch-sharded sampling (compute_logits_local)" ונפתחה ב-2026-10-10 על ידי התורם kimseunghyun-kr, מוסיפה שלוש שורות של קוד מודל לשני קבצים כדי שארכיטקטורת Qwen4Exp תוכל לאמץ נתיב דגימה ש-vLLM הוציאה באוגוסט. זו טיוטה. אלו 14 שורות של קוד מודל ועוד 57 שורות של בדיקות. ובכל זאת כדאי לקרוא אותה בעיון, בגלל מה ששלוש השורות הללו מכסות עליו: Qwen4Exp היא הארכיטקטורה שבתוך Qwen3.8-Flash-Next, המודל בקוד פתוח עם 125 מיליארד פרמטרים שהספק פרסם ב-2026-08-24 כ"תצוגה מקדימה ניסיונית של הארכיטקטורה שתעמוד בבסיס Qwen4" — ובאג של שני נתיבים בחצי הטקסטואלי בלבד של אותה ארכיטקטורה הוא בדיוק סוג הפרט שלומדים עליו רק מתוך התבוננות בשכבת ההגשה ולא בפוסט ההשקה.

כדי להיות חד-משמעיים לגבי המסגור, כי זה חשוב כאן: Qwen 4 טרם שוחרר. הספק הציג ארבע דרגות של Qwen 4 — Qwen 4 Max, Flash, Plus ו-27B — בכנס Apsara שלו ב-2026-09-22, ולא פרסם משקלים, מזהה, אורך הקשר או בנצ'מרק לאף אחת מהן. שום דבר להלן אינו שחרור. זהו סיכום של מה שאנחנו יודעים עד כה על בקשת משיכה אחת בטיוטה, וכל דבר בו שנושא מספר הוא או חתימת זמן שאפשר לאמת, או נתון שהמשתמש הקליד בגוף ה-PR שלו, או ערך שנקרא מקובץ תצורה ציבורי של מודל.

מהי דגימה מפוצלת לפי אצוות, בפסקה אחת

פרלליות טנזורית מפצלת את משקלי המודל בין ה-GPUs; הקרנת אוצר המילים היא הטנזור הבודד הרחב ביותר במערום, ולכן כל ראנק מחשב בדרך כלל רק את הפרוסה שלו של אוצר המילים — ואז כל ראנק מבצע all-gather, כך שכל אחד מהם מחזיק בסופו של דבר את הלוגיטים המלאים עבור כל בקשה באצווה. דגימה מפוצלת הופכת את החליפין הזה על פיו. במקום לשכפל את אוצר המילים בין הראנקים, היא מפצלת את האצווה: כל ראנק דוגם פרוסה אחת של הבקשות, והראנקים מחליפים ביניהם פרוסות של אוצר המילים באמצעות all-to-all. התיעוד הרשמי של vLLM ל-CLI מתאר את הדגל בפשטות — "כל ראנק דוגם פרוסה של האצווה במקום שכל ראנק ידגום את כולה" — ומפרט את האילוצים: --enable-batch-sharded-sampling מוגדר כברירת מחדל כ-False, דורש tensor_parallel_size גדול מ-1, לפחות tensor_parallel_size רצפים מקסימליים, וכן ערך אי-שלילי של max_logprobs. השורה האחרונה בתיעוד הזה היא הקרס שעליו תלוי ה-pull request הזה: "מודלים מצטרפים על ידי מימוש compute_logits_local."

התכונה עצמה אינה חדשה. vLLM מיזגה אותה כ-PR #50465 — "[Model Runner V2] batch-sharded sample", מאת Giancarlo Delfin — ב-2026-08-24, באותו יום שבו עלו המשקלים של Qwen3.8-Flash-Next. המוטיבציה שם הייתה זיכרון ושהיה: יצירה ממשית של לוגיטים מלאים של היעד עולה בסדר גודל של גודל אצווה × (טוקנים ספקולטיביים + 1) × גודל אוצר המילים, ופיצול (sharding) מקטין את ההקצאה הזו בפקטור של דרגת ה-tensor-parallel, ובמקביל מאפשר לעבודת ה-top-k וה-top-p של הדוגם לרוץ במקביל. זהו הצעד המאפשר, לא היעד: הטקסט של ה-PR עצמו מסמן לוגיטים מפוצלים של טיוטה כעבודה עתידית.

למה שלוש שורות היו כל העבודה

GitHub page for vllm-project/vllm pull request 61018, titled "[Model] Qwen4Exp: support batch-sharded sampling (compute_logits_local)", showing the Draft badge, a three-file diff with 71 additions, the qwen label and the PR body.

הנה הפגם האמיתי, והוא טוב כי הוא בלתי נראה מחוץ לקוד. המימוש של Qwen4Exp ב-vLLM מסופק כשתי מחלקות. Qwen4ExpForConditionalGeneration הוא עוטף הראייה-שפה — מגדל ראייה Qwen3-VL שמחובר למודל השפה — וQwen4ExpForCausalLM הוא המסלול לטקסט בלבד. העוטף יורש compute_logits_local מתוך Qwen3_5ForConditionalGeneration, אשר מעביר את הקריאה הלאה אל language_model.compute_logits_local. אבל מחלקת מודל השפה שהעוטף הצביע עליה מעולם לא הגדירה את השיטה הזו.

אז שני הנתיבים היו במצבים שונים. פריסת חזון-שפה של Qwen3.8-Flash-Next יכלה לקחת את הנתיב המפוצל; פריסת טקסט בלבד לא יכלה, מכיוון שהמתודה שהעוטף האציל אליה לא הייתה קיימת. התיקון הוא מתודה אחת, זהה בעותקים של קובץ המודל של NVIDIA ו-AMD:

• המתודה מחזירה self.logits_processor(self.lm_head, hidden_states, skip_gather=True) — את פלח אוצר המילים של הרנק עצמו, ללא gather וללא יצירה של אוצר המילים המלא בזיכרון באף רנק.

• זה עוקב אחר מה שה-PR מכנה "אותו דפוס בן 3 שורות כמו Qwen3.5 ו-MiniMax M3", וכדאי להתעכב על כך: שתי משפחות מודלים אחרות באותו מאגר כבר בחרו להצטרף. Qwen4Exp היה פשוט זה שטרם עשה זאת.

קובץ הבדיקה הוא המקום שבו הכי קל לבדוק את כנותו של הפאטץ', והמקום שבו הכי קל לראות את גבולותיו. הוא בן 57 שורות, הוא פרמטרי עבור שני המודולים, גם של NVIDIA וגם של AMD, והוא אינו מוריד מודל. פונקציית העזר בונה את המחלקה עם object.__new__, ומחליפה את nn.Identity עבור ראש מודל השפה, ומתקינה מעבד logits מזויף שמחזיר את הקלט שלו ועוד אחד, תוך תיעוד האופן שבו הוא נקרא. הבדיקה הראשונה טוענת ש-4.0 שנכנס יוצא כ-5.0, ושהקריאה שתועדה נשאה skip_gather=True. השנייה עוטפת את מודל השפה במחלקת היצירה המותנית וטוענת שההאצלה מגיעה ליעדה. זהו מבחן אמיתי של החיווט, ומבחן של שום דבר אחר — שום kernel אינו מופעל, שום גבול דרגה אינו נחצה, ומספר ה-GPU-ים המעורבים הוא אפס.

שתי העובדות האלה מוצהרות ב-PR ולא קבורות. ה-docstring של קובץ הבדיקה עצמו מכנה את Qwen4Exp "תחליף בדיקה זעיר ל-CPU בלבד". סעיף האימות של המחבר מציין שהוא כלל לא הצליח לייבא את המודל בהתקנת ה-macOS שלו, מפני שה-build של transformers שהיה לו לא כלל Qwen4ExpConfig. הרצת ה-CUDA עדיין לא בוצעה. הבנצ'מרק מקצה-לקצה — מערך הנתונים האג'נטי של MLPerf, 20 סשנים במקביל, שלוש זרועות של 60 דקות — עדיין לא בוצע. מסלול ה-logits של ה-drafter של MTP עצמו מסומן כלא נבדק. LoRA ממילא נדחה על ידי ה-flag במעלה הזרם, כך שהוא מחוץ לתחום ולא רגרסיה. יש גם שורה שמגלה שהטיוטה נכתבה בעזרת AI, וה-commit trailer מנה את Claude Opus 5.5 כשותף-מחבר — וזה סוג הגילוי שאמור להיות שגרתי בסטאק בגודל כזה, וברוב המקרים אינו.

ההערכה של 1.5%, והמדידות שלצידה

ההערכה של התורם היא nsys trace ב-16 סשנים במקביל על Qwen3.8-Flash-Next-FP8 עם tensor parallelism 8 ו-expert parallelism על פני שמונה כרטיסי A100-SXM4-40GB: כ-1.6 מילישניות מתוך צעד של 42 מילישניות, מקוצץ לכשליש מכך בערך, עבור שיפור מקצה לקצה של 1.5% עד 2%. הכותרת שלו היא האריתמטיקה — 0.6 עד 0.8 מ״ש מתוך 42 מ״ש. שימו לב למה שמחובר לכך: 42 מ״ש הוא נתון של השהיה בין טוקנים, כך שקיצוץ של 1.7% הוא קיצוץ של 1.7% בזמן יצירת טוקנים, ולא טענת תפוקה במופשט.

ההשוואה ההוגנת היא מול המספרים הממוזגים של תכונת האב עצמה, מפני שאלה נמדדו מקצה לקצה על ידי מישהו עם החומרה. בריצות Speed-Bench 2K/2K שפורסמו ב-PR #50465, דגימה מפוצלת-אצווה העבירה את DeepSeek V4 עם DSpark ב-7 טוקנים ספקולטיביים ובמקביליות 64 מ-2.62 ל-2.66 בקשות בשנייה — שיפור תפוקה של 1.53% — כאשר חביון חציוני בין טוקנים ירד ב-3.09% וזמן לטוקן הראשון עלה ב-1.45%. ב-MiniMax M3 עם DSpark ב-8 טוקנים ספקולטיביים, תפוקת הבקשות עלתה ב-5.38% ו-TPOT חציוני ירד ב-8.33% מ-15.61 ל-14.31 אלפיות שנייה. ואותה תוכנית מתעדת היכן זה לא עוזר: במקביליות 4 עד 16 הריצות יצאו שטוחות עד שליליות במקצת, כאשר זרוע המקביליות-16 ירדה ב-0.54% בתפוקה וב-1.89% באורך הקבלה.

התבנית הזו היא הדבר שצריך לקחת מכאן. דגימה מפוצלת (Sharded sampling) משתלמת כשהדגימה כבדה והאצווה רחבה — מקביליוּת גבוהה, הרבה טוקנים ספקולטיביים, top-k ו-top-p עושים עבודה אמיתית — והיא עולה קצת כשהאצווה קטנה מספיק כך ש-all-to-all הוא תקורה טהורה. אומדן של 1.5% עבור מודל אחד שבוחר להצטרף עולה בקנה אחד עם זה, ואינו עומד בסתירה לכך: המספרים 5.38% ו-8.33% שייכים למודלים שונים עם תקציבים ספקולטיביים שונים, ולמודל ב-PR הזה יש תצורה משלו, אוצר מילים משלו של 248,320 טוקנים ומסלול פענוח ספקולטיבי משלו.

שום דבר מזה אינו מבוקר. המספרים של ה-PR האב הם ריצות מזווגות של תורם אחד על צומת אחד; מספרי בדיקת העשן כאן הם טרייס על חומרה שאין למחבר, מגרסה של הטלאי שלטענתו נמדדה ב-16 סשנים בלבד. מדידה של תורם בודד בתצורה אחת היא אות מועיל לגבי כיוון ובסיס גרוע לתוכנית קיבולת. הסיבה שהנושא בכלל שווה כתיבה היא הכיוון, לא הספרה העשרונית.

מה אשכול הטלאים שמסביב אומר על Qwen4Exp

PR טיוטה אחד לא יהווה סיפור. הסיפור הוא ש-Qwen4Exp הפך ליעד שירות מתמשך בשבוע שבו זה נחת, והתיקון הקטן ביותר באשכול הזה הוא זה שהופך את הדפוס לקריא. בשבעת הימים עד 2026-10-10, vLLM הכיל, מאותו תורם ואחרים: מסלול מטמון KV ראשי FP8 ל-attention דליל על Ampere, עם קיבולת KV גבוהה פי 1.83 על שמונה A100s ופי 1.87 על ארבעה RTX 3090s וכ-2.7× יותר בקשות במקביליות 16, במחיר של TPOT פענוח בזרם בודד גבוה בכ-6%; תיקון לריפוד W4A4 MoE ב-tensor-parallel 1 ומקביליות מומחים; מסלול AMD שנופל חזרה מפעולות AITER FP8 MoE לא נתמכות ומשרת ב-fp16; תיקון שנושא את מצב הקונבולוציה הקצרה של PLE דרך מצב align; וקרנל פענוח שפורק בתים של e4m3 ארבעה בכל פעם לכל אוגר ב-sm_80. אחד מהם, כיוונון מחדש של תוכנית QSA LL-GEMM הממוזגת של H200 M=4, מוזג ל-main ב-2026-10-09.

קרא את הרשימה הזו כמכלול והיא אומרת משהו קונקרטי. ארכיטקטורת Qwen4Exp — זו שהספק טרם שחרר — מכווננת בו-זמנית עבור Ampere, Hopper, ROCm ומצב נסיגה ל-fp16, בפרויקט שמספק תמיכת יום-אפס במודלים שאנשים יכולים להוריד בפועל. הסיבה אינה מסתורית: Qwen3.8-Flash-Next הוא מודל אמיתי, בר-הורדה ובשימוש נרחב, והוא בנוי על הארכיטקטורה שבה ישתמש Qwen 4. האם המשקולות של Qwen 4 יגיעו אי-פעם במראה הזה אינו ידוע, והספק לא אמר דבר, אבל מעטפת ההגשה מתרחבת בפומבי, וזהו מידע שניתן לבדוק, בעוד שחלון אוקטובר עד נובמבר על-פי שמועות אינו כזה.

חלק מהצורה הארכיטקטונית הוא ציבורי גם כן, לכל מי שקורא את התצורה ולא את ההכרזה. התצורה של Qwen3.8-Flash-Next מפרטת אוצר מילים של 248,320 טוקנים על פני 48 שכבות, 512 מומחים עם 10 מנותבים ועוד אחד משותף שפעיל לכל טוקן ברוחב ביניים של מומחה של 640, גודל מוסתר של 2,560, והקשר מקורי של 262,144 טוקנים המתואר כניתן להרחבה למיליון. זה היברידי: רשימת סוגי השכבות מחליפה בין שלושה בלוקי קשב ליניארי לבלוק קשב מלא אחד, ובלוקי הקשב המלא משתמשים בנתיב קשב דליל עם אינדקסר בעל ראש אחד שדוחס מפתחות בפקטור של ארבעה ושומר על תקציב של 2,048 עמדות. קיימת טבלת הטמעה לכל שכבה בשכבה 2, הטמעת n-gram עם אוצר מילים של 20 מיליון ערכים — זו טבלת 47.7 GiB שטלאים אחרים באשכול זה עסוקים בהוסט-סטייג'ינג שלה — וראש MTP חד-שכבתי לפענוח ספקולטיבי. הסיכום של כרטיס המודל עצמו הוא "125B עם 6B פעילים, בתוספת הטמעת n-gram של 51B ו-MTP של 4B." אוצר מילים של 248,320 ערכים הוא הסיבה לכך שהטלת לוגיטים שווה פיצול מלכתחילה.

מה שזה לא משנה עבורך

כדאי לדייק, מפני שאשכול טלאים כה צפוף יכול להיקרא כמו השקה. אף אחד מהאמור לעיל אינו ממוזג, וחלק אחד ממנו — עבודת מטמון ה-KV מסוג FP8 של Ampere — אינו מאומת במפורש ב-CI מפני של-CI של vLLM אין A100. אין גרסת vLLM משוחררת שאפשר להתקין היום ונושאת את ה-opt-in של Qwen4Exp ל-sharded-sampling. אין בנצ'מרק עצמאי של התנהגות ההגשה של Qwen3.8-Flash-Next תחת אף אחד מהשינויים האלה; כל מספר שצוטט לעיל מגיע מגופי ה-PR, מה שהופך אותם לדיווחי תורמים ובלתי מבוקרים במובן הספציפי שאף צד שלישי לא שחזר את ההרצה. והמספר הכותרתי ב-PR שהתחיל את הכתבה הזו הוא 1.5%, שהוא רווח אמיתי בסטאק הגשה ולא סיבה לשנות בחירת מודל.

מה שישנה החלטה הוא ריצה מלאה ומבוקרת, והיא טרם קיימת. מדידות הקצב שקיימות עבור Qwen3.8-Flash-Next נמצאות מחוץ לטלאים האלה לחלוטין: המודל מקבל ציון Intelligence Index של 40 ב-Artificial Analysis, הרבה מעל החציון של 18 עבור מודלים במשקולות פתוחות בגודל דומה, ונתון זה בלתי תלוי בכל מה שנדון כאן.

מה אתה יכול לקרוא היום, והזווית של הניתוב

OrcaRouter model page for qwen/qwen3.8-flash, listing one-million-token context, 131,072 max output, a $0.15 input and $0.47 output list price, and the api.orcarouter.ai base URL.

כאן התמונה הופכת למעשית עבור כל מי שקרא עד כאן ורוצה להשתמש במודל מתארח במקום לבצע אינסטרומנטציה על מודל משלו. Qwen3.8-Flash-Next אינו נמצא בקטלוג של OrcaRouter — הוא אינו אחד מ-205 המודלים שאנו מנתבים, ואין כאן נקודת קצה מתארחת עבורו. אבל אחיו המיועד לייצור, שהוא תצוגה מקדימה שלו, כן: qwen/qwen3.8-flash, המהדורה הרשמית של Qwen3.8-Flash שכרטיס המודל של הספק עצמו מתאר ככזו שנושאת יותר תכונות מהתצוגה המקדימה, כולל חלון הקשר של מיליון טוקנים כברירת מחדל וכלים מובנים, זמינה במחיר של 0.15$ למיליון טוקני קלט ו-0.47$ למיליון טוקני פלט, בהעברה במחיר המחירון של הספק ללא תוספת רווח. לשם השוואת סדרי גודל באותה משפחה, qwen/qwen3.8-27b עולה 0.33$ ו-2.40$, ו-qwen/qwen3.8-max 2.00$ ו-6.00$ — כולם נגישים במפתח אחד.

יש שתי סיבות לכך שזה חשוב יותר מהרגיל בכתבה על ארכיטקטורה שטרם שוחררה. הראשונה היא עלות המעבר. אם אתה רוצה לכייל איך מודל sparse-attention מרגיש על התעבורה שלך לפני ש-Qwen 4 קיים, ההשוואה שתרצה להריץ היא מול qwen/qwen3.8-flash במחיר מחירון — וביצוע זה דרך ראוטר אומר שהמודל שאתה מודד והמודל שאליו אולי תחזור נמצאים מאחורי אותה נקודת קצה, אותו SDK ואותו מפתח, בלי חוזה שני לחתום עליו. השנייה היא שכל שינוי הגשה במקבץ הטלאים הזה מכוון ל-vLLM באירוח עצמי. אם אתה לא מריץ שמונה A100s, קיבולת ה-KV של פי 1.83 והרווח של 1.5% בדגימה הם דברים שאתה קורא עליהם, לא דברים שאתה מקבל. נקודת קצה מנותבת היא הגרסה של זה שמגיעה בלי שלב בנייה: מעבר אוטומטי לגיבוי אם ספק מדרדר, ו-DSL לניתוב שמאפשר לך להציב קריאה מתארחת לצד קריאה באירוח עצמי בנקודת קצה אחת, כשיש לך חומרה משלך למדוד.

הדבר האחד שאסור לעשות הוא לקרוא את המאמר הזה כסיבה להמתין ל-Qwen 4. אין תאריך. אין מחיר. אין מספר משקולות לדבר האמיתי — המספרים שלמעלה מתארים את גרסת התצוגה המקדימה, לא את המוצר. מה שכן קיים הוא מערכת הגשה שנבנית בפומבי עבור ארכיטקטורה שאפשר להוריד, לעת עתה, רק בצורת תצוגה מקדימה.

הגרסה הקצרה

Two-column scoreboard comparing batch-sharded sampling without the flag and with it across path, rank memory, sampler work, reported gain and status, footnoted as the PR body estimate on Qwen3.8-Flash-Next-FP8, TP8 plus EP, eight A100-SXM4-40GB, not independently audited.

שלושה שורות שסוגרות פער בין מסלולי טקסט בלבד למסלולי שפה-חזות בקובץ מודל אחד אינן, כשלעצמן, חדשות. זה סוג של תיקון שהיה נקבר ב-commit מיזוג אילו למישהו היה זמן לסקור אותו, והוא בהחלט עשוי להיקלט בשינוי גדול יותר או להיסגר לחלוטין — הנחיות הסוכן של הבוט של vLLM עצמו, המצוטטות ב-PR, מורות לתורמים בסיוע AI לסגור את עבודתם אם אין בה תועלת משמעותית, ו-1.5% הוא מספר שמזמין את השאלה הזאת. מה שהופך אותו לראוי לתשומת לבך הוא הדבר שהוא מתעד: טבלת n-gram בת 20 מיליון ערכים, MoE עם 512 מומחים שכעשרה מומחים פעילים לכל טוקן, שילוב היברידי של קשב ליניארי וקשב דליל דחוס, ראש ספקולטיבי — כשהכול מכוונן על פני NVIDIA ו-AMD, מ-Ampere ועד Hopper, לפני שהמוצר שנושא אותו קיים. אם אכפת לך ממעטפת ההגשה של Qwen4, תוכן ה-PR הוא המקום שבו המפרטים האמיתיים שלה נמצאים כיום. אם ברצונך להפעיל מודל היום, Qwen3.8-Flash הוא זה שבאמת נמצא שם.

API אחד ל-200+ מודלים, failover אוטומטי, DSL לניתוב. גלו את קטלוג המודלים של OrcaRouter

השוואות במאמר הזה2

זוהה מתוך המאמר הזה · בנצ'מרקים: Artificial Analysis · מתעדכן יומית