GPT
C

codeparrot/codeparrot

קוד פתוח

codeparrotרישיון לא דווח2022-03-02

  • transformers
  • pytorch
  • tensorboard
  • gpt2
  • text-generation

מודל מבוסס GPT-2 עם מיליארד וחצי פרמטרים שמייצר קוד פייתון. פתרון ישן יחסית שמתאים בעיקר למי שחוקר היסטוריה של מודלי שפת קוד.

  • 1,024טוקנים בהקשר
  • 7.6 GBמשקל הקבצים
  • 506הורדות בחודש
  • 111לייקים

מה זה

מדובר בארכיטקטורת GPT-2 עם 1.5 מיליארד פרמטרים שאומנה ספציפית על מאגר קוד פייתון נקי. המפתחים אימנו אותו בשני שלבים, גרסה ראשונה של 50 אלף צעדים ואז המשך אימון של עוד 30 אלף צעדים שהביא לגרסה הנוכחית, בסך הכל על כארבעים ואחד מיליארד טוקנים.

במבחן HumanEval המודל מקבל בגרסה המעודכנת ציון pass@1 של 3.99% בלבד. זה אומר שבפועל, כמעט ארבע פעמים מתוך מאה ניסיונות ראשונים הוא מצליח לייצר פונקציה שעוברת את כל בדיקות היחידה. אם נותנים לו מאה ניסיונות שונים לאותה משימה, הוא מגיע לקצת פחות מ־18 אחוזי הצלחה.

מתאים ל

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

    משמש כנקודת ייחוס לבדיקת שיפורי ארכיטקטורה מול GPT-2 מוקדם שאומן על פייתון.

  • השלמת פונקציות פייתון קצרות

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

  • בדיקת בנצ'מרק מקומי

    הערכת כלי בדיקה של HumanEval על מודל עם ביצועים נמוכים וידועים מראש.

איפה זה נופל

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

שאלות
נפוצות

האם המודל יודע לכתוב בשפות שאינן פייתון?

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

מה ההבדל בין גרסה 1.0 לגרסה 1.1?

גרסה 1.1 עברה אימון נוסף של 30,000 צעדים עם קצב למידה נמוך יותר. השיפור מתבטא בעלייה קלה במבחן HumanEval, מ־3.58% ל־3.99% ב־pass@1.

איך מריצים

טוענים אותו ישירות דרך transformers בפייתון באמצעות AutoModelWithLMHead או pipeline סטנדרטי של text-generation. המשקל שלו עומד על 7.6 גיגה-בייט שמחולקים ליותר מחמישים קבצים, בדיוק של float32, כך שצריך כרטיס מסך עם לפחות שמונה עד עשרה גיגה זיכרון כדי לטעון אותו בנוחות.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="codeparrot/codeparrot")
print(pipe("שלום"))

הקבצים

52 קבצים במאגר, 7.6 GB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

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

הרישיון המלא בעמוד המודל ↗