ਸਪੋਰਟ ਏਜੰਟ ਨੇ ਟੂ-ਫੈਕਟਰ ਅਥੈਂਟੀਕੇਸ਼ਨ (two-factor authentication) ਨੂੰ ਰੀਸੈੱਟ ਕਰਨ ਦੀ ਉਪਭੋਗਤਾ ਦੀ ਬੇਨਤੀ ਦਾ ਜਵਾਬ ਅਜਿਹੇ ਕਦਮਾਂ ਨਾਲ ਦਿੱਤਾ ਜੋ ਅਸਲ ਵਿੱਚ ਮੌਜੂਦ ਹੀ ਨਹੀਂ ਸਨ। ਜਵਾਬ ਭਰੋਸੇਮੰਦ ਲੱਗ ਰਿਹਾ ਸੀ, HTTP ਰਿਕਵੈਸਟ ਨੇ 200 OK ਦਿੱਤਾ, ਲੈਟੈਂਸੀ (latency) ਆਮ ਸੀ ਅਤੇ ਹਰ ਮਾਨੀਟਰਿੰਗ ਚਾਰਟ ਹਰਾ (green) ਸੀ।

ਇੱਕ AI-ਅਧਾਰਿਤ ਸਪੋਰਟ ਏਜੰਟ ਨੇ ਇੱਕ ਗਲਤ ਜਵਾਬ (hallucinated answer) ਦਿੱਤਾ ਕਿਉਂਕਿ ਉਹ ਅੰਦਰੂਨੀ ਜਾਂਚਾਂ, ਜੋ ਇਸ ਗਲਤੀ ਨੂੰ ਫੜ ਸਕਦੀਆਂ ਸਨ, ਕਦੇ ਚੱਲੀਆਂ ਹੀ ਨਹੀਂ। ਇੰਜੀਨੀਅਰਾਂ ਜਿਨ੍ਹਾਂ ਡੈਸ਼ਬੋਰਡਾਂ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹਨ, ਉਨ੍ਹਾਂ ਨੇ ਇੱਕ ਸੰਪੂਰਨ ਰਨ ਦੀ ਰਿਪੋਰਟ ਦਿੱਤੀ, ਜਦੋਂ ਕਿ ਏਜੰਟ ਚੁੱਪਚਾਪ ਇੱਕ ਬਣਾਵਟੀ ਹੱਲ ਤਿਆਰ ਕਰ ਰਿਹਾ ਸੀ।

ਰਵਾਇਤੀ ਡੈਸ਼ਬੋਰਡ AI hallucinations ਨੂੰ ਕਿਉਂ ਨਹੀਂ ਫੜ ਪਾਉਂਦੇ

ਜ਼ਿਆਦਾਤਰ observability stacks ਇੱਕ AI ਏਜੰਟ ਨੂੰ ਕਿਸੇ ਹੋਰ ਮਾਈਕ੍ਰੋਸਰਵਿਸ (microservice) ਵਾਂਗ ਮੰਨਦੇ ਹਨ: ਇੱਕ ਸਿੰਗਲ ਇਨਬਾਊਂਡ ਰਿਕਵੈਸਟ ਅਤੇ ਇੱਕ ਸਿੰਗਲ ਆਊਟਬਾਊਂਡ ਰਿਸਪਾਂਸ। ਉਹ HTTP ਸਟੇਟਸ, ਰਿਸਪਾਂਸ ਟਾਈਮ ਅਤੇ ਗਲਤੀਆਂ ਦੀ ਗਿਣਤੀ ਨੂੰ ਲੌਗ ਕਰਦੇ ਹਨ। ਉਹ ਰਿਕਵੈਸਟ ਦੇ ਅੰਦਰਲੇ ਲੁਕੇ ਹੋਏ ਕਦਮਾਂ ਨੂੰ ਲੌਗ ਨਹੀਂ ਕਰਦੇ – ਜਿਵੇਂ ਕਿ ਬਾਹਰੀ ਦਸਤਾਵੇਜ਼ਾਂ ਦੀ ਪ੍ਰਾਪਤੀ (retrieval), ਲਾਰਜ ਲੈਂਗੂਏਜ ਮਾਡਲਾਂ (large language models) ਨੂੰ ਕੀਤੀਆਂ ਗਈਆਂ ਕਾਲਾਂ, ਸਹਾਇਕ ਟੂਲਸ ਦੀ ਵਰਤੋਂ, ਅਤੇ ਕੋਈ ਵੀ ਗਾਰਡ-ਰੇਲ (guard-rail) ਲੌਜਿਕ ਜੋ ਆਉਟਪੁੱਟ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ।

