GPT
C

CodeLlama-34b-hf

קוד פתוח

codellamallama22023-08-24

  • transformers
  • pytorch
  • safetensors
  • llama
  • text-generation

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

  • 34Bפרמטרים
  • 16,384טוקנים בהקשר
  • 126 GBמשקל הקבצים
  • 1,730הורדות בחודש

מה זה

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

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

מתאים ל

  • השלמת קוד ארוך

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

  • אימון מודל פנימי

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

  • ניתוח תחביר בשפות שונות

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

איפה זה נופל

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

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

אותה משפחה

CodeLlama יצא ב־8 גרסאות שיש להן עמוד כאן. אלה האחרות, לפי כמה מורידים אותן.

שאלות
נפוצות

האם אפשר להשתמש במודל הזה כמו ב־ChatGPT לכתיבת קוד?

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

האם המודל יודע להשלים קוד שנמצא באמצע קובץ?

לפי נתוני הכרטיס, גרסת ה־34B הספציפית הזו אינה תומכת ביכולת השלמה באמצע טקסט (Infilling). היא יודעת רק להמשיך קוד מנקודת הסיום שסיפקתם לה.

האם מדובר במאגר הרשמי של חברת מטא?

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

איך מריצים

הקבצים שוקלים 126 גיגה בייט בפורמט bfloat16 ומחולקים ל־26 חלקים. כדי להריץ את המודל המקורי בלי קוונטיזציה תצטרכו לפחות 70 עד 80 גיגה בייט של זיכרון גרפי, כלומר שני כרטיסי A100 או מערך שרתים ייעודי. ספריות כמו transformers ו־accelerate מאפשרות לפצל את המשקלים על כמה כרטיסים באמצעות חלוקה אוטומטית.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="codellama/CodeLlama-34b-hf")
print(pipe("שלום"))

הרישיון

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

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

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