בדל Mamba: Redefiniing Sequence Modeling and Outforming Transformers Architecture - Unite.AI
צור קשר

בינה מלאכותית

Mamba: הגדרה מחדש של מודלים של רצפים ויצירת ארכיטקטורת רובוטריקים

mm

יצא לאור

 on

דגם Mamba AI

במאמר זה על ממבה, נחקור כיצד מודל מצב-חלל חדשני זה (SSM) מחולל מהפכה במודל רצף. ממבה, שפותחה על ידי אלברט גו וטרי דאו, מובחנת ביעילותה בעיבוד רצפים מורכבים בתחומים כמו עיבוד שפה, גנומיקה וניתוח אודיו. מודל רצף הזמן הליניארי שלו עם מרחבי מצב סלקטיביים מבטיח ביצועים יוצאי דופן על פני אופנים מגוונים אלה.

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

הייחודיות של Mamba טמונה ביכולת העיבוד המהירה שלה, שכבת SSM סלקטיבית, ועיצוב ידידותי לחומרה בהשראת FlashAttention. תכונות אלו מאפשרות לממבה להתעלות על דגמים קיימים רבים, כולל אלה המבוססים על גישת השנאים, מה שהופך אותה לקידום ראוי לציון בלמידת מכונה.

רובוטריקים נגד ממבה 

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

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

הם משתמשים במנגנון קשב, המאפשר למודל להתמקד בחלקים שונים של הרצף בעת ביצוע תחזיות.

תשומת לב זו מחושבת באמצעות שלוש קבוצות של משקלים: שאילתות, מפתחות וערכים, הנגזרים מנתוני הקלט. כל אלמנט ברצף מושווה לכל אלמנט אחר, תוך מתן משקל המסמל את החשיבות, או 'תשומת הלב', שכל אלמנט צריך לקבל בעת חיזוי האלמנט הבא ברצף.

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

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

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

הנה סקירה ברמה גבוהה של אופן פעולתו של שנאי:

  1. עיבוד קלט: רובוטריקים מקודדים תחילה נתוני קלט לפורמט שהמודל יכול להבין, לעתים קרובות באמצעות הטמעות המשלבות גם את המיקום של כל אלמנט ברצף.
  2. מנגנון קשב: בבסיסו, מנגנון הקשב מחשב ציון המייצג כמה מיקוד יש לשים על חלקים אחרים של רצף הקלט בעת הבנת אלמנט נוכחי.
  3. ארכיטקטורת מקודד-מפענח: מודל השנאי מורכב מקודד לעיבוד הקלט ומפענח ליצירת הפלט. כל אחד מהם מורכב משכבות מרובות שמעדנות את הבנת המודל של הקלט.
  4. קשב רב ראשים: הן בתוך המקודד והן בתוך המפענח, קשב רב ראשים מאפשר למודל לטפל בו זמנית בחלקים שונים של הרצף ממרחבי ייצוג שונים, ולשפר את יכולתו ללמוד מהקשרים מגוונים.
  5. רשתות הזנה קדימה מבחינת עמדה: לאחר תשומת לב, רשת עצבית פשוטה מעבדת את הפלט של כל עמדה בנפרד וזהה. זה משולב עם הקלט דרך חיבור שיורי ואחריו נורמליזציה של שכבה.
  6. יצירת פלט: לאחר מכן המפענח חוזה רצף פלט, המושפע מההקשר של המקודד ומה שהוא יצר עד כה.

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

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

ממבה

מה שהופך את Mamba לייחודי באמת הוא היציאה שלה מהקשב המסורתי וחסימות MLP. הפשטות זו מובילה לדגם קל ומהיר יותר שמתרחב באופן ליניארי עם אורך הרצף - הישג שאין דומה לו על ידי קודמיו.

