GPT
D

distilbert-NER

קוד פתוח

dslimapache-2.02024-01-25

  • transformers
  • tensorboard
  • onnx
  • safetensors
  • distilbert

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

  • 65Mפרמטרים
  • 512טוקנים בהקשר
  • 499 MBמשקל הקבצים
  • 213,349הורדות בחודש

מה זה

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

התוצאות במבחן מציגות דיוק כללי של 0.9810 ומדד F1 שמגיע ל־0.9217. המספרים האלה אומרים שבטקסט סטנדרטי הוא מזהה כמעט כל אזכור נכון בלי לפספס ובלי לייצר המון אזעקות שווא, אבל צריך לזכור שהבדיקה הזו נעשתה על מבחן המקור של CoNLL-2003. בהשוואה לדגמי ברט הגדולים יותר של אותו יוצר, הוא מוותר על אחוזי דיוק בודדים לטובת חצי מכמות הפרמטרים וחיסכון גדול בזמן תגובה.

מתאים ל

  • סינון מסמכים באנגלית

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

  • אנונימיזציה של מידע

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

  • תיוג תוכן על מעבד מקומי

    זיהוי ישויות בזמן אמת בתוך אפליקציות שרצות על חומרה זולה או בסביבות קצה ללא GPU.

איפה זה נופל

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

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

שאלות
נפוצות

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

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

האם אני חייב כרטיס מסך כדי להשתמש בו בייצור?

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

איך מתמודדים עם טקסטים ארוכים מ־512 טוקנים?

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("token-classification", model="dslim/distilbert-NER")
print(pipe("שלום"))

הרישיון

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

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

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