ਜਦੋਂ ਰਿਟ੍ਰੀਵਲ (retrieval) ਕਦਮ ਇੱਕ ਖਾਲੀ ਨਤੀਜਾ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਤਾਂ ਮਾਡਲ ਅਕਸਰ ਪ੍ਰਮਾਣਿਕ ਲੱਗਣ ਵਾਲੇ ਟੈਕਸਟ ਨਾਲ "ਖਾਲੀ ਥਾਂ ਭਰਨ" ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ। ਮਾਨੀਟਰਿੰਗ ਸਿਸਟਮ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ ਕਾਲ ਸਫਲ ਰਹੀ, ਕਿਉਂਕਿ ਕੁਝ ਵੀ ਕਰੈਸ਼ ਨਹੀਂ ਹੋਇਆ ਅਤੇ ਸਟੇਟਸ ਕੋਡ 200 ਹੀ ਰਿਹਾ। Hallucination ਅਦਿੱਖ ਰਹਿੰਦੀ ਹੈ, ਅਤੇ ਇਕਲੌਤਾ ਲੱਛਣ ਉਪਭੋਗਤਾ ਤੱਕ ਪਹੁੰਚਣ ਵਾਲਾ ਗਲਤ ਜਵਾਬ ਹੁੰਦਾ ਹੈ।

ਇੱਕ ਬਲੈਕ ਬਾਕਸ ਨੂੰ ਪੜ੍ਹਨਯੋਗ ਟ੍ਰੀ (tree) ਵਿੱਚ ਬਦਲਣਾ

ਭਰੋਸੇਯੋਗ ਡੀਬੱਗਿੰਗ ਲਈ ਪਹਿਲਾ ਕਦਮ ਏਜੰਟ ਨੂੰ ਇੱਕ ਮੋਨੋਲਿਥਿਕ ਕਾਲ (monolithic call) ਵਜੋਂ ਦੇਖਣਾ ਬੰਦ ਕਰਨਾ ਅਤੇ ਹਰ ਅੰਦਰੂਨੀ ਕਾਰਜ ਨੂੰ ਟ੍ਰੇਸ ਟੇਬਲ (trace table) ਵਿੱਚ ਆਪਣੀ ਇੱਕ ਵੱਖਰੀ ਰੋਅ (row) ਵਜੋਂ ਦੇਖਣਾ ਹੈ। ਇੱਕ ਆਮ ਰਨ ਇਸ ਤਰ੍ਹਾਂ ਵੰਡਿਆ ਜਾ ਸਕਦਾ ਹੈ:

  • ਉੱਚ-ਪੱਧਰੀ ਏਜੰਟ ਇੰਵੋਕੇਸ਼ਨ (agent invocation)
  • ਰਿਟ੍ਰੀਵਲ ਕਦਮ ਜੋ ਸਬੰਧਤ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਕੱਢਦਾ ਹੈ
  • ਹਰ ਲੈਂਗੂਏਜ-ਮਾਡਲ ਇਨਫਰੈਂਸ (inference) ਜੋ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਡੇਟਾ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਦਾ ਹੈ
  • ਹਰ ਟੂਲ ਕਾਲ (ਜਿਵੇਂ ਕਿ ਡੇਟਾਬੇਸ ਲੁੱਕਅੱਪ, API ਰਿਕਵੈਸਟ)
  • ਗਾਰਡ-ਰੇਲ ਚੈੱਕ ਜੋ ਤੱਥਾਂ ਦੀ ਸੱਚਾਈ ਜਾਂ ਨੀਤੀ ਦੀ ਪਾਲਣਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ

ਹਰ ਰੋਅ ਟਾਈਮਸਟੈਂਪ, ਸਫਲਤਾ ਫਲੈਗ (success flag), ਅਤੇ ਉਸ ਕਦਮ ਰਾਹੀਂ ਲੰਘੇ ਪੇਲੋਡ (payload) ਨੂੰ ਰਿਕਾਰਡ ਕਰਦੀ ਹੈ। ਇਸ ਢਾਂਚੇ ਨਾਲ, ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਇੱਕ ਟ੍ਰੀ ਬਣ ਜਾਂਦੀ ਹੈ ਜਿਸਦੀ ਅੰਤਿਮ ਆਉਟਪੁੱਟ ਤੋਂ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਦੀ ਬਜਾਏ ਲਾਈਨ-ਦਰ-ਲਾਈਨ ਜਾਂਚ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।

