GPT
S

santacoder

קוד פתוח

bigcodebigcode-openrail-m2022-12-02

  • transformers
  • pytorch
  • gpt2
  • text-generation
  • custom_code

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

  • 2,048טוקנים בהקשר
  • 4.3 GBמשקל הקבצים
  • 9,344הורדות בחודש
  • 336לייקים

מה זה

הפרויקט הזה מגיע מבית BigCode ונועד לעשות דבר מוגדר: לייצר ולהשלים קוד ב־Python, Java ו־JavaScript. הוא אומן על תת-קבוצה של The Stack v1.1 בהיקף של 236 מיליארד טוקנים בגרסת final, תוך סינון לפי כמות הערות וניקוי כפילויות. השילוב של Multi Query Attention שומר על זמני תגובה קצרים יחסית.

בניגוד למודלים שמנסים לבלוע את כל שפות התכנות בעולם, המיקוד המשולש כאן מאפשר לו לחלץ ביצועים סבירים מתוך 1.1 מיליארד פרמטרים בלבד. בנוסף לתמיכה בהשלמה רגילה, הוא אומן עם Fill-in-the-Middle, כך שאפשר לתת לו גם את תחילת הקובץ וגם את סופו, והוא ינסה להשלים את מה שחסר באמצע לפי הקשר כפול.

מתאים ל

  • השלמת שורות בעורך קוד

    אינטגרציה לתוך תוסף מקומי ב־VS Code או Neovim, עבור השלמה של שורות בודדות בזמן כתיבה מהירה.

  • השלמת גוף פונקציה

    יצירת המימוש הפנימי של פונקציה מתוך כתיבת חתימה והערת תיעוד מסודרת ב־Python, Java או JS.

  • מילוי קוד באמצע קובץ

    שימוש בטוקנים של Fill-in-the-Middle כדי לחבר בין לוגיקה קיימת למעלה ולמטה בלי לדרוס את הקובץ.

איפה זה נופל

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

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

שאלות
נפוצות

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

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

האם אפשר להשתמש בו לקוד ב־C++ או Go?

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

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

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

איך מריצים

המשקל הכולל של הקבצים עומד על 4.3 גיגה-בייט, כך שאפשר להריץ אותו כמעט על כל כרטיס מסך ביתי עם 6 עד 8 גיגה זיכרון, או אפילו ישירות על מעבד סביר בלי לחוות תקיעות קשות. הטעינה נעשית ישירות דרך ספריית transformers של פייתון, אך מחייבת שימוש בדגל trust_remote_code מפני שמדובר במימוש מותאם של GPT-2.

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

from transformers import pipeline

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

הרישיון

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

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

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