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

GPT
C

Code-Preference-Pairs

קוד פתוח

Vezoraother2024-07-27

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

  • 977הורדות בחודש
  • 32לייקים

מה זה

הרשומות בנויות כזוגות של קוד מקביל שנוצרו באופן סינתטי סביב תהליך הפיתוח של Open-critic-GPT. כל רשומה כוללת גרסה מקובלת שהיא קוד תקין עם הערות שמסבירות תיקונים, מול גרסה דחויה שלתוכה הושתלו באגים באמצעות מודל מקומי, תוך ניקוי הערות כמו bug או error כדי למנוע קיצורי דרך בלמידה.

המקור מבוסס על הדאטהסט m-a-p/CodeFeedback-Filtered-Instruction, שמאגד בתוכו מקורות קוד קודמים כמו evol Instruct, Python shareGPT 23k ו־Magicoder. התהליך התחיל עם 122 אלף דוגמאות בערך מ־127 שפות ומבנים שונים, אך הצטמצם לסביבות 55 אלף דוגמאות בעקבות בעיות בפלט המובנה במהלך ההמרה.

מתאים ל

  • אימון מודלים בשיטת DPO

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

  • זיהוי באגים אוטומטי

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

  • מחקר על דאטה סינתטי לקוד

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

איפה זה נופל

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

שאלות
נפוצות

האם מותר להשתמש בדאטהסט לפרויקטים מסחריים?

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

האם יש במאגר תמיכה בעברית?

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

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

היוצר לקח קוד קיים מהמאגר m-a-p/CodeFeedback-Filtered-Instruction, הריץ מודל מקומי שיזריק שגיאות ויסביר אותן, ואז שתל את הבאגים בגרסה הדחויה ומחק הערות מזהות. כ־55 אלף זוגות שרדו את הסינון מתוך 122 אלף במקור.

מה ההבדל בין המאגר הזה לבין Open-Critic-GPT?

שני המאגרים מגיעים מאותו תהליך ייצור. הגרסה הזו מיועדת לאימון העדפות מסוג DPO ומכילה זוגות מקבילים של קוד תקין מול שבור, בעוד ש־Open-Critic-GPT נועד לאימון SFT על הפקת קוד עובד מתוך קוד מקולקל.

איך טוענים

הנתונים מגיעים בקובץ יחיד מסוג Code-Preference-Pairs.jsonl שנמצא במאגר לצד קובצי הרישיון והתיעוד. אין צורך בבקשת גישה מיוחדת, והטעינה נעשית ישירות דרך הספרייה הרגילה על ידי קריאת שורות ה־JSON. השדות המרכזיים שצריך לשים לב אליהם מכילים את שתי גרסאות הקוד, זו שמיועדת לדחייה וזו שמיועדת לקבלה במסגרת אלגוריתמי יישור כמו DPO.

from datasets import load_dataset

ds = load_dataset("Vezora/Code-Preference-Pairs")

הרישיון

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

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