← 返回列表

Seri Soal Wawancara AI 11: Bagaimana Mengoptimalkan RAG?

Optimasi RAG bukanlah penyesuaian pada satu tautan saja, melainkan proses optimalisasi seluruh rantai. Berikut ini saya memberikan strategi optimasi sistematis dari empat dimensi: sisi indeks data, sisi pencarian, sisi pembangkitan, sisi evaluasi, dan juga melampirkan pengalaman praktis yang dapat disebutkan dalam wawancara.


1. Optimasi Sisi Indeks Data (Meningkatkan Kualitas 'Basis Pengetahuan')

Ini adalah aspek yang paling mudah diabaikan namun paling cepat memberikan hasil.

Titik Optimasi Gejala Masalah Tindakan Spesifik Indikator Efek
Parsing Dokumen Tabel dan diagram alur dalam PDF diabaikan, atau teks berantakan, urutan kacau. Gunakan pustaka parsing yang lebih baik (seperti unstructured, mode preservasi tata letak pypdf); untuk tabel, ekstrak menggunakan pandas lalu ubah ke Markdown. Recall +5~15%
Ukuran Potongan Teks chunk terlalu kecil kehilangan konteks (misalnya, kata "ia" dalam "pendapatan tahun ini meningkat" kehilangan referensi); chunk terlalu besar menyebabkan banyak noise dalam pencarian. Coba berbagai ukuran chunk (256/512/768 token), atur overlap 10~20%; untuk dokumen panjang, potong berdasarkan batas semantik (paragraf/judul) bukan panjang tetap. Tingkat Hit / Ketepatan
Penambahan Metadata Potongan terkait ditemukan, tetapi tidak dapat dilacak sumber atau waktunya, atau perlu difilter berdasarkan domain. Tambahkan metadata untuk setiap chunk: source (nama file/URL), timestamp, page_num, doc_type. Gunakan filter saat pencarian (mis. doc_type == 'legal'). Akurasi Filter
Pemilihan Model Embedding Embedding umum berkinerja buruk di domain vertikal (medis, kode, hukum). Gunakan model fine-tuning domain (BGE‑large‑zh, GTE‑Qwen2‑7B‑instruct); atau fine-tune model embedding sendiri (dengan triplet loss). MRR@10 Pencarian +10~20%

2. Optimasi Sisi Pencarian (Membuat 'Membaca Buku' Lebih Akurat)

Pencarian menentukan kualitas 'referensi' yang diberikan ke LLM.

Titik Optimasi Gejala Masalah Tindakan Spesifik Efek
Pencarian Hibrida Pencarian vektor tidak dapat mencocokkan istilah tepat (misalnya model produk ABC-123), pencarian kata kunci tidak memahami sinonim. Gunakan pencarian vektor (semantik) dan BM25 (kata kunci) secara bersamaan, dengan pembobotan (mis. 0.7vektor + 0.3BM25) atau fusi rerank. Recall +10~25%
Pemeringkatan Ulang (Rerank) Hasil teratas dari pencarian vektor belum tentu paling relevan, yang ke-10 mungkin yang terbaik. Gunakan model cross‑encoder (seperti BGE‑reranker-v2, Cohere Rerank) untuk memberi skor ulang pada kandidat (mis. 20 teratas), ambil top‑K. Tingkat Hit meningkat signifikan (terutama top‑1)
Penulisan Ulang Kueri Pertanyaan pengguna ambigu atau referensi tidak jelas dalam dialog multi-putaran ("Berapa harganya?"). Gunakan LLM untuk menulis ulang pertanyaan asli menjadi bentuk yang lebih cocok untuk pencarian (mis. "Berapa harga iPhone 15?"); atau lengkapi dengan riwayat dialog. Recall +5~15%
HyDE Pertanyaan pengguna terlalu pendek atau abstrak (mis. "Jelaskan fotosintesis"), pencarian langsung buruk. Minta LLM menghasilkan jawaban hipotetis, lalu gunakan jawaban itu untuk mencari dokumen. Cocok untuk domain terbuka, tidak untuk QA faktual yang tepat
Penyesuaian Top‑K Pencarian K terlalu kecil dapat melewatkan informasi kunci; K terlalu besar menambah konsumsi token dan noise. Coba K=3/5/10, amati keseimbangan antara recall dan ketepatan jawaban. Trade‑off efisiensi dan efek

3. Optimasi Sisi Pembangkitan (Membuat LLM Memanfaatkan Referensi dengan Baik)

