Penjelasan embedding teks: cara kerjanya [+contoh]

Panduan ini menjelaskan apa itu embedding teks, bagaimana embedding mengubah teks menjadi vektor yang menangkap makna, serta cara memilih, mengevaluasi, dan menerapkan model embedding untuk pencarian, RAG, dan kasus penggunaan nyata lainnya.

Diagram of what text embeddings are: two customer tickets, “I was charged twice for my subscription.” and “There’s a duplicate payment on my account.”, are converted by a text embedding model into similar vectors that sit close together in the billing issues cluster of a 2D embedding space, so both are routed to the billing support queue.

Jika Anda sudah memahami konsep dasar embedding teks tetapi bertanya-tanya bagaimana cara memanfaatkannya, Anda berada di tempat yang tepat. Kami akan membedah vektor, tokenisasi, dan perhitungan kemiripan, menyelami seluk-beluk evaluasi model embedding, serta menunjukkan contoh penggunaannya di dunia nyata.

Apa itu embedding teks?

Embedding teks adalah representasi numerik dari kata, kalimat, atau dokumen yang menangkap makna semantik dan hubungan di antaranya. Embedding ini dihasilkan oleh model embedding yang mengubah teks menjadi vektor — larik angka yang dapat diproses dan dibandingkan oleh algoritma machine learning.

Engineer ML menggunakan embedding teks untuk membantu aplikasi perangkat lunak mengenali hubungan antara kata dan kalimat, sehingga data dalam jumlah besar lebih mudah dicari, dikategorikan, dan dianalisis.

Misalnya, Anda menerima ribuan tiket dukungan setiap hari. Pelanggan melaporkan segala macam masalah, sementara Anda perlu mengategorikan dan memberi label pada tiket-tiket tersebut. Salah satu cara untuk mengotomatiskan proses ini adalah dengan menggunakan model embedding teks yang sudah dilatih sebelumnya (pretrained) untuk mengubah setiap tiket menjadi vektor.

Sebagai contoh, dua pelanggan mengirimkan pesan berikut:

  • “Saya ditagih dua kali untuk langganan saya”: [0.21, -0.47, 0.83, ...]
  • “Ada pembayaran ganda di akun saya”: [0.19, -0.45, 0.80, ...]

Ini adalah vektor ilustratif yang disederhanakan.

Meskipun para pelanggan menggunakan kata-kata yang berbeda, mereka menggambarkan masalah yang sama. Model embedding menangkap hubungan ini dengan menempatkan vektor-vektor mereka berdekatan dalam ruang matematis. Kedua tiket pun dikategorikan dan diteruskan ke tim penagihan.

Contoh penggunaan embedding teks dalam bisnis

Embedding teks digunakan dalam berbagai tugas pemrosesan bahasa alami (NLP), termasuk:

  • Pencarian semantik: Menemukan informasi yang relevan berdasarkan makna. Delivery Hero menggunakan embedding produk dan kueri bersama pencarian kata kunci untuk membantu pelanggan belanja kebutuhan sehari-hari menemukan produk yang relevan. Misalnya, pencarian “yogurt rendah lemak” dapat memunculkan yogurt Yunani atau yogurt yang mengandung 0,5% lemak, meskipun tidak ada kecocokan kata yang persis.
  • Klasifikasi teks: Mengategorikan teks, seperti mengidentifikasi email spam atau memilah dokumen berdasarkan topik. MindCraft.ai mengembangkan sistem klasifikasi dokumen yang menggunakan embedding teks berbasis transformer dan machine learning untuk mengategorikan dokumen perusahaan serta mengidentifikasi informasi sensitif demi kepatuhan terhadap GDPR.
  • Pengelompokan (clustering): Mengelompokkan dokumen atau potongan teks yang serupa untuk mengidentifikasi pola. Doczy.ai mengubah teks kontrak menjadi embedding dan mengelompokkan klausul serta konsep yang terkait secara semantik, bahkan ketika kontrak yang berbeda menyatakan kewajiban serupa dengan kata-kata yang berbeda.
  • Retrieval-augmented generation (RAG): Mengambil informasi relevan yang dapat digunakan LLM untuk menghasilkan respons yang lebih akurat dan sesuai konteks. Ring menggunakan embedding teks Amazon Titan dalam chatbot RAG multibahasa untuk mengambil dokumentasi dukungan yang relevan sebelum menghasilkan jawaban atas pertanyaan pelanggan di berbagai pasar internasional.
  • Sistem rekomendasi: Menyarankan artikel, produk, atau konten lain yang terkait berdasarkan kemiripan tekstual. Sistem JUDE milik LinkedIn menggunakan embedding teks yang dihasilkan LLM dari deskripsi pekerjaan dan profil anggota untuk meningkatkan rekomendasi pekerjaan, dengan menangkap hubungan antara latar belakang kandidat dan posisi yang tersedia.
  • Pengenalan entitas bernama (NER): Membantu mengidentifikasi dan mengklasifikasikan nama orang, organisasi, dan tempat dalam teks. Amazon Health Services menggunakan NER untuk mengidentifikasi konsep medis dalam kueri pelanggan, seperti penyakit, gejala, obat-obatan, dan perawatan. Pemahaman tersebut dipadukan dengan pencarian kemiripan berbasis embedding untuk menghubungkan kueri dengan produk dan layanan kesehatan yang relevan.
  • Terjemahan mesin: Mendukung model yang menerjemahkan teks antarbahasa. Transglot menggunakan embedding teks dalam memori terjemahan semantik untuk mengidentifikasi bagian teks yang pernah diterjemahkan dengan makna serupa, sehingga membantu alur kerja lokalisasi menggunakan kembali terjemahan yang sudah ada.

