Program
Retrieval-augmented generation (RAG) menggabungkan large language models (LLM) dengan sistem retrieval untuk menghadirkan informasi eksternal yang relevan selama proses generasi teks.
Dalam beberapa tahun terakhir, RAG mendapat perhatian besar dan menjadi topik umum dalam pertanyaan wawancara untuk peran seperti AI engineer, machine learning engineer, prompt engineer, dan data scientist.
Artikel ini bertujuan mempersiapkan Anda menghadapi pertanyaan wawancara terkait RAG dengan memberikan ikhtisar komprehensif dari 30 pertanyaan kunci, mulai dari konsep dasar hingga topik yang lebih maju.
Bahkan jika Anda belum akan menghadapi wawancara dalam waktu dekat, artikel ini bisa menjadi kesempatan yang baik untuk menguji pengetahuan RAG Anda.
Pertanyaan Wawancara RAG Dasar
Mari mulai dengan serangkaian pertanyaan dasar tentang RAG.
Jelaskan bagian utama dari sebuah sistem RAG dan bagaimana cara kerjanya.
Sistem RAG (retrieval-augmented generation) memiliki dua komponen utama: retriever dan generator.
Retriever mencari dan mengumpulkan informasi relevan dari sumber eksternal, seperti database, dokumen, atau situs web.
Generator, biasanya model bahasa tingkat lanjut, menggunakan informasi ini untuk membuat teks yang jelas dan akurat.
Retriever memastikan sistem memperoleh informasi yang paling mutakhir, sementara generator menggabungkannya dengan pengetahuan internalnya untuk menghasilkan jawaban yang lebih baik.
Bersama-sama, keduanya memberikan respons yang lebih akurat daripada generator saja.
Apa manfaat utama menggunakan RAG dibanding hanya mengandalkan pengetahuan internal LLM?
Jika Anda hanya mengandalkan pengetahuan bawaan LLM, sistem terbatas pada data pelatihannya, yang bisa jadi sudah usang atau kurang detail.
Sistem RAG menawarkan keunggulan besar dengan menarik informasi segar dari sumber eksternal, menghasilkan respons yang lebih akurat dan tepat waktu.
Pendekatan ini juga mengurangi "halusinasi"—kesalahan ketika model mengada-ada fakta—karena jawaban didasarkan pada data nyata. RAG sangat membantu untuk bidang spesifik seperti hukum, kedokteran, atau teknologi, yang memerlukan pengetahuan khusus dan mutakhir.
Apa saja aplikasi umum RAG?
RAG digunakan dalam berbagai aplikasi AI dunia nyata di berbagai domain:
-
Sistem tanya jawab dan dukungan: RAG menggerakkan chatbot dukungan pelanggan dan asisten basis pengetahuan dengan mengambil dokumentasi atau FAQ terbaru dan menghasilkan jawaban akurat untuk pengguna. Ini memastikan pertanyaan pelanggan diselesaikan dengan informasi terkini (misalnya, menarik info kebijakan atau detail produk saat ini).
-
Agen percakapan: Banyak chatbot dan asisten virtual menggunakan RAG untuk memberikan respons yang faktual dan kontekstual. Dengan mengambil fakta relevan secara dinamis, agen percakapan (seperti chatbot kesehatan atau keuangan) dapat memberikan jawaban yang terinformasi dan berpijak pada sumber tepercaya.
-
Generasi konten dan rangkuman: RAG membantu menghasilkan atau meringkas konten dengan akurasi faktual. Misalnya, sistem dapat mengambil bagian dari artikel berita atau makalah riset lalu menghasilkan ringkasan atau laporan yang koheren dan diperiksa faktanya terhadap data sumber.
-
Riset khusus domain: Dalam bidang khusus seperti hukum atau kedokteran, sistem RAG membantu dengan menarik dari database domain-spesifik (yurisprudensi, jurnal medis, dll.) untuk menjawab kueri kompleks. Dengan demikian, keluaran model berpijak pada pengetahuan domain yang andal dan mutakhir, yang penting untuk kasus penggunaan profesional.
Jenis sumber pengetahuan eksternal apa yang dapat digunakan RAG?
Sistem RAG dapat mengumpulkan informasi dari sumber eksternal terstruktur dan tidak terstruktur:
- Sumber terstruktur mencakup database, API, atau knowledge graph, di mana data terorganisasi dan mudah dicari.
- Sumber tidak terstruktur berupa kumpulan teks besar, seperti dokumen, situs web, atau arsip, di mana informasi perlu diproses menggunakan natural language understanding.
Fleksibilitas ini memungkinkan sistem RAG disesuaikan untuk berbagai bidang, seperti penggunaan legal atau medis, dengan menarik dari basis data yurisprudensi, jurnal riset, atau data uji klinis.
Apakah prompt engineering berpengaruh dalam RAG?
Prompt engineering membantu model bahasa memberikan respons berkualitas tinggi menggunakan informasi yang diambil. Cara Anda merancang prompt dapat memengaruhi relevansi dan kejelasan keluaran.
- Templat prompt sistem spesifik membantu membimbing model. Misalnya, alih-alih prompt sistem standar seperti “Jawab pertanyaan,” Anda bisa gunakan “Jawab pertanyaan hanya berdasarkan konteks yang diberikan.” Ini memberi instruksi eksplisit agar model hanya menggunakan konteks yang tersedia, sehingga mengurangi kemungkinan halusinasi.
- Few-shot prompting melibatkan pemberian beberapa contoh respons kepada model sebelum memintanya menghasilkan jawabannya sendiri, sehingga model mengetahui tipe respons yang Anda harapkan.
- Chain-of-thought prompting membantu mengurai pertanyaan kompleks dengan mendorong model menjelaskan penalarannya langkah demi langkah sebelum menjawab.
Bagaimana cara kerja retriever dalam sistem RAG? Apa metode retrieval yang umum?
Dalam sistem RAG, retriever mengumpulkan informasi relevan dari sumber eksternal agar dapat digunakan oleh generator. Ada berbagai cara untuk melakukan retrieval.
Salah satu metodenya adalah sparse retrieval, yang mencocokkan kata kunci (misalnya, TF-IDF atau BM25). Ini sederhana namun mungkin tidak menangkap makna mendalam di balik kata-kata.
Pendekatan lain adalah dense retrieval, yang menggunakan embedding neural untuk memahami makna dokumen dan kueri. Metode seperti BERT atau Dense Passage Retrieval (DPR) merepresentasikan dokumen sebagai vektor dalam ruang bersama, membuat retrieval lebih akurat.
Pilihan di antara metode-metode ini dapat sangat memengaruhi kinerja sistem RAG.
Apa tantangan menggabungkan informasi yang diambil dengan generasi LLM?
Menggabungkan informasi yang diambil dengan generasi LLM menghadirkan sejumlah tantangan. Misalnya, data yang diambil harus sangat relevan dengan kueri karena data yang tidak relevan dapat membingungkan model dan menurunkan kualitas respons.
Selain itu, jika informasi yang diambil bertentangan dengan pengetahuan internal model, hal ini dapat menghasilkan jawaban yang membingungkan atau tidak akurat. Karena itu, menyelesaikan konflik ini tanpa membingungkan pengguna sangatlah penting.
Terakhir, gaya dan format data yang diambil mungkin tidak selalu sesuai dengan gaya penulisan atau pemformatan model, sehingga menyulitkan model untuk mengintegrasikan informasi dengan mulus.
Apa peran database vektor dalam RAG?
Dalam sistem RAG, sebuah database vektor membantu mengelola dan menyimpan embedding teks yang padat. Embedding ini adalah representasi numerik yang menangkap makna kata dan frasa, dibuat oleh model seperti BERT atau OpenAI.
Ketika sebuah kueri diajukan, embedding-nya dibandingkan dengan embedding yang tersimpan di database untuk menemukan dokumen yang serupa. Ini membuat pengambilan informasi yang tepat menjadi lebih cepat dan akurat. Proses ini membantu sistem dengan cepat menemukan dan menampilkan informasi paling relevan, meningkatkan kecepatan dan akurasi retrieval.
Apa saja cara umum untuk mengevaluasi sistem RAG?
Untuk mengevaluasi sistem RAG, Anda perlu melihat baik komponen retrieval maupun generasi.
- Untuk retriever, Anda menilai seberapa akurat dan relevan dokumen yang diambil. Metrik seperti precision (berapa banyak dokumen yang diambil itu relevan) dan recall (berapa banyak dari total dokumen relevan yang ditemukan) dapat digunakan di sini.
- Untuk generator, metrik seperti BLEU dan ROUGE dapat digunakan untuk membandingkan teks yang dihasilkan dengan contoh tulisan manusia guna menilai kualitas.
Untuk tugas hilir seperti tanya jawab, metrik seperti F1 score, precision, dan recall juga dapat digunakan untuk mengevaluasi keseluruhan sistem RAG.
Bagaimana Anda menangani kueri yang ambigu atau tidak lengkap dalam sistem RAG agar tetap mendapatkan hasil relevan?
Menangani kueri yang ambigu atau tidak lengkap dalam sistem RAG memerlukan strategi agar informasi yang diambil tetap relevan dan akurat meski masukan pengguna kurang jelas.
Salah satu pendekatan adalah menerapkan teknik penyempurnaan kueri, di mana sistem secara otomatis menyarankan klarifikasi atau memformulasi ulang kueri yang ambigu menjadi lebih presisi berdasarkan pola yang diketahui atau interaksi sebelumnya. Ini bisa melibatkan pertanyaan lanjutan atau memberikan beberapa opsi kepada pengguna untuk mempersempit maksudnya.
Metode lain adalah mengambil kumpulan dokumen yang beragam yang mencakup beberapa kemungkinan interpretasi kueri. Dengan mengambil berbagai hasil, sistem memastikan bahwa meskipun kueri samar, kemungkinan tetap ada informasi relevan yang disertakan.
Terakhir, kita dapat menggunakan model natural language understanding (NLU) untuk menyimpulkan maksud pengguna dari kueri yang tidak lengkap dan menyempurnakan proses retrieval.
Pertanyaan Wawancara RAG Menengah
Setelah membahas beberapa pertanyaan dasar, saatnya beralih ke pertanyaan wawancara RAG tingkat menengah.
Bagaimana Anda memilih retriever yang tepat untuk aplikasi RAG?
Memilih retriever yang tepat bergantung pada jenis data yang Anda gunakan, sifat kueri, dan seberapa besar daya komputasi yang Anda miliki.
Untuk kueri kompleks yang memerlukan pemahaman mendalam terhadap makna di balik kata, metode dense retrieval seperti BERT atau DPR lebih baik. Metode ini menangkap konteks dan ideal untuk tugas seperti dukungan pelanggan atau riset, di mana pemahaman makna yang mendasari sangat penting.
Jika tugasnya lebih sederhana dan berkisar pada pencocokan kata kunci, atau jika sumber daya komputasi terbatas, metode sparse retrieval seperti BM25 atau TF-IDF mungkin lebih cocok. Metode ini lebih cepat dan mudah diatur, tetapi mungkin tidak menemukan dokumen yang tidak cocok secara kata kunci persis.
Pertukaran utama antara metode dense dan sparse adalah akurasi versus biaya komputasi. Terkadang, menggabungkan keduanya dalam sistem retrieval hibrida dapat membantu menyeimbangkan akurasi dengan efisiensi komputasi. Dengan cara ini, Anda mendapatkan manfaat dari metode dense dan sparse sesuai kebutuhan.
Jelaskan apa itu pencarian hibrida.
Pencarian hibrida menggabungkan kelebihan metode dense dan sparse retrieval.
Misalnya, Anda dapat mulai dengan metode sparse seperti BM25 untuk cepat menemukan dokumen berdasarkan kata kunci. Lalu, metode dense seperti BERT melakukan re-ranking terhadap dokumen tersebut dengan memahami konteks dan maknanya. Ini memberi Anda kecepatan pencarian sparse dengan akurasi metode dense—sangat cocok untuk kueri kompleks dan dataset besar.
Apakah Anda memerlukan database vektor untuk menerapkan RAG? Jika tidak, apa alternatifnya?
Database vektor sangat baik untuk mengelola embedding padat, namun tidak selalu diperlukan. Alternatifnya meliputi:
- Database tradisional: Jika Anda menggunakan metode sparse atau data terstruktur, database relasional atau NoSQL biasa sudah cukup. Ini cocok untuk pencarian kata kunci. Database seperti MongoDB atau Elasticsearch bagus untuk menangani data tidak terstruktur dan pencarian full-text, tetapi kurang dalam pencarian semantik mendalam.
- Inverted index: Memetakan kata kunci ke dokumen untuk pencarian cepat, tetapi tidak menangkap makna di balik kata.
- Sistem berkas: Untuk sistem kecil, dokumen yang diatur dan disimpan dalam berkas bisa digunakan, tetapi kemampuan pencariannya terbatas.
Pilihan yang tepat bergantung pada kebutuhan spesifik Anda, seperti skala data dan apakah Anda memerlukan pemahaman semantik yang mendalam.
Bagaimana Anda memastikan bahwa informasi yang diambil relevan dan akurat?
Untuk memastikan informasi yang diambil relevan dan akurat, Anda dapat menggunakan beberapa pendekatan:
- Kurasi basis pengetahuan berkualitas tinggi: Pastikan informasi dalam database Anda andal dan sesuai kebutuhan aplikasi.
- Fine-tune retriever: Sesuaikan model retriever agar lebih cocok dengan tugas dan kebutuhan spesifik Anda. Ini membantu meningkatkan relevansi hasil.
- Gunakan re-ranking: Setelah mengambil hasil awal, urutkan berdasarkan relevansi mendetail untuk memperoleh informasi paling akurat. Langkah ini melibatkan pemeriksaan kecocokan hasil terhadap kueri secara lebih mendalam.
- Terapkan feedback loop: Dapatkan masukan dari pengguna atau model mengenai kegunaan hasil. Umpan balik ini dapat membantu menyempurnakan dan meningkatkan retriever seiring waktu. Contohnya adalah Corrective RAG (CRAG).
- Evaluasi rutin: Secara berkelanjutan ukur kinerja sistem menggunakan metrik seperti precision, recall, atau F1 score untuk terus meningkatkan akurasi dan relevansi.
Apa saja teknik untuk menangani dokumen panjang atau basis pengetahuan besar dalam RAG?
Saat berhadapan dengan dokumen panjang atau basis pengetahuan besar, berikut beberapa teknik yang bermanfaat:
- Chunking: Pecah dokumen panjang menjadi bagian-bagian yang lebih kecil dan mudah dikelola. Ini memudahkan pencarian dan pengambilan bagian relevan tanpa perlu memproses seluruh dokumen.
- Rangkuman: Buat versi ringkas dari dokumen panjang. Ini memungkinkan sistem bekerja dengan ringkasan yang lebih pendek, sehingga mempercepat retrieval.
- Retrieval hierarkis: Gunakan pendekatan dua langkah: cari kategori informasi yang luas terlebih dahulu lalu persempit ke detail spesifik. Ini membantu mengelola data dalam jumlah besar secara lebih efektif.
- Embedding hemat memori: Gunakan representasi vektor yang ringkas untuk mengurangi kebutuhan memori dan daya komputasi. Mengoptimalkan ukuran embedding memudahkan penanganan dataset besar.
- Indexing dan sharding: Bagi basis pengetahuan menjadi bagian-bagian lebih kecil dan simpan di beberapa sistem. Ini memungkinkan pemrosesan paralel dan retrieval yang lebih cepat, terutama dalam sistem skala besar.
Bagaimana Anda mengoptimalkan kinerja sistem RAG dari sisi akurasi dan efisiensi?
Untuk mendapatkan kinerja terbaik dari sistem RAG dalam hal akurasi dan efisiensi, Anda dapat menggunakan beberapa strategi:
- Fine-tune model: Sesuaikan model retriever dan generator menggunakan data spesifik tugas. Ini membantu keduanya berkinerja lebih baik pada kueri khusus.
- Pengindeksan efisien: Atur basis pengetahuan Anda menggunakan struktur data cepat seperti inverted index atau hashing. Ini mempercepat pencarian informasi relevan.
- Gunakan caching: Simpan data yang sering diakses agar tidak perlu diambil berulang kali. Ini meningkatkan efisiensi dan mempercepat respons.
- Kurangi langkah retrieval: Minimalkan jumlah pencarian informasi. Tingkatkan precision retriever atau gunakan re-ranking agar hanya hasil terbaik yang diteruskan ke generator, mengurangi pemrosesan yang tidak perlu.
- Pencarian hibrida: Gabungkan metode sparse dan dense. Misalnya, gunakan sparse retrieval untuk cepat menemukan kumpulan dokumen relevan yang luas, lalu terapkan dense retrieval untuk memperhalus dan memberi peringkat hasil tersebut secara lebih akurat.
Bagaimana sistem RAG menjaga konteks dalam percakapan multi-giliran?
Dalam percakapan multi-giliran (misalnya, dialog chatbot), sistem RAG perlu membawa konteks relevan dari giliran sebelumnya untuk menjawab pertanyaan berikutnya dengan benar. Untuk mencapai ini, RAG dapat memasukkan riwayat percakapan ke dalam setiap kueri baru:
-
Penyempurnaan kueri: Sistem dapat secara otomatis menulis ulang atau menambah pertanyaan pengguna menggunakan informasi dari pertukaran sebelumnya. Dengan menambahkan detail dari giliran terdahulu, retriever mendapatkan kueri yang lebih kaya konteks, sehingga dapat mengambil dokumen yang relevan dengan diskusi yang sedang berlangsung.
-
Menyertakan riwayat percakapan: Pendekatan lain adalah memberi model ringkasan atau daftar giliran dialog sebelumnya sebagai bagian dari konteks masukan. Banyak arsitektur RAG memungkinkan pengiriman urutan pesan (riwayat pengguna dan asisten) bersama dengan pertanyaan baru. Dengan cara ini, saat retriever mencari informasi, ia mempertimbangkan konteks yang telah dibangun, dan generator dapat menggunakan konteks masa lalu untuk menjaga percakapan tetap koheren.
Dengan menggunakan metode ini, sistem RAG melacak “siapa mengatakan apa” dan apa yang sudah terselesaikan. Ini mencegahnya melupakan detail atau mengulang-ulang.
Pertanyaan Wawancara RAG Lanjutan
Sejauh ini, kita telah membahas pertanyaan dasar dan menengah tentang RAG, dan sekarang kita akan membahas konsep yang lebih maju seperti teknik chunking atau kontekstualisasi.
Apa saja teknik chunking untuk memecah dokumen, serta kelebihan dan kekurangannya?
Ada beberapa cara untuk memecah dokumen untuk retrieval dan pemrosesan:
- Panjang tetap: Membagi dokumen menjadi potongan berukuran tetap. Mudah dilakukan, tetapi terkadang potongan tidak selaras dengan jeda logis, sehingga Anda bisa memisahkan info penting atau menyertakan konten yang tidak relevan.
- Berbasis kalimat: Memecah dokumen menjadi kalimat mempertahankan integritas kalimat, yang bagus untuk analisis mendetail. Namun, ini dapat menghasilkan terlalu banyak potongan atau kehilangan konteks saat kalimat terlalu pendek untuk menangkap gagasan utuh.
- Berbasis paragraf: Membagi berdasarkan paragraf membantu menjaga konteks, tetapi paragraf bisa terlalu panjang, sehingga retrieval dan pemrosesan menjadi kurang efisien.
- Chunking semantik: Potongan dibuat berdasarkan makna, seperti berdasarkan bagian atau topik. Ini menjaga konteks tetap jelas namun lebih sulit diterapkan karena memerlukan analisis teks tingkat lanjut.
- Sliding window: Potongan saling tumpang tindih dengan menggeser jendela di atas teks. Ini memastikan info penting tidak terlewat, tetapi bisa mahal secara komputasi dan berisiko menimbulkan pengulangan informasi.
Apa trade-off antara memecah dokumen menjadi potongan lebih besar vs lebih kecil?
Potongan yang lebih kecil, seperti kalimat atau paragraf pendek, membantu menghindari pengenceran informasi kontekstual penting saat dikompresi ke dalam satu vektor. Namun, ini dapat menyebabkan hilangnya dependensi jarak jauh antar potongan, sehingga menyulitkan model memahami referensi yang melintasi potongan.
Potongan yang lebih besar mempertahankan lebih banyak konteks, yang memungkinkan informasi kontekstual lebih kaya namun bisa menjadi kurang fokus dan informasi dapat hilang saat mencoba mengenkode semua informasi ke dalam satu vektor.
Apa itu late chunking dan bagaimana bedanya dengan metode chunking tradisional?
Late chunking adalah pendekatan efektif yang dirancang untuk mengatasi keterbatasan metode chunking tradisional dalam pemrosesan dokumen.
Dalam metode tradisional, dokumen terlebih dahulu dipecah menjadi potongan, seperti kalimat atau paragraf, sebelum menerapkan model embedding. Potongan-potongan ini kemudian dikodekan secara individual menjadi vektor, sering kali menggunakan mean pooling untuk membuat satu embedding untuk setiap potongan. Pendekatan ini dapat menyebabkan hilangnya dependensi kontekstual jarak jauh karena embedding dibuat secara independen tanpa mempertimbangkan konteks dokumen penuh.
Late chunking mengambil pendekatan berbeda. Lapisan transformer dari model embedding terlebih dahulu diterapkan pada seluruh dokumen atau sebanyak mungkin bagian, menciptakan urutan representasi vektor untuk setiap token. Metode ini menangkap konteks penuh teks dalam embedding tingkat token tersebut.
Setelah itu, mean pooling diterapkan pada potongan dari urutan vektor token ini, menghasilkan embedding untuk setiap potongan yang diinformasikan oleh konteks seluruh dokumen. Berbeda dengan metode tradisional, late chunking menghasilkan embedding potongan yang saling terkondisikan, sehingga lebih banyak informasi kontekstual terjaga dan dependensi jarak jauh terselesaikan.
Dengan menerapkan chunking di tahap akhir, setiap embedding potongan memperoleh manfaat dari konteks kaya yang disediakan oleh seluruh dokumen, bukan berdiri sendiri. Pendekatan ini mengatasi masalah hilangnya konteks dan meningkatkan kualitas embedding untuk tugas retrieval dan generasi.

