GPT
C

codegen25-7b-multi_P

קוד פתוח

Salesforceapache-2.02023-07-06

  • transformers
  • pytorch
  • llama
  • text-generation
  • code

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

  • 2,048טוקנים בהקשר
  • 25.7 GBמשקל הקבצים
  • 326הורדות בחודש
  • 138לייקים

מה זה

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

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

מתאים ל

  • השלמת קוד פנימית

    מילוי פונקציות וקטעי קוד באמצע קובץ קיים באמצעות מנגנון המיסוך המובנה.

  • פיתוח רב לשוני מקומי

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

  • בניית תוספי עריכה

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

איפה זה נופל

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

שאלות
נפוצות

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

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

איך עובד המנגנון של השלמת קוד באמצע קובץ?

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

איך מריצים

המשקל הכולל של הקבצים מגיע ל־25.7 ג'יגה בייט בגלל ייצוג float32, מה שאומר שתצטרכו כרטיס מסך עם זיכרון משמעותי כדי לטעון אותו ישירות מהקופסה בלי המרה לדיוק נמוך יותר. כדי להפעיל אותו בסביבת פייתון צריך להתקין את ספריית transformers וגם את tiktoken בגרסה 0.4.0 עבור הטוקנייזר.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="Salesforce/codegen25-7b-multi_P")
print(pipe("שלום"))

הרישיון

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

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

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