GPT
B

bitnet_b1_58-3B

קוד פתוח

1bitLLMmit2024-03-29

  • transformers
  • safetensors
  • llama
  • text-generation
  • text-generation-inference

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

  • 3.3Bפרמטרים
  • 2,048טוקנים בהקשר
  • 12.4 GBמשקל הקבצים
  • 1,388הורדות בחודש

מה זה

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

במדדי השפה והמשימות באפס דוגמאות, המודל מציג ממוצע דיוק של 49.6 לעומת 50.2 שדווח במאמר המקורי ו־49.7 במודל FP16 רגיל באותו הגודל. מדד הבלבול עומד על 9.88, תוצאה כמעט זהה למקור. המשמעות היא שהשחזור אכן עובד ושומר על כוח הניבוי הבסיסי של מודל 3B טיפוסי, לפחות באנגלית, אבל הוא לא מציג שום קפיצה ביכולות מעבר לגבולות הגודל שלו.

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

מתאים ל

  • מחקר ארכיטקטורות קוונטום

    בדיקת ההתנהגות של רשתות 1.58 ביט על חומרה קיימת והשוואת תוצאות למאמר המקורי.

  • פיתוח מנועי הרצה יעילים

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

  • בנצ'מרק לספריות הערכה

    הרצת סקריפטים של lm-eval לבדיקת מדדי בלבול ומשימות בחירה מרובה.

איפה זה נופל

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

שאלות
נפוצות

למה הקבצים שוקלים מעל 12 גיגה בייט אם המודל מוגדר כביט בודד?

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

האם המודל מתאים לשיחה או לצ'אטבוט?

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

האם אפשר להשתמש בו בעברית?

הוא אומן על מאגר RedPajama שמכיל כמעט רק אנגלית. אין לו יכולת אמיתית לייצר או להבין עברית ברמה שמישה.

איך מריצים

למרות השם של ארכיטקטורת ביט בודד, המשקולות שמפורסמות כאן שמורות בדיוק float16 סטנדרטי ושוקלות 12.4 גיגה בייט. כדי להריץ את זה דרך ספריית transformers תצטרכו כרטיס מסך עם לפחות 16 גיגה זיכרון גרפי, בדיוק כמו כל מודל 3B רגיל, אלא אם תממשו בעצמכם מנוע הרצה מותאם שמנצל את המשקולות המשולשות.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="1bitLLM/bitnet_b1_58-3B")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

הרישיון המלא בעמוד המודל ↗