Pretraining & Finetuning

Catatan belajar dari slide W4 (adaptasi Stanford CS224N, Diyi Yang). Setiap bagian punya penjelasan sederhana, contoh, dan kotak Pikir kritis supaya kamu tidak sekadar menghafal.

0. Peta besar: satu cerita utuh

Bayangkan seorang siswa. Sebelum kuliah spesialis, ia membaca ribuan buku umum sampai paham bahasa, fakta, dan cara orang bernalar (pretraining). Lalu ia diberi sedikit latihan khusus untuk satu profesi (finetuning). Hasilnya jauh lebih baik daripada siswa yang langsung belajar profesi dari nol.

Teks mentahtanpa label, sangat besar pretrain Model dasarpaham bahasa secara umum finetune Tugas spesifiksentimen, QA, ringkasan, dll.

Urutan materi: (1) kenapa ini penting, (2) cara memotong kata, (3) dari embedding ke model utuh, (4) tiga jenis arsitektur, (5) model raksasa dan scaling, (6) apa yang dipelajari, termasuk sisi buruknya.

1. Mengapa pretraining? (Motivasi)

Slide menunjukkan grafik: di banyak benchmark (SQuAD, GLUE, SuperGLUE), skor model naik tajam dan menyusul manusia setelah model bahasa pretrained muncul sekitar 2018. Jadi pretraining bukan sekadar trik kecil, tetapi perubahan besar cara membangun sistem NLP.

Tiga ide kunci

Contoh: kalimat Universitas Gadjah Mada berlokasi di ___, Indonesia tidak butuh label manusia. Jawabannya (Yogyakarta) sudah ada di teks aslinya. Kalimat itu sendiri adalah "soal sekaligus kunci jawaban".
Pikir kritis: Slide menyebut "unsupervised", tetapi istilah yang lebih tepat adalah self-supervised: labelnya dibuat otomatis dari teks itu sendiri. Juga, grafik "menyusul manusia" perlu hati-hati: skor benchmark tinggi tidak berarti model memahami bahasa seperti manusia. Benchmark bisa "jenuh" dan model bisa mengandalkan pola dangkal.

2. Subword modeling dan Byte-Pair Encoding (BPE)

Masalah: kosakata tetap

Model lama memakai kosakata tetap (puluhan ribu kata dari data latih). Kata yang tidak dikenal diubah menjadi satu token UNK (unknown). Akibatnya:

KataJenisPada sistem lama
hat, learnKata umumPunya embedding sendiri
taaaaastyVariasiUNK (informasi hilang, padahal mirip "tasty")
laernTypoUNK
TransformerifyKata baruUNK

Solusi: pecah kata menjadi potongan (subword)

Kata umum tetap utuh, kata langka dipecah menjadi potongan yang dikenal. Contoh dari slide: taaaaasty → taa## aaa## sty, laern → la## ern##, Transformerify → Transformer## ify. Dalam kasus terburuk kata dipecah menjadi huruf per huruf, jadi tidak pernah ada UNK.

Algoritma BPE (langkah demi langkah)

  1. Mulai dengan kosakata berisi semua karakter (plus simbol akhir kata).
  2. Hitung pasangan simbol bertetangga yang paling sering muncul di korpus.
  3. Gabungkan pasangan itu menjadi simbol baru, tambahkan ke kosakata.
  4. Ulangi sampai ukuran kosakata yang diinginkan tercapai.

Contoh slide: korpus A B D C A B E C A B. Pasangan (A,B) paling sering, jadi digabung jadi AB. Lalu pasangan (C,AB) paling sering, jadi CAB.

Coba sendiri

Ketik kata-kata (pisahkan dengan spasi), pilih jumlah penggabungan, lalu lihat hasilnya.

Catatan: BPE awalnya dipakai di terjemahan mesin (Sennrich 2016). WordPiece (dipakai BERT) mirip, bedanya memilih gabungan berdasarkan kemungkinan data, bukan sekadar frekuensi. Tanda ## artinya "lanjutan dari potongan sebelumnya".
Pikir kritis: Potongan subword tidak selalu bermakna ("kadang intuitif, kadang tidak", kata slide). Kata yang sama di bahasa berbeda bisa dipecah jauh lebih panjang, sehingga bahasa dengan data sedikit (misalnya bahasa daerah) butuh lebih banyak token dan lebih mahal diproses. Tokenizer juga ikut menentukan apa yang mudah atau sulit dipelajari model, misalnya aritmetika atau ejaan.

3. Dari word embedding ke pretraining seluruh model

