כרטיס מודל 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 שלנו הן שיעור FIM של 80% עד 90% עם 50-50 PSM/SPM.
  • טכניקות אריזה מילוניות מבוססות-בדיקת יחידה המבוססות על תרשים תלות: כדי לשפר את התאמת המודל לאפליקציות בעולם האמיתי, יצרנו את האימון דוגמאות ברמת הפרויקט/המאגר כדי לאתר את המקור הרלוונטי ביותר הקבצים בכל מאגר. באופן ספציפי, השתמשנו בשני היוריסטיקה טכניקות: אריזה מילונית שמבוססת על תרשים תלות ואריזה מילונית שמבוססת על בדיקת יחידה.
  • פיתחנו שיטה חדשנית לפיצול המסמכים לקידומת, באמצע, וסיומת כדי לגרום לסיומת להתחיל בשפה טבעית יותר מבחינה תחבירית של התפלגות אקראית בלבד.
  • בטיחות: בדומה ל-Gemma, פרסנו סינון בטיחות קפדני, כולל סינון מידע אישי, סינון CSAM וסינון אחר המבוסס על תוכן באיכות ובבטיחות המדיניות שלנו.

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

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

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

מידע על ההערכה

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

גישת ההערכה

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

השוואה לשוק 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 55.6
קו יחיד של HumanEval 78.4 79.3 76.1 68.3 77.4
HumanEval Multi Line 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 41.0 48.4 50.3
BC HE JavaScript 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 54.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
BC MBPP C# 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 50.3 57.3 62.9
JavaScript של BC MBPP 45.3 45.0 58.2 61.4 61.4
BC MBPP קוטלין 46.8 49.7 54.7 59.9 62.6
BC MBPP Python 38.6 52.9 59.1 62.0 60.2
חלודה על MBPP של BC 45.3 47.4 52.9 53.5 52.3

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

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

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

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

גישת ההערכות

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

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

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

תוצאות הבדיקה

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

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

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

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

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

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

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

שימוש מיועד

בקשת הצטרפות

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

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

יתרונות

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

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