𝗦𝗰𝗼𝗿𝗶𝗻𝗴 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀: 𝗗𝗲𝘁𝗲𝗿𝗺𝗶𝗻𝗶𝘀𝘁𝗶𝗰 𝗠𝗲𝘁𝗿𝗶𝗰𝘀 + 𝗮𝗻 𝗟𝗟𝗠 𝗝𝘂𝗱𝗴𝗲

ਤੁਸੀਂ ਕਈ ਛੋਟੇ AI ਏਜੰਟ ਚਲਾਉਂਦੇ ਹੋ। ਤੁਹਾਡੇ ਕੋਲ backend, frontend, mobile, ਅਤੇ devops ਲਈ ਏਜੰਟ ਹਨ। ਹਰੇਕ ਏਜੰਟ ਦਾ ਇੱਕ ਹੀ ਕੰਮ ਹੁੰਦਾ ਹੈ।

ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਬਹੁਤ ਸਾਰੇ ਏਜੰਟ ਹੁੰਦੇ ਹਨ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਸਮੱਸਿਆ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਨਹੀਂ ਪਤਾ ਹੁੰਦਾ ਕਿ ਉਹ ਚੰਗੇ ਹਨ ਜਾਂ ਨਹੀਂ। ਤੁਹਾਨੂੰ ਇਹ ਵੀ ਨਹੀਂ ਪਤਾ ਹੁੰਦਾ ਕਿ ਪ੍ਰੋਂਪਟ (prompt) ਵਿੱਚ ਬਦਲਾਅ ਕਰਨ ਨਾਲ ਉਹ ਬਿਹਤਰ ਹੋ ਰਹੇ ਹਨ ਜਾਂ ਵਿਗੜ ਰਹੇ ਹਨ। ਵੱਡੇ ਪੱਧਰ 'ਤੇ "ਇਹ ਠੀਕ ਲੱਗ ਰਿਹਾ ਹੈ" ਕਹਿਣਾ ਕੰਮ ਨਹੀਂ ਆਉਂਦਾ।

ਮੈਂ ਇਸ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਇੱਕ ਫਰੇਮਵਰਕ ਬਣਾਇਆ ਹੈ। ਇਹ ਪ੍ਰਦਰਸ਼ਨ (performance) ਨੂੰ ਮਾਪਣ ਲਈ ਅੰਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਅਤੇ ਪ੍ਰੋਂਪਟਸ ਨੂੰ ਆਪਣੇ ਆਪ ਸੁਧਾਰਦਾ ਹੈ।

ਰਣਨੀਤੀ (The Strategy)

ਪਹਿਲਾਂ ਉਹ ਚੀਜ਼ਾਂ ਮਾਪੋ ਜਿਨ੍ਹਾਂ ਨੂੰ ਗਣਿਤ ਨਾਲ ਮਾਪਿਆ ਜਾ ਸਕਦਾ ਹੈ। LLM ਜੱਜ ਦੀ ਵਰਤੋਂ ਉਦੋਂ ਹੀ ਕਰੋ ਜਦੋਂ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੋਵੇ। ਡਿਟਰਮਿਨਿਸਟਿਕ ਮੈਟ੍ਰਿਕਸ ਤੇਜ਼ ਅਤੇ ਮੁਫ਼ਤ ਹੁੰਦੇ ਹਨ। ਇੱਕ LLM ਜੱਜ ਹੌਲੀ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਸ ਦੀ ਲਾਗਤ ਆਉਂਦੀ ਹੈ।

ਸਿਸਟਮ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ:

• ਹਾਰਨੈੱਸ (harness) ਹਰੇਕ ਏਜੰਟ ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਪ੍ਰਕਿਰਿਆ (process) ਵਜੋਂ ਚਲਾਉਂਦਾ ਹੈ। • ਇਹ ਏਜੰਟ ਨੂੰ ਇੱਕ ਟਾਸਕ ਦਿੰਦਾ ਹੈ। • ਇਹ ਆਉਟਪੁੱਟ ਨੂੰ ਕੈਪਚਰ ਕਰਦਾ ਹੈ। • ਇਹ ਉਮੀਦ ਕੀਤੇ ਗਏ ਡੇਟਾ ਦੇ ਅਧਾਰ 'ਤੇ ਨਤੀਜੇ ਨੂੰ ਸਕੋਰ ਦਿੰਦਾ ਹੈ।

ਏਜੰਟ ਨੂੰ ਸਿਰਫ਼ stdin ਤੋਂ ਪੜ੍ਹਨ ਅਤੇ stdout ਵਿੱਚ ਲਿਖਣ ਦੀ ਲੋੜ ਹੈ। ਇਹ Python ਜਾਂ ਸ਼ੈੱਲ ਸਕ੍ਰਿਪਟ (shell script) ਹੋ ਸਕਦੀ ਹੈ। ਹਾਰਨੈੱਸ ਨੂੰ ਇਸ ਨਾਲ ਕੋਈ ਫਰਕ ਨਹੀਂ ਪੈਂਦਾ।