Bagaimana cara kerja embedding teks?

Lalu, bagaimana model embedding menentukan nilai numerik yang diberikan pada sepotong teks, dan mengapa kita harus memercayainya?

Semuanya dimulai dari pelatihan. Model embedding belajar dari kumpulan teks berukuran besar dengan mencari pola dalam cara kata-kata digunakan bersama. Misalnya, model tradisional seperti Word2Vec belajar dengan memprediksi sebuah kata dari kata-kata di sekitarnya, atau sebaliknya. Model modern yang berfokus pada pengambilan informasi (retrieval) sering kali menggunakan contrastive learning. Model ini dilatih untuk memberikan skor kemiripan yang lebih tinggi pada pasangan kueri-dokumen yang relevan dibandingkan pada pasangan yang tidak berkaitan.

Setelah model dilatih, inilah yang terjadi saat Anda memberinya sepotong teks baru:

  1. Tokenisasi. Model terlebih dahulu memecah teks menjadi bagian-bagian yang lebih kecil yang disebut token. Token ini bisa berupa kata utuh, bagian dari kata, atau tanda baca. Setiap token menerima ID numerik dari kosakata model, yang tidak memiliki makna apa pun dengan sendirinya.
  2. Encoding dan pooling. Model memproses token-token ini menggunakan pola yang dipelajarinya selama pelatihan dan menghasilkan sebuah vektor. Setiap angka dalam vektor merupakan koordinat atau komponen, dan dimensi adalah sumbu tempat angka tersebut menentukan posisi vektor. Setiap nilai berkontribusi pada posisi teks dalam ruang matematis yang dikenal sebagai ruang embedding.
  3. Perhitungan kemiripan. Untuk menemukan teks yang terkait, sistem pengambilan informasi membandingkan embedding kueri dengan embedding dokumen menggunakan ukuran kemiripan seperti cosine similarity atau dot product

Begitulah cara toko online, misalnya, menampilkan item yang cocok dengan kueri pengguna.

Apa perbedaan antara embedding kata, kalimat, dan dokumen?

Perbedaan utamanya terletak pada seberapa banyak teks yang diwakili oleh setiap embedding dalam satu vektor. Anda dapat membuat embedding untuk kata individual, kalimat utuh, atau seluruh dokumen, bergantung pada informasi apa yang ingin Anda tangkap.

  • Embedding kata menangkap hubungan antara kata-kata individual, misalnya mengenali bahwa “pemadaman” dan “waktu henti” merupakan konsep yang saling terkait.
  • Embedding kalimat memahami makna kalimat secara utuh, bahkan ketika kalimat-kalimat tersebut menyampaikan gagasan yang sama dengan kata-kata yang berbeda.
  • Embedding dokumen merepresentasikan seluruh dokumen sebagai satu vektor, alih-alih membuat vektor terpisah untuk setiap kalimat. Cara ini membantu mempertahankan pokok bahasan umum dan menemukan dokumen lain yang membahas pokok bahasan yang sama; namun, detailnya mungkin lebih sulit (bahkan mustahil) untuk diambil kembali.

