𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗥𝗔𝗚 𝗦𝘆𝘀𝘁𝗲𝗺 𝗛𝗮𝗹𝗹𝘂𝗰𝗶𝗻𝗮𝘁𝗲𝘀
ਤੁਹਾਡਾ RAG ਸਿਸਟਮ ਹਲੂਸੀਨੇਟ (hallucinate) ਕਿਉਂ ਕਰਦਾ ਹੈ
ਤੁਹਾਡੇ RAG ਸਿਸਟਮ ਦੀ ਰਿਟ੍ਰੀਵਲ (retrieval) ਅਕੁਰੇਸੀ 34% ਹੈ। ਤੁਸੀਂ ਹਰ ਟਿਊਟੋਰਿਅਲ ਦੀ ਪਾਲਣਾ ਕੀਤੀ। ਤੁਸੀਂ ਸਹੀ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ਤੁਸੀਂ ਕਿਸੇ ਬਲੌਗ ਪੋਸਟ ਤੋਂ ਚੰਕ ਸਾਈਜ਼ (chunk size) ਚੁਣਿਆ। ਫਿਰ ਵੀ, ਸਿਸਟਮ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ।
ਇਹ ਟੂਲਿੰਗ (tooling) ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ ਹੈ। ਇਹ ਫੰਡਾਮੈਂਟਲਜ਼ (fundamentals) ਦੀ ਸਮੱਸਿਆ ਹੈ।
ਜਦੋਂ ਤੁਸੀਂ ਉਹਨਾਂ ਦੇ ਹੇਠਾਂ ਦੀਆਂ ਪਰਤਾਂ ਨੂੰ ਸਮਝੇ ਬਿਨਾਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਇੱਕ ਦੇ ਉੱਪਰ ਇੱਕ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਐਬਸਟਰੈਕਸ਼ਨ ਡੈਬਟ (abstraction debt) ਪੈਦਾ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਰਫ਼ਤਾਰ ਤਾਂ ਪ੍ਰਾਪਤ ਕਰ ਲੈਂਦੇ ਹੋ ਪਰ ਡੀਬੱਗ (debug) ਕਰਨ ਦੀ ਯੋਗਤਾ ਗੁਆ ਲੈਂਦੇ ਹੋ। ਤੁਸੀਂ ਇੱਕ ਬਲੈਕ ਬਾਕਸ (black box) ਬਣਾ ਲੈਂਦੇ ਹੋ।
ਆਪਣੇ RAG ਪਾਈਪਲਾਈਨ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਤਿੰਨ ਪਰਤਾਂ ਵਿੱਚ ਮਾਹਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ:
ਚੰਕਿੰਗ ਰਣਨੀਤੀ (Chunking Strategy) ਚੰਕ ਸਾਈਜ਼ ਇੱਕ ਅਰਥ-ਪੂਰਨ (semantic) ਫੈਸਲਾ ਹੈ। ਜੇਕਰ ਤੁਹਾਡੇ ਚੰਕਸ 512 ਟੋਕਨਾਂ ਦੇ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਪੈਰੇਗ੍ਰਾਫ ਰਿਟ੍ਰੀਵ ਕਰਦੇ ਹੋ। ਜੇਕਰ ਤੁਹਾਡੇ ਸਵਾਲਾਂ ਲਈ ਕਈ ਪੈਰੇਗ੍ਰਾਫਾਂ ਵਿੱਚ ਵਿਚਾਰਾਂ ਨੂੰ ਜੋੜਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਤੁਹਾਡੇ ਚੰਕਸ ਬਹੁਤ ਛੋਟੇ ਹਨ। ਤੁਹਾਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਚੰਕਸ ਦੇ ਵਿਚਕਾਰ ਕਿੰਨਾ ਸੰਦਰਭ (context) ਵਹਾਉਣਾ ਹੈ।
ਐਮਬੈਡਿੰਗ ਮਾਡਲ (Embedding Models) ਡੈਂਸ ਐਮਬੈਡਿੰਗਸ (Dense embeddings) ਅਰਥ ਨੂੰ ਕੈਪਚਰ ਕਰਦੇ ਹਨ ਪਰ ਸਹੀ ਸਿੰਟੈਕਸ (syntax) ਗੁਆ ਦਿੰਦੇ ਹਨ। ਇੱਕ ਮਾਡਲ "error 403" ਅਤੇ "error 404" ਨੂੰ ਲਗਭਗ ਇੱਕੋ ਜਿਹਾ ਮੰਨ ਸਕਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਮਾਡਲ ਕੀ ਕੈਪਚਰ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਾਨੂੰਨੀ ਇਕਰਾਰਨਾਮੇ (legal contract) ਨੂੰ ਕੋਡ ਰਿਪੋਜ਼ਟਰੀ ਨਾਲੋਂ ਵੱਖਰੇ ਐਮਬੈਡਿੰਗਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਰਿਟ੍ਰੀਵਲ ਬਨਾਮ ਰੀਕਾਲ (Retrieval vs. Recall) ਵੈਕਟਰ ਸਰਚ (Vector search) ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਸਾਰੀਆਂ ਪ੍ਰਸੰਗਿਕ ਚੀਜ਼ਾਂ ਲੱਭ ਲੈਂਦਾ ਹੈ। ਇਹ ਰੀਕਾਲ (recall) ਹੈ। ਪ੍ਰੋਡਕਸ਼ਨ RAG ਲਈ ਪ੍ਰੀਸੀਜ਼ਨ (precision) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਤੁਹਾਨੂੰ ਸਹੀ ਜਵਾਬ ਦੀ ਲੋੜ ਹੈ, ਨਾ ਕਿ ਦਸ ਸਮਾਨ ਪੈਰੇਗ੍ਰਾਫਾਂ ਦੀ। ਇਸੇ ਲਈ ਤੁਹਾਨੂੰ ਹਾਈਬ੍ਰਿਡ ਸਰਚ (hybrid search) ਦੀ ਲੋੜ ਹੈ।
ਹਾਈਬ੍ਰਿਡ ਸਰਚ ਡੈਂਸ ਵੈਕਟਰਾਂ ਨੂੰ ਕੀਵਰਡ ਮੈਚਿੰਗ (BM25) ਨਾਲ ਜੋੜਦਾ ਹੈ।
- ਸ਼ੁੱਧ ਸੈਮੈਂਟਿਕ ਸਰਚ (Pure semantic search) ਸਹੀ ਕੋਡ ਜਾਂ IDs ਨੂੰ ਮਿਸ ਕਰ ਦਿੰਦਾ ਹੈ।
- ਸ਼ੁੱਧ ਕੀਵਰਡ ਸਰਚ (Pure keyword search) ਸੰਕਲਪਿਕ ਅਰਥ ਨੂੰ ਮਿਸ ਕਰ ਦਿੰਦਾ ਹੈ।
- ਹਾਈਬ੍ਰਿਡ ਸਰਚ ਸੱਚਾਈ ਲੱਭਣ ਲਈ ਦੋਵਾਂ ਨੂੰ ਭਾਰ (weight) ਦਿੰਦਾ ਹੈ।
ਸਹੀ ਵੇਟ (weight) ਕਿਸੇ ਮੈਨੂਅਲ ਵਿੱਚ ਨਹੀਂ ਹੁੰਦਾ। ਤੁਸੀਂ ਇਸਨੂੰ ਆਪਣੇ ਖਾਸ ਡੇਟਾ ਦੀ ਜਾਂਚ ਕਰਕੇ ਲੱਭਦੇ ਹੋ।
ਜਾਦੂ 'ਤੇ ਭਰੋਸਾ ਕਰਨਾ ਬੰਦ ਕਰੋ। ਜੇਕਰ ਤੁਸੀਂ ਜ਼ੀਰੋ ਤੋਂ ਇੱਕ ਬੇਸਿਕ RAG ਪਾਈਪਲਾਈਨ ਨਹੀਂ ਬਣਾ ਸਕਦੇ, ਤਾਂ ਤੁਸੀਂ Agentic RAG ਲਈ ਤਿਆਰ ਨਹੀਂ ਹੋ। ਜਦੋਂ ਤੁਸੀਂ ਬੁਨਿਆਦੀ ਗੱਲਾਂ ਨੂੰ ਨਹੀਂ ਸਮਝਦੇ, ਤਾਂ ਗੁੰਝਲਤਾ (complexity) ਵੱਧ ਜਾਂਦੀ ਹੈ।
ਆਪਣੇ ਅਗਲੇ ਪ੍ਰੋਜੈਕਟ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਚਾਰ ਕੰਮ ਕਰੋ:
- ਚੰਕਿੰਗ ਦਾ ਬੈਂਚਮਾਰਕ (Benchmark chunking) ਕਰੋ। ਤਿੰਨ ਵੱਖ-ਵੱਖ ਸਾਈਜ਼ਾਂ ਦੀ ਜਾਂਚ ਕਰੋ। top-1 ਅਤੇ top-5 'ਤੇ ਪ੍ਰੀਸੀਜ਼ਨ ਨੂੰ ਮਾਪੋ।
- ਅਸਲ ਡੇਟਾ ਨਾਲ ਐਮਬੈਡਿੰਗਸ ਦੀ ਜਾਂਚ ਕਰੋ। ਸਿੰਥੈਟਿਕ ਟੈਸਟਾਂ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। ਆਪਣੇ ਅਸਲ ਯੂਜ਼ਰ ਕੁਐਰੀਆਂ (user queries) ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਫੇਲ੍ਹ ਹੋਣ ਵਾਲੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਲੌਗ (Log) ਕਰੋ। ਦੋ ਹਫ਼ਤਿਆਂ ਲਈ, ਹਰ ਉਸ ਕੁਐਰੀ ਨੂੰ ਲੌਗ ਕਰੋ ਜੋ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ। ਦੇਖੋ ਕਿ ਤੁਹਾਡੀ ਸਰਚ ਕੀ ਮਿਸ ਕਰ ਰਹੀ ਹੈ।
- ਇੱਕ ਵਾਰ BM25 ਲਾਗੂ ਕਰੋ। ਭਾਵੇਂ ਤੁਸੀਂ ਬਾਅਦ ਵਿੱਚ ਕਿਸੇ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਤੁਹਾਨੂੰ ਕੀਵਰਡ ਬੇਸਲਾਈਨ (keyword baseline) ਨੂੰ ਸਮਝਣ ਦੀ ਲੋੜ ਹੈ।
ਲਾਇਬ੍ਰੇਰੀਆਂ ਤੁਹਾਡਾ ਸਮਾਂ ਬਚਾਉਂਦੀਆਂ ਹਨ। ਸਮਝ ਤੁਹਾਨੂੰ ਭਰੋਸੇਯੋਗਤਾ (reliability) ਦਿੰਦੀ ਹੈ।
Optional learning community: https://t.me/GyaanSetuAi