GPT
S

starchat2-15b-v0.1

קוד פתוח

HuggingFaceH4רישיון לא דווח2024-03-10

  • transformers
  • tensorboard
  • safetensors
  • starcoder2
  • text-generation

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

  • 16Bפרמטרים
  • 16,384טוקנים בהקשר
  • 29.7 GBמשקל הקבצים
  • 73הורדות בחודש

מה זה

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

במבחני הביצועים רואים בדיוק את הפשרה הזו. במבחן השיחה MT Bench הוא מקבל ציון 7.66, שזה גבוה משמעותית מ־deepseek-coder-6.7b-instruct שקיבל 4.17 ומ־CodeLlama-13b שעמד על 6.80. מצד שני, במבחן כתיבת הקוד הטהור בפייתון, HumanEval, הוא מגיע ל־71.34, בעוד דיפסיק הקטן ממנו עוקף אותו עם 80.48. הוא נותן חוויית צ'אט עדיפה, אבל משלם על זה קצת בדיוק הסינטקטי בקוד מבודד.

מתאים ל

  • עוזר תכנות אינטראקטיבי

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

  • ניתוח קבצי קוד ארוכים

    חלון הקשר של 16,384 טוקנים מאפשר להזין מודולים שלמים או מספר קבצים במקביל לקבלת הקשר רחב.

  • הסבת קוד בין שפות

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

איפה זה נופל

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

שאלות
נפוצות

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

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

למה התוצאה שלו ב־HumanEval נמוכה משל מודלים קטנים יותר?

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

האם אפשר לסמוך על קוד שהוא מייצר בלי בדיקה?

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

איך מריצים

המודל שוקל כמעט 30 גיגה בפורמט bfloat16 ומחזיק קרוב ל־16 מיליארד פרמטרים על פני 40 שכבות. כדי להריץ אותו מקומית בצורה סבירה תצטרכו כרטיס מסך עם לפחות 32 גיגה זיכרון VRAM, או שני כרטיסי 16 או 24 גיגה במערך משותף, יחד עם שימוש בספריית accelerate כדי לפצל את השכבות.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="HuggingFaceH4/starchat2-15b-v0.1")
print(pipe("שלום"))

הרישיון

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

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