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

GPT
T

the-vault-function

קוד פתוח

Fsoft-AICmit2023-05-05

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

  • 1,629הורדות בחודש
  • 19לייקים

מה זה

המאגר מכיל 34,098,775 זוגות של קוד וטקסט שנלקחו מתוך The Stack ועברו ניקוי כפילויות. כל רשומה מייצגת פונקציה ומחזיקה קוד מקור, תיעוד מלא, שורת סיכום ראשונה, שמות פרמטרים וטיפוסים, סוג ערך מוחזר, רשימת הערות פנימיות ומטא דאטה כמו הריפו וההאש המקורי בגיט.

הנתונים נאספו מעשר שפות שונות: פייתון, ג'אווה, ג'אווהסקריפט, PHP, שפת C, שפת C#, שפת C++, גו, רובי וראסט. הטקסט הטבעי בתיעוד מופיע באנגלית בלבד, וכולל פירוק לפי 11 סגנונות כתיבת תיעוד שונים כדי להקל על משימות הבנת קוד.

החלוקה הפנימית מציעה גדלים שונים לאימון לצד סטים נפרדים של ולידציה ובדיקה. סט האימון מחולק לשלוש גרסאות: קטנה שמכילה 1,702,750 דוגמאות ומהווה 5%, בינונית עם 8,356,097 דוגמאות שהם 20%, והסט המלא שמחזיק 33,673,594 רשומות. סטי הבדיקה והוולידציה מכילים כל אחד מעל 200,000 דוגמאות.

מתאים ל

  • סיכום פונקציות אוטומטי

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

  • יצירת קוד לפי תיאור

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

  • חיפוש קוד סמנטי

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

איפה זה נופל

הטקסט שמלווה את הקוד קיים באנגלית בלבד, כך שאין כאן תמיכה בעברית או בשפות אחרות. מעבר לזה, קיים חוסר איזון ניכר בין שפות התכנות. פייתון וג'אווה מחזיקות יחד קרוב למחצית מכלל הרשומות, בזמן ששפות כמו רובי עם 461,585 דוגמאות או ראסט עם 864,987 דוגמאות זוכות לייצוג נמוך משמעותית. אם אתם בונים מודל שמיועד לשפות אלו, כמות הנתונים לא שקולה לפייתון. בנוסף, הנתונים מתבססים על מאגר The Stack שפורסם במקור, ולכן אינם כוללים קוד שנכתב או עודכן לאחר מועד הגזירה.

שאלות
נפוצות

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

כן, רישיון המאגר מוגדר כ־MIT שמאפשר שימוש מסחרי חופשי, כל עוד שומרים על הודעת זכויות היוצרים. בנוסף, המקורות נלקחו מתוך The Stack ומכילים רישיונות קוד מתירניים, והרישיון המקורי של כל ריפו מתועד בשדה license.

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

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

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

הטעינה דרך ספריית datasets מאפשרת להגדיר מצב streaming ולקרוא את הנתונים ברצף. אפשר גם למשוך רק את גרסת האימון הקטנה שמכילה 5% מהדאטה, או לסנן שפה בודדת לפי דרישה.

במה הוא שונה ממאגרים כמו CodeSearchNet?

המאגר מציע מעל 34 מיליון זוגות קוד וטקסט לעומת 2,326,976 ב־CodeSearchNet, ותומך בעשר שפות לעומת שש. בנוסף הוא כולל מטא דאטה מפורט על פרמטרים, טיפוסי החזרה וחלוקה לפי סגנונות תיעוד.

איך טוענים

טוענים את הנתונים ישירות דרך ספריית datasets באמצעות הפקודה load_dataset ללא צורך בהרשאת גישה מיוחדת. המאגר מורכב מ־194 קבצים בפורמט parquet, כך שאפשר לחסוך זיכרון ולטעון מראש רק שפות ספציפיות בעזרת הפרמטר languages, לבחור רק תת-קבוצה כמו train/small, או להשתמש ב־streaming כדי לעבור על הדוגמאות בלולאה במקום להוריד את כל הנפח לדיסק המקומי. השדות המרכזיים לעבודה הם code עבור גוף הפונקציה, docstring לתיעוד הנקי, ו־parameters למידע המובנה על הארגומנטים.

from datasets import load_dataset

ds = load_dataset("Fsoft-AIC/the-vault-function")

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

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