Sebuah pembantu RAG (retrieval-augmented generation) berasaskan WhatsApp yang baharu telah berhenti berhalusinasi dengan mewajibkan setiap jawapan disokong oleh petikan yang dikodkan dalam JSON. Apabila model tidak dapat menunjukkan chunk yang khusus, ia memulangkan “Saya tidak mempunyai maklumat yang mencukupi untuk menjawab itu,” mengubah penipu yang yakin kepada sistem “Saya tidak tahu” yang boleh dipercayai.

Mengapa kepercayaan penting dalam RAG

Kebanyakan tutorial tentang RAG terlalu mementingkan pencarian (retrieval)—memilih embedding, membahagikan dokumen kepada chunk, dan menyusun semula (re-ranking) keputusan. Mereka mengabaikan apa yang berlaku selepas teks yang relevan ditemui. Pengguna hilang kepercayaan apabila pembantu memberikan jawapan pasti yang sebenarnya tidak disokong oleh konteks yang dicari.

Jurang keyakinan

Dalam prototaip yang dibina dengan PostgreSQL dan sambungan pgvector, saluran paip (pipeline) pencarian adalah ringkas. Cabaran sebenar muncul semasa fasa pengeluaran (production): model bahasa kedengaran yakin walaupun petikan yang dicari kekurangan maklumat yang diperlukan. Demo mungkin dapat menyembunyikan masalah tersebut, tetapi pengguna sebenar mendedahkan jurang antara kedengaran yakin dengan menjadi betul.

Menguatkuasakan petikan dengan JSON

Daripada memujuk model dengan prompt seperti “jawab hanya jika anda mempunyai konteks,” penulis telah mengubah format output. Sistem kini memerlukan objek JSON di mana setiap dakwaan menyertakan rujukan kepada chunk tepat yang menyokongnya. Jika model tidak dapat melampirkan petikan, respons tersebut akan ditolak dan pengguna akan melihat mesej “Saya tidak tahu” yang jelas.

Penguatkuasaan tersebut beralih daripada arahan bahasa semula jadi kepada pengesahan skema (schema validation). Model masih menjana teks, tetapi kod di sekelilingnya menyemak bahawa JSON tersebut sepadan dengan struktur yang diperlukan sebelum ia sampai kepada pengguna.

Apa yang berubah

  • Chunking menjadi lebih konservatif. Chunk yang samar atau terlalu luas kini menjana dakwaan tanpa petikan, yang mencetuskan fungsi sandaran (fallback) “Saya tidak tahu”.
  • Prompt sistem menjadi lebih ringkas. Prompt yang terlalu ketat yang cuba mengawal tingkah laku model telah digantikan dengan set arahan yang pendek, membiarkan skema melakukan tugas yang berat.
  • Kegagalan menjadi nyata. Apabila pencarian memulangkan bahan yang tidak relevan, pembantu tidak lagi menyembunyikan ralat dengan jawapan yang yakin tetapi salah; ia mengakui ketidakpastian secara terbuka.

Rumusan: Bagi pembantu RAG, menjamin bahawa setiap dakwaan boleh dikesan kepada sumber yang dicari membina kepercayaan pengguna dengan lebih dipercayai berbanding hanya memperhalusi langkah pencarian sahaja. Dengan menukarkan petikan yang hilang kepada “Saya tidak tahu” yang nyata, pembangun membolehkan sistem mengakui hadnya daripada mereka-reka jawapan.