GraphRAG ਅਤੇ ਪਰਸਿਸਟੈਂਟ ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ (persistent contextual memory) ਨੂੰ ਹੁਣ AI ਚੈਟਬੋਟਸ ਵਿੱਚ ਜੋੜਿਆ ਜਾ ਰਿਹਾ ਹੈ ਤਾਂ ਜੋ ਗੱਲਬਾਤ ਪੇਜ ਰਿਫ੍ਰੈਸ਼ ਕਰਨ ਜਾਂ ਨਵੇਂ ਬ੍ਰਾਊਜ਼ਰ ਟੈਬ 'ਤੇ ਵੀ ਬਣੀ ਰਹੇ। ਡਿਵੈਲਪਰਾਂ ਦਾ ਕਹਿਣਾ ਹੈ ਕਿ ਇਹ ਸੁਮੇਲ ਉਸ "tab-kill" ਭੁੱਲਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ ਜਿਸ ਨੇ ਜ਼ਿਆਦਾਤਰ ਕੰਵਰਸੇਸ਼ਨਲ ਅਸਿਸਟੈਂਟਾਂ ਦੇ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਪਰੇਸ਼ਾਨ ਕੀਤਾ ਹੈ।

ਪੁਰਾਣਾ ਤਰੀਕਾ ਕਿਉਂ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ

ਜ਼ਿਆਦਾਤਰ ਚੈਟ-ਅਧਾਰਤ AI ਸਿਸਟਮ ਸਟੈਂਡਰਡ ਰਿਟ੍ਰੀਵਲ-ਔਗਮੈਂਟਡ ਜਨਰੇਸ਼ਨ (RAG) 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਇਹ ਪਾਈਪਲਾਈਨ ਮੌਜੂਦਾ ਸਵਾਲ ਨਾਲ ਮਿਲਦੇ-ਜੁਲਦੇ ਟੈਕਸਟ ਦੇ ਟੁਕੜੇ ਲੱਭਦੀ ਹੈ, ਉਹਨਾਂ ਨੂੰ ਲੈਂਗੂਏਜ ਮਾਡਲ ਨੂੰ ਭੇਜਦੀ ਹੈ, ਅਤੇ ਜਵਾਬ ਵਾਪਸ ਦਿੰਦੀ ਹੈ। ਕਿਸੇ ਇੱਕ ਤੱਥ ਦੀ ਖੋਜ ਲਈ—“ਫਰਾਂਸ ਦੀ ਰਾਜਧਾਨੀ ਕੀ ਹੈ?”—ਇਹ ਤਰੀਕਾ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ।

ਪਰ RAG ਹਰ ਯੂਜ਼ਰ ਇਨਪੁਟ ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਬੇਨਤੀ ਵਜੋਂ ਲੈਂਦਾ ਹੈ। ਜਦੋਂ ਕੋਈ ਅਗਲਾ ਸਵਾਲ ਪਹਿਲਾਂ ਕਹੀਆਂ ਗਈਆਂ ਗੱਲਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਤਾਂ ਮਾਡਲ ਕੋਲ ਉਸ ਸੰਦਰਭ (context) ਦੀ ਕੋਈ ਯਾਦਦਾਸ਼ਤ ਨਹੀਂ ਹੁੰਦੀ। ਨਤੀਜੇ ਵਜੋਂ ਅਜਿਹਾ ਚੈਟਬੋਟ ਮਿਲਦਾ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਆਪਣੀ ਗੱਲ ਦੁਹਰਾਉਣ ਲਈ ਕਹਿੰਦਾ ਹੈ ਜਾਂ ਅਜਿਹਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਜੋ ਪਹਿਲਾਂ ਦਿੱਤੇ ਗਏ ਵੇਰਵਿਆਂ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦਾ ਹੈ। ਸਮੱਸਿਆ ਬੁੱਧੀ ਦੀ ਘਾਟ ਨਹੀਂ ਹੈ; ਇਹ ਸਟੇਟ (state) ਦੀ ਘਾਟ ਹੈ।

GraphRAG: ਫਲੈਟ ਟੈਕਸਟ ਨੂੰ ਇੱਕ ਨੈੱਟਵਰਕ ਵਿੱਚ ਬਦਲਣਾ

GraphRAG ਰਿਟ੍ਰੀਵਲ ਸਟੇਜ ਨੂੰ ਨਵਾਂ ਰੂਪ ਦਿੰਦਾ ਹੈ। ਅਣਸੰਬੰਧਿਤ ਟੈਕਸਟ ਦੇ ਟੁਕੜਿਆਂ ਦੀ ਸੂਚੀ ਦੀ ਬਜਾਏ, ਇਹ ਇੱਕ ਗ੍ਰਾਫ ਤਿਆਰ ਕਰਦਾ ਹੈ:

  • Nodes ਲੋਕਾਂ, ਉਤਪਾਦਾਂ ਜਾਂ ਘਟਨਾਵਾਂ ਵਰਗੀਆਂ ਇਕਾਈਆਂ (entities) ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।
  • Edges ਉਹਨਾਂ ਵਿਚਕਾਰ ਸਬੰਧਾਂ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ—ਕੌਣ ਕੀ ਸਪਲਾਈ ਕਰਦਾ ਹੈ, ਕਿਹੜਾ ਪ੍ਰੋਜੈਕਟ ਕਿਸ ਕੰਪੋਨੈਂਟ 'ਤੇ ਨਿਰਭਰ ਹੈ, ਆਦਿ।

