GPT
G

granite-3b-code-instruct-2k

קוד פתוח

ibm-graniteapache-2.02024-04-26

  • transformers
  • safetensors
  • llama
  • text-generation
  • code

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

  • 3.5Bפרמטרים
  • 2,048טוקנים בהקשר
  • 6.5 GBמשקל הקבצים
  • 8,222הורדות בחודש

מה זה

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

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

מתאים ל

  • השלמת פונקציות קצרות מקומית

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

  • תרגום טבעי לשאילתות SQL

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

  • מחקר והשוואת גרסאות

    רלוונטי למי שחוקר את התפתחות מודלי הקוד של יבמ וצריך נקודת ייחוס היסטורית למשקלים מוקדמים.

איפה זה נופל

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

אותה משפחה

granite-3b-code יצא ב־2 גרסאות שיש להן עמוד כאן. אלה האחרות, לפי כמה מורידים אותן.

שאלות
נפוצות

האם כדאי להתחיל לפתח עם המודל הזה מוצר חדש?

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

איך אפשר להתמודד עם שפות תכנות פחות מוכרות?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="ibm-granite/granite-3b-code-instruct-2k")
print(pipe("שלום"))

הרישיון

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

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

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