GPT
W

WizardCoder-Python-34B-V1.0

קוד פתוח

WizardLMTeamllama22023-08-26

  • transformers
  • pytorch
  • llama
  • text-generation
  • code

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

  • 16,384טוקנים בהקשר
  • 62.9 GBמשקל הקבצים
  • 203הורדות בחודש
  • 772לייקים

מה זה

מדובר במודל שמתמקד בכתיבה והבנה של קוד פייתון, המבוסס על ארכיטקטורת LlamaForCausalLM עם 48 שכבות וחלון הקשר של 16,384 טוקנים. הוא אומן בשיטת Evol-Instruct, שמייצרת הוראות מורכבות יותר כדי לשפר את איכות הקוד שהוא פולט.

במבחני HumanEval המודל קיבל ציון של 73.2 pass@1, ובמבחן המורחב HumanEval-Plus הוא עומד על 64.6. במבחן MBPP הוא הגיע לציון 73.2, ובגרסת הפלוס ל־59.9. המשמעות של הפער הזה בפועל פשוטה: על בעיות סינתטיות רגילות הוא מספק קוד שעובד בערך בשלושה מתוך ארבעה מקרים, אבל ברגע שמריצים בדיקות קצה מחמירות יותר, אחוז ההצלחה יורד בעשר נקודות לפחות.

מתאים ל

  • השלמת קוד מקומית לפייתון

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

  • ייצור בדיקות יחידה

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

  • ניתוח קבצי פייתון בינוניים

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

איפה זה נופל

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

בכרטיס עצמו פורסם בהמשך מודל חדש יותר מאותה סדרה, גרסת 33B מבוססת DeepSeek, שעוקפת אותו בכל המדדים. חלון ההקשר אמנם מוגדר ל־16,384 טוקנים, אך איבוד דיוק במשימות ארוכות הוא סיכון שחייבים לבדוק ידנית.

אותה משפחה

WizardCoder-Python יצא ב־2 גרסאות שיש להן עמוד כאן. אלה האחרות, לפי כמה מורידים אותן.

שאלות
נפוצות

כמה זיכרון וידאו דרוש בפועל להרצת המודל כפי שהוא?

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

האם כדאי לבחור בו על פני גרסאות חדשות יותר של WizardCoder?

לא בטוח. הכרטיס עצמו מציין את גרסת WizardCoder-33B-V1.1 שמשיגה 79.9 ב־HumanEval לעומת 73.2 במודל הזה. אם אין לכם תלות ספציפית בבסיס של Llama 2, הגרסה החדשה מציגה תוצאות עדיפות.

איך מריצים

כדי להריץ 34 מיליארד פרמטרים בדיוק המקורי של float16 צריך זיכרון וידאו רציני. המשקלים לבדם תופסים 62.9 גיגה-בייט שמחולקים ל־17 קבצים, מה שמחייב לפחות שני כרטיסי 4090 עם חלוקת שכבות או מאיץ A100 של 80 גיגה-בייט כדי להשאיר מקום לקונטקסט של 16k.

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

from transformers import pipeline

pipe = pipeline("text-generation", model="WizardLMTeam/WizardCoder-Python-34B-V1.0")
print(pipe("שלום"))

הרישיון

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

  • שימוש מסחרי עד 700 מיליון משתמשים
  • שינוי הקוד
  • חובת ייחוס

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