Seberapa granular sebaiknya? Tingkat yang tepat bergantung pada data Anda dan tujuan yang ingin Anda capai.

Untuk dokumen yang lebih besar, praktik yang umum adalah memecah teks menjadi chunk yang lebih kecil dan membuat embedding terpisah untuk masing-masing chunk. Dengan cara ini, Anda akan mendapatkan makna keseluruhan dokumen SEKALIGUS detail spesifiknya, yang mungkin hilang pada embedding dokumen.

Seberapa besar pengaruh ukuran chunk terhadap kualitas embedding?

Cukup besar. Menurut Rahul Kumar, VP of AI Engineering di Xenoss, tantangannya adalah menemukan ukuran chunk yang dapat menangkap satu gagasan utuh tanpa kehilangan konteks penting. Ia menjelaskan kompromi yang harus dibuat:

“Ukuran chunk menentukan seberapa banyak konteks semantik yang dibawa oleh satu embedding. Chunk yang lebih besar memberi vektor lebih banyak konteks, tetapi juga merata-ratakan lebih banyak topik ke dalam satu vektor. Chunk yang mencakup tiga topik akan berada di tengah-tengah dan tidak benar-benar cocok dengan satu pun dari topik tersebut. Chunk yang lebih kecil menjaga maknanya tetap tajam, tetapi dapat kehilangan konteks yang membuatnya bisa ditemukan.”

Itulah sebabnya Kumar menyarankan untuk memilih strategi chunking berdasarkan kontennya, alih-alih berpegang pada satu ukuran tetap. Seperti yang ia katakan, “ukuran tetap dengan tumpang tindih (overlap) hanya cocok untuk teks yang seragam seperti email atau halaman web hasil scraping.”

Untuk dokumen terstruktur seperti kontrak atau kebijakan, pemisahan rekursif yang memperhatikan struktur lebih cocok. Sementara itu, chunking semantik dapat bekerja dengan baik untuk transkrip karena metode ini memisahkan teks di titik terjadinya pergeseran topik atau makna.

Embedding teks vs. pencarian kata kunci

Mengapa menggunakan embedding teks jika Anda bisa mencari kata kunci saja? Karena pencarian kata kunci mengandalkan kecocokan istilah, sedangkan pencarian semantik berbasis embedding dapat mengambil informasi yang relevan bahkan ketika kueri dan dokumen menggunakan kata-kata yang berbeda.

Namun, kemiripan semantik tidak selalu berarti relevansi. Shaw Talebi, pendiri AI Builder Academy, menunjukkan keterbatasan ini menggunakan sistem pencarian resume. Dalam kasus Talebi, saat mencari “data engineer dengan pengalaman Apache Airflow”, hanya satu dari lima hasil teratas yang menyebutkan Apache Airflow, dan hasil itu berada di peringkat ketiga — padahal tiga resume lain dalam dataset mencantumkan keahlian tersebut.

Artinya, pencarian semantik berguna untuk menemukan informasi yang terkait secara konseptual, tetapi dapat melewatkan persyaratan eksak seperti keahlian teknis, pengidentifikasi produk, atau kode kesalahan.

Untuk mengatasi masalah ini, Rahul Kumar menyarankan untuk memilih pendekatan pengambilan informasi berdasarkan titik lemah sistem pengambilan tersebut:

  • Pencarian hibrida (gabungan pencocokan kata kunci dengan pencarian semantik) adalah pilihan default ketika kueri mengandung istilah eksak, seperti SKU, kode kesalahan, atau rujukan hukum.
  • Reranker sepadan dengan biayanya ketika hanya beberapa hasil teratas yang penting, misalnya jawaban yang dihasilkan dari konteks yang diambil.
  • Pengambilan berbasis graf membantu ketika jawabannya tersebar di beberapa sumber data yang saling terhubung.

Kumar juga membagikan cara timnya menerapkan pendekatan-pendekatan ini. Dalam satu proyek, mereka menjalankan pencarian kata kunci BM25 dan pencarian vektor secara berdampingan, menggabungkan hasilnya menggunakan reciprocal rank fusion (RRF), lalu menggunakan LLM untuk memeringkat ulang 124 hasil teratas hingga tersisa 6.