ਕਿਉਂਕਿ ਗ੍ਰਾਫ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਐਨਕੋਡ ਕਰਦਾ ਹੈ, ਸਿਸਟਮ ਮਲਟੀ-ਹੌਪ ਰੀਜ਼ਨਿੰਗ (multi-hop reasoning) ਕਰ ਸਕਦਾ ਹੈ: ਇਹ ਇੱਕ ਅਜਿਹੇ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਣ ਲਈ ਕਈ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਤੱਥਾਂ ਦੀ ਲੜੀ ਦਾ ਪਿੱਛਾ ਕਰ ਸਕਦਾ ਹੈ ਜੋ ਇੱਕ ਫਲੈਟ-ਟੈਕਸਟ ਸਰਚ ਲਈ ਮੁਸ਼ਕਲ ਹੋਵੇਗਾ। ਇਹ ਪੂਰੇ ਸਬ-ਗ੍ਰਾਫਸ (sub-graphs) ਦੇ ਸਾਰ (summaries) ਵੀ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਟੁਕੜਿਆਂ ਦੀ ਬਜਾਏ ਕਿਸੇ ਵਿਸ਼ੇ ਦਾ ਸੰਖੇਪ ਵੇਰਵਾ ਮਿਲਦਾ ਹੈ।

ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ: ਗੱਲਬਾਤ ਨੂੰ ਯਾਦ ਰੱਖਣਾ

ਪਰਸਿਸਟੈਂਟ ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ ਗ੍ਰਾਫ ਦੇ ਉੱਪਰ ਇੱਕ ਸਮੇਂ-ਅਧਾਰਤ (temporal) ਪਰਤ ਜੋੜਦੀ ਹੈ। ਇਹ ਤਿੰਨ ਹਿੱਸਿਆਂ ਵਿੱਚ ਵੰਡੀ ਹੋਈ ਹੈ:

  • Short-term memory ਮੌਜੂਦਾ ਗੱਲਬਾਤ ਨੂੰ ਯਾਦ ਰੱਖਦੀ ਹੈ, ਤਾਂ ਜੋ ਉਪਭੋਗਤਾ ਨੂੰ ਕੁਝ ਵਾਕ ਪਹਿਲਾਂ ਕਹੀ ਗਈ ਗੱਲ ਨੂੰ ਦੁਬਾਰਾ ਦੱਸਣ ਦੀ ਲੋੜ ਨਾ ਪਵੇ।
  • Long-term memory ਵੱਖ-ਵੱਖ ਸੈਸ਼ਨਾਂ ਦੌਰਾਨ ਉਪਭੋਗਤਾ ਬਾਰੇ ਚੁਣਵੇਂ ਤੱਥਾਂ ਨੂੰ ਰਿਕਾਰਡ ਕਰਦੀ ਹੈ—ਪਸੰਦੀਦਾ ਭਾਸ਼ਾ, ਵਾਰ-ਵਾਰ ਆਉਣ ਵਾਲੀਆਂ ਸਮੱਸਿਆਵਾਂ, ਜਾਂ ਪੁਰਾਣੀਆਂ ਖਰੀਦਦਾਰੀਆਂ।
  • Selective memory ਫੈਸਲਾ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਰੱਖਣਾ ਹੈ, ਅਤੇ ਸਟੋਰ ਨੂੰ ਭਾਰੀ ਹੋਣ ਤੋਂ ਬਚਾਉਣ ਲਈ ਫਾਲਤੂ ਸ਼ਬਦਾਂ ਅਤੇ ਅਣਪ੍ਰਸੰਗਿਕ ਗੱਲਾਂ ਨੂੰ ਹਟਾ ਦਿੰਦੀ ਹੈ।

ਜਦੋਂ ਕੋਈ ਉਪਭੋਗਤਾ ਟੈਬ ਬੰਦ ਕਰਨ ਤੋਂ ਬਾਅਦ ਵਾਪਸ ਆਉਂਦਾ ਹੈ, ਤਾਂ ਲੌਂਗ-ਟਰਮ ਸਟੋਰ ਸਬੰਧਤ ਪਿਛੋਕੜ ਨੂੰ ਸਾਹਮਣੇ ਲਿਆ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਚੈਟਬੋਟ ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰ ਸਕਦਾ ਹੈ ਜਿੱਥੇ ਪਿਛਲਾ ਸੈਸ਼ਨ ਖਤਮ ਹੋਇਆ ਸੀ।

