GPT
T

tiny_starcoder_py

קוד פתוח

bigcodebigcode-openrail-m2023-05-15

  • transformers
  • pytorch
  • safetensors
  • gpt_bigcode
  • text-generation

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

  • 164Mפרמטרים
  • 8,192טוקנים בהקשר
  • 1.2 GBמשקל הקבצים
  • 227,118הורדות בחודש

מה זה

מדובר במודל של 164 מיליון פרמטרים שרץ על אותה ארכיטקטורה של סטארקודר המקורי, כולל Multi-Query Attention ויכולת Fill-in-the-Middle. ההבדל הגדול הוא המיקוד, אימנו אותו רק על קוד פייתון מתוך StarCoderData לאורך 100 מיליארד טוקנים, כך שהוא מיועד לשפה אחת בלבד ולא מתפזר על עשרות שפות פיתוח.

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

מתאים ל

  • האצת הסקת מודלים גדולים

    משמש כמודל טיוטה בטכניקת Assisted Generation לצד מודל 15B גדול, מה שמקצר את זמן הפליטה בלי לאבד מאיכות הקוד.

  • השלמת קוד באמצע קובץ

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

  • פיתוח ובדיקות על מחשב אישי

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

איפה זה נופל

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

שאלות
נפוצות

האם המודל יודע לכתוב קוד בעברית או בשפות אחרות חוץ מפייתון?

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

למה שהמפתח יבחר במודל כזה אם האיכות שלו נמוכה ממודל 15B?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="bigcode/tiny_starcoder_py")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • מגבלות שימוש ברישיון

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