ਟ੍ਰੈਕ ਕਰਨ ਲਈ ਪੰਜ ਮੁੱਖ ਮੈਟ੍ਰਿਕਸ:

  • Accuracy (ਸ਼ੁੱਧਤਾ): ਕੀ ਆਉਟਪੁੱਟ ਟੀਚੇ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ?
  • Fuzzy score: ਟੈਕਸਟ ਟਾਰਗੇਟ ਦੇ ਕਿੰਨਾ ਨੇੜੇ ਹੈ?
  • Timeout rate: ਏਜੰਟ ਕਿੰਨੀ ਵਾਰ ਕੰਮ ਪੂਰਾ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ?
  • Safety violations: ਕੀ ਆਉਟਪੁੱਟ ਅਸੁਰੱਖਿਅਤ ਪੈਟਰਨਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ?
  • Reproducibility variance: ਕੀ ਏਜੰਟ ਹਰ ਵਾਰ ਇੱਕੋ ਜਵਾਬ ਦਿੰਦਾ ਹੈ?

ਜੇਕਰ ਕੋਈ ਏਜੰਟ ਸਹੀ ਹੈ ਪਰ ਅਸਥਿਰ (inconsistent) ਹੈ, ਤਾਂ ਇਹ ਇੱਕ ਬੱਗ (bug) ਹੈ।

LLM ਜੱਜ

ਕੁਝ ਚੀਜ਼ਾਂ ਨੂੰ ਗਣਿਤ ਨਾਲ ਮਾਪਣਾ ਮੁਸ਼ਕਲ ਹੁੰਦਾ ਹੈ। ਤੁਹਾਨੂੰ ਇਹ ਜਾਣਨ ਦੀ ਲੋੜ ਹੈ ਕਿ ਕੀ ਏਜੰਟ ਨੇ ਆਪਣੀ ਭੂਮਿਕਾ ਬਣਾਈ ਰੱਖੀ ਜਾਂ ਪਾਬੰਦੀਆਂ (constraints) ਦੀ ਪਾਲਣਾ ਕੀਤੀ।

ਇਹਨਾਂ ਮਾਮਲਿਆਂ ਲਈ, ਇੱਕ LLM ਜੱਜ ਕੰਮ ਦੀ ਸਮੀਖਿਆ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਇੱਕ ਰੂਬਰਿਕ (rubric) ਅਤੇ ਏਜੰਟ ਦਾ ਆਉਟਪੁੱਟ ਮਿਲਦਾ ਹੈ। ਇਹ ਇੱਕ ਸੰਰਚਿਤ ਫੈਸਲਾ (structured verdict) ਵਾਪਸ ਕਰਦਾ ਹੈ। ਮੈਂ ਇਸ ਫੈਸਲੇ ਨੂੰ JSON schema ਦੇ ਵਿਰੁੱਧ ਪ੍ਰਮਾਣਿਤ ਕਰਦਾ ਹਾਂ ਤਾਂ ਜੋ ਰਿਪੋਰਟ ਖਰਾਬ ਨਾ ਹੋਵੇ।

ਜੱਜ ਸਿਰਫ਼ ਗ੍ਰੇਡ ਦੇਣ ਤੋਂ ਵੱਧ ਕੁਝ ਕਰਦਾ ਹੈ। ਇਸਨੂੰ ਸੁਧਾਰਾਂ ਦੇ ਸੁਝਾਅ ਦੇਣੇ ਚਾਹੀਦੇ ਹਨ। "ਇਹ ਕਮਜ਼ੋਰ ਹੈ" ਵਰਗੀ ਆਲੋਚਨਾ ਬੇਕਾਰ ਹੈ। "ਪ੍ਰੋਂਪਟ ਵਿੱਚ ਇੱਕ JSON ਬਲਾਕ ਜੋੜੋ" ਵਰਗੀ ਆਲੋਚਨਾ ਕਾਰਜਯੋਗ (actionable) ਹੈ।

ਸੁਧਾਰ ਲੂਪ (The Improvement Loop)

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

ਇੱਕ ਸਿੰਗਲ ਸਕੋਰ ਸਿਰਫ਼ ਇੱਕ ਝਲਕ ਹੈ। ਰੁਝਾਨਾਂ (trends) ਨੂੰ ਟ੍ਰੈਕ ਕਰਨ ਲਈ ਇਤਿਹਾਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਕੀ ਤੁਸੀਂ ਸਮੇਂ ਦੇ ਨਾਲ ਬਿਹਤਰ ਹੋ ਰਹੇ ਹੋ।

ਆਪਣੀ ਨੀਂਹ ਡਿਟਰਮਿਨਿਸਟਿਕ ਮੈਟ੍ਰਿਕਸ 'ਤੇ ਬਣਾਓ। ਜੱਜ ਦੀ ਵਰਤੋਂ ਇੱਕ ਸਕੈਲਪਲ (scalpel) ਵਜੋਂ ਕਰੋ, ਹਥੌੜੇ ਵਜੋਂ ਨਹੀਂ।

ਸਰੋਤ: https://dev.to/pponali/scoring-ai-agents-deterministic-metrics-an-llm-judge-poj

ਵਿਕਲਪਿਕ ਸਿੱਖਣ ਭਾਈਚਾਰਾ: https://t.me/GyaanSetuAi