GPT
R

replit-code-v1-3b

קוד פתוח

replitcc-by-sa-4.02023-04-28

  • transformers
  • pytorch
  • mpt
  • text-generation
  • code

יש כאן גם סקירה על Replit עצמו.

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

  • 2,048טוקנים בהקשר
  • 9.7 GBמשקל הקבצים
  • 502הורדות בחודש
  • 744לייקים

מה זה

המודל הזה נבנה ספציפית להשלמת קוד והתאמן על מאגר Stack Dedup v1.2 בהיקף של 525 מיליארד טוקנים לאורך שלושה סבבים. הוא מכסה עשרים שפות תכנות וסימון שונות, כשהמובילות בכמות המידע הן Markdown, ג'אווה, ג'אווהסקריפט ופייתון, לצד שפות כמו TypeScript, PHP, SQL, Rust ו־Go.

מבחינה הנדסית הוא מבוסס על ארכיטקטורת MPT עם מנגנון Flash Attention להאצת האימון וההסקה, ומשתמש בשיטת AliBi לקידוד מיקום שמאפשרת גמישות באורך הקלט. טוקנייזר ה־SentencePiece שלו מותאם לקוד עם אוצר מילים של 32,768 מונחים, מה שמייעל את תהליך הפיענוח בהשוואה למודלי שפה כלליים.

מתאים ל

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

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

  • אימון מותאם על מאגר פנימי

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

  • הרצה חסכונית ב־8 ביט

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

איפה זה נופל

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

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

שאלות
נפוצות

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

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

למה חובה להשתמש בפרמטר trust_remote_code?

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

איך מריצים

כדי להריץ אותו צריך להתקין את transformers יחד עם einops ו־sentencepiece, ולהפעיל את הדגל trust_remote_code בזמן הטעינה כי הארכיטקטורה אינה חלק מובנה בספרייה. המשקל הגולמי שלו הוא כמעט עשרה גיגהבייט בפורמט float32, אבל הוא תומך בהרצה מהירה ב־bfloat16 עם Triton ו־Flash Attention על גבי כרטיסי מסך תומכים.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="replit/replit-code-v1-3b")
print(pipe("שלום"))

הרישיון

משקלי המודל וקובץ הטוקנייזר מופצים תחת רישיון CC BY-SA-4.0, בעוד שקבצי הקוד עצמם הם ברישיון Apache 2.0. מותר להשתמש בו לצרכים מסחריים, אך רישיון ה־ShareAlike מחייב אתכם לתת קרדיט ל־Replit ולשחרר כל נגזרת או שינוי של המודל תחת אותו הרישיון בדיוק.

  • שימוש מסחרי
  • שינוי הקוד
  • חובת שיתוף באותו רישיון

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