Lensa ML

BERT dan Masked LM

Langkah 1 dari 6: Konteks Bidirectional

Melihat ke kiri DAN ke kanan

Token fokus3
Bidirectional: memperhatikan konteks kiri DAN kanan0.34The0.27cat0.42saton0.26the0.28warm0.20mat← Kiri ke kanan (GPT)"The cat sat __"Hanya melihat: The cat sat↔ Bidirectional (BERT)"The cat sat [MASK] the warm mat"Melihat: The cat sat the warm matBERT melihat seluruh kalimat (kecuali token yang di-mask) dari dua sisi.
Fokus
"on"
Konteks kiri
3
Konteks kanan
3

"on" punya 3 token konteks kiri (merah muda) dan 3 token konteks kanan (toska). BERT memperhatikan kedua sisi sekaligus, dan model kiri ke kanan tidak bisa melakukannya.

Geser Token fokus dari 0 sampai 6 untuk berpindah di sepanjang "The cat sat on the warm mat" dan membandingkan konteks kiri dan kanannya. Model bidirectional tidak bisa dilatih dengan prediksi kata berikutnya: kalau setiap layer melihat setiap posisi, kata yang harus diprediksi sudah ada di input. Jawaban BERT adalah menyembunyikan kata lalu memprediksinya, tugas yang di makalahnya dinamai dari cloze test, hasil riset membaca tahun 1950-an. BERT-base punya 12 layer encoder, 768 hidden unit, dan 110 juta parameter; BERT-large punya 24 layer dan 340 juta parameter.

Langkah 2 dari 6: Strategi Masking

Memilih token yang disembunyikan

Probabilitas mask (%)15
Asli:Thecatsatonthewarmmat↓ mask 15%Input ke BERT:Thecatsatonthe[MASK]matStrategi masking BERT (dari token terpilih):80% → token [MASK]Memaksa model menebak dari konteks10% → Kata acakMencegah model mengabaikan [MASK]10% → Tetap asliMelatih model memastikan kata yang benar1 dari 7 token terpilih (14%), BERT hanya dilatih memprediksi token ini
Laju mask
15%
[MASK]
1
Acak
0
Tetap
0

Masking 15%: kira-kira 1 dari 7 token terpilih. Makalah BERT asli memakai 15%: target untuk dipelajari cukup banyak, dan sebagian besar input tetap utuh.

Geser Probabilitas mask (%) dari 0 sampai 50 dan lihat token mana yang terpilih. Dari token terpilih, BERT mengganti 80% dengan [MASK], 10% dengan kata acak, dan membiarkan 10% tidak berubah, jadi pada laju pemilihan 15% hanya sekitar 12% token yang tampil sebagai [MASK]. Riset berikutnya meninjau ulang laju ini: Wettig dkk. (2022) menemukan bahwa masking 40% menyamai atau mengalahkan 15% untuk model besar. SpanBERT menyembunyikan rentang kata yang berurutan, dan RoBERTa membuat mask baru setiap kali melihat sebuah kalimat (dynamic masking).

Langkah 3 dari 6: Memprediksi [MASK]

Mengisi bagian yang kosong

Posisi mask1
Strategi: Token [MASK] (80%)0
80% token terpilih → diganti dengan [MASK]BERT melihat:The[MASK]satonthewarmmatTarget: selalu memprediksi kata asli "cat"Prediksi top-5 (benar: "cat"):cat91.2%✓ benardog4.1%the1.1%hat0.7%cold0.7%+ 5 kata lain berbagi probabilitas 2,3%
Strategi
Token [MASK]
Token benar
"cat"
Prediksi teratas
cat
Peringkat kata benar
#1

Strategi [MASK] (80% kasus): BERT melihat "[MASK]" dan memprediksi "cat" dengan benar, dengan confidence 91,2%, hanya dari kata-kata di sekitarnya.

