GPT
S

sbert_large_nlu_ru

קוד פתוח

ai-forevermit2022-03-02

  • transformers
  • pytorch
  • safetensors
  • bert
  • feature-extraction

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

  • 427Mפרמטרים
  • 512טוקנים בהקשר
  • 3.2 GBמשקל הקבצים
  • 14,816הורדות בחודש

מה זה

מדובר בארכיטקטורת BERT גדולה עם 24 שכבות שאומנה ספציפית לרוסית, במטרה להוציא ייצוג וקטורי למשפטים שלמים ולא רק למילים בודדות. המפתחים שלו בצוות SberDevices מציינים במפורש שכדי לקבל ממנו תוצאות טובות צריך להשתמש במיצוע של הטוקנים (mean token embeddings) ולא להסתמך על וקטור ה־CLS לבדו.

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

מתאים ל

  • חיפוש סמנטי ברוסית

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

  • מיון פניות לקוחות

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

  • זיהוי כפילויות תוכן

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

איפה זה נופל

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

שאלות
נפוצות

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

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

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

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

איך מריצים

המשקל של הקבצים מגיע ל־3.2 גיגה בייט בגלל דיוק של float32, ולכן תצטרכו כרטיס מסך עם לפחות 6 עד 8 גיגה זיכרון כדי להריץ עליו היקשים בקצב סביר או לאמן מעליו שכבה נוספת. אפשר לטעון אותו ישירות דרך ספריית transformers הרגילה בפייתון בלי התאמות מיוחדות.

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

from transformers import pipeline

pipe = pipeline("feature-extraction", model="ai-forever/sbert_large_nlu_ru")
print(pipe("שלום"))

הרישיון

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

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

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