GPT
R

Refact-1_6B-fim

קוד פתוח

refactaibigscience-openrail-m2023-08-29

  • transformers
  • pytorch
  • safetensors
  • gpt_refact
  • text-generation

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

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

  • 1.6Bפרמטרים
  • 4,096טוקנים בהקשר
  • 5.9 GBמשקל הקבצים
  • 3,299הורדות בחודש

מה זה

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

במבחני HumanEval רגילים הוא מגיע לתוצאה של 32 אחוזים בפורמט השלמה ו־38.4 אחוזים במצב שיחה, שזה עוקף מודלים בגודל 3 מיליארד ואפילו מתקרב לביצועים של StarCoder שגדול ממנו כמעט פי עשרה. מעבר להשלמת קוד בסיסית, יש לו מצב שיחה ניסיוני שמגיב להוראות, אבל נקודת החוזק האמיתית נשארת פעולת השלמת הקוד בסביבת הפיתוח.

מתאים ל

  • השלמת קוד מקומית ב־IDE

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

  • מילוי פונקציות חלקיות

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

  • עוזר שיחה למשימות תכנות

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

איפה זה נופל

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

שאלות
נפוצות

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

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

איך משתמשים במנגנון מילוי האמצע שלו?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="refactai/Refact-1_6B-fim")
print(pipe("שלום"))

הרישיון

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

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