Geser Posisi mask dari 0 sampai 6, lalu gerakkan slider Strategi melewati token [MASK], Kata acak, dan Tetap asli. Prediksinya berasal dari vector akhir BERT di posisi itu, yang melewati output layer kecil yang berbagi weight dengan matriks embedding input, lalu softmax atas vocabulary WordPiece berisi 30.522 token. Loss hanya menghitung posisi yang terpilih, jadi setiap kalimat melatih sekitar 15% token-nya. Training ala GPT mendapat target di setiap posisi, dan ELECTRA kemudian mengembalikan efisiensi itu untuk encoder.

Langkah 4 dari 6: Loss saat Pre-training

Cross-entropy pada token yang di-mask

Epoch0
LossEpoch1350102030Prediksi di semua 3 strategi masking:80% [MASK][MASK] → ?cat: 14%dog: 86%10% Acak"ran" → ?sat: 8%ran: 92%10% Tetap"warm" → ?warm: 13%cold: 87%
Epoch
0
Loss
5.42
Rata-rata akurasi
12%

Epoch 0: sebelum training, prediksi masih acak untuk ketiga strategi dan loss-nya tinggi. Di setiap kotak, targetnya adalah token yang benar. Tekan ▶ Putar atau geser slider.

Klik ▶ Putar atau geser slider Epoch dari 0 sampai 30 untuk melihat loss turun. Training aslinya memakai BooksCorpus (800 juta kata) dan Wikipedia bahasa Inggris (2,5 miliar kata) selama 1 juta langkah dengan batch berisi 256 sequence, sekitar 40 putaran atas data. BERT juga melatih tujuan kedua, next sentence prediction (NSP), yang menanyakan apakah kalimat B benar-benar mengikuti kalimat A di teks sumber. RoBERTa kemudian menunjukkan bahwa membuang NSP dan melatih lebih lama dengan data lebih banyak memberi hasil yang lebih baik.

Langkah 5 dari 6: Fine-tuning

Dari pre-trained ke tugas tertentu

Epoch fine-tuning0
BERT pre-trained + classification head[CLS]greatmovie[SEP]BERT (frozen atau di-fine-tune)h_[CLS]Linear + SoftmaxP(positif) = 53%Confusion matrixPred +Pred −Aktual +2624Aktual −2426Fine-tuning: tambahkan classification head kecil di atas embedding [CLS]Latih hanya 2-4 epoch pada data berlabel, pengetahuan dari pre-training terbawa
Epoch fine-tuning
0
Akurasi
51.2%
True positive
26
False negative
24

Sebelum fine-tuning: embedding [CLS] membawa pengetahuan bahasa umum, tetapi classifier head yang baru belum dilatih, jadi akurasi berada di sekitar 50% (tebakan acak).

Geser Epoch fine-tuning dari 0 sampai 20 dan perhatikan akurasi serta confusion matrix. Untuk klasifikasi, vector akhir token [CLS] masuk ke satu linear layer, dan semua weight BERT ikut diperbarui. Makalahnya menyarankan 2 sampai 4 epoch, batch size 16 atau 32, dan learning rate antara 2e-5 dan 5e-5, jauh lebih kecil daripada saat pre-training. Question answering memakai encoder yang sama dengan head berbeda, yang memprediksi awal dan akhir rentang jawaban dalam teks.

Langkah 6 dari 6: Contextual Embedding

Kata sama, makna berbeda

Kata polisemi0
"bank" di konteks berbeda → embedding berbedaWord2Vec (statis)lembaga keuangantepi sungaidepositedriverapprovedsatContoh konteks:"I deposited money at the bank" → lembaga keuangan"The river bank was muddy" → tepi sungai"The bank approved the loan" → lembaga keuangan"We sat on the bank fishing" → tepi sungai
Kata
"bank"
Makna
2
Konteks
4
Jenis
Kontekstual

"bank" punya 2 makna berbeda: lembaga keuangan vs. tepi sungai. Word2Vec memetakan semua pemakaian ke satu titik (lingkaran kuning). BERT memberi setiap pemakaian embedding-nya sendiri: pemakaian "lembaga keuangan" mengelompok bersama (toska), dan pemakaian "tepi sungai" membentuk cluster terpisah (merah muda).

