GPT
Q

Qodo-Embed-1-1.5B

קוד פתוח

Qodoother2025-02-19

  • sentence-transformers
  • safetensors
  • qwen2
  • feature-extraction
  • sentence-similarity

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

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

  • 1.5Bפרמטרים
  • 131,072טוקנים בהקשר
  • 5.8 GBמשקל הקבצים
  • 15,357הורדות בחודש

מה זה

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

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

מתאים ל

  • חיפוש קוד בשפה חופשית

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

  • שליפת הקשר למערכות RAG

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

  • איתור כפילויות בפרויקטים

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

איפה זה נופל

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

שאלות
נפוצות

כמה זיכרון כרטיס מסך נדרש כדי להריץ את המודל?

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

מה אורך הקוד המרבי שאפשר לתת לו בבת אחת?

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

האם המודל תומך בשפות תכנות שאינן ברשימה?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("Qodo/Qodo-Embed-1-1.5B")
v = m.encode(["שלום עולם"])

הרישיון

הרישיון הוא QodoAI-Open-RAIL-M ולא רישיון קוד פתוח סטנדרטי כמו MIT או אפאצ'י. מותר להשתמש בו לצרכים פנימיים ומסחריים, אבל הרישיונות ממשפחת RAIL כוללים הגבלות שימוש ספציפיות על תחומים אסורים. חובה לקרוא את נוסח הרישיון המלא לפני שמשלבים אותו במוצר שמפיצים ללקוחות.

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