GPT
I

InstructCoder

קוד פתוח

likaixinרישיון לא דווח2023-10-09

  • code

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

  • 6,814הורדות בחודש
  • 17לייקים

מה זה

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

איסוף המידע התחיל ממשימות בסיס שנלקחו מתוך קומיטים אמיתיים ב־GitHub. משם, לפי גישת Self-Instruct, צוות הפיתוח השתמש ב־ChatGPT כדי לייצר הוראות נוספות, תרחישים מתאימים, ואת צמדי הקוד של הקלט והפלט. דגימות שעברו בדיקה ידנית הוחזרו למאגר כזרעים לסבבי ייצור נוספים. המאגר מחולק לקובצי אימון ואימות בשם train.json ו־valid.json, לצד קובצי הזרעים המקוריים.

מתאים ל

  • אימון מודל לעריכת קוד

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

  • הערכת יכולות שכתוב

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

  • אוטומציה של טיפול בשגיאות

    לימוד מודלים לזהות נקודות תורפה ולהוסיף מנגנוני ניהול שגיאות לפונקציות קיימות על פי דרישה.

איפה זה נופל

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

שאלות
נפוצות

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

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

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

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

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

התהליך החל באיסוף משימות בסיס מתוך קומיטים של GitHub. לאחר מכן, החוקרים השתמשו ב־ChatGPT בשיטת Self-Instruct כדי להרחיב את המשימות ל־20 תרחישים שונים, ולייצר את ההוראות יחד עם הקוד המקורי והערוך. דוגמאות איכותיות נבחרו ידנית כדי לשפר את סבבי הייצור הבאים.

כמה רשומות יש במאגר ואיך הוא מחולק?

המאגר כולל 114,239 שלשות של פקודה, קלט ופלט. החלוקה מתבצעת בעיקר בין train.json לאימון לבין valid.json להערכה, לצד קובצי הזרעים ששימשו ליצירתו.

איך טוענים

טוענים את הקבצים ישירות מהמאגר בעזרת ספריית datasets או בקריאת JSON סטנדרטית בפייתון, ללא צורך באישור גישה מיוחד. המאגר כולל שישה קבצים, והעיקריים שבהם הם train.json שמכיל את עיקר 114,239 הרשומות, ו־valid.json המיועד להערכה. בנוסף תמצאו שם את github_seed.json ו־additional_seed.json ששימשו לייצור הדאטה. בכל רשומה חשוב לעבד את שלושת השדות המרכזיים: ההוראה המילולית, קוד הקלט וקוד הפלט. היקף הרשומות נמצא בטווח שבין מאה אלף למיליון, כך שמומלץ לבדוק את צריכת הזיכרון לפני שמעלים את כל הקובץ בשלמותו לסביבת האימון.

from datasets import load_dataset

ds = load_dataset("likaixin/InstructCoder")

הרישיון

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

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