GPT
C

ChatMusician

קוד פתוח

m-a-pmit2023-11-30

  • transformers
  • pytorch
  • safetensors
  • llama
  • text-generation

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

  • 6.7Bפרמטרים
  • 2,048טוקנים בהקשר
  • 25.1 GBמשקל הקבצים
  • 463הורדות בחודש

מה זה

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

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

מתאים ל

  • הלחנה לפי מהלך אקורדים

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

  • הרמוניזציה למלודיה נתונה

    התאמת ליווי ואקורדים למנגינה קיימת שהוזנה כטקסט תווים.

  • ניתוח מבנה מוזיקלי

    זיהוי מוטיבים חוזרים, חלוקה לבתים ופזמונים ופענוח מבנים ביצירות קצרות.

איפה זה נופל

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

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

שאלות
נפוצות

האם המודל מוציא קובצי סאונד ישירות?

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

האם הוא מבין עברית?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="m-a-p/ChatMusician")
print(pipe("שלום"))

הרישיון

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

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

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