ਐਡਵਾਂਸਡ RAG ਤਕਨੀਕਾਂ ਬਿਹਤਰ ਨਹੀਂ ਹਨ। ਉਹ ਕਦੇ-ਕਦੇ ਬਿਹਤਰ ਹੁੰਦੀਆਂ ਹਨ।
ਐਡਵਾਂਸਡ RAG ਤਕਨੀਕਾਂ ਮੁਫ਼ਤ ਅੱਪਗ੍ਰੇਡ ਨਹੀਂ ਹਨ। ਇਹ ਸਮਝੌਤਿਆਂ (tradeoffs) ਵਾਲੇ ਸੰਦ ਹਨ।
ਮੈਂ Anthropic ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ RAG ਪਾਈਪਲਾਈਨ 'ਤੇ ਪੰਜ ਰਿਟ੍ਰੀਵਲ (retrieval) ਵਿਧੀਆਂ ਦੀ ਜਾਂਚ ਕੀਤੀ। ਮੈਂ ਇਹ ਦੇਖਣਾ ਚਾਹੁੰਦਾ ਸੀ ਕਿ ਕਿਹੜੀਆਂ ਵਿਧੀਆਂ ਅਸਲ ਵਿੱਚ ਆਪਣੀ ਗੁੰਝਲਤਾ ਦੇ ਲਾਇਕ ਹਨ।
ਮੈਨੂੰ ਜੋ ਮਿਲਿਆ ਉਹ ਇੱਥੇ ਹੈ:
• Dense Retrieval: ਬੇਸਲਾਈਨ। ਇਹ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਸਹੀ ਸ਼ਬਦਾਂ (exact terms) ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ। • Hybrid Search: ਇਹ dense ਦੇ ਨਾਲ-ਨਾਲ keyword search ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਉਹ ਸਹੀ ਸ਼ਬਦ ਲੱਭ ਲੈਂਦਾ ਹੈ ਜੋ dense ਨਹੀਂ ਲੱਭ ਸਕਦਾ। ਪਰ ਤੁਹਾਨੂੰ ਨਤੀਜਿਆਂ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਵੇਟ (weight) ਕਰਨਾ ਪਵੇਗਾ, ਨਹੀਂ ਤਾਂ ਸਹੀ ਜਾਣਕਾਰੀ ਗੁੰਮ ਹੋ ਸਕਦੀ ਹੈ। • Reranking: ਇਹ ਉਮੀਦਵਾਰਾਂ ਨੂੰ ਸਕੋਰ ਦੇਣ ਲਈ cross-encoder ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਉਦੋਂ ਮਦਦ ਕਰਦਾ ਹੈ ਜਦੋਂ ਸਹੀ ਚੰਕ (chunk) ਨਤੀਜਿਆਂ ਵਿੱਚ ਬਹੁਤ ਹੇਠਾਂ ਦੱਬਿਆ ਹੋਵੇ। • HyDE: ਇਹ ਡੇਟਾ ਲੱਭਣ ਲਈ ਇੱਕ ਕਲਪਨਾਤਮਕ (hypothetical) ਉੱਤਰ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ ਖ਼ਤਰਨਾਕ ਹੈ। ਇਹ ਆਮ (casual) ਪ੍ਰਸ਼ਨਾਂ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਪਰ ਸਿੱਧੇ ਪ੍ਰਸ਼ਨਾਂ 'ਤੇ ਇਹ ਸਭ ਕੁਝ ਵਿਗਾੜ ਦਿੰਦਾ ਹੈ। ਇੱਕ ਟੈਸਟ ਵਿੱਚ Recall 0.80 ਤੋਂ ਡਿੱਗ ਕੇ 0.17 ਰਹਿ ਗਿਆ। • Contextual Retrieval: ਇਹ ਚੰਕਸ (chunks) ਵਿੱਚ ਸਾਰ (summaries) ਜੋੜਦਾ ਹੈ। ਇਹ ਛੋਟੇ ਚੰਕਸ ਲਈ ਮਦਦਗਾਰ ਹੈ ਪਰ ਇਸ ਨਾਲ LLM ਫੀਸ ਵਧ ਜਾਂਦੀ ਹੈ।
ਸਭ ਤੋਂ ਵੱਡਾ ਸਬਕ HyDE ਬਾਰੇ ਹੈ। ਇਹ "ਸੈੱਟ ਐਂਡ ਫਾਰਗੇਟ" (set and forget) ਵਾਲਾ ਸੰਦ ਨਹੀਂ ਹੈ। ਤੁਹਾਨੂੰ ਇਸਦੀ ਵਰਤੋਂ ਉਦੋਂ ਹੀ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜਦੋਂ ਯੂਜ਼ਰ ਦਾ ਪ੍ਰਸ਼ਨ ਅਤੇ ਤੁਹਾਡੇ ਦਸਤਾਵੇਜ਼ ਵੱਖ-ਵੱਖ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਹੋਣ। ਤੁਹਾਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨ ਲਈ ਕਿ ਕਦੋਂ ਵਰਤਣਾ ਹੈ, ਇੱਕ ਰੋਟਰ (router) ਦੀ ਲੋੜ ਹੈ।
ਮੈਂ ਮਾਪ (measurement) ਬਾਰੇ ਵੀ ਇੱਕ ਸਬਕ ਸਿੱਖਿਆ।
ਮੈਂ ਮੁਲਾਂਕਣ (evaluation) ਲਈ Ragas ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ। ਇਹ ਬਹੁਤ ਹੌਲੀ ਸੀ। ਇਸਨੇ ਫੇਲ ਹੋਈਆਂ ਕਾਲਾਂ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਵਿੱਚ ਕਈ ਘੰਟੇ ਲਗਾ ਦਿੱਤੇ। ਮੈਂ ਆਪਣਾ ਖੁਦ ਦਾ async harness ਬਣਾਉਣ ਦਾ ਫੈਸਲਾ ਕੀਤਾ। 11 ਘੰਟਿਆਂ ਦੀ ਬਜਾਏ, ਮੇਰੇ ਮੁਲਾਂਕਣ ਵਿੱਚ ਸਿਰਫ਼ 221 ਸਕਿੰਟ ਲੱਗੇ।
AI ਸੰਦਾਂ ਨੂੰ ਬਲੈਕ ਬਾਕਸ (black boxes) ਵਾਂਗ ਨਾ ਸਮਝੋ। ਜੇਕਰ ਕੋਈ ਸੰਦ ਹੌਲੀ ਹੈ ਜਾਂ ਫੇਲ ਹੋ ਰਿਹਾ ਹੈ, ਤਾਂ ਇਸਦੇ ਪਿੱਛੇ ਵਾਲੀ ਗਣਿਤ (math) ਨੂੰ ਦੇਖੋ। ਜੇਕਰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਆਪਣਾ ਹੱਲ ਖੁਦ ਬਣਾਓ।
ਕੰਮ ਸਿਰਫ਼ ਨਵੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ (features) ਜੋੜਨਾ ਨਹੀਂ ਹੈ। ਕੰਮ ਇਹ ਮਾਪਣਾ ਹੈ ਕਿ ਕਿਹੜੀ ਵਿਸ਼ੇਸ਼ਤਾ ਤੁਹਾਡੇ ਸਿਸਟਮ ਵਿੱਚ ਆਪਣੀ ਜਗ੍ਹਾ ਬਣਾਉਣ ਦੇ ਲਾਇਕ ਹੈ।
ਹਰੇਕ ਦੀ ਵਰਤੋਂ ਕਦੋਂ ਕਰਨੀ ਹੈ, ਇਸਦਾ ਸਾਰ:
- Hybrid: ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਪ੍ਰਸ਼ਨ ਸਹੀ ਪੈਰਾਮੀਟਰਾਂ (exact parameters) 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹੋਣ।
- HyDE: ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਪ੍ਰਸ਼ਨਾਂ ਦੀ ਬਣਤਰ ਖ਼ਰਾਬ ਹੋਵੇ।
- Reranking: ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਰਿਟ੍ਰੀਵਲ ਵਿਆਪਕ (broad) ਹੋਵੇ ਪਰ ਅਸਹੀ ਹੋਵੇ।
- Contextual: ਉਦੋਂ ਵਰਤੋ ਜਦੋਂ ਤੁਹਾਡੇ ਚੰਕਸ ਵਿੱਚ ਸੰਦਰਭ (context) ਦੀ ਕਮੀ ਹੋਵੇ।
"state of the art" ਦੇ ਪਿੱਛੇ ਭੱਜਣਾ ਬੰਦ ਕਰੋ। ਆਪਣੇ ਨਤੀਜਿਆਂ ਨੂੰ ਮਾਪਣਾ ਸ਼ੁਰੂ ਕਰੋ।
ਸਰੋਤ: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o
ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi
