
Ternary Bonsai 2 27B: מה נכנס ב־5.9 GB, ומה שה־98.2% לא מספר לך
- OrcaחדשOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $5.00 לכל 1M טוקנים
- orcaחדשOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 לכל 1M טוקנים
- deepseekחדשDeepSeek: DeepSeek V4.1 Flash2026-09-1040אינטליגנציה
- openaiחדשOpenAI: GPT-6 Astra2026-09-0453אינטליגנציה77כתיבת קוד
- googleGoogle: Gemini 3.8 Flash2026-09-0241אינטליגנציה76כתיבת קוד
- qwenQwen: Qwen3.8 Max (0902)2026-09-0245אינטליגנציה76כתיבת קוד
- anthropicAnthropic: Claude Fable 5.12026-09-0153אינטליגנציה82כתיבת קוד
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 לכל 1M טוקנים
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642אינטליגנציה72כתיבת קוד
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 לכל 1M טוקנים
- z-aiZ.ai: GLM 5.32026-08-1845אינטליגנציה75כתיבת קוד
- obsidianQwen3.8 27B2026-08-1534אינטליגנציה68כתיבת קוד
- deepseekDeepSeek: DeepSeek V4 Pro 08132026-08-1236אינטליגנציה69כתיבת קוד
- grokSpaceXAI: Grok 4.62026-08-1244אינטליגנציה77כתיבת קוד
- metaMeta: Muse Spark 1.22026-08-0540אינטליגנציה72כתיבת קוד
- qwenQwen: Qwen3.8 Max2026-08-0345אינטליגנציה76כתיבת קוד
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3135אינטליגנציה69כתיבת קוד
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 לכל 1M טוקנים
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
Ternary Bonsai 2 27B הוא מודל שפה מולטימודלי בן 27.36 מיליארד פרמטרים ש-Prism ML הכריזה עליו ב-17 בספטמבר 2026, והדבר שצריך להבין לגביו הוא שמשקולות השפה שלו מקבלות אחד משלושה ערכים בדיוק. מודל הבסיס שלו הוא Qwen3.8 27B — מודל קשב היברידי בן 27B — ו-Bonsai שומר על הארכיטקטורה הזו, על האימון הזה ועל הצורה הזו, ומחליף את משקולות המטריצה של מודל השפה בייצוג טרנרי. הקובץ שמסופק הוא 5.93 GB. ההפניה ברמת דיוק מלא היא 53.81 GB. הטענה המרכזית של הספק היא שהוא שומר על 98.2% מממוצע הבנצ'מרקים של המקור.
התחל מהחלק שרוב הסיקור ידלג עליו: ש-98.2% הוא המספר של Prism ML עצמה, שנמדד על סוויטת 20 הבנצ'מרקים של Prism ML עצמה, עם ההרנס של Prism ML עצמה, ואף אחד מחוץ לחברה לא שחזר אותו. זה לא האשמה — זה המצב הרגיל יום אחרי שחרור, וזה בדיוק המעמד שאתה צריך לייחס לו. מה שאתה יכול לאמת באופן עצמאי היום הוא הקובץ: ה-API של Hugging Face מפרט Ternary-Bonsai-2-27B-PTQ1_0.gguf ב-5.947 GB לעומת רפרנס ה-FP16 ב-53.808 GB, שזה הפחתה של פי 9.05 ומתאים ל-״בערך פי 9״ של הספק בלי שתצטרך לסמוך על אף אחד. הגודל הוא עובדה. שימור האיכות הוא מדידה של הספק. החומר המעניין נמצא באמצע — הפירוט לפי קטגוריות, שמראה בדיוק היכן הדחיסה היא בחינם והיכן היא לא.
יש גם פן שני למהדורה הזו. ב-18 בספטמבר, יום אחד לאחר ההכרזה, פרסמה OrcaRouter גרסה שעברה אבליטרציה בזמן ריצה של אותו מודל — הווריאנט OrcaRouter Ternary Bonsai 2 27B Uncensored — אשר מסיר כיוון סירוב נלמד בזמן הסקה ומשאיר את המשקולות זהות ביט-בביט. הוא נדון בסעיף משלו בהמשך, משום שהטכניקה היא החלק המעניין ומשום שמגבלותיו מלמדות לא פחות מתוצאותיו.
זהו Qwen3.8 27B מכווץ, ולא מודל שאומן לאחרונה
ההבחנה הזו היא ההבדל בין להסביר את ההשקה לבין לחזור על הודעה לעיתונות. Prism ML לא אימנה מודל 27B מאפס ולא הריצה מתכון חדש לאימון מקדים. מה שהיא כן עשתה היה לקחת את Qwen3.8 27B ולשנות את הייצוג המספרי שבו מאוחסנות ומחושבות המשקולות שלו.
הארכיטקטורה לא השתנתה, והיא של מודל הבסיס: עיצוב קשב היברידי שהוא בערך 75% קשב ליניארי ו-25% קשב מלא, עם בלוקי SwiGLU MLP, RoPE ו-RMSNorm. עמוד השדרה ההיברידי הזה הוא גם הסיבה לכך שההקשר של 262K טוקנים מתואר כמסוגל להקשר מלא ולא רק נתמך — קשב ברובו ליניארי הוא מה ששומר על הקשר ארוך במחיר סביר במכשיר. המודל הוא מודל שפה-חזות: הוא מקבל תמונות כמו גם טקסט, ומגדל החזות הוא מגדל Qwen המקורי, הלא מכומת, ארוז בנפרד.
מה ש-Prism ML תרמה הוא שני דברים. הראשון הוא הייצוג הטרנארי עצמו בתוספת האימון המודע לכימות שמאפשר לו לשרוד. השני הוא הקרנלים — קרנלים מותאמים לנמוך-ביט עבור מחסנית הקשב ההיברידית הזו על Apple Silicon ו-CUDA, שפועלים ישירות על המשקלים הארוזים במקום לפרוק אותם ל-FP16 ולהכפיל. בלי התרומה השנייה, הראשונה היא פורמט אחסון בלי דרך להשתמש בו במהירות.
המסמך הלבן של Prism ML עצמה מדווח על חלוקת הפרמטרים כ-24.35B בעמוד השדרה הלשוני על פני 64 בלוקים, 2.54B בהטמעה ובראש LM, ו-0.47B במגדל הראייה בעל 27 בלוקים, לסך כולל של 27.36B. מגדל הראייה הוא החלק היחיד שהוא באמת ארטיפקט שונה: גרסת ה-GGUF אורזת אותו כקובץ mmproj של 4 סיביות בגודל של כ-0.63 GB, שנטען רק כאשר תמונה מגיעה בפועל, כך שהגשה של טקסט בלבד לעולם לא נושאת אותו.
זהו ה-Bonsai מהדור השני מאותה מעבדה; ה-Bonsai 27B הראשון הגיע ביולי 2026, כחודשיים קודם לכן, וההשוואה בין שני הדורות היא שאלה סבירה — כזו שאנו עוסקים בה בעימות הישיר מול Bonsai 27B במקום לשכפל אותה כאן.
מה המשמעות של "ternary g128", באופן קונקרטי?
אם עדיין לא נתקלתם במשקלים תלת־ערכיים, זו הפסקה שהופכת את כל השאר לקריא, אז הנה היא בלי קיצורים.
משקל רגיל ברשת עצבית הוא מספר נקודה צפה של 16 סיביות — כ-65,536 ערכים ניתנים להבחנה בטווח שימושי, כשכל אחד מהם עולה 16 סיביות לאחסון. משקל טרנרי אינו מספר נקודה צפה קטן. הוא בחירה מבין שלושה סמלים: −1, 0, או +1. זהו כל אוצר המילים. אם תאחסן סמל אחד כזה באופן נאיבי, תוציא שני סיביות לכל משקל, מכיוון ששתי סיביות נותנות לך ארבעה מצבים ואתה צריך רק שלושה.
כשלעצמו זה יהיה אובדן קטסטרופלי של כושר ביטוי, ולכן הפורמט לעולם אינו רק הסמל. כל קבוצה של 128 משקלים רצופים חולקת גורם קנה מידה יחיד מסוג FP16, וערך המשקל בפועל הוא הסמל הטרינרי כפול אותו גורם קנה מידה:
• w = ssub>g/sub> · t, כאשר t ∈ {−1, 0, +1} ו-ssub>g/sub> הוא סקאלת FP16 משותפת אחת עבור הקבוצה של 128
אז המודל עדיין מייצג טווח רחב של גדלים — הוא פשוט מייצג אותם בצעדים גסים, ברמת הקבוצה, במקום צעדים ברמת כל משקל בנפרד. האפס אינו תוצר לוואי של עיגול; זהו מצב שלישי ממשי, ועצם קיומו הוא מה שמאפשר לקבוצה של 128 משקלים להיות שקטה ברובה כשהיא צריכה להיות כזו.
הבסיס המסובב הוא החלק שמפתיע אנשים. לפני שמתרחשת ההקצאה הטרנרית, כל מטריצת משקלים עוברת טרנספורמציה באופן בלוקי על ידי סיבוב אורתוגונלי — מטריצת וולש–הדמר משולבת עם אלכסון קבוע של סימני ±1, בגודל בלוק 1024 — והערכים הטרנריים נבחרים במרחב המסובב הזה. הסיבוב מקופל לתוך המשקלים המאוחסנים במהלך ההכנה, כך שהוא לא עולה ביטים נוספים ולא תעבורת משקלים נוספת. בעת האינפרנס, סביבת ההרצה מיישמת את הטרנספורמציה המתאימה על האקטיבציות במקום, והמודל הארוז מצהיר על הסיבוב שלו במטא-נתונים שלו, כך שסביבת הרצה או מיישמת את הטרנספורמציה המתאימה או מסרבת לטעון את הקובץ.
למה בכלל להתאמץ? כי סיבוב Hadamard מפזר את האנרגיה של מטריצת משקלים באופן אחיד יותר על פני הקואורדינטות, מה שהופך את הקוונטיזציה התלת-רמתית שלאחר מכן להרבה פחות מזיקה ממה שהיא הייתה על ההתפלגות הגולמית והמחודדת. הסיבוב אינו קישוט; הוא הסיבה לכך שמודל טרנרי יכול לשמר משהו שדומה לאיכות של ההורה. המחיר הוא שהטרנספורם יושב על הנתיב הקריטי של כל הטלה בגודל אצווה 1, וזו בעיה הנדסית אמיתית — Prism ML ממזגת את היפוך הסימן לנתיב הטעינה של הטרנספורם ב-Metal ומקבילה אותו על פני בלוק תהליכונים שלם ב-CUDA כדי למנוע ממנו להשתלט על הפענוח.
המספרים, בקפידה: 1.585, 1.71, 1.72, 1.76
ארבעה מספרי רוחב־סיביות מסתובבים סביב גרסה זו, וכולם נכונים, והם מודדים ארבעה דברים שונים. ערבוב ביניהם הוא הטעות הקלה ביותר בסיפור הזה. הנה כל אחד מהם ומה שהוא באמת מכסה.
• 1.585 סיביות למשקל — תוכן המידע של סמל תלת-ערכי אחד, log₂3. זו תכונה של הפורמט, לא של קובץ כלשהו. שום דבר שהופץ לא רץ ב־1.585 סיביות למשקל.
• 1.71 ביטים למשקל — רק הטנסורים הטרנריים. הוסף את סקאלת הקבוצה FP16 בת 16 הסיביות, הנפרסת על פני 128 משקלים, ותקבל log₂3 + 16/128 ≈ 1.71. עדיין לא נתון של מוצר ששוחרר; אלה הטנסורים הטרנריים בבידוד.
• 1.72 סיביות לכל משקל — כל פרמטר במודל השפה, כולל הקבוצה הקטנה שנשמרת מעל הייצוג בסיביות נמוכות. Prism ML שומר 26,238,464 פרמטרים — 0.0976% ממודל השפה, כ-52 MB ב-bf16 — בדיוק גבוה יותר, בעיקר נתיב המצב הנשנה של שכבות הקשב הליניארי בתוספת משקולות נרמול. הטנסורים האלה אינם מסובבים ואינם מכומתים, והם אלה שמזיזים את הנתון מ-1.71 ל-1.72. ב-1.72 טביעת הרגל האידיאלית היא 5.80 GB, הפחתה של בערך פי 9.3. זוהי השורה "True Ternary" של Prism ML, והיא יעד ולא קובץ שאתם מורידים.
• 1.76 סיביות למשקל — ה-GGUF האמיתי שמופץ. קרנלים יעילים זקוקים לפורמט אריזה, וה-PTQ1_0 של Prism ML אורז טריטים בצפיפות, ומגיע ל-1.76 סיביות/משקל ב-5.93 GB, בערך פי 9.1. זהו הקובץ שעומד מאחורי גם ה-"5.9 GB" וגם ה-"קטן פי 9" שמצוטטים בהודעה, והוא זה שהמדידות שלמעלה מאשרות.
האריזה השנייה היא PQ2_0, אשר מאחסנת כל טריט בחלון של 2 סיביות ולא באופן צפוף. היא גובה יותר מקום תמורת פריקה זולה יותר: 2.16 סיביות/משקל ב-7.25 GB, בערך פי 7.4. אף אחת מהאריזות אינה מהירה באופן אחיד — PTQ1_0 מעבירה בכל צעד כ-18% פחות נתוני משקל אך משלמת בחישוב כדי לפרוק טריטים צפופים, ולכן היא מנצחת בכרטיסי דור Ada וב-L4, שבהם הזיכרון הוא האילוץ המכריע, ומפסידה ב-Hopper, Blackwell וב-Apple silicon, שבהם פענוח באצווה 1 מוגבל במקום זאת על ידי תפוקת ההוראות. עיבוד פרומפט מעדיף את PQ2_0 בכל מקום, מכיוון שהוא מוגבל על ידי חישוב.
שתי הערות שוליים למי שבודק את אלה מול המקורות. ראשית, המסמכים של Prism ML עצמה מעגלים מעט אחרת — טבלת האחסון במאמר הלבן מציינת את PTQ1_0 כ-1.76 סיביות/משקל ב-5.93 GB, בעוד שכרטיס המודל GGUF ב-Hugging Face מציין 1.75 ו-5.95 GB, והקובץ הנמדד הוא 5.947 GB. מדובר באותו קובץ המתואר ברמות דיוק שונות, ולא באי-הסכמה מהותית. שנית, הצמצום המוצהר של "יותר מפי 9" הוא של הספק; כשמודדים אותו מול הקבצים בפועל מתקבל 53.808 / 5.947 = 9.05x, וזה עקבי.

