- Embedding adalah kerangka semantik LLM, yang mengubah teks menjadi vektor numerik agar dapat dipahami model
- Perkembangan embedding telah melalui berbagai perubahan, dari teknik statistik seperti count-based dan TF-IDF hingga pendekatan modern seperti Word2Vec, BERT, dan keluarga GPT
- Embedding yang baik penting untuk menyeimbangkan pelestarian kemiripan semantik kata dan pengaturan jumlah dimensi, dan pada LLM embedding dilatih bersama agar optimal untuk data pelatihan dan tugasnya
- Menjelaskan metode embedding representatif seperti TF-IDF, Word2Vec, BERT dengan contoh dan visualisasi, terutama bahwa embedding pada LLM mengubah token masukan menjadi vektor berdimensi tinggi lalu diperbarui secara bertingkat sesuai konteks
- Memberikan panduan agar prinsip kerja nyata embedding dapat dipahami secara intuitif melalui kode praktik seperti layer embedding Torch dan analisis grafik vektor embedding, serta materi visual
Apa itu embedding
- Embedding adalah teknik untuk mengubah data seperti teks, gambar, dan audio menjadi vektor berdimensi tinggi
- Khususnya dalam NLP, ini adalah proses mengubah kata atau token menjadi vektor agar berbentuk sesuatu yang dapat dipahami komputer
- Embedding dapat diterapkan bukan hanya pada teks tetapi juga berbagai tipe data lain, namun artikel ini berfokus pada embedding teks
Perkembangan dan jenis embedding
- Teknik embedding awal didominasi pendekatan berbasis statistik seperti count vector, TF-IDF, dan Co-Occurrence Matrix
- Setelah itu muncul embedding berbasis jaringan saraf seperti Word2Vec, GloVe, FastText, yang mulai merefleksikan kemiripan semantik dalam ruang vektor
- Pada model berbasis transformer seperti BERT dan GPT, embedding tiap token diperbarui secara bertingkat setelah input untuk mencerminkan informasi konteks (embedding dinamis/terkontekstualisasi)
Syarat embedding yang baik
Representasi semantik (semantic representation)
- Kata dengan makna serupa berada pada posisi yang berdekatan dalam ruang vektor
Contoh: cat dan dog dipetakan lebih mirip daripada dog dan strawberry
Ukuran dimensi (dimensionality)
- Jika dimensi embedding terlalu kecil, daya representasinya kurang; jika terlalu besar, berisiko memboroskan memori dan menyebabkan overfitting
Contoh: GPT-2 memiliki dimensi embedding minimal 768
Teknik embedding tradisional: TF-IDF
- TF-IDF menghitung tingkat kepentingan kata dengan mengalikan frekuensi kata dan kelangkaannya (inverse document frequency)
- TF: seberapa sering sebuah kata muncul dalam satu dokumen
- IDF: seberapa langka kata tersebut di seluruh dokumen
- Nilai hasil TF-IDF dapat digunakan untuk analisis sederhana seperti pencarian informasi dan ekstraksi kata kunci, tetapi kurang mampu merefleksikan kemiripan semantik
- Jika divisualisasikan, sebagian besar kata berkumpul dalam satu klaster dan tingkat pemisahan semantiknya rendah
Word2Vec
- Word2Vec adalah embedding berbasis jaringan saraf yang secara efektif merefleksikan hubungan semantik dalam ruang vektor
- Ada metode seperti CBOW (memprediksi kata pusat dari kata-kata di sekitarnya) dan Skipgram (memprediksi kata sekitar dari kata pusat)
- Melalui pelatihan, matriks embedding pada hidden layer dimanfaatkan sebagai vektor semantik kata
- Dengan teknik optimisasi seperti negative sampling, pelatihan yang efisien tetap dimungkinkan bahkan pada data berskala besar
- Jika divisualisasikan dengan TensorFlow Embedding Projector dan sejenisnya, dapat terlihat bahwa kata-kata yang secara semantik mirip membentuk klaster
Embedding berbasis BERT dan transformer
- BERT adalah model transformer encoder-only yang makin lama makin mencerminkan informasi konteks secara dinamis pada setiap lapisan
- Tahap input: teks ditokenisasi dengan tokenizer → diubah menjadi vektor token embedding → digabungkan dengan positional embedding
- Setelah itu melewati beberapa lapisan transformer, dan embedding berubah secara dinamis dengan merefleksikan informasi konteks
- Informasi seluruh kalimat/pemisahan juga diproses melalui token spesial seperti [CLS], [SEP]
- Setelah BERT, banyak LLM mengadopsi pendekatan embedding dinamis (terkontekstualisasi)
Struktur dan pelatihan embedding pada LLM
- Embedding LLM diimplementasikan sebagai lapisan pertama (lookup table) yang mengubah token masukan menjadi vektor berdimensi tinggi
- Disusun dalam bentuk tabel yang menerima ID token dan mengembalikan masing-masing vektor embedding, seperti
torch.nn.Embedding
- Selama proses pelatihan, LLM juga mengoptimalkan bobot layer embedding secara bersama-sama, sehingga embedding disempurnakan sesuai data dan tujuan model
- Contoh: model DeepSeek-R1-Distill-Qwen-1.5B menggunakan vektor embedding berdimensi 1536
Visualisasi embedding dan analisis graf
- Ruang embedding dapat dianalisis dalam bentuk graf berdasarkan kemiripan antar vektor embedding (misalnya cosine similarity)
- Contoh: kalimat
AI agents will be the most hot topic... dapat ditokenisasi, lalu token-token dengan kemiripan tinggi pada embedding masing-masing dihubungkan dan divisualisasikan
- Berbagai variasi dari satu kata (misalnya
list, _list, List) juga sering memiliki embedding yang serupa
Kesimpulan
- Embedding adalah elemen inti dalam LLM dan NLP, yang mengubah data masukan menjadi vektor numerik agar model dapat memproses struktur semantik dan informasi konteks
- Bahkan di era LLM, prinsip dasar dan struktur embedding tidak banyak berubah, dan tetap memainkan peran yang sangat penting bagi performa serta interpretasi model
- Dengan contoh kode yang intuitif dan materi visualisasi, prinsip kerja praktis embedding dapat dipahami dengan mudah
2 komentar
king - man + woman = queenKomentar Hacker News
Cukup mengejutkan bahwa embedding adalah salah satu bagian dari stack LLM yang hampir tidak pernah dibahas; secara intuitif saya mengira ini adalah bagian yang sangat memengaruhi kemampuan jaringan untuk menyimpulkan keterkaitan semantik, tetapi orang-orang jarang membicarakannya
Masalah dengan embedding adalah bahwa ia hampir tidak bisa dibaca selain oleh model itu sendiri; embedding memang mengodekan makna dari urutan input dengan jelas, tetapi selama proses pelatihan informasi itu dikompresi sedemikian rupa sehingga hanya decoder head model yang bisa menguraikannya. Anthropic punya riset yang membuat fitur internal Sonnet 3 menjadi bentuk yang dapat diinterpretasikan, tetapi ini mahal karena harus melatih jaringan terpisah secara paralel untuk menafsirkan aktivasi layer internal
Hal aneh tentang ruang berdimensi tinggi adalah bahwa sebagian besar nilainya saling ortogonal dan sangat berjauhan. Namun tetap menakjubkan bahwa dengan teknik reduksi dimensi, konsep-konsep masih bisa dikelompokkan bahkan di ruang 50 ribu dimensi
Saat pertama kali mempelajari embedding secara mendalam, saya berpikir, “setidaknya sepertiga dari keajaiban LLM berasal dari embedding.” Fakta bahwa kata-kata sudah tersusun dengan cara yang berguna secara semantik sedikit mengurangi kesan misterius LLM. Tetap menakjubkan, tetapi rasanya seperti sedikit mengintip ke balik tirai
Embedding berperan seperti semacam “Batu Rosetta” yang memungkinkan komputer mengkuantifikasi bahasa manusia. Saya pikir ini seharusnya menjadi isu yang sangat penting, tetapi saya juga paham bahwa mencoba memahami ruang vektor 1.000 dimensi terasa cukup memberatkan
Saya kurang paham dengan pendapat bahwa diskusi soal embedding itu kurang; khususnya dalam contoh penerapan RAG atau pembahasan vector DB, embedding selalu menjadi topik utama
Tutorialnya sangat bagus — perbedaan antara contextual embedding dan static embedding itu penting. Banyak orang terbiasa dengan word2vec (embedding statis), tetapi contextual embedding sering kali jauh lebih kuat. (Ngomong-ngomong, pembajakan histori browser di halaman itu parah sekali; hanya dengan scroll saja histori bertambah sangat banyak)
Bagian yang menurut saya perlu penjelasan lebih lanjut adalah perbedaan antara transformer Encoder-Decoder (BERT) dan model generatif decoder-only dari sudut pandang embedding
Perlu koreksi kecil: BERT adalah encoder (bukan Encoder-Decoder), ChatGPT adalah decoder. Model encoder (BERT) dapat melihat seluruh kalimat sehingga unggul untuk representasi makna; misalnya pada “The bank was steep and muddy”, makna bank (tepi sungai atau lembaga keuangan) bisa ditentukan dengan melihat seluruh kalimat. Sebaliknya, model jenis GPT (decoder) hanya melihat urutan dari kiri ke kanan, sehingga tidak bisa memakai informasi di bagian akhir kalimat saat memprediksi. Untuk referensi lebih lanjut, lihat post modernBERT dari huggingface dan paper neoBERT juga bermanfaat
Menambahkan penjelasan dust42: BERT adalah encoder, GPT adalah decoder, dan T5 adalah encoder-decoder. Belakangan ini encoder-decoder kurang populer. Model encoder banyak dipakai untuk klasifikasi, ekstraksi informasi, dan pencarian, sedangkan decoder cocok untuk generasi teks, peringkasan, dan penerjemahan. Riset terbaru (paper Ettin) juga mengonfirmasi hal ini. Karena keduanya sama-sama transformer, encoder bisa diubah menjadi decoder dan sebaliknya. Perbedaan desainnya terletak pada bidirectional attention (semua token bisa melihat semua token) versus autoregressive attention (hanya bisa melihat token sebelumnya)
Dengan memanfaatkan embedding projector, Anda bisa membangun intuisi bukan hanya untuk lebih dari 50 kata tetapi juga untuk visualisasi data 3D. Lihat Tensorflow Embedding Projector
Panduan visual yang sangat bagus! Saya juga membuat pelajaran embedding LLM dengan format visual + audio + kuis untuk membantu pemahaman mendalam tentang deep learning dengan konsep serupa di app.vidyaarthi.ai, tautan coba langsung. Saya mengejar pendekatan “belajar sambil mencoba langsung” untuk membuat konsep abstrak jadi lebih intuitif dan interaktif. Masukan sangat diterima (bukan promosi diri, ini benar-benar alat yang saya buat dengan penuh semangat)
Sepertinya situsnya sulit diakses; banyak sekali pesan galat di konsol seperti “Content-Security-Policy: The page’s settings blocked an inline style…”
Saya rasa visualisasi word cloud atau menampilkan hasil top-k query bisa lebih intuitif. Saya sarankan mencoba Tensorflow Embedding Projector, lalu masukkan kata dan pilih proyeksi UMAP
Penjelasan dengan pendekatan yang lebih praktis juga dibahas dalam artikel penjelasan embedding dari sgnt.ai, saya menulisnya sendiri
Terima kasih untuk materinya yang keren! Dari yang saya pahami, ada tiga masalah besar pada LLM:
Pendekatan Anda jauh lebih intuitif. Saya penasaran kenapa tidak menampilkan contoh embedding untuk fitur kategorikal/skalar
Artikelnya sangat edukatif dan terstruktur dengan baik, terima kasih kepada penulisnya
Embedding pada LLM biasanya merupakan bagian dari input layer, dan berbeda dengan model pralatih seperti Word2Vec, embedding ini diperbarui selama pelatihan.
Tambahan pertanyaan saya: pada tahap inferensi, embedding adalah lookup table berbentuk “token ID -> vektor”.
Secara matematis, ini berarti token ID dienkode sebagai vektor one-hot panjang lalu dilewatkan ke linear layer untuk mendapatkan vektor embedding.
Apakah struktur ini juga diterapkan apa adanya saat melatih embedding, yaitu memperlakukan embedding sebagai linear layer yang dilatih melalui backpropagation?
Embedding juga termasuk dalam proses backpropagation biasa, tetapi demi efisiensi, one-hot encoding tidak benar-benar dipakai.
Implementasinya membuat indexing bisa didiferensiasikan sehingga gradien hanya mengalir ke vektor yang dipilih.
Untuk contoh konkret, mungkin membantu melihat source SmallPebble, pustaka mini deep learning yang saya buat
Untuk menjelaskan komentar lain dengan lebih rinci,
indexing dan perkalian dengan vektor one-hot secara matematis itu identik.
Misalnya jika vocab berukuran N dan panjang sekuens L, maka kita harus mengalikan matriks sparse NxL dengan matriks embedding,
tetapi dalam praktiknya, karena kita hanya perlu tahu satu indeks per kolom, representasi internalnya cukup berupa satu angka (indeks).
Dengan cara ini, backpropagation juga ditulis terpisah berdasarkan indexing saat forward pass,
sehingga gradien dapat mengalir ke vektor embedding yang dipilih