ਮੇਰੀ RAG ਐਪ ਲਗਾਤਾਰ ਹਲੂਸੀਨੇਸ਼ਨ (hallucinating) ਕਿਉਂ ਕਰ ਰਹੀ ਸੀ ਅਤੇ ਮੈਂ ਇਸਨੂੰ ਕਿਵੇਂ ਠੀਕ ਕੀਤਾ

ਕੁਝ ਮਹੀਨੇ ਪਹਿਲਾਂ, ਮੈਂ ਆਪਣੇ RAG ਸਪੋਰਟ ਬੋਟ ਦਾ ਡੈਮੋ ਦਿੱਤਾ ਸੀ। ਇਸਨੇ ਇੱਕ ਸਾਥੀ ਨੂੰ ਦੱਸਿਆ ਕਿ ਸਾਡੀ ਰਿਫੰਡ ਪਾਲਿਸੀ 30 ਦਿਨਾਂ ਦੀ ਹੈ। ਸਾਡੀ ਅਸਲ ਪਾਲਿਸੀ 14 ਦਿਨਾਂ ਦੀ ਹੈ। ਬੋਟ ਨੇ ਕੋਈ ਝਿਜਕ ਨਹੀਂ ਦਿਖਾਈ। ਇਸਨੇ ਇਹ ਨਹੀਂ ਕਿਹਾ ਕਿ ਇਹ ਅਨਿਸ਼ਚਿਤ ਹੈ। ਇਸਨੇ ਪੂਰੇ ਭਰੋਸੇ ਨਾਲ ਇੱਕ ਜਵਾਬ ਬਣਾ ਲਿਆ।

RAG ਨੂੰ ਹਲੂਸੀਨੇਸ਼ਨਾਂ (hallucinations) ਨੂੰ ਘਟਾਉਣਾ ਚਾਹੀਦਾ ਹੈ। ਮੇਰੇ ਸੈੱਟਅੱਪ ਨੇ ਸਿਰਫ਼ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਥਾਂ ਤੋਂ ਦੂਜੀ ਥਾਂ ਬਦਲ ਦਿੱਤਾ। ਇਸ ਸਿਸਟਮ ਨੂੰ ਡੀਬੱਗ ਕਰਦੇ ਸਮੇਂ ਮੈਂ ਪੰਜ ਸਬਕ ਸਿੱਖੇ।

  1. ਚੰਕਸ (chunks) ਲਈ ਫਿਕਸਡ ਕੈਰੇਕਟਰ ਕਾਊਂਟ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਬੰਦ ਕਰੋ ਮੈਂ ਥੋੜ੍ਹੇ ਜਿਹੇ ਓਵਰਲੈਪ ਦੇ ਨਾਲ 1000 ਕੈਰੇਕਟਰਾਂ ਵਾਲੇ ਚੰਕਸ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਸੀ। ਇਸ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੋਈਆਂ। ਇੱਕ ਚੰਕ ਅਕਸਰ ਸ਼ਿਪਿੰਗ ਨਿਯਮਾਂ ਨੂੰ ਰਿਟਰਨ ਨਿਯਮਾਂ ਦੇ ਨਾਲ ਮਿਲਾ ਦਿੰਦਾ ਸੀ। ਮਾਡਲ ਨੇ ਇਹਨਾਂ ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਨੂੰ ਮਿਲਾ ਕੇ ਇੱਕ ਗਲਤ ਜਵਾਬ ਦੇ ਦਿੱਤਾ। ਹੱਲ: ਮੈਂ ਸੈਮੈਂਟਿਕ ਚੰਕਿੰਗ (semantic chunking) ਦੀ ਵਰਤੋਂ ਸ਼ੁਰੂ ਕੀਤੀ। ਮੈਂ ਹੈਡਿੰਗਾਂ ਅਤੇ ਪੈਰਾਗ੍ਰਾਫਾਂ ਰਾਹੀਂ ਡੇਟਾ ਨੂੰ ਵੱਖ ਕੀਤਾ। ਇਹ ਸਬੰਧਤ ਜਾਣਕਾਰੀ ਨੂੰ ਇਕੱਠੇ ਰੱਖਦਾ ਹੈ।

  2. ਸਮਾਨਤਾ (Similarity) ਦਾ ਮਤਲਬ ਪ੍ਰਸੰਗਿਕਤਾ (relevance) ਨਹੀਂ ਹੈ ਮੇ