Advanced RAG Techniques Aren't Better. They're Better Sometimes.

Teknik RAG lanjutan bukanlah naik taraf percuma. Ia adalah alatan yang mempunyai trade-off.

Saya menambah lima teknik pencarian ke dalam pipeline RAG untuk mengujinya. Keputusan yang paling penting adalah teknik yang gagal.

Saya menjangkakan HyDE akan menambah baik pencarian. Sebaliknya, ia memakan diri bagi pertanyaan tertentu. Recall jatuh daripada 0.80 kepada 0.17. Teknik tersebut bukan sekadar gagal membantu. Ia secara aktif menarik data yang salah ke dalam keputusan.

Setiap teknik lanjutan yang saya uji berfungsi seperti ini:

  • Hybrid search (BM25 + dense): Sangat bagus untuk istilah tepat. Gunakannya apabila pertanyaan anda bergantung pada parameter khusus.
  • HyDE: Sangat bagus untuk soalan santai yang tidak sepadan dengan kosa kata dokumen. Ia gagal apabila pertanyaan sudah sepadan dengan korpus dengan baik.
  • Reranking: Sangat bagus apabila chunk yang betul ada dalam keputusan tetapi berada terlalu rendah dalam senarai.
  • Contextual retrieval: Sangat bagus untuk chunk pendek yang kekurangan konteks. Ia menambah kos kerana anda mesti menggunakan LLM untuk setiap chunk.

Saya membina pipeline ini menggunakan dokumentasi Anthropic. Saya menggunakan Postgres dengan pgvector dan indeks HNSW. Saya melayan perkara ini seperti seorang jurutera backend. Saya tidak bertanya sama ada sesuatu teknik itu adalah state-of-the-art. Saya bertanya sama ada ia berbaloi dengan kerumitannya.

Setiap komponen yang anda tambah adalah sesuatu yang mesti anda kendalikan, debug, dan bayar.

Sebelum menambah alatan yang kompleks, saya mengukur baseline menggunakan dense retrieval biasa.

Keputusan menunjukkan dua metrik yang berbeza:

  • Faithfulness: 0.96
  • Context precision: 0.60

Data ini mengubah keseluruhan pendekatan saya. Kebanyakan teknik menyasarkan pencarian. Pencarian saya adalah bahagian yang gagal. Jika faithfulness rendah, saya akan melaras prompt. Memandangkan pencarian rendah, saya perlu melaras carian tersebut.

Saya juga belajar pengajaran tentang alatan penilaian. Saya cuba menggunakan Ragas, tetapi ia terlalu lambat. Ia akan mencuba semula panggilan yang gagal dan mengambil masa berjam-jam. Sebaliknya, saya membina async harness saya sendiri. Saya menjalankan metrik yang sama dalam masa 221 saat berbanding 11 jam.

Pengajaran utamanya mudah:

Jangan gunakan teknik secara membuta tuli. Gunakan query router untuk memilih mod yang betul bagi soalan yang betul. Ukur data anda terlebih dahulu. Kemudian pilih alatan yang menyelesaikan mod kegagalan khusus anda.

Modelnya baharu. Disiplin kejuruteraan pula tidak.

Sumber: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o