GPT
C

codebert-base

קוד פתוח

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

  • transformers
  • pytorch
  • tf
  • jax
  • rust

microsoft עומדים גם מאחורי Sho, ויש עליו סקירה כאן.

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

  • 514טוקנים בהקשר
  • 1.9 GBמשקל הקבצים
  • 223,568הורדות בחודש
  • 287לייקים

מה זה

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

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

מתאים ל

  • חיפוש קוד סמנטי

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

  • חילוץ וקטורים לקוד

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

  • יצירת תיעוד מקוד

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

איפה זה נופל

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

שאלות
נפוצות

האם המודל הזה מתאים להשלמת קוד בזמן כתיבה?

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

האם אפשר לתת לו לנתח קובץ קוד שלם?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("feature-extraction", model="microsoft/codebert-base")
print(pipe("שלום"))

הרישיון

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

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