“Beralih ke pengambilan yang mengutamakan graf (graph-first), dengan pencarian vektor yang menemukan ruang laten serupa lalu dilanjutkan dengan penelusuran graf dua lompatan (two-hop graph walk), meningkatkan kualitas peringkat (nDCG) dari 0,58 menjadi 0,67 dan memangkas waktu pengambilan p90 dari 19 detik menjadi di bawah 3 detik,” tambah Kumar.

Jenis-jenis model embedding teks

Secara umum, semua model embedding melakukan hal yang sama — mempelajari hubungan dalam teks. Namun, model-model tersebut berbeda dalam hal tujuan pelatihannya, informasi yang dipertimbangkannya, dan tugas yang dirancang untuk ditanganinya.

Model embedding kata statis

Model embedding kata tradisional mempelajari representasi numerik padat (dense) dari kata-kata berdasarkan pola penggunaan kata di seluruh kumpulan teks berukuran besar. Embedding ini bersifat statis, artinya setiap kata mendapatkan vektor yang sama terlepas dari maknanya dalam konteks tertentu.

Dua metode yang terkenal adalah:

  • Word2Vec: Dikembangkan oleh Google pada tahun 2013, metode ini mempelajari representasi dari kata-kata di sekitarnya menggunakan dua arsitektur: Continuous Bag of Words (CBOW), yang memprediksi sebuah kata dari kata-kata di sekitarnya, dan skip-gram, yang memprediksi kata-kata di sekitar sebuah kata tertentu.
  • GloVe (Global Vectors for Word Representation): Dikembangkan di Stanford pada tahun 2014, metode ini menggunakan statistik kemunculan bersama (co-occurrence) kata untuk mempelajari hubungan antarkata.

Model bahasa kontekstual

Tidak seperti embedding statis, model bahasa serbaguna menghasilkan representasi kontekstual yang berubah bergantung pada teks di sekitarnya. Hal ini membantu model membedakan berbagai makna dari kata yang sama.

  • BERT (2018, Google): Menggunakan self-attention dua arah untuk mempertimbangkan kata-kata di kedua sisi sebuah token. Misalnya, model ini menghasilkan representasi yang berbeda untuk “bisa” dalam “Saya bisa berenang” dan “Ular itu memiliki bisa yang mematikan.”
  • GPT (2018, OpenAI): Menggunakan representasi berbasis transformer yang memperhitungkan teks sebelumnya sambil memprediksi token berikutnya. Model GPT terutama dirancang untuk menghasilkan bahasa.

Model embedding kalimat dan dokumen

Merepresentasikan potongan teks yang lebih panjang, mulai dari kalimat individual hingga paragraf dan seluruh dokumen, sebagai vektor.

  • Doc2Vec: Memperluas pembelajaran ala Word2Vec ke kalimat, paragraf, dan dokumen. Model ini dapat membantu mengelompokkan artikel yang terkait atau mengklasifikasikan dokumen berdasarkan pokok bahasan.
  • Universal Sentence Encoder (USE): Dikembangkan oleh Google pada tahun 2018 untuk menghasilkan representasi dengan panjang tetap dari kalimat dan paragraf pendek untuk kemiripan semantik dan klasifikasi teks.
  • Sentence-BERT (SBERT, 2019): Dikembangkan oleh Nils Reimers dan Iryna Gurevych di Technical University Darmstadt, model ini dibangun di atas model BERT milik Google dan umum digunakan untuk pencarian semantik, deteksi parafrasa, dan pengelompokan (clustering).
  • pplx-embed-v1 (2026, Perplexity): Sebagai model embedding teks mutakhir yang dibangun untuk pengambilan informasi berskala web di dunia nyata, keluarga model ini menggunakan pretraining berbasis difusi untuk mengubah model bahasa kausal menjadi encoder dua arah. Model ini menghasilkan embedding padat untuk kueri dan dokumen yang di-encode secara independen, dengan pelatihan yang memperhitungkan kuantisasi (quantization-aware training) untuk mengurangi biaya penyimpanan. Model 4B INT8 kami mencapai 69,66 nDCG@10 pada benchmark retrieval MTEB multibahasa, dibandingkan dengan gemini-embedding-001 milik Google yang mencapai 67,71.
  • pplx-embed-context-v1 (2026, Perplexity): Mengatasi masalah umum pada chunking dokumen: bagian teks dapat kehilangan maknanya ketika dipisahkan dari teks di sekitarnya. Dengan menggunakan late chunking, model ini memproses dokumen terlebih dahulu sebelum melakukan pooling representasi token kontekstual menjadi embedding chunk yang terpisah. Model 4B kami mencapai 81,96 nDCG@10 pada ConTEB, dibandingkan dengan 79,45 untuk voyage-context-3.
  • pplx-embed-v2-context (2026, Perplexity): Membawa pengambilan kontekstual selangkah lebih jauh. Alih-alih hanya dilatih untuk menemukan bagian teks yang berisi jawaban, model ini belajar mengidentifikasi bagian teks pendukung yang membantu menjelaskan atau memverifikasi jawaban tersebut. Selama pelatihan, model ini menggunakan sinyal relevansi yang didistilasi dari model kompresi konteks, tanpa memerlukan model pengajar (teacher) tersebut saat inferensi. Versi pratinjau 9B kami mencapai answer recall sebesar 45,5% dan evidence recall sebesar 40,6% pada 10 hasil di context-bench.

