Semua dimulai dengan pertanyaan sederhana: bagaimana mesin dapat memahami teks? Ketika Anda melatih model untuk membedakan spam dari pesan normal atau menentukan sentimen ulasan, ada sesuatu yang menarik yang terjadi di balik layar. Model harus mengubah huruf dan kata menjadi angka, karena neural network hanya bekerja dengan angka.



Pendekatan naif pertama - cukup memberi nomor setiap kata unik. Good = 6, bad = 26, awesome = 27. Terlihat logis, tetapi masalahnya: angka 26 dan 27 dekat satu sama lain, sehingga model akan mengira bahwa bad dan awesome mirip. Padahal sebenarnya, awesome dan good secara semantik lebih dekat. Inilah jebakannya.

Kemudian coba gunakan One Hot Encoding - setiap kata diberikan vektor berukuran sama dengan seluruh kosakata, di mana hanya satu angka 1 menunjukkan kata yang dimaksud, sisanya 0. Masalah peringkat hilang, tetapi muncul masalah baru: jika kosakata berisi 20 ribu kata, setiap vektor akan berukuran 20 ribu. Memori yang dibutuhkan sangat besar, dan model juga tidak menangkap makna kata secara mendalam.

Lalu muncul Bag of Words dan N-gram - menghitung berapa kali kata muncul dalam teks. Menambahkan konteks, tetapi lagi-lagi - vektor yang sangat jarang dan model tidak memahami hubungan mendalam antar kata. Jika dalam kalimat "The librarian loves books" kata librarian dan book tidak berdekatan, N-gram tidak akan menangkap bahwa mereka terkait.

Di sinilah pentingnya encoding yang tepat melalui embedding. Ide utamanya adalah bahwa kata yang mirip harus berada dekat satu sama lain di ruang vektor. Bayangkan bidang dua dimensi: satu sumbu mewakili ukuran hewan, sumbu lain mewakili tingkat bahaya. Harimau dan singa akan berdekatan (besar dan berbahaya), sementara hamster terpisah (kecil dan aman). Itulah embedding - vektor padat yang menyimpan makna kata dalam ruang n-dimensi.

Yang paling keren: dengan vektor seperti ini, kita bisa melakukan operasi matematika. Ambil vektor "anak", kurangi "pria" dan tambahkan "wanita" - hasilnya akan mendekati vektor "anak perempuan". Atau: Madrid + Jerman - Spanyol = Berlin. Ini bekerja karena model menangkap hubungan antar konsep.

Lalu, bagaimana cara melatih embedding seperti ini? Google mengusulkan Word2Vec dengan dua pendekatan. Dalam CBOW, Anda mengambil konteks kata dan memprediksi kata pusatnya. Skip-Gram sebaliknya - dari kata pusat, memprediksi tetangganya. Kedua teknik ini sangat efektif untuk melatih word embedding.

Dalam model modern seperti GPT atau BERT, semuanya sedikit berbeda. Layer embedding tidak diambil dari awal, tetapi dilatih bersamaan dengan modelnya. Pertama, teks dipecah menjadi token, lalu neural network sederhana membuat embedding untuk setiap token. Bobot layer ini adalah parameter yang dilatih agar dapat merepresentasikan kata dalam ruang yang sesuai. Setelah itu, embedding ini melewati blok decoder dan masuk ke layer output, yang menghasilkan probabilitas untuk token berikutnya.

Satu detail kecil - encoding posisi. Transformer memproses semua token secara paralel, berbeda dengan RNN. Jadi, perlu memberi tahu model urutan kata-kata tersebut. Mereka menambahkan vektor posisi ke vektor embedding. Hasilnya adalah kombinasi: makna kata + informasi tentang posisinya dalam teks.

Setelah encoding posisi, embedding masuk ke mekanisme perhatian - ini adalah inti dari semua model bahasa besar. Embedding menangkap semantik kata secara individual, tetapi konteks dipahami melalui attention. Oleh karena itu, kata "kunci" dalam konteks berbeda akan mendapatkan representasi kontekstual yang berbeda.

Begitulah, dengan menggabungkan ide-ide sederhana - tokenisasi, penghitungan kata, encoding yang tepat melalui embedding - secara bertahap kita sampai pada transformer dan ChatGPT. Embedding saat ini ada di mana-mana: dalam sistem rekomendasi, pencarian gambar serupa, dan dasar dari semua LLM modern. Jika ingin benar-benar memahami NLP, Anda harus mengerti bagaimana CBOW, Skip-Gram, dan seluruh arsitektur ini bekerja. Ini adalah fondasi awalnya.
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
Tambahkan komentar
Tambahkan komentar
Tidak ada komentar
  • Sematkan