ਉਹ ਬੱਗ ਜੋ ਨਿਕਲ ਗਿਆ

ਗਲਤ ਸਪੋਰਟ ਇੰਟਰੈਕਸ਼ਨ ਵਿੱਚ ਟ੍ਰੇਸ ਇਸ ਤਰ੍ਹਾਂ ਸੀ:

  1. Retrieval ਚੱਲਿਆ ਪਰ ਕੋਈ ਦਸਤਾਵੇਜ਼ ਵਾਪਸ ਨਹੀਂ ਕੀਤੇ।
  2. ਅਗਲਾ ਕਦਮ ਫਿਰ ਵੀ ਅੱਗੇ ਵਧ ਗਿਆ, ਮਾਡਲ ਨੂੰ ਇੱਕ ਖਾਲੀ ਕੰਟੈਕਸਟ (context) ਭੇਜ ਦਿੱਤਾ।
  3. ਮਾਡਲ ਨੇ ਇੱਕ ਅਜਿਹਾ ਜਵਾਬ ਤਿਆਰ ਕੀਤਾ ਜਿਸਨੇ ਗੁੰਮ ਹੋਈ ਜਾਣਕਾਰੀ ਨੂੰ ਬਣਾਵਟੀ ਕਦਮਾਂ ਨਾਲ ਭਰ ਦਿੱਤਾ।
  4. ਸਿਸਟਮ ਨੇ 200 ਵਾਪਸ ਕੀਤਾ ਕਿਉਂਕਿ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਕੋਈ ਐਕਸੈਪਸ਼ਨ (exception) ਨਹੀਂ ਆਈ ਸੀ।

Hallucination ਲੈਂਗੂਏਜ ਮਾਡਲ ਵਿੱਚ ਕੋਈ ਖਾਮੀ ਨਹੀਂ ਸੀ; ਇਹ ਰਿਟ੍ਰੀਵਲ ਅਤੇ ਜਨਰੇਸ਼ਨ ਪੜਾਵਾਂ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਗ missing ਗਾਰਡ-ਰੇਲ ਸੀ। ਏਜੰਟ ਨੇ ਉਦੋਂ ਵੀ ਜਵਾਬ ਦਿੱਤਾ ਜਦੋਂ ਉਸ ਕੋਲ ਆਪਣੇ ਜਵਾਬ ਨੂੰ ਅਧਾਰਤ ਕਰਨ ਲਈ ਕੁਝ ਵੀ ਨਹੀਂ ਸੀ।

ਸਧਾਰਨ ਗਾਰਡ-ਰੇਲ ਜੋ hallucinations ਨੂੰ ਰੋਕਦੇ ਹਨ

ਦੋ ਖਾਸ ਤਬਦੀਲੀਆਂ ਨੇ ਸਮੱਸਿਆ ਨੂੰ ਖਤਮ ਕਰ ਦਿੱਤਾ:

  • ਖਾਲੀ ਰਿਟ੍ਰੀਵਲ 'ਤੇ ਰੋਕ ਲਗਾਓ (Abort on empty retrieval) – ਜੇਕਰ ਡਾਕੂਮੈਂਟ ਸਟੋਰ ਕੁਝ ਵੀ ਵਾਪਸ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਤਾਂ ਏਜੰਟ ਨੂੰ ਜਨਰੇਸ਼ਨ ਵੱਲ ਵਧਣ ਦੀ ਬਜਾਏ "ਮੈਨੂੰ ਉਹ ਜਾਣਕਾਰੀ ਨਹੀਂ ਮਿਲੀ ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਲੋੜ ਹੈ" ਕਹਿ ਕੇ ਜਵਾਬ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ।
  • ਗਰਾਊਂਡਿੰਗ ਚੈੱਕ (Grounding check) – ਮਾਡਲ ਦੁਆਰਾ ਜਵਾਬ ਦੇਣ ਤੋਂ ਬਾਅਦ, ਇਹ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਹਰ ਤੱਥ ਅਸਲ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਕੰਟੈਂਟ ਵਿੱਚ ਮੌਜੂਦ ਹੈ। ਜੇਕਰ ਚੈੱਕ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਜਵਾਬ ਨੂੰ ਰੱਦ ਕਰ ਦਿਓ ਅਤੇ "ਜਵਾਬ ਨਹੀਂ ਦੇ ਸਕਦੇ" ਵਾਲੇ ਜਵਾਬ 'ਤੇ ਵਾਪਸ ਆ ਜਾਓ।