Model Perplexity juga memungkinkan penyimpanan embedding dalam skala besar. Model-model ini menghasilkan embedding INT8 dan biner, yang mengurangi kebutuhan penyimpanan masing-masing sebesar 4x dan 32x dibandingkan FP32.

Model

Dimensi

Konteks

MRL

Kuantisasi

Instruksi

Pooling

pplx-embed-v1-0.6B

1024

32K

Ya

INT8/BINER

Tidak

Rata-rata

pplx-embed-v1-4B

2560

32K

Ya

INT8/BINER

Tidak

Rata-rata

pplx-embed-context-v1-0.6B

1024

32K

Ya

INT8/BINER

Tidak

Rata-rata

pplx-embed-context-v1-4B

2560

32K

Ya

INT8/BINER

Tidak

Rata-rata

Dimensi, panjang konteks, kuantisasi, dan konfigurasi pooling model pplx-embed

Embedding padat, jarang, dan multivektor

Ada satu perbedaan lagi yang perlu dipahami, terutama untuk pencarian semantik. Model embedding dapat berbeda dalam hal cara model tersebut merepresentasikan teks dan menghitung relevansi.

  • Embedding padat (dense): Merepresentasikan teks menggunakan vektor ringkas yang sebagian besar nilainya bukan nol.
  • Embedding jarang (sparse): Menggunakan vektor yang sebagian besar bernilai nol, dengan bobot hasil pembelajaran yang dikaitkan dengan istilah-istilah penting. Model seperti SPLADE (2021) mempelajari istilah mana yang penting untuk mengambil dokumen yang relevan.
  • Embedding multivektor: Mempertahankan beberapa vektor untuk sepotong teks, sehingga memungkinkan perbandingan yang lebih mendetail antara kueri dan dokumen. Model seperti ColBERT (2020) menggunakan representasi ini untuk perbandingan kueri-dokumen yang lebih mendetail.
  • Model yang menggabungkan beberapa pendekatan: BGE-M3 (2024), yang dikembangkan oleh BAAI, mendukung pengambilan padat, jarang, dan multivektor dalam satu model yang sama.

Cara memilih dan mengevaluasi model embedding teks

Benchmark publik seperti MTEB merupakan titik awal yang baik. Gunakan benchmark tersebut untuk menyaring dua atau tiga model yang mendukung bahasa, panjang input, dan persyaratan deployment Anda. Namun, jangan buru-buru memilih pemenangnya. Kami tidak akan bosan menekankan betapa pentingnya menguji model-model tersebut pada data Anda sendiri.

