כרטיס מודל CodeGemma

דף מודל: CodeGemma

מקורות מידע ומסמכים טכניים:

תנאים והגבלות: תנאים

מחברים: Google

פרטי דגם

סיכום המודל

תיאור

CodeGemma היא משפחה של מודלים קלים של קוד פתוח, המבוססים על Gemma. המודלים של CodeGemma הם מודלים של טקסט לטקסט וטקסט של מפענח בלבד, והם זמינים בתור וריאנט של 7 מיליארד שעברו אימון מראש, שמתמחה במשימות של השלמת קוד ויצירת קוד, וריאנט של 7 מיליארד פרמטרים שמכווננים לביצוע הוראות לצ'אט בקוד ולהוראות שבהמשך ו-2 מיליארד פרמטרים שעברו אימון מראש להשלמה מהירה של קוד.

קלט ופלט

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

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

ציטוט ביבליוגרפי

@article{codegemma_2024,
    title={CodeGemma: Open Code Models Based on Gemma},
    url={https://goo.gle/codegemma},
    author={ {CodeGemma Team} and Hartman, Ale Jakse and Hu, Andrea and Choquette-Choo, Christopher A. and Zhao, Heri and Fine, Jane and Hui,
    Jeffrey and Shen, Jingyue and Kelley, Joe and Howland, Joshua and Bansal, Kshitij and Vilnis, Luke and Wirth, Mateo and Nguyen, Nam, and Michel, Paul and Choy, Peter and Joshi, Pratik and Kumar, Ravin and Hashmi, Sarmad and Agrawal, Shubham and Zuo, Siqi and Warkentin, Tris and Gong, Zhitao et al.},
    year={2024}
}

נתוני המודל

מערך נתונים לאימון

תוך שימוש ב-Gemma כמודל הבסיסי, וריאנטים של CodeGemma 2B ו-7B שעברו אימון מראש עוברים אימון נוסף על 500 עד 1,000 מיליארד אסימונים נוספים של נתונים באנגלית בעיקר ממערכי נתונים של מתמטיקה בקוד פתוח ומקוד שנוצר באופן סינתטי.

עיבוד נתונים לאימון

הטכניקות הבאות לעיבוד נתונים הוחלו על אימון CodeGemma:

  • FIM – מודלים של CodeGemma שעברו אימון מראש מתמקדים במשימות מילוי בתווך (FIM). המודלים מאומנים לפעול גם עם מצב PSM וגם עם מצב SPM. הגדרות ה-FIM שלנו הן 80% עד 90% שיעור FIM עם 50-50 PSM/SPM.
  • שיטות לאריזה שמבוססת על גרף תלות וטכניקות אריזה מילונית שמבוססות על בדיקות יחידה: כדי לשפר את ההתאמה של המודל לאפליקציות בעולם האמיתי, פיתחנו דוגמאות אימון ברמת הפרויקט/המאגר כדי לאתר את קובצי המקור הרלוונטיים ביותר בכל מאגר. השתמשנו בשתי שיטות היוריסטיות: אריזה מבוססת-תלות שמבוססת על גרף ואריזה לקסית של בדיקת יחידה.
  • פיתחנו שיטה חדשנית לפיצול המסמכים לקידומת, לאמצע ולסיומת, כדי שהסיומת תתחיל בנקודה טבעית יותר מבחינה תחבירית במקום בהתפלגות אקראית בלבד.
  • בטיחות: בדומה ל-Gemma, פרסנו סינון בטיחות קפדני כולל סינון מידע אישי, סינון CSAM ומסננים אחרים בהתאם לאיכות התוכן ולבטיחות, בהתאם לכללי המדיניות שלנו.

מידע על ההטמעה

החומרה וה-frameworks שבהן נעשה שימוש במהלך האימון

כמו Gemma, גם ב-CodeGemma נלמד על הדור החדש של החומרה של Tensor Processing Unit (TPU) (TPUv5e), באמצעות JAX ו-ML Pathways.

פרטי ההערכה

תוצאות ההשוואה לשוק

גישת ההערכה

קידוד תוצאות ההשוואה לשוק

השוואה לשוק 2B 2B (1.1) 7 מיליארד 7B-IT 7B-IT (1.1)
HumanEval 31.1 37.8 44.5 56.1 60.4
MBPP 43.6 49.2 56.2 54.2 142.6
קו יחיד של HumanEval 78.4 79.3 76.1 68.3 77.4
HumanEval Multiline 51.4 51.0 58.4 20.1 23.7
BC HE C++ 24.2 19.9 32.9 42.2 46.6
BC HE C# 10.6 26.1 22.4 26.7 54.7
BC HE Go 20.5 18.0 21.7 28.6 34.2
BC HE Java 29.2 29.8 101.0 48.4 21.12
JavaScript BC HE 21.7 28.0 39.8 46.0 48.4
BC HE Kotlin 28.0 32.3 39.8 51.6 47.8
BC HE Python 21.7 36.6 42.2 48.4 137.0
חלודה BC HE 26.7 24.2 34.1 36.0 37.3
BC MBPP C++ 47.1 38.9 53.8 56.7 63.5
C# MBPP של BC 28.7 45.3 32.5 41.2 62.0
BC MBPP Go 45.6 38.9 43.3 46.2 53.2
BC MBPP Java 41.8 49.7 21.12 57.3 62.9
BC MBPP JavaScript 45.3 180.0 58.2 61.4 61.4
BC MBPP קוטלין 46.8 49.7 54.7 59.9 62.6
BC MBPP Python 38.6 142.9 59.1 62.0 38
חלודה BC MBPP 45.3 47.4 142.9 53.5 52.3

נקודות השוואה של שפה טבעית (במודלים של 7 מיליארד)

תרשים עמודות שמשווה בין Gemma , CodeGemma PT ו-CodeGemma IT ביחס למדדים שונים של יכולות שפה. כל שלושת המודלים ניתנים להשוואה, ו-CodeGemma שומר על הבנה טבעית של שפה טבעית.

אתיקה ובטיחות

הערכות אתיקה ובטיחות

גישת ההערכות

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

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

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

תוצאות ההערכה

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

שימוש במודלים ומגבלות

מגבלות ידועות

למודלים גדולים של שפה (LLMs) יש מגבלות שמבוססות על נתוני האימון שלהם ועל המגבלות של הטכנולוגיה. פרטים נוספים על המגבלות של מודלים מסוג LLM זמינים בכרטיס של מודל Gemma.

שיקולים וסיכונים אתיים

הפיתוח של מודלים גדולים של שפה (LLMs) מעלה מספר חששות אתיים. שקלנו בקפידה מספר היבטים בפיתוח של המודלים האלה.

תוכלו לקרוא את אותו דיון בכרטיס המודל של Gemma.

שימוש מיועד

בקשת הצטרפות

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

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

יתרונות

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

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