RAG naif, yaitu chunk dokumen lalu embed lalu ambil top-k, punya angka kegagalan yang bisa diukur. Eksperimen Anthropic yang terbit 19 September 2024 menunjukkan retrieval top-20 masih gagal 5,7% pada chunking biasa. Contextual Retrieval menurunkan angka itu 49% (5,7% jadi 2,9%), dan 67% (jadi 1,9%) kalau ditambah reranking. Jadi masalah utamanya bukan model bahasa, tapi cara chunk dan cara ambil. Artikel ini bedah arsitektur yang benar, biayanya, dan kapan cukup pakai Postgres.
TL;DR
- Retrieval failure rate itu metrik yang bisa diukur, bukan perasaan “kayaknya jawabannya kurang nyambung”.
- Contextual Retrieval turunkan gagal retrieval 49%, plus reranking jadi 67% (sumber: Anthropic, 19 Sep 2024).
- Posisi informasi di tengah konteks panjang bikin model lebih sering salah, ini temuan “Lost in the Middle” (TACL 2023).
- pgvector v0.8.7 sudah cukup untuk mayoritas proyek, dengan HNSW dan halfvec sampai 4.000 dimensi.
- Embedding 1 juta chunk 500 token di text-embedding-v4 kira-kira USD 35 sekali jalan, hitungan dari harga list USD 0,07 per 1 juta token.
Kenapa RAG naif gagal di produksi?
Karena chunk yang dipotong tanpa konteks sering tidak bisa menjawab pertanyaan yang sebenarnya. Satu potongan 500 token bisa berisi “biaya administrasi di atas berlaku mulai Januari”, tanpa menyebut produk, cabang, atau tahun apa pun. Embedding-nya jadi vektor yang mirip ribuan kalimat lain, dan yang terambil bukan bukti yang tepat.
Paper “Seven Failure Points When Engineering a Retrieval Augmented Generation System” (arXiv 2401.05856, 11 Januari 2024) mendokumentasikan tujuh titik gagal dari tiga studi kasus di domain riset, pendidikan, dan biomedis. Dua kesimpulan mereka penting:
- Validasi RAG baru benar-benar bisa dilakukan saat sistem berjalan, bukan di meja desain.
- Ketahanan RAG itu berevolusi lewat iterasi, bukan dirancang sekali jadi.
Penyebab paling umum di lapangan biasanya cuma tiga: chunk terlalu kecil, chunk terlalu besar, dan tidak ada pengaman saat retrieval kosong. Tiga-tiganya bisa dideteksi tanpa mengganti model.
Apa itu Contextual Retrieval dan berapa hasilnya?
Contextual Retrieval adalah teknik menambahkan konteks dokumen ke setiap chunk sebelum di-embed, lalu menggabungkan pencarian vektor dengan BM25, dan opsional menambah reranker. Hasil terukurnya ada di pengumuman resmi Anthropic.
Angka lengkapnya:
- Contextual Embeddings saja: gagal retrieval top-20 turun 35%, dari 5,7% ke 3,7%.
- Contextual Embeddings plus Contextual BM25: turun 49%, dari 5,7% ke 2,9%.
- Ditambah reranking: turun 67%, dari 5,7% ke 1,9%.
Cara kerjanya sederhana. Sebelum chunk di-embed, model kecil diminta menulis satu sampai dua kalimat konteks: dokumen ini tentang apa, bagian ini membahas apa, dan posisinya di mana. Kalimat itu ditempel di depan chunk. Biayanya naik karena ada panggilan LLM tambahan per chunk, tapi bisa ditekan drastis dengan prompt caching pada dokumen yang sama, karena prefix-nya identik untuk semua chunk dari satu berkas.
Efek sampingnya: chunk jadi lebih mahal saat indexing, tapi murah saat query. Untuk dokumen yang jarang berubah, ini trade-off yang biasanya menang.
Posisi informasi juga menentukan jawaban
Paper “Lost in the Middle: How Language Models Use Long Contexts” (arXiv 2307.03172, terbit di TACL 2023) menemukan performa model paling bagus saat informasi relevan ada di awal atau akhir konteks, dan turun signifikan saat informasi itu ada di tengah konteks panjang.
Implikasi praktisnya buat RAG:
- Jangan asal menumpuk 20 chunk ke prompt dengan urutan acak.
- Taruh chunk paling relevan di awal dan akhir, bukan di tengah.
- Lebih baik 5 chunk yang tepat daripada 20 chunk yang setengah relevan.
Ini juga alasan kenapa reranking penting. Reranker memindahkan chunk yang benar-benar menjawab ke posisi atas, dan itu bukan kosmetik.
Berapa biaya embedding 1 juta chunk?
Untuk 1 juta chunk dengan rata-rata 500 token, totalnya 500 juta token. Dengan harga text-embedding-v4 di region Singapura sebesar USD 0,07 per 1 juta token input, biaya sekali indexing sekitar USD 35. Harga dan batas dimensi ini diambil dari dokumentasi resmi Model Studio yang terakhir diperbarui 11 Oktober 2026.
Detail modelnya:
- Dimensi vektor bisa diatur dari 64 sampai 2.048.
- Harga input teks USD 0,07 per 1 juta token di Singapura, USD 0,072 di Beijing.
- Ada jalur batch file dengan harga lebih murah, USD 0,036 per 1 juta token di Beijing.
- Klaim peningkatan sampai 40% dibanding versi sebelumnya pada MTEB multilingual, Chinese-English, dan code retrieval.
Kalau butuh kualitas lebih tinggi dan mau self-host, Qwen3-Embedding-8B mencetak skor 70,58 di MTEB multilingual per 5 Juni 2025, berlisensi Apache-2.0, dan mendukung dimensi 32 sampai 4.096. Bobotnya 7,57 miliar parameter, jadi butuh GPU yang serius. Model 0,6B dan 4B di keluarga yang sama lebih masuk akal untuk VPS kecil.
Kalau mau jalur API tanpa mengurus GPU, Qwen di Model Studio menyediakan embedding dan LLM dalam satu tagihan, jadi tidak perlu dua vendor untuk indexing dan generation.
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