Keuntungan:
- Menjelaskan bahwa RAG memasukkan konteks tanpa mengubah bobot model dan bekerja dengan logika 'ujian buku terbuka'
- Membandingkan RAG dengan pendekatan penyesuaian dan konteks panjang berdasarkan skenario biaya, ketepatan waktu, dan penggunaan
- Mencantumkan langkah-langkah alur RAG tipikal yang terdiri dari fase pengindeksan dan kueri
Tidak peduli seberapa kuat model bahasa (kecerdasan buatan yang memahami dan menghasilkan teks; kami akan menyebutnya model untuk jangka pendek mulai sekarang), model tersebut tidak mengetahui kontrak yang ditandatangani perusahaan Anda kemarin, halaman wiki internal (basis pengetahuan internal), atau catatan rilis yang diterbitkan pagi ini. Model ini terbatas pada pengetahuan umum sampai saat model tersebut dilatih; Ini disebut “tanggal batas pendidikan”. RAG (Retrieval-Augmented Generation) mengisi kesenjangan ini: ia menemukan dokumen perusahaan yang terkait dengan pertanyaan, memberikannya ke model sebagai konteks (yaitu, teks tambahan yang akan dibaca saat menghasilkan jawaban) dan menghasilkan jawaban berdasarkan konteks ini.
Dalam unit ini, kita akan melihat dengan jelas apa itu RAG, kapan RAG lebih disukai daripada alternatif yang mana, dan langkah-langkah pipeline RAG pada umumnya. Semua unit selanjutnya akan memperdalam bagian peta ini satu per satu.
Ide Dasar RAG: Ujian Open Book
Mari kita jelaskan RAG dalam satu kalimat: "Pertama temukan dokumen yang relevan, lalu minta model membaca dokumen tersebut dan cetak jawabannya."
Analogi yang paling berguna adalah ini: RAG memindahkan model dari “ujian buku tertutup” ke “ujian buku terbuka”. Dalam ujian buku tertutup, siswa menjawab hanya berdasarkan ingatan; Ada risiko tinggi mengarang apa yang tidak Anda ingat. Pada ujian open book, siswa menjawab dengan melihat sumber yang diletakkan di depannya. Di RAG, model tidak lagi menjawab dari ingatannya sendiri, tetapi dari teks spesifik dan terkini yang Anda berikan.
Poin penting: RAG tidak mengubah bobot model, yaitu miliaran parameter numerik yang telah dipelajari model. Anda tidak melatih ulang modelnya. Untuk setiap pertanyaan, Anda memasukkan potongan teks yang relevan dengan pertanyaan tersebut ke dalam prompt (teks instruksi dikirim ke model). Jadi Anda tidak perlu melatih ulang model saat dokumen diperbarui; Anda cukup menyegarkan catatan yang relevan di database pencarian.
Petunjuk: Ada dua pertanyaan yang menentukan kualitas RAG: (1) Apakah Anda menemukan dokumen yang tepat? (2) Apakah model membacanya dengan benar? Yang pertama adalah "kualitas pengambilan", yang kedua adalah "kualitas generasi". Keduanya diukur dan ditingkatkan secara terpisah.
RAG, Penyempurnaan atau Konteks Panjang?
Ada tiga jalur yang sering membingungkan ketika mencari solusi suatu masalah organisasi. Mari kita perjelas perbedaannya. Penyempurnaan berarti memperbarui bobot model dengan data Anda dan mengajarkannya perilaku/gaya baru. Konteks panjang berarti mengisi semua dokumen langsung ke prompt tanpa pilihan apa pun.
Pendekatan
Apa artinya?
Kapan waktu yang tepat?
Biaya/Risiko
RAG
Menyuntikkan dokumen yang relevan sebagai konteks
Informasi yang sering berubah, luas, dan spesifik
Rendah; mudah diperbarui, sumber dapat dikutip
Penyempurnaan
Memperbarui bobot dengan data baru
Memperbaiki gaya/format/pengajaran bahasa
Tinggi; Pelatihan ulang diperlukan dengan setiap pembaruan
Hanya konteks panjang
Mengisi semua dokumen ke dalam prompt
Kumpulan dokumen kecil dan stasioner
Biaya token dan risiko "kehilangan bagian tengah" meningkat
Sebagai aturan: Penyempurnaan mengajarkan model cara berbicara; RAG memberi tahu model apa yang perlu diketahui. Di sebagian besar skenario perusahaan, RAG dicoba terlebih dahulu karena murah, dapat diperbarui, dan dapat menunjukkan sumber jawabannya. Konteks panjang masuk akal jika kumpulan dokumen sangat kecil dan tetap (misalnya manual 20 halaman); Namun dengan ribuan halaman, biayanya mahal dan model mungkin kehilangan informasi di tengah teks yang panjang.
Saluran Pipa RAG yang Khas
RAG terdiri dari dua fase utama: pengindeksan (persiapan, dilakukan sekali atau secara berkala) dan query (dijalankan pada setiap pertanyaan pengguna).
Pengindeksan langkah demi langkah (offline, tanpa menunggu pengguna):
- Kumpulkan: Ambil dokumen dari sumber (PDF, wiki, sistem tiket, database, email).
- Chunking: Pecahkan teks panjang menjadi bagian-bagian kecil yang mudah diatur.
- Sematkan: Ubah setiap bagian menjadi penyematan (vektor angka yang membawa makna teks).
- Simpan: Tulis vektor beserta teks dan metadata (sumber, tanggal, informasi otorisasi) ke database vektor.
Kueri langkah demi langkah (online, saat pengguna menunggu):
- Ubah pertanyaan pengguna menjadi penyematan.
- Ambil bagian yang paling mirip dari database vektor.
- Tempatkan potongan + pertanyaan ini ke dalam templat cepat.
- Dapatkan jawaban kontekstual dan sumbernya dari model.
# Garis besar konseptual tahap penyelidikan (tidak bergantung pada bahasa)question = "Berapa hari cuti tahunan?"question_vektor = embed(question)parts = vektor_db.search(question_vektor, top_k=4) # partsprompt = f"""Jawab PERTANYAAN menggunakan KONTEKS di bawah. Jika jawaban tidak sesuai konteks, katakan "Saya tidak punya informasi tentang ini." Fitting.CONTEXT:{parts}QUESTION: {question}"""answer = model.uret(prompt) # mis. model: claude-opus-4-8
Alur ini merupakan peta setiap tahapan yang akan kita bongkar satu per satu pada unit selanjutnya.
Prompt Lemah / Prompt Kuat
Bahkan dengan konteks RAG yang sama, kualitas prompt mengubah jawabannya.
Prompt yang lemah (terbuka untuk pemasangan model, tidak memerlukan sumber daya):
Gunakan informasi ini dan ucapkan cuti tahunan: {parts}. Pertanyaan: {pertanyaan}
Prompt yang kuat (pembumian + izin "Saya tidak tahu" + permintaan sumber daya):
Jawaban hanya berdasarkan KONTEKS di bawah ini. Jika tidak ada jawaban yang jelas dalam konteksnya, tulis "Saya tidak dapat menemukan informasi tentang ini di dokumentasi"; Jangan menebak. Tambahkan tag [Sumber: nama_file] dari bagian yang Anda andalkan di akhir jawaban Anda. KONTEKS: {potongan} PERTANYAAN: {question}
Tiga Kasus Mini
Kasus 1 — Asisten SDM (Sumber Daya Manusia). Sebuah perusahaan memiliki buku pegangan SDM setebal 340 halaman dan karyawan rata-rata mengajukan 90 pertanyaan sehari. Penyempurnaan telah dicoba, tetapi karena manual ini diperbarui setiap bulan, pelatihan ulang diperlukan setiap saat; Biayanya mencapai ribuan dolar per bulan. Setelah beralih ke RAG, pembaruan dikurangi menjadi langkah "indeks ulang dokumen" (menit) dan tingkat jawaban benar meningkat dari 71% menjadi 93% dalam pengukuran manual.
Kasus 2 — Dukungan pelanggan. Tim dukungan memiliki 12.000 tiket terselesaikan dan 800 artikel bantuan. Dibutuhkan rata-rata 4 menit bagi seorang perwakilan untuk menemukan jawaban secara manual. Ketika asisten RAG membawa 5 catatan paling relevan dan menghasilkan draf tanggapan, waktunya dikurangi menjadi 40 detik; Namun tim tersebut menyadari risiko "terlihat tidak yakin dengan membawa artikel yang salah" dan mewajibkan mengutip sumbernya.
Kasus 3 — Hukum. Tim kontraktor bertanya "dalam kontrak manakah klausul kerahasiaan berlaku selama 5 tahun?" dia menanyakan pertanyaan itu. Dalam uji coba konteks panjang, 60 kontrak diisi dalam satu perintah; model tersebut melewatkan dua kontrak tengah. Ketika hanya item yang relevan yang diperkenalkan dengan RAG, biaya token menurun sebesar 80% dan lompatan yang hilang diatur ulang.
Mengapa RAG dibutuhkan?
- Kekinian: Anda mengakses informasi setelah batas waktu pelatihan.
- Informasi khusus: Dokumen internal Anda tidak disertakan dalam pelatihan model apa pun; Hanya Anda yang bisa memberi.
- Verifikasi: Anda dapat mengutip sumber jawaban (kutipan) — penting untuk audit dan kepercayaan.
- Kontrol halusinasi: Ini bergantung pada teks yang ditempatkan di depannya daripada membuat model.
- Biaya: Pengoperasiannya jauh lebih murah dan lebih cepat dibandingkan penyempurnaan.
Perhatian: RAG bukanlah sihir. Jika Anda memasukkan bagian yang salah, model akan memberikan jawaban yang salah dengan tampilan “percaya diri”. Ingatlah ungkapan "Kualitas pengambilan = kualitas RAG".
Kesalahan umum
- Mengira RAG sebagai penyempurnaan: RAG tidak mengubah bobot; Itu hanya menambah konteks. Membingungkan keduanya akan menyebabkan pemilihan arsitektur yang salah.
- Tidak mengizinkan "Saya tidak tahu": Jika prompt membiarkan model bebas mengisi bagian yang kosong, maka prompt akan diperbaiki.
- Tidak mengutip sumber: Jawaban tanpa sumber tidak dapat diperiksa; Pengguna tidak dapat menyadari kesalahannya.
- Menjejalkan semuanya ke dalam satu perintah: Konteks panjang terlihat murahan namun mahal dan tidak memuat informasi tengah.
- Terjebak dalam generasi tanpa mengukur pengambilan: Jika jawabannya buruk, tanyakan dulu "Apakah bagian yang tepat sudah sampai?" harus ditanyakan.
Singkatnya
- RAG adalah pendekatan yang memasukkan dokumen yang relevan dengan pertanyaan ke dalam model sebagai konteks; tidak mengubah bobot (“ujian buku terbuka”).
- Penyempurnaan mengajarkan gaya/format, RAG memberikan informasi terkini dan spesifik; konteks panjang berfungsi dengan baik untuk himpunan tetap kecil. Dalam sebagian besar skenario, RAG dicoba terlebih dahulu.
- Pipeline ini memiliki dua fase: pengindeksan offline (potongan + penyematan + penyimpanan) dan kueri online (pengambilan + prompt + pembuatan).
- RAG memberikan ketepatan waktu, informasi spesifik, kemampuan verifikasi, pengendalian halusinasi, dan biaya rendah.
- Kualitas sistem secara langsung bergantung pada kualitas pengambilan: bagian yang salah berarti jawaban yang salah.
Tugas aplikasi
Pilih sumber informasi asli dari tim Anda (misalnya dokumen prosedur atau halaman FAQ). (1) Tulislah 5 pertanyaan faktual tentang sumber ini. (2) Catat bagian mana dari dokumen yang berisi jawaban yang benar untuk setiap pertanyaan — ini akan menjadi daftar “jawaban emas” Anda. (3) Dengan menggunakan templat "prompt kuat" di atas, tempelkan secara manual bagian yang relevan sebagai konteks dan tanyakan modelnya. (4) Bandingkan jawaban yang diberikan model dengan jawaban emas dan tandai benar/salah. Ini adalah penilaian versi manual pertama yang akan Anda otomatiskan di unit mendatang.
daftar periksa
- [ ] Saya dapat menjelaskan dalam satu kalimat bahwa RAG tidak mengubah bobot, hanya menambah konteks.
- [ ] Saya dapat membedakan antara RAG, fine-tuning dan konteks panjang serta kapan yang tepat.
- [] Saya dapat menghitung fase pengindeksan (kumpulkan-rusak-sematkan-simpan) dan kueri (sematkan-ambil-prompt-hasilkan) secara berurutan.
- [ ] Saya tahu mengapa saya menambahkan instruksi "jika tidak sesuai konteks, katakan saya tidak tahu" dan "kutip sumber" ke prompt.
- [ ] Saya dapat mengadaptasi prinsip "Kualitas pengambilan = kualitas RAG" pada kasus saya sendiri.