GPT
B

BioLORD-2023

קוד פתוח

FremyCompanyother2023-11-27

  • sentence-transformers
  • pytorch
  • safetensors
  • mpnet
  • feature-extraction

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

  • 109Mפרמטרים
  • 514טוקנים בהקשר
  • 836 MBמשקל הקבצים
  • 450,462הורדות בחודש

מה זה

המודל לוקח טקסטים או מונחים רפואיים וממיר אותם לווקטורים בגודל 768 ממדים. הבסיס שלו הוא all-mpnet-base-v2 הוותיק, שעבר אימון ייעודי על גרפי ידע ואונטולוגיות כמו UMLS, יחד עם הגדרות קליניות שמודלי שפה יצרו. המטרה כאן היא לפתור בעיה ידועה במונחים רפואיים, שבה שמות של מחלות או טיפולים לא נשמעים דומים מילולית אבל מתארים בדיוק את אותו הדבר או יושבים תחת אותה משפחה.

במבחני ביצועים קליניים כמו MedSTS למשפטים רפואיים ו־EHR-Rel-B לקשרים בין מושגים, הוא קבע תוצאות שיא בעת פרסומו ביחס למודלים בגודל דומה. הוא מצליח לשמר את המבנה ההיררכי של עולם הרפואה, כך ששמות נרדפים או מושגים קרובים מקבלים ייצוגים סמוכים במרחב הווקטורי, גם כשהניסוח הקליני שונה לחלוטין.

מתאים ל

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

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

  • התאמת מונחים לאונטולוגיה

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

  • קלאסטרינג של מושגים קליניים

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

איפה זה נופל

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

שאלות
נפוצות

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

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

במה הוא עדיף על מודל וקטורי כללי כמו all-mpnet-base-v2?

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

האם אפשר להשתמש בו ישירות במוצר מסחרי?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("FremyCompany/BioLORD-2023")
v = m.encode(["שלום עולם"])

הרישיון

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

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