- Metode sampling pada large language model (LLM) dijelaskan dalam panduan komprehensif yang mudah dipahami bahkan oleh pemula
- Apa itu token, mengapa digunakan alih-alih kata, dan bagaimana model menghasilkan teks dirangkum secara rinci
- Sampling adalah proses untuk mengatur keragaman dan kealamian output, dan memperkenalkan berbagai algoritma sampling seperti Temperature, Top-K, Top-P, DRY
- Setiap teknik sampling dijelaskan beserta penjelasan konseptual dan prinsip kerja matematis serta algoritmis, serta membandingkan efek seperti pencegahan pengulangan, peningkatan kreativitas, dan penyesuaian konsistensi
- Karena juga merangkum urutan kombinasi, interaksi, dan kasus konflik antar sampler, ini adalah materi yang sangat berguna bagi developer yang ingin mengendalikan kualitas generasi secara presisi
Intro Knowledge
Short Glossary
- Logits adalah nilai yang belum dinormalisasi yang merepresentasikan skor tiap token
- Softmax adalah fungsi yang mengubah logits menjadi distribusi probabilitas yang telah dinormalisasi
- Entropy berarti ketidakpastian prediksi; semakin tinggi nilainya, semakin besar ketidakpastian terhadap token berikutnya
- Perplexity adalah metrik yang menunjukkan bahwa semakin rendah nilainya, semakin tinggi keyakinan model
- n-gram berarti urutan dari n token yang berurutan
- Context window adalah jumlah maksimum token yang dapat diproses model dalam satu waktu
Why tokens?
Why not letters?
- Tokenisasi per huruf membuat sekuens menjadi terlalu panjang sehingga biaya komputasi meningkat dan keterkaitan informasi menjadi sulit dipertahankan
Why not whole words?
- Pendekatan berbasis kata memiliki masalah seperti ledakan ukuran kosakata dan kesulitan merepresentasikan kata baru atau kata langka
- Pendekatan berbasis sub-word dapat memproses prefiks, akar kata, dan sufiks secara terpisah sehingga efektif untuk pemahaman morfologi dan transfer learning multibahasa
How are the sub-words chosen?
- Kamus dibangun dengan mencari potongan kata (sub-word) yang paling sering muncul melalui sampel representatif dari data pelatihan
How does the model generate text?
- Selama pelatihan, model mempelajari distribusi probabilitas token berikutnya dari sejumlah besar teks
- Saat inferensi, model menghitung probabilitas untuk semua token yang mungkin, lalu memilih token berikutnya sesuai teknik sampling
From Tokens to Text
- Tahap prediksi: menghitung distribusi probabilitas untuk semua token kandidat
- Tahap pemilihan: memilih token sesuai strategi sampling tertentu
- Karena hanya memilih token dengan probabilitas tertinggi dapat menghasilkan teks yang membosankan atau repetitif, teknik sampling menjadi penting
Sampling
Temperature
- Nilai rendah menghasilkan keluaran yang konservatif dan repetitif, sedangkan nilai tinggi mendorong hasil yang lebih kreatif namun meningkatkan kemungkinan kesalahan
- Logits dibagi dengan nilai temperature untuk mengatur ketajaman (tingkat konsentrasi) distribusi probabilitas
Presence Penalty
- Token yang sudah pernah muncul akan dikurangi kemungkinan kemunculannya kembali
- Hanya menilai apakah token sudah digunakan atau belum, tanpa mempertimbangkan frekuensi kemunculannya
Frequency Penalty
- Skor dikurangi sebanding dengan jumlah kemunculan
- Semakin sering suatu kata muncul, semakin besar penalti yang diterima sehingga membantu meningkatkan keragaman
Repetition Penalty
- Menerapkan penalti asimetris pada logit positif/negatif untuk token yang sudah muncul sebelumnya
- Efektif mencegah pengulangan berbentuk loop, tetapi dapat merusak konsistensi konteks
DRY (Don't Repeat Yourself)
- Mendeteksi pengulangan pola n-gram lalu mengurangi probabilitas token yang diprediksi akan mengulanginya
- Semakin panjang dan semakin baru frasa yang diulang, semakin kuat penekanannya
- Sangat unggul untuk mengurangi pengulangan sambil tetap menjaga kealamian dalam teks kreatif
Top-K
- Hanya menyisakan K kandidat teratas dan membuang token lainnya
- Menghapus sampel yang ekstrem sambil tetap mempertahankan tingkat keacakan tertentu
Top-P (Nucleus Sampling)
- Hanya menyisakan token hingga probabilitas kumulatif mencapai atau melebihi P, lalu membuang sisanya
- Ukuran kumpulan kandidat berubah sesuai tingkat keyakinan model sehingga bersifat adaptif
Min-P
- Menyisakan hanya token yang memiliki setidaknya rasio minimum tertentu dibanding token dengan probabilitas tertinggi
- Pemfilteran disesuaikan secara dinamis sesuai tingkat kepercayaan model
Top-A
- Memfilter kandidat dengan ambang yang sebanding dengan kuadrat probabilitas token dengan probabilitas tertinggi
- Semakin tinggi keyakinannya, semakin ketat filter yang diterapkan
XTC
- Dengan probabilitas tertentu, secara sengaja menghapus kandidat dengan probabilitas tertinggi untuk mendorong pemilihan yang kurang pasti
- Teknik untuk respons yang tidak lazim atau lebih kreatif
Top-N-Sigma
- Menyeleksi token yang valid berdasarkan standar deviasi distribusi probabilitas
- Pemfilteran berbasis karakteristik statistik yang fleksibel menghadapi berbagai situasi
Tail-Free Sampling (TFS)
- Membedakan kandidat yang bermakna dan kandidat long-tail melalui perubahan orde kedua (kurvatur) dari gradien probabilitas
- Cara ini memfilter dengan mencari titik cutoff yang alami
Eta Cutoff
- Menyesuaikan kriteria filter secara dinamis berdasarkan entropi (ketidakpastian) distribusi
- Semakin tinggi keyakinan, semakin banyak token yang dihapus; semakin rendah keyakinan, semakin fleksibel
Epsilon Cutoff
- Menghapus token berprobabilitas rendah menggunakan ambang probabilitas tetap
- Sederhana namun mudah diprediksi, dan berguna untuk menghapus long-tail yang tidak perlu
Locally Typical Sampling
- Lebih memilih token yang surprisal yang diharapkannya (selisih terhadap nilai prediksi) dekat dengan rata-rata
- Mendorong pilihan yang "tipikal" alih-alih token yang paling mungkin atau yang paling aneh
1 komentar
Komentar Hacker News
Tidak disebutkan bahwa sampler tidak dapat mengakses keadaan internal model
Saya mencoba menulis panduan sampling untuk Ollama/llama.cpp
Saat mencoba membuat LLM mengeluarkan "ide", pemilihan vektor logit seharusnya merusak ide aslinya
Semuanya dijelaskan dengan sederhana, sehingga membuka peluang untuk mencoba hal-hal baru
Apakah model LLM bisa melakukan tokenisasi secara implisit?
Terkait hal itu, makalah min_p kami menempati peringkat ke-18 dari 12000 kiriman di ICLR
Saya penasaran apakah sampling benar-benar mengatasi keterbatasan model, atau hanya menutupi masalah yang lebih dalam
"Sampling" mencakup jauh lebih banyak hal daripada yang saya perkirakan
Dokumen yang sangat berguna, penjelasannya jelas dan mencakup banyak hal
Saya tidak menyadari bahwa begitu banyak manipulasi dilakukan setelah pemilihan temperatur softmax awal