GPT
B

BioBERT-mnli-snli-scinli-scitail-mednli-stsb

קוד פתוח

pritamdekacc-by-nc-3.02022-11-03

  • sentence-transformers
  • pytorch
  • bert
  • feature-extraction
  • sentence-similarity

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

  • 512טוקנים בהקשר
  • 414 MBמשקל הקבצים
  • 53,193הורדות בחודש
  • 58לייקים

מה זה

בבסיס יושב BioBERT שעבר כוונון ייעודי למשימות דמיון סמנטי והיסק לוגי. הוא אומן על שילוב של מאגרי NLI כלליים כמו SNLI ו־MNLI, יחד עם מאגרים מדעיים ורפואיים כמו SciTail, SciNLI ו־MedNLI, וסגר אימון על STSB עם פונקציית CosineSimilarityLoss במשך 4 תקופות.

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

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

מתאים ל

  • אימות טענות רפואיות

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

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

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

  • קיבוץ תלונות קליניות

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

איפה זה נופל

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

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

שאלות
נפוצות

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

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

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

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("pritamdeka/BioBERT-mnli-snli-scinli-scitail-mednli-stsb")
v = m.encode(["שלום עולם"])

הרישיון

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

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