Apa Itu RAG? Retrieval-Augmented Generation Dijelaskan dengan Sederhana
RAG (retrieval-augmented generation) adalah cara membuat model AI menjawab pertanyaan menggunakan informasi Anda sendiri. Saat seseorang mengajukan pertanyaan, aplikasi Anda lebih dulu mencari bagian dokumen yang paling relevan, lalu menyerahkan bagian-bagian itu ke model bersama pertanyaannya. Model menulis jawabannya dari teks tersebut, alih-alih hanya mengandalkan apa yang kebetulan dipelajarinya saat pelatihan.
Mengapa RAG penting saat membangun dengan AI
Large language model tahu banyak tentang dunia secara umum, tetapi tidak tahu apa pun tentang bisnis Anda: harga, kebijakan, manual produk, tiket dukungan minggu lalu. Modelnya juga punya batas waktu pelatihan, jadi tidak tahu hal-hal terbaru. Jika tetap ditanya, ia bisa menghasilkan jawaban yang meyakinkan, masuk akal, tetapi keliru.
Ada tiga pilihan besar untuk mengatasinya:
| Pendekatan | Apa yang dilakukan | Cocok untuk |
|---|---|---|
| Tempel semuanya ke prompt | Kirim semua dokumen Anda dengan setiap pertanyaan | Teks kecil — beberapa halaman |
| RAG | Cari dokumen Anda, kirim hanya bagian yang relevan | Kumpulan yang besar atau berubah: pusat bantuan, manual, catatan |
| Fine-tuning | Latih model lebih lanjut dengan contoh | Nada, format, dan tugas berulang — bukan fakta yang berubah |
Model modern menerima prompt yang panjang, jadi untuk FAQ kecil pilihan pertama sering sudah cukup. RAG layak dipakai ketika teks yang Anda miliki terlalu banyak untuk dikirim setiap kali — karena setiap kata yang Anda kirim memakan biaya dan waktu (lihat cara LLM API menagih).
Jika Anda membangun fitur "chat dengan dokumen kami", asisten dukungan, atau alat pengetahuan internal, hampir pasti Anda sedang membangun semacam RAG.
Analogi sehari-hari
Bayangkan ujian dengan buku terbuka. Siswa yang harus menjawab dari ingatan bisa salah ingat atau menebak-nebak. Siswa yang boleh membuka halaman yang tepat dulu, membacanya, lalu menjawab jauh lebih andal — selama ia menemukan halaman yang benar.
- Siswa adalah model bahasa.
- Buku teks adalah dokumen Anda.
- Membuka halaman yang tepat adalah retrieval.
- Menulis jawaban dari halaman itu adalah generation.
RAG adalah versi buku terbuka. Dan, seperti dalam ujian, kualitas jawabannya sangat bergantung pada apakah halaman yang tepat ditemukan.
Cara kerja RAG, langkah demi langkah
Pengaturan RAG yang umum memiliki dua fase.
Menyiapkan dokumen Anda (dilakukan sebelumnya):
- Kumpulkan materi sumber — artikel bantuan, PDF, kebijakan, data produk.
- Pecah (chunk) menjadi bagian-bagian kecil: membagi dokumen panjang menjadi potongan yang lebih pendek, sering kali beberapa paragraf per potongan, agar pencarian bisa mengembalikan hanya bagian yang relevan.
- Embed setiap potongan: kirim ke model embedding, yang mengubah teks menjadi embedding — daftar angka panjang yang menangkap maknanya. Teks yang membahas hal serupa akan memiliki angka yang mirip.
- Simpan potongan dan embedding-nya dalam basis data yang bisa dicari berdasarkan kemiripan (sering disebut vector database atau vector index).
Menjawab pertanyaan (dilakukan setiap kali):
- Embed pertanyaannya dengan model embedding yang sama.
- Ambil (retrieve) potongan yang embedding-nya paling dekat dengan pertanyaan — misalnya lima teratas.
- Susun prompt: instruksi, potongan yang diambil, dan pertanyaannya.
- Generate: model bahasa menulis jawaban berdasarkan potongan tersebut, idealnya dengan menyebut potongan mana yang dipakai.
Pencarian berdasarkan makna itulah yang membuat ini bekerja: pertanyaan tentang "mengembalikan uang saya" bisa menemukan potongan berjudul "Kebijakan pengembalian dana" meski keduanya tidak berbagi kata yang sama.
Contoh nyata: asisten bantuan sebuah gym
Anggap sebuah gym memiliki 40 artikel bantuan dan ingin asisten chat di situs webnya. Seorang anggota bertanya: "Bisakah saya menjeda keanggotaan saya saat sedang bepergian?"
Aplikasi meng-embed pertanyaan itu dan mengambil tiga potongan terdekat. Salah satunya berbunyi:
Membekukan keanggotaan: Anggota dengan paket bulanan dapat membekukan
keanggotaan mereka hingga 2 bulan per tahun. Ajukan di meja depan atau
di aplikasi setidaknya 7 hari sebelum pembekuan dimulai.
Prompt yang dikirim ke model kemudian kira-kira seperti ini:
Anda adalah asisten bantuan untuk Northside Gym.
Jawab hanya dari sumber di bawah. Jika jawabannya tidak ada di dalamnya,
katakan Anda tidak tahu dan sarankan menghubungi meja depan.
Sebutkan sumber mana yang Anda pakai.
[Sumber 1: Membekukan keanggotaan] Anggota dengan paket bulanan dapat membekukan...
[Sumber 2: Membatalkan keanggotaan] ...
[Sumber 3: Tiket tamu] ...
Pertanyaan: Bisakah saya menjeda keanggotaan saya saat sedang bepergian?
Dan model menjawab: "Ya — dengan paket bulanan Anda bisa membekukan keanggotaan hingga dua bulan per tahun. Ajukan di meja depan atau di aplikasi setidaknya 7 hari sebelumnya (sumber: Membekukan keanggotaan)."
Gym itu tidak pernah melatih ulang apa pun. Saat mengubah kebijakan pembekuan, mereka memperbarui artikelnya, aplikasi meng-embed ulang potongan itu, dan jawaban berikutnya mencerminkannya.
Istilah kunci
| Istilah | Artinya |
|---|---|
| LLM | Large language model — AI yang menulis jawabannya. Lihat apa itu LLM. |
| Embedding | Daftar angka yang merepresentasikan makna sepotong teks. |
| Model embedding | Model yang menghasilkan embedding. Biasanya terpisah dari model chat, dan jauh lebih murah. |
| Chunk | Potongan dokumen, berukuran agar bisa diambil secara mandiri. |
| Vector database / pencarian vektor | Penyimpanan yang menemukan item dengan embedding yang mirip. Beberapa basis data biasa juga menawarkannya — Postgres, misalnya, melalui ekstensi pgvector. |
| Top-k | Berapa banyak potongan yang diambil per pertanyaan. |
| Hybrid search | Menggabungkan pencarian berbasis makna dengan pencarian kata kunci biasa, yang membantu untuk istilah pasti seperti kode produk. |
| Context window | Jumlah teks maksimum yang bisa diterima model dalam satu permintaan. |
| Grounding / sitasi | Mengaitkan jawaban dengan sumber yang diambil tertentu dan menampilkannya. |
Kesalahpahaman umum
- "RAG melatih model dengan data saya." Tidak. Model tidak berubah sama sekali; ia hanya membaca teks tambahan saat pertanyaan diajukan.
- "RAG berarti tidak ada lagi halusinasi." Artinya halusinasinya berkurang. Jika retrieval melewatkan potongan yang tepat, atau jawabannya tidak ada dalam dokumen Anda, model tetap bisa menebak. Instruksikan agar ia mengatakan "saya tidak tahu" dan uji dengan pertanyaan yang jawabannya Anda ketahui.
- "Saya butuh vector database khusus." Sering kali tidak. Untuk data dalam jumlah sedang, ekstensi vektor di basis data yang sudah Anda punya, atau bahkan pencarian kata kunci biasa, bisa sudah cukup.
- "Potongan yang lebih besar selalu lebih baik." Terlalu besar berarti Anda mengirim banyak teks yang tidak relevan (biaya lebih tinggi, lebih membingungkan); terlalu kecil berarti potongan kehilangan konteks yang membuatnya bermakna. Perlu penyesuaian.
- "Unggah saja semuanya." Dokumen yang usang, terduplikasi, atau saling bertentangan menghasilkan jawaban yang saling bertentangan. Membersihkan materi sumber sering kali merupakan peningkatan terbesar yang bisa Anda lakukan.
- "Siapa pun bisa melihat dokumen apa pun." Hanya jika Anda membangunnya begitu. Jika sebagian dokumen bersifat privat untuk pengguna tertentu, pencariannya sendiri harus disaring berdasarkan siapa yang bertanya — jika tidak, asisten bisa mengutip data satu pelanggan kepada pelanggan lain.
Biayanya
Fitur RAG biasanya memiliki tiga biaya berjalan: meng-embed dokumen Anda (kecil, dan sebagian besar sekali di awal), meng-embed setiap pertanyaan (sangat kecil), dan panggilan model bahasa (biaya utamanya, yang bertambah seiring banyaknya potongan yang Anda kirim). Ditambah penyimpanan di basis data Anda. Penyedia AI Anda menagihkan ini ke akun Anda sendiri, jadi atur batas pengeluaran di sana.
Yang bisa Anda tanyakan ke AI builder Anda
- "Sebelum membangun RAG, periksa: apakah konten kita cukup kecil untuk langsung dimasukkan ke prompt?"
- "Pecah artikel bantuan menjadi potongan beberapa paragraf, simpan judul dan tautan sumber setiap potongan, dan simpan embedding di basis data kita."
- "Gunakan hybrid search — berbasis makna plus kata kunci — agar kode produk tetap cocok."
- "Minta model menjawab hanya dari sumber yang diambil, mengatakan saat tidak tahu, dan menampilkan sumber di bawah setiap jawaban."
- "Hanya cari dokumen yang boleh dilihat pengguna yang sedang masuk."
- "Embed ulang dokumen secara otomatis setiap kali diedit."
- "Simpan kunci penyedia AI di server sebagai secret, jangan pernah di browser."
- "Catat setiap pertanyaan, potongan yang diambil, dan jawabannya agar saya bisa meninjau jawaban yang buruk."
RAG di Mythex
Mythex tidak menyertakan produk knowledge-base atau RAG siap pakai. Yang dilakukannya adalah menulis kodenya di dalam aplikasi Anda: Anda membawa dokumen dan kunci penyedia AI Anda sendiri, yang disimpan sebagai secret proyek, dan agen membangun bagian retrieval dan chat, dengan memakai basis data Postgres proyek untuk penyimpanan. Penggunaan penyedia ditagihkan ke akun penyedia Anda, bukan kredit Mythex. Dokumentasinya menyarankan untuk memulai dengan satu fitur AI sederhana dan menambahkan RAG setelah itu berjalan — lihat membangun aplikasi AI, dan panduan kami tentang membangun aplikasi chatbot AI dan menambahkan fitur AI.
Pertanyaan
Apa itu RAG secara sederhana?
RAG (retrieval-augmented generation) adalah cara membuat model AI menjawab dari informasi Anda sendiri. Sebelum model menjawab, aplikasi Anda mencari bagian dokumen yang paling relevan dengan pertanyaan dan menyertakannya dalam prompt, sehingga jawabannya didasarkan pada teks tersebut, bukan hanya pada apa yang dipelajari model saat pelatihan.
Apakah RAG melatih AI dengan data saya?
Tidak. RAG sama sekali tidak mengubah model. Ia mencari teks yang relevan pada saat pertanyaan diajukan dan meneruskannya ke model bersama pertanyaan itu. Jika dokumen diperbarui, jawaban berikutnya bisa langsung memakai versi baru.
Apakah RAG sama dengan fine-tuning?
Tidak. Fine-tuning mengubah perilaku model dengan melatihnya lebih lanjut pada contoh, prosesnya lebih lambat dan lebih cocok untuk gaya atau format. RAG memberi model fakta untuk dibaca saat pertanyaan diajukan, yang lebih baik untuk pengetahuan yang sering berubah atau harus dikutip dengan akurat.
Apakah RAG menghentikan halusinasi AI?
RAG menguranginya, tetapi tidak menghilangkannya sepenuhnya. Jika pencarian menemukan bagian yang keliru, atau jawabannya tidak ada dalam dokumen Anda, model tetap bisa menebak. Aplikasi RAG yang baik meminta model mengatakan saat tidak tahu dan menampilkan sumber yang dipakai.