GPT
S

sec-bert-base

קוד פתוח

nlpauebcc-by-sa-4.02022-03-02

  • transformers
  • pytorch
  • tf
  • bert
  • pretraining

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

  • 512טוקנים בהקשר
  • 927 MBמשקל הקבצים
  • 84,669הורדות בחודש
  • 36לייקים

מה זה

הצוות באוניברסיטת אתונה אימן את המודל על דוחות שהוגשו ל־SEC בין השנים 1993 ל־2019. המבנה זהה לחלוטין ל־BERT הבסיסי, 12 שכבות ו־110 מיליון פרמטרים, אבל עם אוצר מילים ייעודי של 30,000 תת־מילים שנוצר ישירות מתוך הטקסטים הרגולטוריים. המטרה היא להבין את השפה היבשה, החוזרת והמוגדרת של דוחות תאגידיים שנתיים.

בבדיקות השלמת מילים חסרות, הוא מזהה מונחים מקצועיים בדיוק שגרסה כללית לא מתקרבת אליו. במשפט על רכישה חוזרת של מניות, המודל חזה את המילה repurchased בהסתברות של 0.913 בזמן ש־BERT כללי הימר על held ב־0.229. בדוגמה של שנת דיווח הוא נתן 0.990 לתאריך הנכון. הוא מכיר את התבניות של הדוחות האלה בעל פה.

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

מתאים ל

  • סיווג משפטים בדוחות שנתיים

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

  • בסיס למודל חילוץ ישויות

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

  • השלמת טקסט פיננסי אוטומטי

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

איפה זה נופל

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

שאלות
נפוצות

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

המודל אומן אך ורק על אנגלית ועל דיווחי ה־SEC האמריקאי. הוא לא מבין עברית, וגם אם הדיווח הישראלי כתוב באנגלית, המונחים והמבנה המקומי שונים מהתבנית של דוחות 10-K, כך שהביצועים ייפגעו.

מה ההבדל המעשי בינו לבין SEC-BERT-NUM?

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

האם הוא מתאים לניתוח סנטימנט מיידי של מניות?

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

איך מריצים

המשקל הכולל של הקבצים הוא 927 מגה־בייט, כך שהוא נכנס בקלות לכל מעבד סביר ובוודאי לכרטיס מסך בסיסי עם 2 או 4 גיגה זיכרון. טוענים אותו ישירות דרך ספריית transformers בפייתון בשתי שורות קוד עם AutoModel ו־AutoTokenizer. אין צורך לחשוב פעמיים על חומרה יקרה, הוא רץ מקומית במהירות גבוהה.

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

from transformers import pipeline

pipe = pipeline("fill-mask", model="nlpaueb/sec-bert-base")
print(pipe("שלום"))

הקבצים

8 קבצים במאגר, 927 MB סך הכול. הקישורים מובילים ישירות ל־Hugging Face.

הרישיון

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

  • שימוש מסחרי
  • שינוי הקוד
  • חובת שיתוף באותו רישיון

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