תמונת אמת המידה: לא הממוצע, אלא הצורה
הכותרת היא ממוצע של 83.9 מול 85.4 עבור קו הבסיס Qwen3.8 27B FP16, שהוא 98.2%. הממוצע הוא החלק הפחות מעניין בזה. הצורה שמתחת היא המקום שבו נמצא המידע האמיתי, והיא אינה אחידה.
• ביצוע הוראות — 82.66 לעומת 81.25. זוהי הקטגוריה היחידה שבה המודל הדחוס גובר על מודל האב שלו בעל הדיוק המלא. זה לא רעש שאפשר לתרץ אותו כלאחר יד; זהו ניצחון קטגורי במערך הבדיקות של הספק עצמו.
• מתמטיקה — 96.57 לעומת 97.06, וקידוד — 81.58 לעומת 82.17. שניהם בעצם באותה רמה: חצי נקודה ושש עשיריות נקודה בממוצעי הקטגוריות. עבור מודל בתשיעית מטביעת הרגל, אלו התוצאות שכל השיטה נבחנת לפיהן.
• ידע והסקה — 83.95 לעומת 86.66. ירידה של 2.7 נקודות, וכאן טמון חלק משמעותי מ-1.8 הנקודות החסרות בממוצע הכולל.
• ראייה — 78.59 לעומת 81.64. ירידה של 3.05 נקודות, ההפסד הגדול ביותר בקטגוריה בודדת. יש לציין שמגדל הראייה עצמו אינו החלק הדחוס; החלק הדחוס הוא מודל השפה שקורא את הפלטים שלו.
• סוכני וקריאה לכלים — 77.57 לעומת 79.74. הממוצע בקטגוריה מכסה את τ 2-Bench ב-80.22 ואת BFCL v3 ב-74.92.
תוצאות בודדות שכדאי להכיר, כי לא כולן מצביעות לאותו כיוון. ב-Terminal-Bench 2.1 המודל משיג 52.8 לעומת 69.7 בדיוק מלא — בערך שלושה רבעים — וב-SWE-bench Verified הוא משיג 60.8 לעומת 80.6, שוב בערך שלושה רבעים. זו הייתה הפעם הראשונה שמשפחת מודלים זו הוערכה ב-Terminal-Bench, ו-Prism ML מבהירה במפורש שהרווחים ארוכי-הטווח בהנדסת תוכנה שהיא הבטיחה במהדורת Bonsai הראשונה הם חלקיים, לא מלאים. מנגד: τ 2-Bench עלה ל-80.2 מ-73.6 במהדורה הקודמת, BFCL v3 נשאר על 74.9, ו-AA-LCR עומד על 77.0, במרחק נקודה אחת מדיוק מלא. AIME26 נוחת על 95.83 ו-LiveCodeBench על 90.07.
היכן לסמוך על זה והיכן לא. סמוך על הצורה במתמטיקה, בקידוד ובעמידה בהוראות — אלה הקטגוריות שבהן הטכניקה מוכיחה בבירור שהיא עושה את מה שהיא מצהירה, והן נמדדות על אותו הארנס שעליו נמדד קו הבסיס. היה זהיר בנוגע לעבודה סוכנית בטווח ארוך: שני מדדי הביצועים שבאמת מעמידים במבחן הנדסה מתמשכת מונחית־כלים, Terminal-Bench 2.1 ו-SWE-bench Verified, מציגים פער גדול באופן מהותי מכפי שהמכלול מרמז, והספק אומר זאת במקום להסתיר זאת. והתייחס לכל הטבלה כאל מדידה של מעבדה אחת על הארנס אחד עד שמישהו אחר יריץ אותה. ההסתייגות הזו אינה עניין של פורמליות כאן — היא זו שעושה את ההבדל בין "המודל הזה שומר על 98.2%" לבין "הספק של המודל הזה מדד 98.2% על חבילה שהספק בחר." שתיהן נכונות; רק אחת היא עובדה על המודל.