ਤੇਜ਼ ਡੀਬੱਗਿੰਗ ਲਈ ਇੱਕ ਵਿਵਹਾਰਕ ਵਰਕਫਲੋ (workflow)

  1. ਹਰ ਅੰਦਰੂਨੀ ਕਾਲ ਨੂੰ ਟ੍ਰੇਸ ਕਰੋ – ਏਜੰਟ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਤਿਆਰ ਕਰੋ ਕਿ ਹਰ ਰਿਟ੍ਰੀਵਲ, ਮਾਡਲ ਇਨਫਰੈਂਸ ਅਤੇ ਟੂਲ ਦੀ ਵਰਤੋਂ ਇੱਕ ਪੱਕੇ ਲੌਗ (persistent log) ਵਿੱਚ ਇੱਕ ਰੋਅ ਲਿਖੇ।
  2. ਫੇਲ ਹੋਏ ਰਨ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖੋ – ਕਿਸੇ ਵੀ ਅਜਿਹੇ ਇੰਟਰੈਕਸ਼ਨ ਦਾ ਪੂਰਾ ਟ੍ਰੇਸ ਸਟੋਰ ਕਰੋ ਜਿਸ ਨੂੰ ਉਪਭੋਗਤਾ ਗਲਤ ਦੱਸਦਾ ਹੈ। ਸਟੋਰੇਜ ਬਚਾਉਣ ਲਈ ਉਨ੍ਹਾਂ ਨੂੰ ਡਿਲੀਟ ਕਰਨਾ ਰੈਗਰੈਸ਼ਨ (regressions) ਲੱਭਣ ਲਈ ਲੋੜੀਂਦੇ ਡੇਟਾ ਨੂੰ ਲੁਕਾ ਦਿੰਦਾ ਹੈ।
  3. ਰਨ ਨੂੰ ਵਰਜ਼ਨ ਜਾਣਕਾਰੀ ਨਾਲ ਟੈਗ ਕਰੋ – ਹਰ ਟ੍ਰੇਸ ਰੋਅ ਵਿੱਚ ਰ

ਜਦੋਂ ਤੱਕ ਉਹ ਆਮ ਨਹੀਂ ਹੋ ਜਾਂਦੇ, ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਤਰੀਕਾ ਇਹ ਹੈ ਕਿ ਹਰ ਅੰਦਰੂਨੀ ਕਾਰਜ ਨੂੰ ਨਿਰੀਖਣਯੋਗ ਮੰਨਿਆ ਜਾਵੇ ਅਤੇ ਜਦੋਂ ਸਬੂਤ ਮੌਜੂਦ ਨਾ ਹੋਵੇ ਤਾਂ ਤੁਰੰਤ ਅਸਫਲਤਾ ਦਿਖਾਈ ਜਾਵੇ।

ਮੁੱਖ ਗੱਲ: ਇੱਕ ਹਰਾ ਡੈਸ਼ਬੋਰਡ ਤੁਹਾਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਪਲੰਬਿੰਗ ਕੰਮ ਕਰ ਰਹੀ ਹੈ; ਇਹ ਇਸ ਗੱਲ ਦੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦਾ ਕਿ ਜਵਾਬ ਸਹੀ ਹੈ। ਹਰੇਕ ਰਿਟ੍ਰੀਵਲ, ਮਾਡਲ ਕਾਲ, ਅਤੇ ਗਾਰਡ-ਰੇਲ ਚੈੱਕ ਨੂੰ ਟ੍ਰੇਸ ਕਰਕੇ, ਤੁਸੀਂ ਲੁਕੀਆਂ ਹੋਈਆਂ ਹੈਲੂਸੀਨੇਸ਼ਨਾਂ ਨੂੰ ਦਿਖਾਈ ਦੇਣ ਵਾਲੀਆਂ ਅਸਫਲਤਾਵਾਂ ਵਿੱਚ ਬਦਲ ਦਿੰਦੇ ਹੋ, ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਪਭੋਗਤਾ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਠੀਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।