GPT
O

OpenCoder-8B-Instruct

קוד פתוח

inflyother2024-11-07

  • transformers
  • safetensors
  • llama
  • text-generation
  • conversational

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

  • 7.8Bפרמטרים
  • 8,192טוקנים בהקשר
  • 14.5 GBמשקל הקבצים
  • 739הורדות בחודש

מה זה

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

במבחני ביצועים הוא מציג תוצאות טובות למשימות כתיבה עצמאיות עם 83.5 נקודות בבנצ'מרק של HumanEval וציון 79.1 ב־MBPP. עם זאת, במבחנים מורכבים יותר כמו BigCodeBench-Hard הוא מגיע ל־16.9 בלבד, וב־LiveCodeBench הוא עומד על 23.2. המשמעות היא שפונקציות בודדות ופתרון תרגילים קלאסיים עובדים מעולה, אבל לוגיקה מסובכת או שילוב ספריות רחב עדיין מקשים עליו.

מתאים ל

  • השלמת פונקציות בקוד

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

  • עוזר פיתוח מקומי אופליין

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

  • מחקר והתאמה אישית

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

איפה זה נופל

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

אותה משפחה

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

שאלות
נפוצות

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

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

האם אפשר לתת לו לתקן פרויקט שלם?

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

איזה כרטיס מסך נדרש להרצה?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="infly/OpenCoder-8B-Instruct")
print(pipe("שלום"))

הרישיון

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

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