Dulu (sekitar 2017)Sekarang
Yang dipretrainHanya lapisan embedding kataHampir semua parameter
KonteksEmbedding tanpa konteks; konteks dipelajari LSTM/Transformer saat latih tugasKonteks sudah dipelajari saat pretraining
Parameter acakSebagian besar (di atas embedding)Hampir tidak ada
DuluSekarang LSTM/Transformer (acak) Embedding (pretrained) Seluruh jaringan (pretrained) Embedding (pretrained) kata "movie" pada model lama: embedding sama di kalimat apa pun

Dua masalah pendekatan lama

Prinsip baru: sembunyikan sebagian input, latih model menebaknya. Hasilnya tiga hal: representasi bahasa yang kuat, inisialisasi parameter yang bagus, dan distribusi probabilitas bahasa yang bisa di-sampling (untuk menghasilkan teks).

Analogi: embedding statis seperti kamus: "bank" punya satu arti vektor. Model kontekstual seperti pembaca: ia melihat "bank sungai" vs "bank tabungan" dan memberi representasi berbeda.

4. Paradigma Pretrain → Finetune

Language modeling sebagai tugas pretraining

Model memprediksi kata berikutnya: p(wt | w1..t-1). Contoh slide: input "Iroh goes to make tasty tea" → output "goes to make tasty tea END". Datanya sangat melimpah (teks bahasa Inggris di internet).

LangkahDataTujuan
1. PretrainTeks sangat banyak, tanpa labelBelajar hal umum tentang bahasa
2. FinetuneSedikit data berlabel (misalnya ulasan positif/negatif)Menyesuaikan model ke tugas

Pretraining itu mahal (BERT: 64 chip TPU selama 4 hari), tetapi finetuning murah dan bisa di satu GPU. Semboyannya: "pretrain sekali, finetune berkali-kali".

Dari mana datanya?

ModelData latih
BERTBookCorpus, Wikipedia Inggris
GPT-1BookCorpus
GPT-3CommonCrawl, WebText, Wikipedia, 2 database buku
GPT-3.5+Tidak diungkap

The Pile (di slide) adalah kumpulan data terbuka: akademik (PubMed, ArXiv), internet (Pile-CC, OpenWebText2), prosa/buku, dialog (subtitle, IRC), dan lain-lain (GitHub).

Pikir kritis (hak cipta dan etika): BookCorpus diambil dari e-book di Smashwords, dan ini kontroversial karena banyak penulis tidak diminta izin. Slide menyebut berita Google memakai 11.000 novel, gugatan terhadap generator gambar, Copilot, dan New York Times vs OpenAI/Microsoft. Pertanyaan "apakah ini fair use?" belum final. Selain itu, ketika perusahaan tidak mengungkap data latih (GPT-3.5+), peneliti sulit menilai bias dan kebocoran data. Dan data internet didominasi bahasa Inggris, sehingga model cenderung lebih baik di sana.

5. Tiga jenis arsitektur

Arsitektur menentukan cara pretraining dan penggunaan yang cocok. Kuncinya satu pertanyaan: apakah model boleh melihat kata di sebelah kanan (masa depan)?

ArsitekturMelihat masa depan?PretrainingContohCocok untuk
EncoderYa (dua arah)Masked LMBERT, RoBERTa, SpanBERTKlasifikasi, memahami teks
Encoder-DecoderEncoder ya, decoder tidakSpan corruptionT5Terjemahan, ringkasan, QA
DecoderTidak (kiri ke kanan)Language modelingGPTMenghasilkan teks
EncoderEncoder-DecoderDecoder garis = siapa boleh "melihat" siapa

6. Encoder: BERT

Masalah: encoder tidak bisa language modeling biasa

Kalau model boleh melihat kata berikutnya, menebak kata berikutnya jadi "mencontek". Solusinya: Masked LM. Ganti sebagian kata dengan [MASK], lalu tebak kata asli. Loss hanya dihitung pada kata yang ditutup.

Rumus slide: h1..T = Encoder(w1..T), yi ~ A·hi + b. Artinya, tiap posisi punya vektor tersembunyi h, lalu satu lapisan linear (A, b) mengubahnya menjadi tebakan kata.

Aturan 15% dan 80/10/10

Dari 15% token yang dipilihPerlakuanAlasan
80%Diganti [MASK]Tugas utama menebak
10%Diganti kata acakModel tidak boleh percaya semua kata di input benar
10%Dibiarkan asli (tetap ditebak)Model harus membangun representasi bagus untuk semua kata

Alasan penting: saat finetuning tidak ada [MASK]. Kalau model hanya pernah melihat [MASK] saat pretraining, ada ketidakcocokan antara pretraining dan penggunaan nyata. Trik 80/10/10 mengurangi masalah itu.

Simulasi masking

Karena kalimat pendek, 15% bisa jadi hanya 1 kata. Klik berkali-kali untuk melihat variasi 80/10/10.