Geser Kata polisemi dari 0 sampai 2 untuk membandingkan bank, bat, dan light, masing-masing dalam empat kalimat. Setiap vector bergantung pada seluruh kalimat, dan tiap layer menyimpan informasi berbeda: Tenney dkk. (2019) menemukan bahwa layer bawah lebih banyak menangkap sintaksis dan layer atas lebih banyak menangkap makna. Vector untuk satu kalimat utuh adalah masalah lain. Merata-ratakan vector token BERT mentah kurang bagus untuk pencarian kemiripan. Itu sebabnya Sentence-BERT men-fine-tune BERT dengan pasangan kalimat agar menghasilkan vector yang bisa dibandingkan dengan cosine similarity.

Apa itu BERT dan masked language modeling?

BERT (Bidirectional Encoder Representations from Transformers) adalah encoder Transformer yang di-pre-train untuk mengisi kata yang disembunyikan dengan memakai konteks dari dua sisi. Tugas training ini disebut masked language modeling: sekitar 15% token di tiap kalimat disembunyikan, dan model belajar memprediksinya. Setelah pre-training, BERT menghasilkan vector kontekstual untuk setiap token dan bisa di-fine-tune untuk tugas tertentu dengan satu layer tambahan yang kecil.

Google merilis BERT pada 2018, dan model ini mencetak rekor baru di 11 benchmark pemahaman bahasa sekaligus. Resep pre-train lalu fine-tune pun menjadi standar di NLP. Encoder ala BERT masih menjalankan pemeringkatan hasil pencarian, klasifikasi teks, named entity recognition, extractive question answering, dan model embedding di balik semantic search dan retrieval-augmented generation.

Ide utama

  • BERT adalah encoder Transformer yang membaca seluruh kalimat dari dua arah sekaligus.
  • Masked language modeling menyembunyikan sekitar 15% token dan melatih model untuk memprediksinya.
  • Dari token terpilih, 80% menjadi [MASK], 10% menjadi kata acak, dan 10% tidak berubah.
  • Loss-nya adalah cross-entropy pada posisi terpilih saja.
  • Fine-tuning menambahkan task head kecil dan memperbarui semua weight selama beberapa epoch.
  • Setiap kemunculan kata mendapat vector sendiri, sehingga makna yang berbeda terpisah.

Pertanyaan umum

Apa bedanya BERT dan GPT?

Keduanya tersusun dari blok Transformer. BERT adalah encoder dengan attention ke dua arah, dilatih mengisi kata yang di-mask, sehingga kuat untuk tugas pemahaman. GPT adalah decoder dengan causal attention, dilatih memprediksi kata berikutnya, sehingga bisa menghasilkan teks.

Apakah BERT bisa menghasilkan teks?

Tidak dengan baik. BERT memprediksi token yang di-mask secara paralel dari input berpanjang tetap, dan tidak punya proses bawaan dari kiri ke kanan untuk menulis teks baru. Menghasilkan teks butuh decoder, seperti di GPT, atau model encoder-decoder seperti T5 atau BART.

Apa itu token [CLS] dan [SEP]?

[CLS] ditambahkan di awal setiap input, dan vector akhirnya berfungsi sebagai ringkasan seluruh sequence untuk klasifikasi. [SEP] menandai batas antara dua segmen, misalnya pertanyaan dan teks bacaan, dan BERT juga menambahkan segment embedding agar setiap token tahu bagian mana tempatnya.

Apakah BERT masih dipakai?

Ya. Model generatif besar menangani banyak tugas lewat prompting, tetapi encoder ala BERT jauh lebih murah dijalankan dan masih menjadi pilihan umum untuk klasifikasi, pemeringkatan, dan embedding bervolume tinggi. Encoder yang lebih baru seperti RoBERTa, DeBERTa, dan ModernBERT mengikuti rancangan masked language model yang sama.

Penjelasan terkait

Referensi

  1. Devlin et al. (2019), "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", NAACL
  2. Liu et al. (2019), "RoBERTa: A Robustly Optimized BERT Pretraining Approach"
  3. Clark et al. (2020), "ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators", ICLR
  4. Wettig et al. (2022), "Should You Mask 15% in Masked Language Modeling?"
  5. Reimers & Gurevych (2019), "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks"

Terakhir diperbarui