RAG, Memberi AI Bahan Bacaan Sebelum Menjawab

· Tim GunaStudio

LLM Tools

Model bahasa besar memang pintar, tetapi pengetahuannya beku pada saat pelatihan selesai. Ia tidak otomatis tahu kabar terbaru, dan sering menjawab dengan percaya diri meski salah. Retrieval-augmented generation, disingkat RAG, hadir sebagai jalan tengah: sebelum menjawab, model diberi bahan bacaan yang relevan terlebih dulu.

Masalah pengetahuan yang terbatas dan bisa usang

Pengetahuan model bahasa tersimpan di dalam parameternya, hasil dari proses pelatihan pada data yang ada saat itu. Menurut Wikipedia, salah satu keterbatasan pendekatan ini adalah pengetahuan yang terbatas pada data pelatihan dan rentan usang seiring waktu. Ketika ditanya soal hal yang belum ada saat pelatihan, model bisa mengarang jawaban yang terdengar masuk akal padahal tidak berdasar.

Cara lama untuk menambal ini adalah pelatihan ulang atau fine-tuning, tetapi keduanya mahal dan tidak praktis dilakukan setiap ada informasi baru. Selain itu, model tetap tidak punya cara memberi tahu darimana jawabannya berasal. Padahal untuk banyak kebutuhan, bukan hanya jawaban yang benar, melainkan juga sumber yang bisa diperiksa.

Ide RAG: menggabungkan generasi dengan pengambilan

RAG menyatukan dua kemampuan. Sisi generatif berasal dari model bahasa yang menyusun jawaban. Sisi pengambilan berasal dari sistem yang mencari dokumen relevan dari kumpulan pengetahuan eksternal. Alih-alih mengandalkan ingatan parameternya saja, model dibekali teks pendukung yang diambil saat itu juga.

Paper pengenal RAG dari Lewis dan rekan-rekan menjelaskan pendekatannya secara lebih teknis. Model bahasa yang telah dilatih menyimpan pengetahuan faktual di dalam parameternya, dan RAG memadukannya dengan memori non-parametrik berupa indeks dokumen yang bisa diakses saat inferensi. Jadi ada dua jenis memori: yang tertanam di bobot model, dan yang tersimpan di luar dalam bentuk kumpulan teks yang bisa dicari.

Keunggulan memori non-parametrik adalah sifatnya yang mudah diperbarui. Mengganti dokumen di indeks jauh lebih murah daripada melatih ulang model. Paper tersebut juga mencatat bahwa RAG dapat menghasilkan bahasa yang lebih spesifik dan faktual dibanding pendekatan yang hanya mengandalkan parameter. Tidak kalah penting, karena jawaban dibuat dari dokumen yang diambil, asal informasi dapat dilacak, yang sering disebut provenance.

Pendekatan ini berbeda dari sekadar menempelkan seluruh dokumen ke dalam prompt. Menempelkan semuanya sering tidak muat dan memboroskan ruang, sementara RAG memilih bagian yang paling relevan lebih dulu. Dengan begitu, model menerima sinyal yang lebih padat dan terarah, bukan lautan teks yang harus disaring sendiri.

Alur kerja: index, retrieve, generate

Secara garis besar RAG punya tiga tahap.

1. Index

Tahap pertama berjalan sekali di awal. Dokumen sumber dipotong menjadi bagian-bagian kecil, sebuah langkah yang kerap disebut chunking, lalu setiap bagian diubah menjadi embedding, yaitu representasi vektor bilangan. Menurut Google, embeddings memetakan informasi menjadi vektor di ruang berdimensi tinggi sehingga jarak antar vektor mencerminkan keterkaitan maknanya. Vektor-vektor ini disimpan dalam indeks khusus yang mendukung pencarian kemiripan dengan cepat.

2. Retrieve

Tahap kedua terjadi saat ada pertanyaan. Pertanyaan pengguna juga diubah menjadi embedding, lalu sistem mencari bagian dokumen dengan vektor paling dekat, karena kedekatan vektor menandakan kemiripan makna. Beberapa bagian teratas diambil sebagai kandidat bahan bacaan. Kualitas tahap ini sangat menentukan, sebab model hanya bisa memakai apa yang berhasil ditemukan.

3. Generate

Tahap ketiga adalah menyusun jawaban. Pertanyaan pengguna digabung dengan bagian dokumen yang terambil, lalu dikirim ke model bahasa sebagai konteks. Model diminta menjawab berdasarkan bahan bacaan tersebut, bukan semata dari ingatannya. Karena teksnya terbatas pada bagian relevan, muatan ini tetap muat dalam context window, bahkan untuk kumpulan dokumen yang sangat besar.

Kenapa RAG membantu mengurangi halusinasi

Halusinasi, jawaban keliru yang disampaikan dengan yakin, muncul sebagian karena model dipaksa menjawab dari ingatan yang terbatas. Dengan RAG, model punya rujukan konkret di depan matanya. Ia lebih mungkin menyalin fakta dari dokumen daripada menebak, sehingga jawaban cenderung lebih dapat diandalkan dan lebih spesifik.

Selain itu, RAG memberi jejak sumber. Karena jawaban berdasar potongan dokumen tertentu, sistem bisa menampilkan tautan atau kutipan asal informasi. Pengguna jadi bisa memverifikasi sendiri, sesuatu yang sulit dilakukan pada jawaban yang murni keluar dari parameter model. Kemampuan melacak asal inilah yang disebut provenance dan menjadi salah satu alasan RAG banyak dipakai untuk aplikasi yang menuntut ketelitian.

Perlu dicatat, RAG bukan jaminan bebas salah. Kalau dokumen yang diambil tidak relevan atau pertanyaannya di luar cakupan indeks, kualitas jawaban tetap turun. Karena itu, kualitas pengambilan sama pentingnya dengan kualitas model yang menyusun jawaban.

Tantangan yang perlu diantisipasi

RAG tidak bebas dari masalah. Kualitas hasil sangat bergantung pada bagaimana dokumen dipotong menjadi bagian. Potongan yang terlalu besar bisa membawa banyak teks tidak relevan, sementara potongan yang terlalu kecil berisiko memutus makna. Ukuran potongan dan cara memisahkannya karena itu menjadi pertimbangan yang serius.

Selain itu, pengambilan bergantung sepenuhnya pada embedding yang dipakai untuk mencari. Bagian dokumen yang sebenarnya relevan bisa saja tidak terambil jika representasi vektornya tidak cukup menangkap maksud pertanyaan. Inilah sebabnya mutu pengambilan sering menjadi penentu utama, jauh sebelum model mulai menulis jawaban. Memperbaiki model generatif saja tidak akan menolong kalau bahan bacaan yang diberikan memang salah sejak awal.

Ringkasan

RAG menjawab keterbatasan pengetahuan model dengan memberinya bahan bacaan saat itu juga. Dokumen diindeks sebagai embedding, bagian relevan diambil berdasarkan kemiripan makna, lalu model menyusun jawaban berdasarkan bahan tersebut. Hasilnya, jawaban lebih faktual, bisa disertai sumber, dan pengetahuannya bisa diperbarui tanpa melatih ulang model. Bagi yang membangun aplikasi AI, RAG adalah pola dasar yang layak dikuasai lebih dulu.