Detail BERT

BERT-baseBERT-large
Layer1224
Hidden state7681024
Attention head1216
Parameter110 juta340 juta

Data: BooksCorpus (800 juta kata) dan Wikipedia Inggris (2.500 juta kata). Input berupa dua potongan teks dengan token [CLS] dan [SEP], ditambah embedding segmen dan posisi. BERT juga dilatih Next Sentence Prediction (apakah potongan B mengikuti A atau acak).

Hasil

Setelah finetuning, BERT-large mencapai rata-rata 82,1 pada benchmark GLUE, di atas OpenAI GPT (75,1) dan SOTA sebelumnya (74,0). Tugasnya: QQP (pasangan pertanyaan mirip), QNLI/RTE/MNLI (inferensi bahasa), SST-2 (sentimen), CoLA (apakah kalimat gramatikal), STS-B (kemiripan makna), MRPC (parafrase).

Batasan dan turunan

ModelDataStepsSQuAD v1.1/2.0MNLI-mSST-2
BERT-large13GB1M90,9/81,886,693,7
RoBERTa (Books+Wiki)16GB100K93,6/87,389,095,3
RoBERTa + latih lebih lama160GB500K94,6/89,490,296,4
Pikir kritis: (1) Hanya 15% token yang memberi sinyal belajar per kalimat, jadi Masked LM kurang efisien dibanding language modeling yang belajar dari setiap token. (2) Slide RoBERTa menunjukkan "lebih banyak compute dan data = lebih baik". Itu bukan temuan arsitektur baru, hanya bukti BERT asli kurang terlatih. (3) NSP dianggap tidak perlu, tetapi itu menunjukkan bahwa ide yang tampak masuk akal belum tentu berguna, jadi perlu eksperimen ablasi.

7. Encoder-Decoder: T5

Idenya menggabungkan kelebihan keduanya: encoder membaca input dua arah, decoder menghasilkan output kiri ke kanan sambil melihat hasil encoder.

Span corruption

Ganti potongan teks dengan placeholder unik (<X>, <Y>), lalu decoder harus menghasilkan potongan yang hilang.

Input: Thank you <X> me to your party <Y> week.
Target: <X> for inviting <Y> last <Z>
Teks asli: Thank you for inviting me to your party last week.

Ini dilakukan saat preprocessing teks, sehingga di sisi decoder tetap terlihat seperti language modeling.

Temuan Raffel dkk.

T5 sebagai "pustakawan"

T5 yang difinetune menjawab pertanyaan terbuka ("Kapan Franklin D. Roosevelt lahir?" → "1882") hanya dari pengetahuan dalam parameternya, tanpa mencari dokumen. Semakin besar model, semakin baik: 220 juta → 11 miliar parameter menaikkan TriviaQA test dari 30,6 menjadi 52,5.

Pikir kritis: Pengetahuan yang tersimpan di parameter tidak bisa diperiksa sumbernya dan bisa salah (halusinasi), sulit diperbarui, dan butuh model sangat besar. Perbandingan "encoder-decoder lebih baik" berlaku pada tugas dan skala di studi itu. Pada skala sangat besar, dunia justru didominasi decoder. Catatan: slide menulis "Raffel et al., 2018"; makalah T5 umumnya dirujuk sebagai 2019/2020.

8. Decoder: GPT

Dua cara memakai decoder pretrained

CaraMekanismeCocok untuk
Sebagai classifierAmbil hidden state kata terakhir hT, tambah lapisan linear (A, b) baru yang acak; gradien mengalir ke seluruh jaringanSentimen, inferensi
Sebagai generatorPakai kepala bahasa yang sudah pretrained (A, b dari pretraining), finetune p(wt|w1..t-1)Dialog, ringkasan

GPT-1 (2018)

Bagaimana format input untuk tugas finetuning?

Contoh Natural Language Inference (premis dan hipotesis diberi label entailment/kontradiksi/netral):

[START]The man is in the doorway[DELIM]The person is near the door[EXTRACT]
Lapisan linear dipasang pada representasi token [EXTRACT] → hasil: entailment.

Idenya cerdas: tugas apa pun diubah menjadi satu urutan token, jadi arsitektur tidak perlu diubah. GPT-1 mengalahkan banyak model khusus di MNLI, SNLI, SciTail, dan QNLI.

GPT-2

Versi lebih besar (1,5 miliar parameter) dengan data lebih banyak; menghasilkan teks yang relatif meyakinkan (contoh "unicorn di Pegunungan Andes" di slide).

Pikir kritis: Teks yang meyakinkan tidak sama dengan teks yang benar. Decoder dilatih untuk membuat kelanjutan yang masuk akal secara statistik, bukan untuk memastikan fakta. Kelemahan lain: decoder tidak bisa melihat kata di kanan, sehingga untuk tugas pemahaman murni ia punya keterbatasan dibanding encoder pada ukuran sama.

