BERT (language model) (HE)
BERT (Bidirectional Encoder Representations from Transformers, ייצוגי מקודד דו-כיווניים מ-Transformers) — הוא מודל שפה גדול (LLM) להבנת שפה טבעית, שפותח על ידי חוקרי Google והוצג בשנת 2018. BERT סימן עידן חדש בעיבוד שפה טבעית (NLP), בהדגמת ביצועים חסרי תקדים על מגוון רחב של משימות ובקביעת הפרדיגמה "pre-train & fine-tune" כסטנדרט בתעשייה.
החידוש המרכזי של BERT הוא הארכיטקטורה הדו-כיוונית העמוקה, המאפשרת למודל להביא בחשבון את ההקשר של מילה משמאל ומימין בו-זמנית בכל שכבות הרשת. הדבר מושג באמצעות משימת אימון מקדים חדשה — Masked Language Modeling (MLM).
Bidirectional Encoder Representations from Transformers - שם ועיקרון פעולה
הקיצור BERT מייצג את Bidirectional Encoder Representations from Transformers.
- Bidirectional (דו-כיווני): מצביע על המאפיין המרכזי של המודל — היכולת לעבד את הקשר מילה בשני הכיוונים (משמאל לימין ומימין לשמאל) בו-זמנית. בניגוד למודלים חד-כיווניים (כמו GPT), שבעת עיבוד מילה רואים רק את ההקשר הקודם לה, BERT רואה את כל הרצף כולו, מה שמאפשר לו לגבש הבנה עמוקה ומדויקת יותר של משמעות המילה.
- Encoder (מקודד): משמעו ש-BERT משתמש רק בחלק המקודד של ארכיטקטורת ה-Transformer. תפקיד המקודד הוא לקרוא את רצף הטקסט הנכנס וליצור עבור כל token ייצוג הקשרי עשיר (וקטור). BERT אינו מיועד ליצירת טקסט חופשי, כמו מודלי decoder.
- Representations (ייצוגים): המודל מתאמן ליצור ייצוגים מספריים (וקטורים או embeddings) איכותיים עבור מילים ומשפטים, אשר ניתן להשתמש בהם לאחר מכן לפתרון משימות NLP שונות.
- from Transformers: מציין שארכיטקטורת המודל מבוססת לחלוטין על ה-Transformer.
היסטוריית הפיתוח
פיתוח BERT היה תוצאה של מספר פריצות דרך מרכזיות ב-NLP:
- Embeddings הקשריים: מודלים כמו Word2vec ו-GloVe יצרו וקטורים סטטיים למילים, ללא התחשבות בהקשר. המודל ELMo (2018) היה צעד קדימה, ביצירת ייצוגים תלויי הקשר באמצעות רשתות LSTM דו-כיווניות, אולם דו-כיווניות זו הייתה "שטחית" (שרשור של שני מודלים חד-כיווניים).
- למידת העברה ו-GPT: באמצע 2018 הציגה OpenAI את המודל GPT, שהדגים את יעילות האימון המקדים של מודל transformer גדול על נתונים לא מסומנים, ולאחר מכן fine-tuning על משימות ספציפיות. אולם GPT היה חד-כיווני בהחלט (left-to-right), מה שהגביל את יכולותיו במשימות הדורשות הבנה של הקשר מלא.
בהכירם מגבלות אלו, פיתחו חוקרי Google בהנהגת Jacob Devlin את BERT, כדי ליצור מודל דו-כיווני עמוק באמת. המאמר על BERT פורסם ב-arXiv באוקטובר 2018, הקוד והמודלים המאומנים מראש פורסמו לציבור, מה שעורר עניין נרחב בקהילה המדעית. BERT שבר שיאים ב-11 benchmarks מרכזיים של NLP, כולל GLUE ו-SQuAD, וכונה "רגע ImageNet" ל-NLP, מאחר שמודל אוניברסלי אחד ניתן היה להתאים בקלות למשימות רבות.
ארכיטקטורה
BERT מבוסס לחלוטין על החלק המקודד (encoder) של ארכיטקטורת ה-Transformer. הוא מורכב ממספר שכבות זהות המוערמות זו על זו. קיימות שתי גרסאות עיקריות:
- BERT-Base: 12 שכבות, 12 ראשי attention, גודל מצב נסתר 768, מספר כולל של פרמטרים ~110 מיליון.
- BERT-Large: 24 שכבות, 16 ראשי attention, גודל מצב נסתר 1024, מספר כולל של פרמטרים ~340 מיליון.
כל שכבה מכילה שני תת-שכבות עיקריות:
- מנגנון Multi-Head Self-Attention: מאפשר לכל token ברצף הקלט "להסתכל" על כל שאר ה-tokens, ולשקול את חשיבותם לקביעת משמעותו ההקשרית שלו.
- רשת עצבית Feed-Forward: מיושמת על כל token בנפרד.
נתוני קלט
לפעולה תקינה, BERT דורש עיצוב מיוחד של נתוני הקלט. רצף ה-tokens המוזן לקלט מתחיל תמיד ב-token מיוחד `[CLS]` (classification), המשמש למשימות סיווג של הטקסט כולו. אם מוזג לקלט זוג משפטים (למשל, במשימות מערכות שאלות-תשובות), הם מופרדים ב-token `[SEP]` (separator).
הייצוג הסופי של כל token בקלט הוא סכום שלושה embeddings:
- Token embedding: וקטור המתאים ל-token הספציפי מתוך המילון (BERT משתמש ב-WordPiece tokenization).
- Segment embedding: מציין לאיזה משפט (ראשון או שני) שייך ה-token.
- Positional embedding: מציין את מיקום ה-token ברצף, מאחר שארכיטקטורת ה-Transformer כשלעצמה אינה מביאה בחשבון את סדר המילים.
משימות אימון מקדים
כדי להבטיח דו-כיווניות עמוקה, BERT מתאמן על שתי משימות ייחודיות בו-זמנית.
Masked Language Modeling (MLM)
זוהי החידוש המרכזי של BERT. במקום לנבא את המילה הבאה, כמו במודלי שפה רגילים, BERT מנבא מילים ש"הוסוו" אקראית במשפט. התהליך נראה כך:
- מרצף הקלט נבחרים אקראית 15% מה-tokens.
- מאותם 15%:
- 80% מוחלפים ב-token המיוחד `[MASK]`.
- 10% מוחלפים ב-token אקראי מהמילון.
- 10% נשארים ללא שינוי.
- משימת המודל היא לנבא את הערכים המקוריים של אותם 15% tokens, על סמך ההקשר הסובב אותם (שמאלי וימני).
סכמה זו מאלצת את המודל ללמוד קשרים סמנטיים ותחביריים עמוקים בין מילים ומאפשרת לו להיות דו-כיווני באמת.
Next Sentence Prediction (NSP)
משימה זו פותחה כדי ללמד את BERT להבין יחסים בין משפטים, דבר הקריטי למשימות כמו מערכות שאלות-תשובות או ניתוח השלכה טקסטואלית (NLI). למודל מוזג זוג משפטים (A ו-B), והוא צריך לנבא האם משפט B הוא המשך הגיוני של משפט A.
- ב-50% מהמקרים B הוא אכן המשפט הבא מהטקסט המקורי.
- ב-50% מהמקרים B הוא משפט אקראי שנלקח ממקום אחר בקורפוס.
מחקרים מאוחרים יותר (למשל, במודל RoBERTa) הראו שמשימת NSP פחות חשובה מ-MLM, וניתן לוותר עליה לטובת סכמות אימון יעילות יותר, אך ב-BERT המקורי היא מילאה תפקיד חשוב.
שימוש ו-Fine-Tuning
כוחו של BERT טמון בפרדיגמת למידת ההעברה. לאחר אימון מקדים נרחב ויקר על קורפוסים עצומים (Wikipedia + BooksCorpus), ניתן לבצע fine-tuning על המודל המאומן מראש בקלות ובמהירות לפתרון משימה יישומית ספציפית.
תהליך ה-fine-tuning נראה בדרך כלל כך: 1. לארכיטקטורת BERT המאומן מראש מתווסף שכבה קטנה ולא מאומנת, ספציפית למשימה (למשל, מסווג לניתוח סנטימנט). 2. כל המודל (כולל משקולות BERT והשכבה החדשה) מתאמן על מערך נתונים קטן ומסומן לאותה משימה ספציפית.
דוגמאות למשימות שאליהן מותאם BERT:
- סיווג טקסט (ניתוח סנטימנט, מסנני ספאם): לפלט ה-token `[CLS]` מתווסף מסווג.
- מערכות שאלות-תשובות (למשל, SQuAD): המודל מתאמן לנבא את ה-tokens ההתחלתי והסופי של התשובה בטקסט הנתון.
- זיהוי ישויות בעלות שם (NER): לפלט של כל token מתווסף מסווג הקובע האם ה-token הוא חלק משם, ארגון, תאריך וכו'.
גרסאות ומודלים נגזרים
הצלחת BERT הובילה להופעת משפחה שלמה של מודלים המבוססים על רעיונותיו:
- RoBERTa (מ-Facebook AI): "BERT ממוטב באופן חזק". אינו ארכיטקטורה חדשה, אלא תוצאה של אימון BERT ממושך ומקפיד יותר: על כמות גדולה יותר של נתונים, ללא משימת NSP ועם masking דינמי. RoBERTa הראתה שה-BERT המקורי היה "תת-מאומן", ועלתה עליו בכל ה-benchmarks המרכזיים.
- DistilBERT (מ-Hugging Face): גרסה מוקטנת של BERT, שנוצרה באמצעות טכניקת distillation של ידע. DistilBERT קטן ב-40%, מהיר ב-60% ושומר על 97% מביצועי BERT, מה שהופך אותו לאידיאלי לשימוש ב-production ובמכשירים עם משאבים מוגבלים.
- ALBERT (A Lite BERT, מ-Google): גרסה ממוטבת לצמצום מספר הפרמטרים. משתמשת בשתי טכניקות מרכזיות: פקטוריזציה של embeddings ו-cross-layer parameter sharing. הדבר מאפשר ליצור מודלים גדולים בהרבה עם פחות פרמטרים.
- mBERT (Multilingual BERT): גרסת BERT מאומנת מראש על 104 שפות בו-זמנית. הציגה יכולת מרשימה להעברת ידע בין-לשונית.
- מודלים ספציפיים לתחום: מודלים רבים שעברו fine-tuning על נתונים מתחומים ספציפיים, כגון BioBERT (ביו-רפואה), SciBERT (טקסטים מדעיים) ו-FinBERT (פיננסים).
- ModernBERT (2024-2025): דור חדש של מודלים דמויי BERT מחברות Answer.AI ו-LightOn, הכולל שיפורים ארכיטקטוניים מודרניים כגון RoPE (Rotary Position Embeddings) ותמיכה בהקשרים ארוכים יותר (עד 8192 tokens), תוך שמירה על עקרונות הבסיס של BERT.
השוואה עם מודלים אחרים
| מודל | מפתח | ארכיטקטורה | כיוון הקשר | משימה עיקרית |
|---|---|---|---|---|
| BERT | Encoder | דו-כיווני | הבנת טקסט, סיווג, חילוץ מידע | |
| GPT | OpenAI | Decoder | חד-כיווני (משמאל לימין) | יצירת טקסט, המשך רצפים |
| XLNet | Google / CMU | אוטורגרסיבי (פרמוטציה) | דו-כיווני (בתיאוריה) | הבנת טקסט (חלופה ל-MLM) |
| T5 | Encoder-Decoder | דו-כיווני (encoder) + חד-כיווני (decoder) | המרה אוניברסלית "טקסט-לטקסט" |
השפעה
BERT חולל מהפכה של ממש ב-NLP והניח את הבסיס להתפתחויות רבות שבאו לאחריו:
- ביסס את פרדיגמת "pre-train + fine-tune" כגישה הדומיננטית ב-NLP.
- הוכיח את החשיבות של הקשר דו-כיווני עמוק להבנת שפה.
- הוריד את רף הכניסה ליצירת מערכות NLP ביצועיות, מאחר שחוקרים ומפתחים לא נדרשו עוד לבנות ארכיטקטורות מורכבות מאפס עבור כל משימה.
- שולב ב-Google Search, שהיה אחד מעדכוני מנוע החיפוש הגדולים ביותר לאורך כל ההיסטוריה שלו, והדגים בצורה ברורה את התועלת המעשית של המודל.
- יצר מערכת אקולוגית שלמה של מודלים נגזרים, כלים ומחקרים ("BERTology"), והפך לאחד המאמרים המצוטטים ביותר בתחום הבינה המלאכותית.
למרות שמודלים חדשים וגדולים יותר, כגון GPT-3 ו-GPT-4, עלו על BERT בבenchmarks רבים (במיוחד במשימות יצירתיות), BERT וגרסאותיו נותרים עד היום כלי עוצמתי ונפוץ לשימוש במשימות הדורשות הבנה עמוקה של טקסט.
קישורים חיצוניים
- מאגר BERT הרשמי ב-GitHub
- הכרזת BERT בבלוג Google AI
- The Illustrated BERT — הסבר ויזואלי של ארכיטקטורת BERT
ספרות
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. arXiv:1802.05365.
- Liu, Y. et al. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv:1907.11692.
- Lan, Z. et al. (2020). ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. arXiv:1909.11942.
- Sanh, V. et al. (2020). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.
- Yang, Z. et al. (2019). XLNet: Generalized Autoregressive Pretraining for Language Understanding. arXiv:1906.08237.
- Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
- Lee, J. et al. (2020). BioBERT: a pre-trained biomedical language representation model for biomedical text mining. arXiv:1901.08746.
- Warner, B. et al. (2024). Smarter, Better, Faster, Longer: A Modern Bidirectional Encoder for Fast, Memory Efficient, and Long Context Finetuning and Inference. arXiv:2412.13663.