GPT
C

codet5p-110m-embedding

קוד פתוח

Salesforcebsd-3-clause2023-07-18

  • transformers
  • pytorch
  • codet5p_embedding
  • custom_code
  • endpoints_compatible

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

  • 512טוקנים בהקשר
  • 421 MBמשקל הקבצים
  • 17,783הורדות בחודש
  • 69לייקים

מה זה

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

במבחני CodeXGLUE לאיתור קוד ללא אימון מוקדם על המשימה, הוא מציג ציון ממוצע של 74.23. הביצועים משתנים מאוד בין שפות, עם תוצאה חריגה לטובה של 90.69 בשפת גו, לעומת אזור ה־67 עד 71 ב־PHP, ג'אווהסקריפט ופייתון. המשמעות היא שקוד במבנה מסוים יישלף ביעילות גבוהה, אבל שפות עם תחביר חופשי יותר יקבלו תוצאות פחות מדויקות.

מתאים ל

  • חיפוש סמנטי במאגר קוד

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

  • מערכות RAG לקוד

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

  • זיהוי כפילויות לוגיות

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

איפה זה נופל

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

שאלות
נפוצות

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

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

למה שהמודל יחתוך לי פונקציות באמצע?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="Salesforce/codet5p-110m-embedding")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

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