Sumber: Günther et al., 2024
Jelaskan konsep "kontekstualisasi" dalam RAG dan dampaknya terhadap kinerja.
Kontekstualisasi dalam RAG berarti memastikan informasi yang diambil relevan dengan kueri. Dengan menyelaraskan data yang diambil dengan kueri, sistem menghasilkan jawaban yang lebih baik dan lebih relevan.
Ini mengurangi kemungkinan hasil yang salah atau tidak relevan dan memastikan keluaran sesuai kebutuhan pengguna. Salah satu pendekatannya adalah menggunakan LLM untuk memeriksa apakah dokumen yang diambil relevan sebelum mengirimkannya ke model generator, seperti ditunjukkan oleh Corrective RAG (CRAG).
Bagaimana Anda mengatasi potensi bias dalam informasi yang diambil atau dalam generasi LLM?
Pertama, penting untuk membangun basis pengetahuan dengan cara menyaring konten bias, memastikan informasi seobjektif mungkin. Anda juga dapat melatih ulang sistem retrieval untuk memprioritaskan sumber yang seimbang dan tidak bias.
Langkah penting lainnya adalah mengadopsi sebuah agen khusus untuk memeriksa potensi bias dan memastikan keluaran model tetap objektif.
Bahas tantangan menangani basis pengetahuan yang dinamis atau berkembang dalam RAG.
Salah satu isu utama adalah menjaga data yang diindeks tetap mutakhir dengan informasi terbaru, yang memerlukan mekanisme pembaruan andal. Karena itu, kontrol versi menjadi krusial untuk mengelola iterasi informasi yang berbeda dan memastikan konsistensi.
Selain itu, model perlu mampu beradaptasi dengan informasi baru secara real-time tanpa sering dilatih ulang, yang dapat menguras sumber daya. Tantangan-tantangan ini memerlukan solusi canggih untuk memastikan sistem tetap akurat dan relevan seiring evolusi basis pengetahuan.
Apa itu CAG, dan bagaimana bedanya dengan RAG tradisional? Kapan Anda lebih memilih CAG daripada RAG di produksi?
CAG (Cache-Augmented Generation) adalah evolusi dari RAG di mana dokumen yang diambil dirangkum atau dikompresi sebelum diteruskan ke LLM. Ini meningkatkan relevansi, mengurangi penggunaan token, dan membantu memuat lebih banyak informasi ke dalam jendela konteks model.
Perbedaan utamanya adalah pada CAG, konten yang diambil melalui langkah perantara, seperti peringkas atau perapih konteks, sebelum diberikan ke generator. Sebaliknya, RAG tradisional meneruskan dokumen mentah langsung ke prompt.
CAG sangat berguna ketika:
-
Anda bekerja dengan dataset statis (misalnya, katalog produk, makalah akademik) yang dapat dipra-kompres dan di-cache.
-
Efisiensi token sangat kritis (misalnya, API sensitif biaya atau inferensi seluler/on-device).
-
Dokumen yang diambil panjang atau berisik dan perlu didistilasi.
Di sisi lain, RAG lebih disukai ketika:
-
Data yang mendasari bersifat dinamis atau sering diperbarui (misalnya, tiket dukungan real-time, dokumentasi live).
-
Anda ingin memasukkan pengetahuan terbaru saat waktu kueri, tanpa memproses ulang seluruh basis pengetahuan.
Singkatnya, gunakan CAG untuk domain yang stabil di mana Anda dapat mengoptimalkan konteks sebelumnya, dan RAG untuk skenario dinamis di mana kebaruan dan retrieval sesuai permintaan lebih penting.
Lihat artikel tentang RAG versus CAG untuk perbandingan yang lebih mendetail.
Apa saja sistem RAG tingkat lanjut?
Ada banyak sistem RAG tingkat lanjut.
Salah satunya adalah Adaptive RAG, di mana sistem tidak hanya mengambil informasi tetapi juga menyesuaikan pendekatannya secara real-time berdasarkan kueri. Adaptive RAG dapat memutuskan untuk tidak melakukan retrieval, melakukan RAG satu kali, atau RAG iteratif. Perilaku dinamis ini membuat sistem RAG lebih tangguh dan relevan dengan permintaan pengguna.
Sistem RAG tingkat lanjut lainnya adalah Agentic RAG, yang memperkenalkan agen retrieval—alat yang memutuskan apakah perlu mengambil informasi dari suatu sumber. Dengan memberi kemampuan ini kepada model bahasa, ia dapat menentukan sendiri apakah memerlukan informasi tambahan, sehingga proses menjadi lebih lancar.
Corrective RAG (CRAG) juga semakin populer. Dalam pendekatan ini, sistem meninjau dokumen yang diambil, memeriksa relevansinya. Hanya dokumen yang diklasifikasikan relevan yang akan diteruskan ke generator. Langkah koreksi mandiri ini membantu memastikan informasi yang digunakan akurat dan relevan. Untuk mempelajari lebih lanjut, Anda dapat membaca tutorial ini tentang Implementasi Corrective RAG (CRAG) dengan LangGraph.
Self-RAG melangkah lebih jauh dengan mengevaluasi tidak hanya dokumen yang diambil tetapi juga respons akhir yang dihasilkan, memastikan keduanya selaras dengan kueri pengguna. Ini menghasilkan hasil yang lebih andal dan konsisten.
Bagaimana Anda mengurangi latensi dalam sistem RAG real-time tanpa mengorbankan akurasi?
Salah satu pendekatan efektif adalah melakukan pre-fetching informasi yang relevan dan sering diminta agar siap digunakan saat diperlukan. Selain itu, menyempurnakan pengindeksan dan algoritma kueri Anda dapat sangat memengaruhi kecepatan pengambilan dan pemrosesan data.
Apa saja keterbatasan atau tantangan sistem RAG?
Meskipun RAG kuat, ada beberapa keterbatasan dan tantangan:
-
Ketergantungan pada kualitas data yang diambil: Sistem RAG hanya sebaik informasi yang diambilnya. Jika retriever menarik dokumen yang tidak relevan atau salah, jawaban generator akan terdampak. Memastikan sumber data yang berkualitas dan tepercaya (serta fine-tuning retriever) adalah tantangan berkelanjutan untuk menghindari masalah garbage-in, garbage-out.
-
Peningkatan kompleksitas dan latensi: RAG menambahkan langkah retrieval di atas generasi, yang membuat keseluruhan sistem lebih kompleks dan berat secara komputasi dibanding LLM mandiri. Mencari di basis pengetahuan besar dapat menambah latensi dan memerlukan sumber daya komputasi signifikan, sehingga sistem RAG harus menyeimbangkan akurasi dengan efisiensi.
-
Kebutuhan pemeliharaan basis pengetahuan: Tidak seperti LLM statis, RAG bergantung pada repositori pengetahuan eksternal yang perlu diperbarui dan dikurasi secara rutin. Organisasi harus terus memasukkan data baru, menghapus info usang, dan mengelola indeks. Tanpa sumber data yang andal dan terkini, sistem RAG dapat cepat menjadi kurang efektif atau bahkan memberikan jawaban yang kedaluwarsa.
-
Kesulitan integrasi dan penyetelan: Menggabungkan retrieval dan generasi berarti ada lebih banyak komponen untuk disetel dan dipantau (database vektor, model retriever, dan LLM). Pemecahan masalah bisa lebih sulit karena isu mungkin berasal dari sisi retrieval atau generasi. Kompleksitas ini dapat meningkatkan upaya pengembangan dan pemeliharaan dibanding hanya menggunakan LLM.
Perlu dicatat juga bahwa jika data suatu domain sebagian besar statis dan sudah tercakup dalam pelatihan model, LLM yang di-fine-tune mungkin sudah cukup menggantikan RAG. Namun, fine-tuning tidak memiliki kemampuan RAG untuk memasukkan informasi segar secara langsung dan bisa lebih mahal untuk dilatih ulang setiap kali ada pembaruan pengetahuan.
Pertanyaan Wawancara RAG untuk AI Engineer
Sekarang, mari bahas beberapa pertanyaan khusus yang ditujukan bagi mereka yang melamar posisi AI Engineer.
Bagaimana Anda mengevaluasi dan meningkatkan kinerja sistem RAG di lingkungan produksi?
Pertama, Anda perlu melacak umpan balik pengguna untuk mengukur seberapa baik kinerja sistem dan apakah hasilnya relevan.
Anda juga perlu memantau latensi untuk memastikan respons tepat waktu serta mengevaluasi kualitas dokumen yang diambil dan keluaran yang dihasilkan. Metrik kunci seperti akurasi respons, kepuasan pengguna, dan throughput sistem sangat penting.
Untuk meningkatkan kinerja, Anda dapat melatih ulang bagian-bagian sistem dengan data terbaru atau menyetel parameter. Anda juga bisa menyempurnakan algoritma retrieval untuk meningkatkan relevansi dan efisiensi, serta memperbarui sumber pengetahuan secara berkala agar tetap mutakhir.
Tinjauan kinerja berkelanjutan dan A/B testing dapat memberikan wawasan untuk perbaikan berkelanjutan.
Bagaimana Anda memastikan keandalan dan ketangguhan sistem RAG di produksi, terutama menghadapi potensi kegagalan atau input tak terduga?
Membangun sistem RAG siap produksi memerlukan penanganan berbagai tantangan. Solusi potensial meliputi:
- Redundansi dan failover: Menerapkan komponen redundan atau sistem cadangan untuk memastikan operasi berkelanjutan jika terjadi kegagalan.
- Penanganan kesalahan dan logging: Menerapkan mekanisme penanganan kesalahan untuk menangkap dan mencatat error, memungkinkan diagnosis dan pemecahan masalah yang cepat.
- Validasi dan sanitasi input: Memvalidasi dan membersihkan masukan pengguna untuk mencegah potensi kerentanan dan serangan seperti prompt injection.
- Pemantauan dan peringatan: Menyiapkan sistem pemantauan dan peringatan untuk mendeteksi dan menangani masalah kinerja atau potensi ancaman.
Bagaimana Anda merancang sistem RAG untuk tugas spesifik (misalnya, tanya jawab, rangkuman)?
Untuk sistem tanya jawab, Anda dapat mulai dengan memilih retriever yang dapat secara efisien menemukan dan mengambil dokumen relevan berdasarkan kueri pengguna. Ini bisa berupa metode tradisional, seperti pencarian kata kunci, atau yang lebih maju, seperti menggunakan embedding padat untuk retrieval yang lebih baik. Selanjutnya, Anda perlu memilih atau melakukan fine-tuning generator yang dapat membuat jawaban akurat dan koheren menggunakan dokumen yang diambil.
Dalam rangkuman, tugas retriever adalah mengumpulkan konten komprehensif terkait dokumen atau topik. Di sisi lain, generator harus mampu mendistilasi konten ini menjadi ringkasan yang padat dan bermakna.
Prompt engineering sangat penting di sini. Bergantung pada tugas hilir, kita perlu membuat prompt yang membimbing model untuk memasukkan informasi yang diambil guna menghasilkan keluaran yang relevan.
Dapatkah Anda menjelaskan detail teknis bagaimana Anda akan melakukan fine-tuning LLM untuk tugas RAG?
Dimulai dengan mengumpulkan dan menyiapkan data spesifik tugas. Ini bisa berupa contoh beranotasi pasangan tanya-jawab atau dataset rangkuman.
Anda kemudian dapat menggunakan teknik seperti retrieval-augmented language modeling (REALM), yang membantu model lebih baik mengintegrasikan dokumen yang diambil ke dalam responsnya. Ini sering berarti menyetel arsitektur model atau metode pelatihan untuk meningkatkan penanganan konteks dari dokumen yang diambil.
Anda juga dapat menggunakan Retrieval-Augmented Fine-Tuning (RAFT), yang memadukan kekuatan RAG dengan fine-tuning, sehingga model mempelajari pengetahuan domain sekaligus cara mengambil dan menggunakan informasi eksternal secara efektif.
Bagaimana Anda menangani informasi yang kedaluwarsa atau tidak relevan dalam sistem RAG, terutama di domain yang cepat berubah?
Salah satu pendekatan adalah menerapkan pembaruan rutin pada basis pengetahuan atau indeks dokumen, sehingga informasi baru dimasukkan begitu tersedia. Ini dapat melibatkan penyetelan alur kerja otomatis yang secara berkala mengumpulkan atau memasukkan konten terbaru, memastikan retriever selalu bekerja dengan data terkini.
Selain itu, penandaan metadata dapat digunakan untuk menandai informasi yang kedaluwarsa, memungkinkan sistem memprioritaskan dokumen yang lebih baru dan relevan saat retrieval.
Di domain yang cepat berubah, penting juga untuk mengintegrasikan mekanisme yang memfilter atau melakukan re-ranking hasil pencarian berdasarkan kebaruannya. Misalnya, memberi bobot lebih tinggi pada artikel atau dokumen yang lebih baru saat retrieval membantu memastikan respons yang dihasilkan didasarkan pada sumber yang mutakhir.
Teknik lain adalah menggunakan feedback loop atau sistem human-in-the-loop di mana ketidakakuratan yang ditandai dapat segera dikoreksi, dan retriever dapat disesuaikan untuk menghindari pengambilan informasi usang.
Bagaimana Anda menyeimbangkan relevansi dan keragaman retrieval dalam sistem RAG agar respons komprehensif?
Menyeimbangkan relevansi dan keragaman dalam sistem RAG bertujuan memberikan jawaban yang akurat sekaligus menyeluruh. Relevansi memastikan dokumen yang diambil sangat sesuai dengan kueri, sementara keragaman memastikan sistem tidak terlalu fokus pada satu sumber atau sudut pandang.
Salah satu caranya adalah menggunakan strategi re-ranking yang memprioritaskan relevansi sekaligus keragaman. Anda juga dapat meningkatkan keragaman dengan menarik dokumen dari berbagai sumber atau bagian dalam basis pengetahuan.
Pengelompokan hasil serupa dan memilih dokumen dari klaster yang berbeda juga dapat membantu.
Fine-tuning retriever dengan fokus pada relevansi dan keragaman juga dapat memastikan sistem mengambil kumpulan dokumen yang komprehensif.
Bagaimana Anda memastikan keluaran yang dihasilkan dalam sistem RAG tetap konsisten dengan informasi yang diambil?
Salah satu pendekatan kunci adalah pengaitan erat antara retrieval dan generasi melalui prompt engineering. Prompt yang dirancang dengan cermat dan secara eksplisit menginstruksikan model bahasa untuk mendasarkan jawabannya pada dokumen yang diambil membantu memastikan generasi tetap berpijak pada data yang disediakan retriever.
Selain itu, teknik seperti pembuatan sitasi, di mana model diminta merujuk atau membenarkan responsnya dengan sumber yang diambil, dapat membantu menjaga konsistensi.
Pendekatan lain adalah menerapkan pemeriksaan atau validasi pasca-generasi, di mana keluaran dibandingkan dengan dokumen yang diambil untuk memastikan keselarasan. Ini dapat dicapai menggunakan metrik kemiripan atau mempekerjakan model verifikasi yang lebih kecil untuk memvalidasi konsistensi faktual antara data yang diambil dan teks yang dihasilkan.
Dalam beberapa kasus, metode penyempurnaan iteratif dapat digunakan, di mana model terlebih dahulu menghasilkan keluaran, kemudian meninjau kembali dokumen yang diambil untuk memeriksa dan menyempurnakan jawabannya. Feedback loop dan koreksi pengguna juga dapat dimanfaatkan untuk meningkatkan konsistensi seiring waktu, saat sistem belajar dari inkonsistensi masa lalu dan menyesuaikan mekanisme retrieval serta generasinya.
Bagaimana Anda memastikan privasi dan keamanan data dalam sistem RAG, terutama saat menangani informasi sensitif?
Memastikan privasi dan keamanan dalam sistem RAG sangat penting ketika data yang diambil atau kueri pengguna berisi informasi sensitif atau pribadi. Strategi kunci meliputi:
-
Redaksi data dan anonimisasi: Sebelum data memasuki pipeline RAG, hapus atau samarkan informasi identitas pribadi (PII) dan detail sensitif lainnya. Misalnya, dokumen dapat dipindai dan PII apa pun disensor saat proses ingestion. Pendekatan zero-trust ini berarti meski data diambil, informasi rahasia tidak akan terekspos karena telah disanitasi sebelumnya.
-
Penyimpanan dan transfer data yang aman: Gunakan enkripsi untuk data saat disimpan (di database atau vector store) dan saat ditransmisikan ketika retriever berkomunikasi dengan penyimpanan. Memastikan database vektor dan sumber pengetahuan dikontrol aksesnya (dengan autentikasi dan otorisasi yang tepat) mencegah akses tidak sah. Hanya aplikasi atau layanan tepercaya yang boleh membaca dari basis pengetahuan.
-
Kontrol akses berbasis peran: Terapkan filter akses ketat pada hasil retrieval. Anda dapat memberi tag pada potongan pengetahuan dengan metadata tentang siapa yang diizinkan melihatnya (misalnya, admin vs. pengguna) dan membuat sistem RAG menegakkan aturan ini selama retrieval. Misalnya, asisten RAG kesehatan dapat mengizinkan dokter mengambil info identitas pasien tetapi tidak pernah menampilkannya kepada pengguna lain.
-
Pemfilteran prompt dan pemantauan keluaran: Masukkan AI guardrails untuk mencegah LLM mengeluarkan data pribadi. Teknik seperti pertahanan terhadap prompt injection, pemindaian keluaran, atau kebijakan (seperti panduan OWASP untuk LLM) dapat membantu mendeteksi dan menghapus konten sensitif dari respons. Tinjauan human-in-the-loop juga dapat digunakan untuk domain berisiko tinggi.
-
Kepatuhan dan audit: Pastikan sistem RAG mematuhi regulasi perlindungan data (GDPR, HIPAA, dll.) secara desain. Ini mencakup pemeliharaan log audit tentang data apa yang diambil dan kapan, memperoleh persetujuan pengguna yang sesuai untuk penggunaan data mereka, dan secara rutin mengaudit sumber pengetahuan untuk informasi sensitif.
Dengan menggabungkan langkah-langkah ini, sistem RAG dapat menangani data sensitif dengan aman. Dalam wawancara, Anda diharapkan menyebutkan bahwa perlindungan data pengguna bukanlah pemikiran belakangan—melainkan tertanam dalam cara pipeline RAG melakukan ingestion, penyimpanan, retrieval, dan generasi informasi.
Kesimpulan
Panduan ini memberikan 30 pertanyaan wawancara kunci untuk membantu Anda mempersiapkan diskusi tentang RAG, mulai dari konsep dasar hingga sistem RAG tingkat lanjut.
Jika Anda ingin mempelajari lebih lanjut tentang sistem RAG, saya merekomendasikan blog berikut:
Ryan adalah lead data scientist yang mengkhususkan diri dalam membangun aplikasi AI menggunakan LLM. Ia adalah kandidat PhD di bidang Pemrosesan Bahasa Alami dan Knowledge Graph di Imperial College London, tempat ia juga menyelesaikan gelar Master di Ilmu Komputer. Di luar data science, ia menulis newsletter Substack mingguan, The Limitless Playbook, di mana ia membagikan satu ide yang dapat langsung dipraktikkan dari para pemikir top dunia dan sesekali menulis tentang konsep inti AI.

