AI ಏಜೆಂಟ್‌ಗಳ ಸ್ಕೋರ್ ಮಾಡುವುದು: ಡಿಟರ್ಮಿನಿಸ್ಟಿಕ್ ಮೆಟ್ರಿಕ್ಸ್ + ಎಲ್ಎಲ್ಎಂ (LLM) ಜಡ್ಜ್

ನೀವು ಅನೇಕ ಸಣ್ಣ AI ಏಜೆಂಟ್‌ಗಳನ್ನು ನಡೆಸುತ್ತೀರಿ. ನಿಮ್ಮ ಬಳಿ backend, frontend, mobile ಮತ್ತು devops ಗಾಗಿ ಏಜೆಂಟ್‌ಗಳಿವೆ. ಪ್ರತಿಯೊಂದು ಏಜೆಂಟ್ ಒಂದೇ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತದೆ.

ನಿಮ್ಮ ಬಳಿ ಅನೇಕ ಏಜೆಂಟ್‌ಗಳಿದ್ದಾಗ, ನೀವು ಒಂದು ಸಮಸ್ಯೆಯನ್ನು ಎದುರಿಸುತ್ತೀರಿ. ಅವು ಉತ್ತಮವಾಗಿವೆಯೇ ಎಂದು ನಿಮಗೆ ತಿಳಿಯುವುದಿಲ್ಲ. ಪ್ರಾಂಪ್ಟ್ (prompt) ಬದಲಾವಣೆ ಮಾಡುವುದರಿಂದ ಅವು ಉತ್ತಮವಾಗುತ್ತವೆಯೇ ಅಥವಾ ಕೆಟ್ಟದಾಗುತ್ತವೆಯೇ ಎಂಬುದು ನಿಮಗೆ ತಿಳಿಯುವುದಿಲ್ಲ. "ಇದು ಸರಿಯಾಗಿದೆ" ಎಂದು ಹೇಳುವುದು ದೊಡ್ಡ ಮಟ್ಟದ ಕೆಲಸಗಳಲ್ಲಿ (at scale) ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ.

ಇದನ್ನು ಪರಿಹರಿಸಲು ನಾನು ಒಂದು ಫ್ರೇಮ್‌ವರ್ಕ್ ಅನ್ನು ನಿರ್ಮಿಸಿದ್ದೇನೆ. ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಳೆಯಲು ಅಂಕಿಅಂಶಗಳನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸುಧಾರಿಸುತ್ತದೆ.

ಕಾರ್ಯತಂತ್ರ (The Strategy)

ಮೊದಲು ಗಣಿತದ ಮೂಲಕ ಅಳೆಯಬಹುದಾದದ್ದನ್ನು ಅಳೆಯಿರಿ. ಅಗತ್ಯವಿದ್ದಾಗ ಮಾತ್ರ LLM ಜಡ್ಜ್ ಅನ್ನು ಬಳಸಿ. ಡಿಟರ್ಮಿನಿಸ್ಟಿಕ್ ಮೆಟ್ರಿಕ್ಸ್ (Deterministic metrics) ವೇಗವಾಗಿರುತ್ತವೆ ಮತ್ತು ಉಚಿತವಾಗಿರುತ್ತವೆ. LLM ಜಡ್ಜ್ ನಿಧಾನವಾಗಿರುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ಹಣದ ವೆಚ್ಚವಾಗುತ್ತದೆ.

ವ್ಯವಸ್ಥೆಯು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

• ಹಾರ್ನೆಸ್ (harness) ಪ್ರತಿಯೊಂದು ಏಜೆಂಟ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಪ್ರಕ್ರಿಯೆಯಾಗಿ (separate process) ನಡೆಸುತ್ತದೆ. • ಇದು ಏಜೆಂಟ್‌ಗೆ ಒಂದು ಕಾರ್ಯವನ್ನು (task) ನೀಡುತ್ತದೆ. • ಇದು ಔಟ್‌ಪುಟ್ ಅನ್ನು ಸೆರೆಹಿಡಿಯುತ್ತದೆ. • ಇದು ನಿರೀಕ್ಷಿತ ಡೇಟಾದೊಂದಿಗೆ ಫಲಿತಾಂಶವನ್ನು ಹೋಲಿಸಿ ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ.

ಏಜೆಂಟ್ ಕೇವಲ 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)

ವಿಫಲತೆಗಳು ಒಂದು ಫೈಲ್‌ಗೆ ಹೋಗುತ್ತವೆ. ಈ ಫೈಲ್ ಒಂದು ಸ್ವಯಂಚಾಲಿತ ಲೂಪ್‌ಗೆ ಇನ್‌ಪುಟ್ ಆಗುತ್ತದೆ. ವ್ಯವಸ್ಥೆಯು ಪ್ರಾಂಪ್ಟ್‌ನ ಅತ್ಯಂತ ದುರ್ಬಲ ಭಾಗವನ್ನು ನೋಡಿ ಅದನ್ನು ಸರಿಪಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಇದು ಉತ್ತಮ ಅಭ್ಯರ್ಥಿಗಳ ಪಟ್ಟಿಯನ್ನು (pool of good candidates) ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅತ್ಯುತ್ತಮ ಆವೃತ್ತಿಗಳನ್ನು ಕೋಡ್‌ಗೆ ಮರಳಿ ಬರೆಯುತ್ತದೆ.

ಒಂದೇ ಒಂದು ಸ್ಕೋರ್ ಕೇವಲ ಒಂದು ಕ್ಷಣದ ಸ್ಥಿತಿಯನ್ನು (snapshot) ತೋರಿಸುತ್ತದೆ. ಪ್ರವೃತ್ತಿಗಳನ್ನು (trends) ಪತ್ತೆಹಚ್ಚಲು ಇತಿಹಾಸವನ್ನು ಬಳಸಿ. ಇದು ನೀವು ಕಾಲಾನಂತರದಲ್ಲಿ ಸುಧಾರಿಸುತ್ತಿದ್ದೀರಾ ಎಂಬುದನ್ನು ತಿಳಿಸುತ್ತದೆ.

ನಿಮ್ಮ ಅಡಿಪಾಯವನ್ನು ಡಿಟರ್ಮಿನಿಸ್ಟಿಕ್ ಮೆಟ್ರಿಕ್ಸ್ ಮೇಲೆ ನಿರ್ಮಿಸಿ. ಜಡ್ಜ್ ಅನ್ನು ಸುತ್ತಿಗೆಯಂತೆ ಬಳಸಬೇಡಿ, ಶಸ್ತ್ರಚಿಕಿತ್ಸೆಯ ಚಾಕುವಿನಂತೆ (scalpel) ಬಳಸಿ.

Source: https://dev.to/pponali/scoring-ai-agents-deterministic-metrics-an-llm-judge-poj

Optional learning community: https://t.me/GyaanSetuAi