ghiyatsa— Software Developer

Memilih model embedding untuk teks Indonesia

5 August 2026·7 min read·#nlp#python#sentence-transformers

Saat membangun RuangBaca Similarity, satu keputusan yang paling lama saya pikirkan adalah: model embedding mana yang harus dipakai untuk judul skripsi berbahasa Indonesia?

Kandidat yang saya coba

1. paraphrase-multilingual-MiniLM-L12-v2 Model ringan, 118MB, mendukung 50+ bahasa termasuk Indonesia. Latency rendah di CPU.

2. sentence-transformers/LaBSE Language-Agnostic BERT Sentence Embeddings. Lebih akurat untuk cross-lingual similarity, tapi ukurannya 1.8GB dan lambat di CPU.

3. indobenchmark/indobert-base-p1 Model BERT yang dilatih khusus pada corpus Indonesia. Bagus untuk downstream NLP task, tapi tidak didesain untuk similarity scoring.

Cara saya mengevaluasi

Saya buat dataset kecil: 50 pasang judul skripsi yang saya label manual sebagai “mirip”, “agak mirip”, atau “berbeda”. Lalu saya hitung korelasi antara skor model dan label manual.

python
from sentence_transformers import SentenceTransformer, util

model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")

pairs = [
    ("Analisis sentimen ulasan produk menggunakan LSTM",
     "Klasifikasi opini konsumen dengan deep learning"),
    # ...
]

for a, b in pairs:
    emb_a = model.encode(a)
    emb_b = model.encode(b)
    score = util.cos_sim(emb_a, emb_b).item()
    print(f"{score:.3f}")

Hasil

ModelKorelasi dengan label manualUkuranLatency (CPU)
MiniLM-L12-v20.71118MB~45ms
LaBSE0.781.8GB~380ms
IndoBERT0.58420MB~210ms

LaBSE menang di akurasi, tapi 8x lebih lambat dan membutuhkan memori yang tidak tersedia di Hugging Face Spaces free tier.

IndoBERT mengejutkan saya — dilatih pada corpus Indonesia, tapi buruk untuk similarity. Itu karena BERT base tidak dioptimasi untuk sentence-level representation. Butuh fine-tuning tambahan.

Keputusan

MiniLM-L12-v2. Untuk judul skripsi yang panjangnya 10-20 kata, akurasi 0.71 sudah cukup — margin error-nya masih jauh lebih kecil dari penilaian manual seorang penguji.

Yang lebih penting: model ini bisa berjalan di free tier, startup di bawah 5 detik, dan tidak membuat user menunggu saat query. Akurasi yang sedikit lebih rendah lebih baik dari sistem yang tidak bisa dipakai karena lambat.