Berikut alur kerja evaluasi yang praktis:

  1. Buat dataset pengujian. Kumpulkan 50-100 kueri pencarian yang representatif sebagai set evaluasi awal (Anda mungkin memerlukan lebih banyak), termasuk kasus-kasus sulit seperti parafrasa, terminologi teknis, dan kode kesalahan yang persis. Untuk setiap kueri, identifikasi dokumen atau bagian teks mana yang berisi jawaban relevan. Label relevansi ini menjadi ground truth Anda.
  2. Ukur kualitas pengambilan. Uji setiap model pada dataset evaluasi yang sama. Jaga agar kondisi persiapan dokumen dan pengambilan tetap sebanding, sambil mengikuti persyaratan khusus setiap model untuk pemformatan kueri, normalisasi, dan penilaian kemiripan. Lalu, hitung metrik berikut menggunakan InformationRetrievalEvaluator dari Sentence Transformers:
    • Recall@k: Menunjukkan proporsi bagian teks relevan yang muncul dalam k hasil teratas.
    • MRR: Mengukur seberapa tinggi posisi hasil relevan pertama dalam peringkat.
    • nDCG@k: Mengukur seberapa baik k hasil teratas diurutkan berdasarkan relevansinya.
  3. Lakukan benchmark latensi dan throughput. Ukur berapa lama waktu yang dibutuhkan setiap model untuk membuat embedding kueri, idealnya dengan melaporkan latensi median (p50) dan persentil ke-95 (p95) dalam kondisi beban yang realistis.
  4. Hitung biaya penyimpanan dan operasional. Penyimpanan vektor bergantung pada jumlah embedding, dimensinya, dan presisi numeriknya. Sebagai contoh, satu juta embedding FP32 berdimensi 768 membutuhkan sekitar 3,1 GB penyimpanan vektor mentah, belum termasuk overhead pengindeksan. Untuk mengurangi kebutuhan penyimpanan, Anda dapat melakukan kuantisasi vektor ke presisi numerik yang lebih rendah. Misalnya, beralih dari FP32 ke INT8 mengurangi penyimpanan vektor mentah sekitar 4 kali lipat. Namun, kompresi dapat memengaruhi kualitas pengambilan, jadi jalankan ulang evaluasi Anda untuk memeriksa kompromi tersebut.

Pada akhirnya, bandingkan hasilnya secara berdampingan: metrik pengambilan, latensi p95, throughput, penyimpanan, dan biaya. Pilih model yang memenuhi persyaratan kualitas Anda dalam batasan lingkungan produksi Anda.

Kapan sebaiknya Anda menggunakan embedding alih-alih LLM?

Dengan LLM yang mampu menangani segalanya, mulai dari analisis dokumen hingga penalaran kompleks, Anda mungkin tergoda untuk menyerahkan semua teks ke model dan membiarkannya mencari jawabannya sendiri. Namun, Anda mungkin tidak akan senang dengan biaya yang harus dibayar untuk itu.

Selain itu, LLM lebih unggul dalam menilai dan menyusun, tetapi terbatas oleh seberapa banyak informasi yang dapat dimuat dalam satu prompt. Sebaliknya, embedding murah, cepat, konsisten, dan dapat diterapkan pada jutaan item.

“Embedding unggul dalam pencarian, rekomendasi (‘lebih banyak yang seperti ini’), mendeteksi duplikat seperti tiket dukungan yang berulang, serta mengelompokkan konten dalam volume besar berdasarkan topik. Embedding juga andal lintas bahasa. LLM unggul ketika tugas membutuhkan penalaran: meringkas, membandingkan opsi, atau menulis jawaban. Sebagian besar sistem di dunia nyata membutuhkan keduanya, dengan masing-masing mengerjakan bagian yang paling dikuasainya,” simpul Kumar.

Kesalahan umum developer seputar embedding teks

Untuk mengetahui hal-hal yang sering diabaikan developer, saya berbincang dengan Rahul Kumar dan Xibeijia Guan, ilmuwan data di Ahrefs. Mereka menyoroti enam kesalahan yang perlu diwaspadai:

  • Melewatkan prapemrosesan teks. Jika data input berisi HTML, menu navigasi, iklan, atau konten tidak relevan lainnya, langkah prapemrosesan seperti penghapusan boilerplate dapat membantu meningkatkan kualitas embedding dengan menghilangkan informasi yang tidak perlu.
  • Mengabaikan panjang input maksimum model. Setiap model memiliki batas token dan perilaku pemotongan yang berbeda. Teks yang melebihi batas dapat terpotong sehingga informasi penting hilang.
  • Tidak mengikuti persyaratan khusus model. Beberapa model embedding memerlukan prefiks tertentu, seperti query: dan passage:, atau instruksi yang berbeda untuk tugas yang berbeda. Mengabaikan persyaratan ini dapat menurunkan performa pengambilan.
  • Menggunakan ukuran kemiripan yang tidak sesuai. Kemiripan kosinus (cosine similarity) dan perkalian titik (dot product) tidak selalu dapat dipertukarkan. Periksa apakah embedding sudah dinormalisasi, lalu gunakan metode penilaian yang direkomendasikan untuk model dan indeks vektor yang digunakan.
  • Menganggap kemiripan topik sebagai relevansi. Dalam koleksi dengan domain sempit, banyak dokumen mungkin mirip secara semantik tanpa menjawab pertanyaan yang sama. Periksa kueri yang gagal dan distribusi peringkatnya. Uji pengambilan leksikal atau hibrida, pemeringkatan ulang (reranking), dan filter metadata ketika pengguna membutuhkan informasi yang persis.
  • Mengabaikan normalisasi embedding. Model embedding yang berbeda dapat menghasilkan vektor yang sudah atau belum dinormalisasi. Periksa apakah embedding sudah dinormalisasi dan apakah diperlukan normalisasi tambahan, tergantung pada metrik kemiripan yang Anda gunakan.