תכונות עיקריות של Mamba כוללות:

  1. SSMs סלקטיבי: אלה מאפשרים לממבה לסנן מידע לא רלוונטי ולהתמקד בנתונים רלוונטיים, מה שמשפר את הטיפול ברצפים. סלקטיביות זו חיונית להיגיון יעיל מבוסס תוכן.
  2. אלגוריתם מודע לחומרה: Mamba משתמש באלגוריתם מקביל המותאם לחומרה מודרנית, במיוחד GPUs. עיצוב זה מאפשר חישוב מהיר יותר ומפחית את דרישות הזיכרון בהשוואה לדגמים מסורתיים.
  3. אדריכלות פשוטה: על ידי שילוב SSMs סלקטיבי וביטול בלוקים של קשב ו-MLP, Mamba מציעה מבנה פשוט יותר, הומוגני יותר. זה מוביל להרחבה ולביצועים טובים יותר.

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

הקוד והדגמים שהוכשרו מראש של Mamba זמינים בגלוי לשימוש קהילתי ב GitHub.

משימות העתקה סטנדרטיות הן פשוטות עבור מודלים ליניאריים. ראשי העתקה ואינדוקציה סלקטיביים דורשים זיכרון דינמי ומודע לתוכן עבור LLMs.

משימות העתקה סטנדרטיות הן פשוטות עבור מודלים ליניאריים. ראשי העתקה ואינדוקציה סלקטיביים דורשים זיכרון דינמי ומודע לתוכן עבור LLMs.

מודלים של מרחב מצב מובנה (S4) הופיעו לאחרונה כמעמד מבטיח של מודלים של רצף, הכוללים תכונות מ-RNNs, CNNs ומודלים של חלל מדינה קלאסיים. מודלים של S4 שואבים השראה ממערכות רציפות, במיוחד סוג של מערכת שממפה פונקציות או רצפים חד מימדיים דרך מצב סמוי סמוי. בהקשר של למידה עמוקה, הם מייצגים חידוש משמעותי, המספקים מתודולוגיה חדשה לעיצוב מודלים של רצף יעילים ובעלי יכולת הסתגלות גבוהה.

הדינמיקה של דגמי S4

SSM (S4) זהו מודל מרחב המדינה המובנה הבסיסי. זה דורש רצף x ומייצר פלט y באמצעות פרמטרים נלמדים A, B, Cופרמטר השהיה Δ. הטרנספורמציה כוללת דיסקרטציה של הפרמטרים (הפיכת פונקציות רציפות לבדידות) ויישום פעולת SSM, שהיא משתנה בזמן - כלומר היא לא משתנה לאורך שלבי זמן שונים.

משמעות הדיסקרטיזציה

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

חריגות זמן ליניארית (LTI)

מאפיין עיקרי של דגמי S4 הוא תנודות הזמן הליניאריות שלהם. מאפיין זה מרמז שהדינמיקה של המודל נשארת עקבית לאורך זמן, כשהפרמטרים קבועים עבור כל שלבי הזמן. LTI הוא אבן יסוד של הישנות ופיתולים, ומציע מסגרת פשוטה אך עוצמתית לבניית מודלים של רצף.

התגברות על מגבלות יסוד

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

המונח 'מודל מרחב מצבי' מכסה באופן נרחב כל תהליך חוזר הכולל מצב סמוי והוא שימש לתיאור מושגים שונים על פני דיסציפלינות מרובות. בהקשר של למידה עמוקה, מודלים של S4, או SSMs מובנים, מתייחסים למחלקה ספציפית של מודלים שעברו אופטימיזציה לחישוב יעיל תוך שמירה על היכולת לדגמן רצפים מורכבים.

ניתן לשלב מודלים של S4 בארכיטקטורות של רשתות עצביות מקצה לקצה, ומתפקדים כטרנספורמציות רצף עצמאיות. ניתן לראות אותם כאנלוגיים לשכבות קונבולציה ב-CNN, מה שמספק את עמוד השדרה למידול רצף במגוון ארכיטקטורות של רשתות עצביות.

SSM לעומת SSM + בחירה

SSM לעומת SSM + בחירה

