GPT
S

S-PubMedBert-MS-MARCO

קוד פתוח

pritamdekacc-by-nc-2.02022-03-02

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

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

  • 512טוקנים בהקשר
  • 418 MBמשקל הקבצים
  • 144,488הורדות בחודש
  • 45לייקים

מה זה

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

המודל מייצר וקטורים צפופים באורך 768 ממדים לכל משפט או פסקה שתזינו אליו, בעזרת pooling מסוג mean. האימון עצמו בוצע במשך שני מחזורים בלבד עם MarginMSELoss וקצב למידה של 2e-05, במטרה לתת דירוג רלוונטיות מדויק יותר לשאילתות חיפוש. במקום לחפש התאמה מילולית עיוורת, הוא מנסה להבין הקשר של מושגים קליניים בתוך טקסט חופשי.

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

מתאים ל

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

    התאמת שאלות חופשיות לפסקאות מתוך מאגרי מחקר רפואיים באנגלית לפי הבנת המושגים.

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

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

  • אימות עובדות רפואיות

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

איפה זה נופל

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

שאלות
נפוצות

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

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

אפשר להריץ אותו על עברית?

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

איך מריצים

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

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

from sentence_transformers import SentenceTransformer

m = SentenceTransformer("pritamdeka/S-PubMedBert-MS-MARCO")
v = m.encode(["שלום עולם"])

הרישיון

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

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