FAQ seputar embedding teks

1. Bagaimana cara membuat embedding teks?

Pendekatan paling sederhana adalah menggunakan model embedding yang sudah dilatih sebelumnya (pretrained). Misalnya, dengan library Sentence Transformers di Python, Anda dapat memuat model seperti all-MiniLM-L6-v2, meneruskan teks Anda ke model.encode(), dan mendapatkan vektor numerik sebagai hasilnya. Sebagai alternatif, Anda dapat membuat embedding melalui API.

Untuk pencarian semantik atau RAG, Anda biasanya akan membagi dokumen menjadi beberapa potongan (chunk), membuat embedding untuk masing-masing potongan, lalu menyimpan vektornya dalam indeks yang dapat dicari.

2. Apa saja model embedding terbaik untuk teks?

Ada beberapa model yang layak dipertimbangkan, tergantung pada apa yang sedang Anda bangun:

  • pplx-embed-v1 dari Perplexity: Dirancang untuk dense retrieval berskala besar, dengan embedding INT8 dan biner yang mengurangi kebutuhan penyimpanan vektor.
  • pplx-embed-context-v1 dari Perplexity: Berguna untuk mengambil bagian teks dari dokumen panjang, di mana potongan individual kehilangan maknanya tanpa konteks di sekitarnya.
  • all-MiniLM-L6-v2: Cocok untuk pencarian semantik lokal yang ringan, pengelompokan (clustering), dan tugas kemiripan kalimat. Menghasilkan vektor ringkas berdimensi 384, tetapi memotong input yang lebih panjang dari 256 word piece.
  • BGE-M3: Berguna untuk RAG multibahasa dan pengambilan hibrida. Mendukung lebih dari 100 bahasa dan menggabungkan representasi dense, sparse, dan multivektor.
  • Qwen3-Embedding: Kandidat kuat untuk pencarian multibahasa, pengambilan kode, dan embedding khusus tugas. Menawarkan model open-weight 0,6B, 4B, dan 8B dengan dukungan instruksi.
  • text-embedding-3-large dari OpenAI: Opsi berbasis API untuk pencarian semantik dan pengambilan dokumen jika Anda tidak ingin meng-host model sendiri. Mendukung hingga 3.072 dimensi, yang dapat Anda kurangi untuk menghemat penyimpanan.
  • Model Gemini Embedding dari Google: Berguna untuk aplikasi pengambilan terkelola. Gemini Embedding 2 juga mendukung pencarian lintas teks, gambar, audio, video, dan PDF dalam satu ruang embedding bersama.

3. Bisakah saya menggunakan LLM sebagai model embedding?

Bisa, tetapi ada perbedaan antara LLM serbaguna dan LLM yang dioptimalkan untuk embedding. LLM menghasilkan representasi vektor internal dari teks, yang dapat Anda ekstrak dan gabungkan (pooling) menjadi satu embedding. Namun, vektor tersebut belum tentu berguna untuk pencarian semantik tanpa pelatihan tambahan.

Misalnya, Qwen3-Embedding menggunakan backbone LLM yang dilatih lebih lanjut untuk tugas embedding dan pengambilan. Jadi, meskipun Anda dapat mengadaptasi LLM untuk menghasilkan embedding, model embedding khusus biasanya merupakan titik awal yang lebih praktis.