מוטיבציה לסלקטיביות במודל רצף

SSMs מובנים

SSMs מובנים

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

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

SSM + בחירה (S6) גרסה זו כוללת מנגנון בחירה, המוסיף תלות קלט לפרמטרים B ו Cופרמטר השהיה Δ. זה מאפשר למודל להתמקד באופן סלקטיבי בחלקים מסוימים של רצף הקלט x. הפרמטרים עוברים דיסקרטיות תוך התחשבות בבחירה, ופעולת SSM מיושמת באופן משתנה בזמן באמצעות פעולת סריקה, המעבדת אלמנטים ברצף, תוך התאמת הפוקוס באופן דינמי לאורך זמן.

עיקרי הביצועים של Mamba

Mamba היא הטובה ביותר בכיתה בכל תוצאת הערכה בודדת

Mamba היא הטובה ביותר בכיתה בכל תוצאת הערכה בודדת

מבחינת ביצועים, Mamba מצטיינת הן במהירות ההסקה והן ברמת הדיוק. העיצוב שלו מאפשר ניצול טוב יותר של הקשרים ארוכים יותר, מה שמודגם הן במודלים של DNA והן באודיו, ועולה על מודלים קודמים במשימות מורכבות הדורשות תלות ארוכת טווח. הרבגוניות שלו מודגשת גם בהערכות אפס-shot על פני משימות מרובות, מה שמציב סטנדרט חדש למודלים כאלה במונחים של יעילות ומדרגיות.

תחילת העבודה עם Mamba

למי שמעוניין למנף את Mamba, הדרישות הטכניות כוללות מערכת הפעלה לינוקס, NVIDIA GPU, PyTorch 1.12+ ו-CUDA 11.6+. ההתקנה כוללת פקודות pip פשוטות להתקנת החבילות הדרושות מה- מאגר ממבה. אם מתעוררות בעיות תאימות עם גרסאות PyTorch, שימוש בדגל –no-build-isolation עם pip יכול לעזור. מודלים אלה, שהוכשרו על מערכי נתונים נרחבים כמו ה-Pile ו-SlimPajama מערך הנתונים, נועדו לענות על צרכים חישוביים שונים ומדדי ביצועים.

Mamba מציעה רמות שונות של ממשקים, משכבת ​​SSM סלקטיבית ועד לבלוק Mamba ומבני מודל שפה מלאים. בלוק Mamba, שהוא המודול הראשי של הארכיטקטורה, משתמש בשכבת Conv1d סיבתית וניתן לשלב אותו בקלות בעיצובי רשת עצבית. דוגמה לשימוש המסופקת ב-Python מדגימה יצירת מודל של Mamba ועיבוד נתונים באמצעותו, תוך הדגשת הפשטות והגמישות של המערכת.

דגמי Mamba מאומנים מראש זמינים ב פנים מחבקות, עם גדלים שנעים בין 130M ל-2.8B פרמטרים, מאומנים על מערך הנתונים הנרחב של Pile ומערך הנתונים של SlimPajama. מודלים אלה נועדו לעמוד בדרישות חישוביות וביצועים מגוונות, תוך עמידה בסטנדרטים המימדיים של GPT-3. משתמשים יכולים לצפות לתפוקה ודיוק גבוהים מהמודלים הללו, מה שהופך את Mamba לבחירה תחרותית עבור יישומים שונים, כולל אך לא רק דוגמנות שפה.

ההשפעה של ממבה

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

ביליתי את חמש השנים האחרונות בשקיעת עצמי בעולם המרתק של למידת מכונה ולמידה עמוקה. התשוקה והמומחיות שלי הובילו אותי לתרום ליותר מ-50 פרויקטים מגוונים של הנדסת תוכנה, עם התמקדות מיוחדת ב-AI/ML. הסקרנות המתמשכת שלי משכה אותי גם לעבר עיבוד שפה טבעית, תחום שאני להוט לחקור עוד יותר.