GPT
X

xCodeEval

קוד פתוח

NTU-NLP-sgcc-by-4.02023-04-09

  • programming-language
  • code
  • program-synthesis
  • automatic-code-repair
  • code-retrieval

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

  • 28,517הורדות בחודש
  • 82לייקים

מה זה

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

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

מתאים ל

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

    הרצת בדיקות יחידה על קוד שנוצר על ידי מודלים ב־17 שפות כדי לבדוק פונקציונליות אמיתית.

  • אימון מנועי חיפוש לקוד

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

  • מחקר על תיקון שגיאות

    אימון ובדיקה של מודלים לתיקון אוטומטי של באגים בתוכניות שנכשלו בבדיקות יחידה.

איפה זה נופל

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

שאלות
נפוצות

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

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

האם המאגר כולל תוכן בעברית?

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

במה הוא שונה ממאגרי הערכה רגילים כמו HumanEval?

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

האם חובה להוריד את כל הקבצים כדי לעבוד עם המאגר?

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

איך טוענים

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

from datasets import load_dataset

ds = load_dataset("NTU-NLP-sg/xCodeEval")

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • חובת ייחוס

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