GPT
G

github-code

קוד פתוח

codeparrotother2022-03-02

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

  • 38,034הורדות בחודש
  • 419לייקים

מה זה

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

האיסוף התבצע דרך שאילתת SQL במרץ 2022, ולאחר מכן הופעל סינון בסיסי. התהליך כלל ניקוי של כפילויות מדויקות תוך התעלמות מרווחים, והסרה של קבצים שהכילו שורות באורך של מעל 1000 תווים. אין כאן חלוקה לערכות אימון, בדיקה או ולידציה, אלא רק פיצול יחיד של נתוני אימון שמחולקים ליותר מאלף קובצי Parquet שונים.

מתאים ל

  • אימון מודל שפה לקוד

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

  • התמחות בשפת תכנות בודדת

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

  • ניתוח רישיונות קוד פתוח

    בדיקת דפוסי שימוש ברישיונות שונים מתוך 15 סוגי הרישיונות המתועדים ברשומות.

איפה זה נופל

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

שאלות
נפוצות

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

זה תלוי בסינון שתבצעו. המאגר מכיל תערובת של 15 רישיונות שונים, כולל GPL ו־AGPL שמגבילים שימוש מסחרי סגור, לצד רישיונות מתירניים כמו MIT ו־BSD. אם המטרה היא מוצר מסחרי, עליכם להשתמש בסינון המובנה ולטעון רק רשומות בעלות רישיון מתאים.

כמה שטח אחסון צריך כדי להוריד את המאגר למחשב?

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

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

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

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

המידע נשלף ישירות ממאגר הנתונים הציבורי של גיטהאב ב־Google BigQuery באמצעות שאילתה שהופעלה במרץ 2022. לאחר השליפה הוסרו כפילויות מדויקות וקוד עם שורות חריגות באורכן מעל 1000 תווים.

איך טוענים

המאגר פתוח לחלוטין ואינו דורש אישור גישה מיוחד. בגלל שמדובר ב־300 ג'יגה בייט מכווצים שנפרסים לכ־1 טרה בייט בדיסק, לא מומלץ להוריד את כולו ישירות אלא אם יש לכם תשתית אחסון מתאימה. הדרך המעשית לעבוד איתו היא הזרמה ישירה דרך מודול datasets בספריית פייתון. אפשר לסנן מראש רק את שפות התכנות הרלוונטיות לפרויקט שלכם, או להגביל את הטעינה לקבצים שמגיעים תחת רישיונות ספציפיים בלבד, כמו mit או isc, כבר בשלב הקריאה מהרשת.

from datasets import load_dataset

ds = load_dataset("codeparrot/github-code")

הרישיון

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

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