Pencarian setepat apapun, jika prompt buruk atau model tidak mampu, percuma.

Titik Optimasi Gejala Masalah Tindakan Spesifik Efek
Rekayasa Prompt LLM mengabaikan konten yang dicari, atau membuat-buat. Instruksi yang jelas: "Jawab pertanyaan hanya berdasarkan referensi yang disediakan di bawah. Jika informasi tidak cukup atau tidak relevan, jawab 'Tidak ada informasi yang cukup'." Tambahkan few‑shot examples yang menunjukkan cara mengutip sumber. Ketepatan +20~40%
Kompresi Konteks Konten yang dicari terlalu panjang (melebihi jendela konteks model), atau sebagian besar noise. Gunakan LLMLingua atau Konteks Selektif untuk kompresi, pertahankan kalimat paling relevan sebelum diberikan ke LLM. Mengurangi risiko kehilangan informasi
Peningkatan Model LLM Model kecil (7B) tidak dapat melakukan penalaran kompleks, atau tidak mengingat konteks panjang. Ganti dengan model yang lebih kuat (GPT‑4o, Claude 3.5 Sonnet, Qwen2.5‑72B). Akurasi penalaran meningkat signifikan
Streaming dan Kutipan Pengguna tidak dapat memverifikasi kredibilitas jawaban. Saat generasi, minta LLM output [citation:1], sesuai dengan nomor dokumen yang dicari. Backend lampirkan tautan asli. Kepercayaan pengguna + dapat di-debug
Kalibrasi Penolakan Jawaban Model mengarang saat seharusnya tidak menjawab, atau mengatakan tidak tahu saat seharusnya menjawab. Tetapkan ambang kemiripan: jika kemiripan kosinus antara chunk top‑1 dan pertanyaan di bawah 0.7, perintahkan LLM "Informasi tidak relevan". Mengurangi tingkat halusinasi

4. Sisi Evaluasi dan Iterasi (Tahu ke Mana Harus Menyesuaikan)

Tanpa pengukuran, tidak ada optimasi.

Titik Optimasi Tindakan Indikator
Membangun Set Evaluasi Siapkan 100~300 pertanyaan pengguna nyata + jawaban standar + ID dokumen yang benar untuk pencarian. Mencakup tingkat kesulitan dan intensi yang berbeda.
Evaluasi Otomatis Gunakan RAGAS (Faithfulness, Answer Relevance, Context Recall) atau TruLens. Tiga indikator inti: Ketepatan, Relevansi Jawaban, Recall Konteks.
Evaluasi Manual Setiap minggu uji 20 bad case, analisis tipe kesalahan (kegagalan pencarian / kesalahan generasi / kurangnya basis pengetahuan). Prioritaskan perbaikan.
Pengujian A/B Uji strategi pencarian berbeda di lingkungan produksi dengan pembagian bucket (mis. BM25 vs pencarian hibrida). Metrik online: kepuasan pengguna, tingkat tanpa jawaban.

5. Pengalaman Praktis yang Dapat Disebutkan dalam Wawancara (Nilai Tambah)

"Dalam proyek RAG yang saya tangani, awalnya baseline hit rate hanya 67%. Saya melakukan tiga hal:
1. Mengubah potongan dari tetap 1024 menjadi pemotongan semantik dinamis (berdasarkan judul+paragraf), hit rate naik ke 74%;
2. Menambahkan pencarian hibrida (vektor + BM25) dan model rerank kecil, hit rate naik ke 83%;
3. Mengoptimalkan prompt dan mewajibkan [Informasi tidak ditemukan], tingkat halusinasi turun dari 22% menjadi di bawah 5%.

Selain itu, kami membangun pipeline evaluasi berkelanjutan, setiap perubahan menjalankan skor RAGAS pada 200 pertanyaan untuk memastikan tidak ada penurunan."


Kesimpulan Akhir: Peta Jalan Lengkap Optimasi RAG

Lapisan Data ─→ Pembersihan dokumen, optimasi potongan, penambahan metadata, embedding domain
Lapisan Pencarian ─→ Pencarian hibrida, rerank, penulisan ulang kueri, HyDE, optimasi Top-K
Lapisan Pembangkitan ─→ Penguatan prompt, persyaratan instruksi, kompresi, kutipan, ambang penolakan
Lapisan Evaluasi ─→ Set evaluasi, RAGAS, analisis manual, eksperimen A/B

评论

暂无已展示的评论。

发表评论(匿名)