GPT
X

xlm-roberta-base-language-detection

קוד פתוח

paplucamit2022-03-02

  • transformers
  • pytorch
  • tf
  • safetensors
  • xlm-roberta

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

  • 278Mפרמטרים
  • 514טוקנים בהקשר
  • 3.1 GBמשקל הקבצים
  • 548,419הורדות בחודש

מה זה

המודל לוקח את xlm-roberta-base ומוסיף מעליו ראש סיווג לינארי פשוט שתוכנת לזהות 20 שפות ספציפיות. הוא אומן על סט נתונים של 70 אלף דוגמאות ונבדק מול ספריית langid הוותיקה, כשהוא מציג דיוק ממוצע של 99.6% במבחן לעומת 98.5% של המתחרה.

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

מתאים ל

  • ניתוב פניות תמיכה

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

  • סינון קלט בצינור תרגום

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

  • ניקוי דאטה סט רב-לשוני

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

איפה זה נופל

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

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

שאלות
נפוצות

האם הוא מתאים לעיבוד טקסטים בעברית?

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

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

הקבצים שוקלים 3.1 גיגה בייט, כך שצריך כ־4 גיגה בייט של זיכרון RAM במעבד או VRAM בכרטיס מסך כדי לטעון אותו בצורה יציבה. אפשר להריץ אותו על מעבד רגיל אם העומס נמוך.

למה לא להשתמש בספרייה קלה יותר כמו langid?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-classification", model="papluca/xlm-roberta-base-language-detection")
print(pipe("שלום"))

הרישיון

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

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

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