חדש Key אחד לכל המודלים, עם הערכת מחיר לפני כל קריאה. יוצרים Key

GPT
C

code_x_glue_cc_clone_detection_big_clone_bench

קוד פתוח

googlec-uda2022-03-02

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

  • 656הורדות בחודש
  • 22לייקים

מה זה

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

כל רשומה כוללת מזהה דגימה, מזהים של שתי הפונקציות, הטקסט המלא של כל אחת משתיהן בשדות func1 ו func2, ותגית בוליאנית. החלוקה הפנימית מוגדרת מראש וכוללת 901,028 זוגות לאימון, ועוד 415,416 זוגות לכל אחד מחלקי הוולידציה והבדיקה.

מתאים ל

  • זיהוי כפילויות קוד בג'אווה

    אימון מסווג שמקבל שני מקטעי קוד וקובע האם מדובר באותה לוגיקה בדיוק.

  • הערכת ביצועי מודלים לשפת קוד

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

  • בניית כלי רקונסטרוקציה וארגון

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

איפה זה נופל

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

שאלות
נפוצות

האם מותר להשתמש במאגר לפיתוח מוצר מסחרי?

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

האם המאגר כולל תמיכה בשפות מלבד ג'אווה?

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

האם יש כאן ייצוג של טקסט בעברית?

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

איך נאספו ותויגו הנתונים בפועל?

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

איך טוענים

הנתונים שמורים בקובצי parquet שמחולקים לכמה חלקים עבור כל פיצול, למשל שישה קבצים לאימון ושלושה לבדיקה. אין צורך בבקשת גישה מיוחדת, המאגר ציבורי לחלוטין ונטען ישירות דרך הספרייה הרגילה של האגינג פייס. השדות המרכזיים לעבודה הם func1, func2 והתווית label. שימו לב להגדרת התווית בכרטיס המקורי, שמציינת ערך של 1 כאשר הפונקציות אינן שקולות סמנטית ו 0 כשהן כן.

from datasets import load_dataset

ds = load_dataset("google/code_x_glue_cc_clone_detection_big_clone_bench")

הרישיון

הרישיון המדווח הוא Computational Use of Data Agreement, או C-UDA. רישיון זה נועד לאפשר שימוש חישובי במאגרי נתונים, כולל אימון מודלים של למידת מכונה וניתוח נתונים, תוך שמירה על זכויות היוצרים המקוריות. כדאי לבדוק את התנאים המשפטיים המדויקים של ההסכם לפני שמשלבים מודל שאומן עליו במוצר מסחרי סגור.

הרישיון המלא ב־Hugging Face ↗