9. GPT-3, in-context learning, dan scaling

In-context learning

Model sangat besar tampak belajar tanpa gradient step, hanya dari contoh di dalam prompt:

thanks => merci
hello => bonjour
mint => menthe
otter =>
→ model menghasilkan loutre

Contoh di prompt "menentukan tugas", dan model menirunya. Jumlah parameter: T5 terbesar 11 miliar, GPT-3 175 miliar. Ini membuka cara ketiga memakai model: selain sampling dan finetuning, kini ada prompting.

Pikir kritis: Slide memakai kata "seem" (tampak). Para peneliti masih berdebat apakah ini benar-benar "belajar" atau hanya mengenali pola tugas yang sudah ada di data latih. Parameter model tidak berubah, jadi pengetahuan tidak "tersimpan" setelah prompt selesai.

Scaling laws

Grafik di slide berbentuk garis lurus pada skala log: saat compute, ukuran data, atau jumlah parameter dinaikkan, loss uji turun secara teratur. Artinya hasil bisa diprediksi sebelum mengeluarkan biaya besar.

Efisiensi scaling: Chinchilla

Biaya latih kira-kira sebanding dengan parameter × token. Dengan anggaran compute tetap, kita harus memilih: model besar dengan data sedikit, atau model lebih kecil dengan data lebih banyak?

ModelParameterToken latih
LaMDA137 miliar168 miliar
GPT-3175 miliar300 miliar
Jurassic178 miliar300 miliar
Gopher280 miliar300 miliar
MT-NLG530 miliar270 miliar
Chinchilla70 miliar1,4 triliun
Param GPT-3175B Token GPT-3300B Param Chinchilla70B Token Chinchilla1.400B skala batang: parameter 1px ≈ 1B,token 1px ≈ 5B

Kesimpulan: Chinchilla yang 4x lebih kecil lebih baik daripada model raksasa. Jadi model besar sebelumnya kekurangan data (undertrained).

Pikir kritis: "Lebih besar selalu lebih baik" terbukti tidak sepenuhnya benar; keseimbangan data dan parameter penting. Model lebih kecil juga lebih murah dipakai saat inferensi. Namun data berkualitas tinggi di internet terbatas, jadi menaikkan token tanpa batas pun ada ujungnya, dan biaya energi serta lingkungan ikut naik.

10. Apa yang sebenarnya dipelajari pretraining?

Untuk menebak bagian yang disembunyikan, model harus belajar banyak hal. Contoh dari slide:

KalimatYang dipelajari
UGM berlokasi di ___, IndonesiaPengetahuan fakta (trivia)
I put ___ fork down on the tableSintaks (di sini butuh "the")
The woman walked across the street, checking for traffic over ___ shoulderKoreferensi ("her" merujuk ke "the woman")
I went to the ocean to see the fish, turtles, seals, and ___Semantik leksikal/topik (hewan laut)
Overall, I barely managed to stay awake. The movie was ___Sentimen (membosankan)
Iroh went into the kitchen... Zuko left the ___Penalaran sederhana (lebih sulit)
1, 1, 2, 3, 5, 8, 13, 21, ___Aritmetika dasar (tidak benar-benar memahami deret Fibonacci)

Sisi gelapnya

Pikir kritis: Model hanya mempelajari statistik bahasa. Ia bisa terlihat bernalar tanpa benar-benar bernalar, dan ia menyalin bias karena bias itu ada di teks manusia. Sebelum memakai model di aplikasi nyata (kesehatan, hukum, rekrutmen), tanyakan: dari data apa ia belajar, dan siapa yang dirugikan jika ia salah?

11. Kuis latihan

Klik jawaban. Skor tampil di bawah.

12. Rangkuman cepat

  1. Pretraining = belajar bahasa dari teks tanpa label, lalu finetuning = adaptasi ke tugas.
  2. Subword (BPE) menghilangkan masalah UNK dengan memecah kata langka.
  3. Encoder (BERT): Masked LM, dua arah, bagus untuk memahami. Tidak untuk generasi.
  4. Encoder-decoder (T5): span corruption; fleksibel untuk teks-ke-teks.
  5. Decoder (GPT): language modeling; bagus untuk generasi; model terbesar semuanya decoder.
  6. Skala + in-context learning memungkinkan prompting; Chinchilla mengingatkan pentingnya data.
  7. Pretraining juga membawa bias, hak cipta, dan risiko privasi.

Tips: jelaskan kembali tiap bagian dengan kata-katamu sendiri tanpa melihat catatan ini. Jika bisa, kamu sudah paham.