הבעיה ש-Tensor Parallelism פותר

תוכן עניינים

הבעיה ש-Tensor Parallelism פותר

ב-Model Parallelism קלאסי מחלקים את המודל לשכבות: מאיץ אחד מחשב שכבות מוקדמות, מאיץ אחר מחשב שכבות מאוחרות.

אבל מה קורה כששכבה בודדת עצמה כבדה מאוד? לדוגמה: שכבת Linear ענקית במודל שפה, או מטריצה רחבה במיוחד.

אי אפשר “לחתוך” אותה בזמן - היא חישוב אחד.

Tensor Parallelism מגיע בדיוק לנקודה הזו.

מה זה בעצם Tensor Parallelism?

Tensor Parallelism אומר: מפצלים את החישוב של שכבה אחת בין כמה מאיצים.

לא שכבות שונות. לא דגימות שונות. אלא אותו חישוב מתמטי - מחולק לחלקים.

במקום שמאיץ אחד יכפיל מטריצה גדולה מאוד, כמה מאיצים מכפילים כל אחד חלק ממנה, ובסוף מאחדים את התוצאה.

המודל הלוגי נשאר זהה. הביצוע הפיזי - מתפצל.

דוגמה אינטואיטיבית

נחשוב על חישוב של מכפלת מטריצה ווקטור.

בגישה רגילה: מאיץ אחד מחשב את כל השורות.

ב-Tensor Parallelism: כל מאיץ מחשב קבוצת שורות אחרת. כל אחד מחזיר תוצאה חלקית. בסוף מחברים את החלקים - ומקבלים בדיוק את אותו פלט.

שום שינוי מתמטי. רק חלוקה חכמה של עבודה.

המשל

אם שכבה היא קיר ארוך שצריך לצבוע:

Model Parallelism מחלקים את הבניין לקומות - כל פועל אחראי על קומה אחרת.

Tensor Parallelism כל הפועלים עומדים מול אותו קיר, וכל אחד צובע רצועה משלו.

הקיר אחד. העבודה - מקבילית.

למה זה קריטי ב-LLMs וב-Inference מודרני?

במודלים גדולים:

  • שכבות Linear עצומות
  • Attention עם מטריצות רחבות
  • שימוש כבד ב-GEMM

כאן צוואר הבקבוק אינו עומק המודל - אלא רוחב החישוב.

Tensor Parallelism מאפשר:

  • להריץ שכבות שלא נכנסות בזיכרון של מאיץ אחד
  • לקצר זמן חישוב של שכבה בודדת
  • לנצל טוב יותר כמה מאיצים גם כש-batch קטן

וב-Inference, שבו latency חשוב לא פחות מתפוקה - זה משנה הכל.

המחיר: תקשורת

Tensor Parallelism אינו “חינם”.

אחרי שכל מאיץ מחשב את החלק שלו, צריך לאסוף ולסנכרן תוצאות:

  • All-Reduce
  • All-Gather
  • תקשורת בין מאיצים

לכן הוא עובד טוב במיוחד כשיש:

  • חיבור מהיר בין מאיצים (NVLink, interconnect ייעודי)
  • תכנון מודע של גבולות החלוקה

בלי זה - הרווח בחישוב עלול להיבלע בתקשורת.

טיפ אדריכלי

Tensor Parallelism כמעט אף פעם לא עומד לבד.

במערכות אמיתיות משלבים:

  • Data Parallelism בין בקשות
  • Pipeline Parallelism בין שכבות
  • Tensor Parallelism בתוך שכבות כבדות

כלומר: המקביליות האמיתית היא רב-שכבתית - בדיוק כמו המודל עצמו.

תגובות