למה זה עדיף על בילד IQ2_XXS של אותו מודל בסיס
זה ראוי לסעיף משל עצמו ולא לשורה, כי זה כל הטיעון בעד אימון טרנרי מודע לכימות על פני כימות לאחר אימון.
הדרך המקובלת להקטין את Qwen3.8 27B היא לכמת אותו לאחר האימון. נקודת ההשוואה במסמך הלבן היא בנייה מסוג IQ2_XXS GGUF של אותו מודל בסיס:
• Ternary Bonsai 2 27B — 1.76 סיביות למשקל, 5.93 GB, ממוצע של 20 בנצ'מרקים 83.9
• Qwen3.8 27B IQ2_XXS — 2.2 סיביות/משקל, 7.3 GB, ממוצע של 75.2 על פני 20 מבחנים
המודל הדחוס באמצעות אימון הוא גם קטן יותר וגם טוב יותר. הוא קטן פי 1.23 מהמבנה המקובל בביטים נמוכים ומשיג ציון גבוה ב-8.7 נקודות. השילוב הזה אינו קוריוז של עיגול; זו הטענה שייצוג שנבחר במהלך האימון שווה באופן מהותי יותר מאותו תקציב ביטים נומינלי שהוחל לאחר מכן.
החלק המאלף יותר הוא כיצד הבנייה המקובלת נכשלת, מפני שהכישלון סלקטיבי וקל לפספס אותו. IQ2_XXS אינה נדרדרת באופן אחיד. היא מחזיקה מעמד בידע שטחי — 85.79 ב-MMLU-Redux — בעוד שהיא קורסת במשימות הדורשות שרשראות חשיבה מתמשכות: 78.6 ב-AIME26, 70.05 ב-LiveCodeBench, 65.45 ב-GPQA Diamond. Bonsai 2 משיגה 95.83, 90.07 ו-85.76 באותן שלוש משימות. מבחן צ׳אט מזדמן ימצא את הבנייה של IQ2_XXS כשמישה לחלוטין ולעולם לא יחשוף את הקריסה; הנזק נמצא בדיוק במקום שבו מתרחשים חשיבה ארוכה ויצירת קוד. האסימטריה הזו היא הסיבה לכך ש"זה הרגיש בסדר כשניסיתי את זה" אינו מהווה ראיה לגבי מודל מכומת.
Prism ML מכווץ את אותו טיעון לנתון נגזר יחיד שהוא מכנה צפיפות אינטליגנציה — בקירוב, יכולת בנצ'מרק לג'יגה-בייט. בחבילת 20 בנצ'מרקים הוא מדווח 0.444 ל-GB עבור Bonsai 2, 0.276 עבור גרסת IQ2_XXS, ו-0.051 עבור FP16. המדד הוא בנייה של הספק עצמו, והשקלול שלו הוא בחירה עיצובית, לא חוק; אך הסדר שהוא מייצר הוא אותו סדר שהטבלה הגולמית מייצרת, כך שהוא מוסיף פרשנות ולא ראיות.
הערה כנה נוספת על ההשוואה. כרטיס המודל GGUF של Prism ML מדווח על הערכה שנייה וצרה יותר — חבילת מצב חשיבה בת 14 מבחנים — שבה אותו נתון שימור מופיע שוב ב-84.78 לעומת 86.32, כאשר IQ2_XXS עומד על 72.59. שתי חבילות שונות שמגיעות לאותו 98.2% הן חיזוק קל לכך שהטענה המצטברת אינה תוצר לוואי של בחירת מבחן אחת. עדיין אותה מעבדה מריצה את שתיהן, על אותה תשתית הרצה. הפירוט המלא יותר שלנו של ההתמודדות הזו, כולל שאלת פורמט האריזה, נמצא בהשוואה מול גרסאות ה-GGUF של Qwen3.8 27B.
מה זה באמת דורש כדי לרוץ
מספרי התפוקה, מתוך מדידת tg128 הסטנדרטית של המאמר הלבן בגודל אצווה 1 וללא מגדל הראייה:
• Apple M5 Max — 46.8 tok/s פענוח, 765 tok/s עיבוד פרומפט
• Apple M5 Pro — פענוח של 27.7 tok/s; הרצה נפרדת בחלון ארוך יותר של חבילת PQ2_0 מדדה 27.0 tok/s בקצב מתמשך, בצריכת 27.0 W במסילת ה-GPU ו-32.8 W על פני ה-CPU וה-GPU
• Apple M4 Pro — 18.0 tok/s פענוח, כאשר עיבוד הפרומפט בקצב של כ-125 tok/s הופך לגורם המגביל בהקשרים ארוכים במיוחד
• NVIDIA RTX 5090 — 142.5 tok/s פענוח בחבילת PQ2_0 ב-0.582 mWh לכל טוקן
הטענה המעשית ש-Prism ML מציגה אינה יחס האצה אלא היעדר: בסיס ה-FP16 בנפח 53.8 GB אינו נכנס כלל במחשב נייד של 16 GB, ולכן ההצהרה המשמעותית היא שמודל בדרגת 27B פועל כעת באופן אינטראקטיבי על חומרה יומיומית. ב-M5 Pro, הפענוח הנמדד מזרים כ-201 GB/s של משקלים, מה שמאשר את הפרופיל הנשלט על ידי רוחב פס הזיכרון שייצוג הביטים הנמוך נועד לנצל.
ואז מקרי הקצה, שחשובים יותר ממספרי השיא.
לא ניתן להשתמש ב-llama.cpp הסטנדרטי. קרנלי הקשב ההיברידיים הטרנריים נמצאים בפורק של llama.cpp של Prism ML עצמה. llama.cpp הסטנדרטי דוחה את הטיפוסים PTQ1_0 ו-PQ2_0 כלא מוכרים, וחמור מכך — טוען את פורמט Q2_0 הטרנרי הישן יותר בלי שום אזהרה ומייצר זבל, משום שאין לו זמן ריצה של הפעלת Hadamard. אם תריצו את המודל הזה על בינארי שלא מיישם את הסיבוב המתאים, לא תקבלו שגיאה; תקבלו שטויות שנראות רהוטות. זו הדרך הסבירה ביותר לבזבז אחר צהריים על מהדורה זו.
לחבילת MLX אין נתיב CUDA. מהדורת MLX (prism-ml/Ternary-Bonsai-2-27B-mlx-2bit) מיועדת ל-Apple Silicon, ושם יש לה קרנלים מותאמים אישית עבור הסטאק ההיברידי הן בסביבות ההרצה של Python והן ב-Swift. לכפל המטריצות המקוונט שלה יש קרנלים של Metal ושל CPU אך אין מימוש CUDA, כך שבמכונה עם NVIDIA החבילה המסוימת הזו לא מקבלת האצת GPU כלל. הסקה על CPU עובדת, אך מעבר קדימה של 27B על CPU יכול להימשך דקות — מה שהופך את נתיב ה-CPU של Linux לשימושי לבדיקות מימוש ולשחזוריות, וחסר תועלת להגשה.
שתי החבילות הן החלפה אמיתית, לא דירוג. אם אתם על כרטיס מדור Ada או על L4, או שהזיכרון הוא האילוץ המכריע, PTQ1_0 הוא הבחירה ב-5.93 GB. אם אתם על Hopper, Blackwell או 5090, PQ2_0 קונה לכם מהירות פענוח תמורת 1.3 GB. אם אתם על Apple silicon, שימו לב שהנתונים של M5 Pro לעיל נמדדו על PQ2_0, שהיא גם החבילה שתצורת ההדגמה מורידה כברירת מחדל.
הערה על החשבונאות של חבילת MLX עצמה, מכיוון שזהו מקור נפוץ לבלבול. מיכל MLX הוא פורמט אפיני של 2 סיביות שהבלוק שלו מאחסן גם סקאלת FP16 וגם הטיית FP16 עבור כל קבוצה של 128 משקלים. המשקלים הטרינריים של Bonsai זקוקים רק לסקאלה — הרמות נובעות מהסקאלה בלבד — כך שההטיה היא משקל מת, והבלוק עולה 36 בייטים לכל 128 משקלים במקום 34. זה דוחף את הקצב הארוז של חבילת MLX ל-2.250 סיביות/משקל, לא 1.72 ולא 1.76. זהו מיכל שונה הנושא את אותם ערכים טרינריים, והקובץ הנמדד שלו ב-Hugging Face הוא 8.005 GiB.
הגרסה שעברה אבלציה בזמן ריצה
ב-18 בספטמבר, OrcaRouter פרסמה את OrcaRouter Ternary Bonsai 2 27B Uncensored, אשר מיישמת אבלציה של כיוון הסירוב על המודל הזה כולו בזמן ריצה. הרעיון ההנדסי שווה יותר תשומת לב מאשר המוצר, ולכן הנה הרעיון תחילה.
אבליטרציה קונבנציונלית עורכת משקלים. היא מוצאת כיוון במרחב האקטיבציות שמתאים להתנהגות של סירוב, ואז מאנכת מולו את מטריצות המשקל שכותבות אל זרם השארית: W ← W − r(rᵀW). במודל FP16 רגיל זה בסדר גמור — המטריצה הערוכה היא עדיין מטריצה צפופה של נקודה צפה, אז שומרים וממשיכים הלאה. באריזת טרנרי זה מבוי סתום, ולמעשה זה מבוי סתום מהסיבה שכל המודל הזה קיים. אִנְכוּ של מטריצת טרנרי מפיק מטריצה צפופה ברמת דיוק מלאה. כדי לשמור אותה חזרה לתוך אריזת הטרנרי תצטרכו לכמת מחדש — וכימות מחדש של משקלים ערוכים אינו משחזר את אימון מודע-הכימות שהפיק את המקור. הייתם זורקים בדיוק את מה שנקנה.
אז ההטלה עוברת לזמן ההסקה במקום זאת. במקום לשנות את W, שנה את הפלט שלו:
• y ← y − α · dot(y, r) · r, מחושב ב-float32, כאשר y הוא תרומת שארית ו-r הוא כיוון הסירוב המנורמל
ב-α = 1 מוסר הרכיב של כל כתיבת שייר המקביל לכיוון הסירוב. ב-α = 0 המודל נשאר ללא שינוי. α גדול מ-1 מקרין יתר על המידה ועלול לפגוע באיכות. מכיוון ש-α הוא פרמטר של זמן ריצה ולא מאפיין של נקודת ביקורת, אותה חבילה יכולה להיבחן ב-A/B מול עצמה באותו תהליך — וזה בדיוק מה שההערכות של OrcaRouter עושות. חבילת Bonsai המקורית נשארת זהה ביט-בביט: אפס משקולות שונו, אפס קוונטיזציה מחדש, אפס שגיאת קוונטיזציה נוספת במשקולות.
שני פרטי מימוש הם המקום שבו גרסה נאיבית של זה נכשלת.
129 אתרי התערבות, לא 16. כל מודול שיכול לכתוב אל זרם השארית חייב להיות עטוף, ובארכיטקטורה ההיברידית הזו מדובר ב-64 בלוקי mlp.down_proj, 48 שכבות linear_attn.out_proj, 16 שכבות self_attn.o_proj, ו-model.embed_tokens — 129 בסך הכול. לעטוף רק את self_attn.o_proj היא הטעות המובנת מאליה והיא תופסת 16 מהם, ומותירה את 113 הכתיבות האחרות ללא היטל. סקריפט בדיקה עצמית מודד אם הרכיב הנותר לאורך כיוון הסירוב מובא לכערך 1e-6 מנורמת השארית, ומזהיר אם הוא אינו מזהה את כל 129 האתרים.
אל תסובב מחדש את הכיוון. חבילת הטרנרי שומרת את ההטלות שלה בבסיס מסובב על ממד הקלט שלהן ומפצה בצד האקטיבציה. הטלת הסירוב פועלת על הפלטים של אותן ההטלות, שכבר חזרו לבסיס הנסתר הרגיל — כך שכיוון הסירוב הוא וקטור רגיל בן 5120 ממדים, והחלת סיבוב הדמארד נוסף עליו תבצע הטלה כנגד הבסיס השגוי לחלוטין.

