GPT
P

ProtGPT2

קוד פתוח

nferruzapache-2.02022-03-07

  • transformers
  • pytorch
  • gpt2
  • text-generation
  • text-generation-inference

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

  • 1,024טוקנים בהקשר
  • 2.9 GBמשקל הקבצים
  • 13,268הורדות בחודש
  • 118לייקים

מה זה

מדובר במודל שפה עם 738 מיליון פרמטרים שמבוסס על GPT-2 וכולל 36 שכבות. במקום ללמוד טקסט אנושי, אימנו אותו על בסיס הנתונים UniRef50 בגרסת 2021_04, שמכיל רצפי חלבונים גולמיים בלי כותרות או תיאורים מילוליים. הוא לומד לחזות את חומצת האמינו הבאה ברצף, וכך קולט את המבנה והתכונות הביולוגיות של חלבונים טבעיים.

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

מתאים ל

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

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

  • השלמת מקטעי רצף

    מקבל מקטע פתיחה של חומצות אמינו וממשיך אותו לרצף חלבוני מלא והגיוני.

  • כוונון למשפחות חלבונים

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

איפה זה נופל

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

שאלות
נפוצות

למה להשתמש בו אם כבר קיים ProtGPT3?

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

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

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

איך מריצים

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

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

from transformers import pipeline

pipe = pipeline("text-generation", model="nferruz/ProtGPT2")
print(pipe("שלום"))

הרישיון

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

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

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