ਹਰ ਟੂਲ ਦੀ ਵਰਤੋਂ ਕਦੋਂ ਕਰਨੀ ਹੈ

  • ਸਧਾਰਨ ਤੱਥਾਂ ਦੀ ਜਾਂਚ ਲਈ ਸਟੈਂਡਰਡ RAG ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਿੱਥੇ ਕਿਸੇ ਕਨੈਕਸ਼ਨ ਦੇ ਰਹਿ ਜਾਣ ਦਾ ਨੁਕਸਾਨ ਘੱਟ ਹੋਵੇ।
  • GraphRAG ਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰੋ ਜਦੋਂ ਗਲਤ ਜਵਾਬ ਦੇਣ ਦਾ ਨੁਕਸਾਨ ਜ਼ਿਆਦਾ ਹੋਵੇ, ਜਾਂ ਜਦੋਂ ਜਵਾਬ ਲਈ ਕਈ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਫੈਲੀ ਜਾਣਕਾਰੀ ਨੂੰ ਜੋੜਨ ਦੀ ਲੋੜ ਹੋਵੇ।
  • ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ ਉਦੋਂ ਜੋੜੋ ਜੇਕਰ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਾਪਸ ਆਉਣ ਵਾਲੇ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਪਛਾਣਨ ਦੀ ਲੋੜ ਹੈ ਜਾਂ ਦਿਨਾਂ ਜਾਂ ਹਫ਼ਤਿਆਂ ਤੱਕ ਇੱਕ ਨਿੱਜੀ ਗੱਲਬਾਤ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਦੀ ਲੋੜ ਹੈ।

ਇਹਨਾਂ ਪਰਤਾਂ ਨੂੰ ਬਣਾਉਣਾ ਕੋਈ ਸੌਖਾ ਕੰਮ ਨਹੀਂ ਹੈ। ਜਿਵੇਂ-ਜਿਵੇਂ ਸਰੋਤ ਡੇਟਾ ਬਦਲਦਾ ਹੈ, GraphRAG ਇੰਡੈਕਸ ਨੂੰ ਰਿਫ੍ਰੈਸ਼ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਅਤੇ ਮੈਮੋਰੀ ਸਟੋਰ ਲਈ ਅਜਿਹੀਆਂ ਨੀਤੀਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਸਾਰਥਕਤਾ (relevance) ਅਤੇ ਸਟੋਰੇਜ ਲਾਗਤ ਵਿਚਕਾਰ ਸੰਤੁਲਨ ਬਣਾ ਸਕਣ। ਬਹੁਤ ਜ਼ਿਆਦਾ ਜਾਣਕਾਰੀ ਰੱਖਣਾ—ਹਰ ਬੋਲੇ ਗਏ ਸ਼ਬਦ ਨੂੰ ਸਟੋਰ ਕਰਨਾ—ਰੀਟ੍ਰੀਵਲ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਹੌਲੀ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਮਾਡਲ ਨੂੰ ਫਾਲਤੂ ਜਾਣਕਾਰੀ (noise) ਵਿੱਚ ਡੋਬ ਦਿੰਦਾ ਹੈ।

ਤਬਾਦਲਾ (The trade-off)

ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ ਭੁੱਲਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦੀ ਹੈ। ਇਸ ਦਾ ਨੁਕਸਾਨ ਕਾਰਜਸ਼ੀਲ (operational) ਹੈ: ਇੱਕ ਲਾਈਵ ਗ੍ਰਾਫ ਅਤੇ ਚੁਣਵੀਂ ਮੈਮੋਰੀ ਕੈਸ਼ ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਲਗਾਤਾਰ ਇੰਜੀਨੀਅਰਿੰਗ ਯਤਨਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ

ਸਿੱਖਿਆ (Takeaway): GraphRAG ਰਿਲੇਸ਼ਨਲ ਬੈਕਬੋਨ (relational backbone) ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਪਰਸਿਸਟੈਂਟ ਕੰਟੈਕਸਚੁਅਲ ਮੈਮੋਰੀ ਟੈਂਪੋਰਲ ਗਲੂ (temporal glue) ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ। ਇਕੱਠੇ ਮਿਲ ਕੇ, ਉਹ ਚੈਟਬੋਟਸ ਨੂੰ ਟੈਬਾਂ ਅਤੇ ਸੈਸ਼ਨਾਂ ਵਿੱਚ ਗੱਲਬਾਤ ਨੂੰ ਜਾਰੀ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਇੱਕ ਨਿਰਾਸ਼ਾਜਨਕ ਰੀਸੈੱਟ ਨੂੰ ਇੱਕ ਨਿਰਵਿਘਨ ਗੱਲਬਾਤ ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।