Apa itu retrieval-augmented generation (RAG)?
Retrieval-augmented generation (RAG) adalah teknik yang mencari dokumen yang relevan dengan sebuah pertanyaan, lalu menambahkannya ke prompt model bahasa sebelum model menjawab. Dokumen dipecah menjadi chunk dan disimpan sebagai embedding vector. Saat query berjalan, pertanyaan juga diubah menjadi embedding, chunk terdekat diambil, dan model menulis jawabannya dari konteks itu.
RAG adalah cara sebagian besar chatbot menjawab pertanyaan tentang informasi yang tidak ada di data training-nya: dokumen internal perusahaan, manual produk, berita terbaru, atau codebase. Dengan RAG, jawaban tetap mutakhir tanpa training ulang, sistem bisa menyebut sumbernya, dan fakta karangan berkurang. Asisten layanan pelanggan, pencarian perusahaan, asisten coding, dan mesin pencari dengan jawaban AI semuanya dibangun di atas salah satu bentuk RAG.
Ide utama
- RAG mengambil dokumen yang relevan saat query berjalan dan menambahkannya ke prompt sebelum model menjawab.
- Dokumen dipecah menjadi chunk, dan setiap chunk disimpan sebagai embedding vector.
- Query diubah menjadi embedding dengan model yang sama, lalu chunk terdekat menurut cosine similarity diambil.
- Chunk size dan top-k sama-sama menukar precision retrieval dengan recall.
- Mengedit indeks dokumen mengubah apa yang diketahui sistem tanpa training ulang pada model.
- Retrieval yang baik mengurangi halusinasi, tetapi model masih bisa mengabaikan atau salah membaca konteksnya.
Ulasan singkat tentang topik ini
Pertanyaan umum
Apa bedanya RAG dan fine-tuning?
Fine-tuning mengubah weight model dan paling cocok untuk mengajarkan gaya, format, atau perilaku. RAG tidak mengubah weight dan memberikan fakta saat query berjalan, sehingga faktanya mudah diperbarui dan disebut sumbernya. Banyak sistem produksi memakai keduanya.
Apa itu vector database?
Vector database menyimpan embedding vector dan menemukan yang paling dekat dengan vector query secara cepat, biasanya dengan indeks approximate. Contohnya FAISS (sebuah library), pgvector untuk PostgreSQL, Pinecone, Weaviate, dan Chroma. Sebagian besar juga menyimpan teks dan metadata tiap chunk agar hasilnya bisa disaring menurut sumber atau tanggal.
Apakah RAG menghilangkan halusinasi?
Tidak. Retrieval bisa mengembalikan chunk yang salah, chunk yang benar bisa tidak ada di indeks, dan model masih bisa mencampur teks yang diambil dengan apa yang dihafalnya. RAG menurunkan tingkat fakta karangan dan membuatnya lebih mudah dicek, tetapi tetap butuh evaluasi seperti sistem lain.
Apakah model dengan konteks panjang membuat RAG tidak diperlukan?
Tidak untuk koleksi besar. Context window sebesar sejuta token pun hanya memuat sebagian kecil dokumen perusahaan, dan setiap token di prompt menambah biaya dan latency pada setiap permintaan. Konteks panjang dan RAG saling melengkapi: retrieval mempersempit kumpulannya, dan jendela yang panjang menampung lebih banyak isinya.
Penjelasan terkait
- Embedding · Mengubah kata dan kategori menjadi vector
- Arsitektur Transformer · Panduan visual untuk paper "Attention Is All You Need"
- Decoder-Only Transformer · Arsitektur di balik GPT dan LLM modern
- Norm dan Metrik Jarak · L1, L2, cosine similarity: cara mengukur kedekatan di ruang vector
- Tokenization & BPE · Cara teks menjadi angka, dari karakter sampai subword token lewat byte-pair encoding
- Language Modeling · Memprediksi token berikutnya, tujuan yang menggerakkan GPT, BERT, dan NLP modern
Referensi
- Lewis et al. (2020), "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"
- Karpukhin et al. (2020), "Dense Passage Retrieval for Open-Domain Question Answering"
- Liu et al. (2023), "Lost in the Middle: How Language Models Use Long Contexts"
- Malkov & Yashunin (2016), "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs"
Terakhir diperbarui