מה ש-OrcaRouter מדד — המספרים שלנו עצמנו, לא מספרים בלתי־תלויים
אלה המדידות המבוססות-כללים של OrcaRouter עצמה, ויש לקרוא אותן ככאלה: מסווג ביטויי פתיחה מבוסס-כללים, לא שופט LLM, חשיבה כבויה, פענוח חמדני, תקציב של 64 טוקנים, כאשר הבסיס והמבוטל הם אותם משקלים באותו תהליך ב-α = 0 לעומת α = 1. הן אינדיקטיביות, לא ברמה של פרסום, והן אינן אימות לשום דבר ש-Prism ML טענה.
בסירוב, הנמדד כשיעור הפרומפטים שקיבלו סירוב:
• AdvBench (n=100) — 99.0% בסיס, 6.0% אבלציה, כאשר 56.0% נענו אך היו עטופים בהצהרת פטור
• JailbreakBench (n=100) — 96.0% בסיס, 4.0% אבלציה, 52.0% עם הסתייגות
• StrongREJECT (n=150) — 99.3% בסיסי, 3.3% מבוטל, 45.3% מסויג
• HarmBench (n=150) — 98.7% בסיס, 7.3% אבלציה, 48.0% עם הסתייגות
• MaliciousInstruct (n=100) — 97.0% בסיס, 0.0% עם אבלציה, 52.0% עם הסתייגות
• ForbiddenQuestions (n=150) — 75.3% בסיס, 5.3% עם אבלציה, 42.7% עם הסתייגות
• SimpleSafetyTests (n=50) — 96.0% בסיס, 18.0% במצב אבלציה, 60.0% עם הסתייגות — והנתון הזה מוצג בחסר. הסט הזה כולל בעיקר פרומפטים של פגיעה עצמית, והמודל עונה להם בפתיחת הפניה למשבר בנוסח "אני מצטער מאוד לשמוע…", שאותה רשימת הביטויים המדויקת של המסווג מחמיצה ומדרגת כציות. שיעור הסירוב השיורי האמיתי בסט הזה גבוה מ-18.0%. המסווג הושאר במכוון כפי שהוא כדי שהמספרים יישארו ברי-השוואה לכרטיסי המודל האחרים של OrcaRouter.
אף תגובה בשום סט לא אזלה מתקציב הטוקנים שלה, ולכן אף אחד מהשיעורים האלה אינו מנופח בגלל קטיעה. בפרומפטים שפירים, אותה הטלה גם מסירה סירוב-יתר: XSTest-safe ירד משיעור סירוב של 5.2% ל-0.4%, והתת-קבוצה השפירה של JailbreakBench מ-25.0% ל-0.0%. החבילה שפורסמה דוחה רבע מהפרומפטים השפירים של אותו מבחן; לאחר אבלציה, היא אינה דוחה אף אחד.
מבחינת היכולת, היות המשקולות זהות ברמת הסיביות פירושה שאין כימות מחדש שעבורו יש לשלם, והמדידות עקביות עם כך:
• MMLU (n=300) — 76.7% בסיס, 77.7% לאחר אבלציה, +1.0
• GSM8K (n=150) — 87.3% בסיס, 86.0% אבלציה, −1.3
• CMMLU (n=500) — 76.2% בסיס, 75.6% אבלציה, −0.6
כל שינוי הוא בתוך הרעש בגודלי המדגם האלה; שאלת GSM8K בודדת שווה 0.7 נקודות. MMLU-Pro מוחרג ולא מדווח: ההנחיה שלו מבקשת נימוק לפני התשובה, ו-63–64% מהתגובות בשני הצדדים לא הגיעו לכזו בתוך תקציב הטוקנים, לכן כל נתון דיוק יהיה רצפה שנקבעה על ידי התקציב ולא מדידה.
ההסתייגות החשובה ביותר
כיוון הסירוב הוערך ממודל הבסיס BF16 שחבילת Bonsai אומנה ממנו. הארכיטקטורה והבסיס הנסתר זהים, ולכן הגאומטריה מתיישרת. אך עד כמה הכיוון הזה שורד אימון מודע-לכימותלא נמדד במלואו.
סביבת ההרצה יכולה להוכיח, מבחינה מתמטית ובדיוק של בערך 1e-6, שהיא מסירה את הכיוון שסופק מכל כתיבה שיורית. היא לא יכולה להוכיח מכך לבד שהכיוון עדיין לוכד את אותו מאפיין התנהגותי במודל שעבר קוונטיזציה שהוא לכד במודל הצפוף. אלו טענות שונות, ורק הראשונה מוכרעת. כל מי שקורא את טבלת הבטיחות שלמעלה צריך לקרוא אותה בידיעה שההתערבות יעילה בדיוק במידה שהנחת העברת הכיוון נכונה, ושהנחה זו היא השאלה הפתוחה.
יש גם את המסגור המעשי ש-OrcaRouter מציב לשחרור עצמו, וראוי לחזור עליו ולא לטשטש אותו בניסוח מחדש: הסרת כיוון סירוב שנלמד עלולה לגרום למודל להגיב לבקשות שהמודל המקורי היה מסרב להן. זהו מנגנון מחקרי לשליטה בהסקה, ולא ראיה לכך שכל פלט שנוצר הוא בטוח, נכון או הולם, ופריסות שמשתמשות בו צריכות להחיל בקרות גישה ואכיפת מדיניות משלהן. הסרת סירובים אינה שיפור ללא עלות, והטקסט הזה אינו כתוב כאילו היא כזו.
שלוש הערות מעשיות נוספות לכל מי שמשחזר זאת. יש לטעון את החבילה עם סביבת ההרצה המצורפת שלה — טוען MLX רגיל יכול להיראות כמי שטוען אותה בהצלחה בעודו מחשב בשקט את הדבר הלא נכון, לכן אם הפלטים נראים לא נכונים עוד לפני שאבלציה מופעלת, בדקו קודם את נתיב הטעינה. אבלציה סלקטיבית לפי שכבות נתמכת, כך שההתערבות לא חייבת להיות הכול-או-כלום. והערכת האבלציה הורצה על הרחבת ה-FP16 הלא-מקופלת של החבילה ולא על החבילה המפעילה את הקרנלים של עצמה, מפני של-matmul המקופל והמכוונן אין מימוש CUDA ולקצה העורפי של ה-CPU נדרשות דקות לכל מעבר קדימה; ההרחבה הזו נושאת את הערכים הטרנריים של החבילה בדיוק ומשחזרת את התפלגויות הטוקן-הבא של החבילה עצמה עד שלוש ספרות עשרוניות בבדיקות מדגמיות, אך זהו שינוי מיכל וכדאי לדעת עליו. הקוד והטבלאות המלאות נמצאים במאגר OrcaRouter Ternary Bonsai 2 27B Uncensored. השוואה נפרדת המשווה בין בניית ה-MLX עם אבלציה לבין נתיב ה-MLX של Qwen3.8 27B הלא-משונה מעמיקה יותר בפרטים של סביבת ההרצה.
לאן זה מוביל, ומה שעדיין לא הוכח
מה שמודל 27B כמעט חסר אובדן בנפח של כששה גיגה-בייט משנה עבור סוכנים מקומיים הוא בעיקרו מה שנשאר טעון בזיכרון. מודל שפה שנכנס יחד עם חלון הקשר אמיתי במחשב נייד עם 16 GB יכול להישאר טעון בזמן שסוכן עושה עבודה אחרת — קורא קבצים, מבצע קריאות לכלים, מחזיק תוכנית לאורך סבבים — במקום להיות מוחלף לפי כל בקשה או נדחף לשרת. זה ההבדל בין מודל מקומי שאתה מנסה לבין מודל מקומי שאתה משאיר פועל, וזה המאפיין הספציפי שהמספרים האגנטיים, τ 2-Bench ב-80.2 ו-BFCL v3 ב-74.9, נועדו לתמוך בו.
מה שלא הוכח הוא רשימה ארוכה יותר ממה שההכרזה מרמזת.
• אין שחזור בלתי־תלוי. כל נתון איכות במאמר הזה — ה־83.9, ה־98.2%, ממוצעי הקטגוריות — הוא מדידה של Prism ML על סוויטת הבדיקות של Prism ML עצמה. זה אינו פגם בהשקה; זה פשוט איך נראית השקה בת יום אחד. זה גם הדבר הראשון שישתנה.
• עבודה סוכנית לטווח ארוך היא החלק החלש ביותר בטבלה של הספק עצמו, לא החזק ביותר. Terminal-Bench 2.1 עם 52.8 מול 69.7 הוא פער אמיתי, והספק אומר שהיכולת חלקית.
• פרומפטים שטרם ניסית. פרופיל הכשלים של מודלים בעלי מספר ביטים נמוך הוא סלקטיבי, והקריסה של IQ2_XXS ב-AIME26 וב-LiveCodeBench תוך שמירה על 85.79 ב-MMLU-Redux היא הראיה הברורה ביותר שקיימת לכך שממוצע של בנצ׳מרק אינו אומר לך מה יקרה בעומס העבודה שלך. Bonsai 2 אינו מציג את הקריסה הזו בשני הבנצ׳מרקים האלה, וזה מעודד, אך אין זה בגדר ערובה.
• שאלת העברת הכיוון בגרסה ה-abliterated, לעיל, אשר אינה פתורה מעצם הגדרתה.
• האם הקרנלים מחזיקים מעמד ככל שסביבות ההרצה מתקדמות. נכון לרגע זה, המודל הזה זקוק לפורק; llama.cpp הסטנדרטי דוחה שניים מבין שלושת הפורמטים ומשבש בשקט את השלישי. עד שהקרנלים האלה ייכנסו ל-upstream, "פועל בכל מקום ש-llama.cpp פועל" עדיין אינו נכון לגבי המודל הזה.
השחרור עצמו אינו מוטל בספק. מודל מולטימודלי בדרגת 27B בנפח 5.93 GB, בתשיעית מטביעת הרגל של הדבר שממנו הוא נדחס, עם מתמטיקה וקידוד ברמה של מודל האב ומעקב אחר הוראות מעט טוב יותר, הוא נקודת הפעלה שונה לחלוטין להסקה מקומית. העמדה הסבירה ב-18 בספטמבר 2026 היא לקבל את גודל הקובץ כעובדה, לקבל את נתון השימור כטענה זהירה של הספק שניתנה לפני יום על חבילת מבחנים שהספק בחר, ולשמור את השיפוט לגבי עומס העבודה שלך עד שתריץ אותו עליו.
קוד ה-runtime-ablation, כיוון הסירוב וטבלאות ההערכה המלאות מפורסמים על ידי OrcaRouter, לצד פלטפורמת הניתוב שהצוות בונה.
