ನಿಮ್ಮ ಮಾಡೆಲ್ ಸುಳ್ಳು ಹೇಳುವ ಮೊದಲೇ ನಿಮ್ಮ ಹಾರ್ನೆಸ್ (Harness) ನಿಮಗೆ ಸುಳ್ಳು ಹೇಳಬಹುದು
ನಿಮ್ಮ ಇವ್ಯಾಲ್ಯೂಯೇಶನ್ ಸ್ಕೋರ್ಬೋರ್ಡ್ (evaluation scoreboard) ಎರಡೂ ಇಂಜಿನ್ಗಳು ವಿಫಲವಾಗಿವೆ ಎಂದು ಹೇಳಿತು.
Llama3.2 6 ಪ್ರಕರಣಗಳಲ್ಲಿ 5 ಪ್ರಕರಣಗಳಲ್ಲಿ ವಿಫಲವಾಯಿತು. Anthropic Sonnet 6 ಪ್ರಕರಣಗಳಲ್ಲಿ 6 ಪ್ರಕರಣಗಳಲ್ಲೂ ವಿಫಲವಾಯಿತು.
ಲೇಬಲ್ "malformed" ಎಂದಿತ್ತು. ಆದರೆ ಕಾರಣಗಳು ವಿಭಿನ್ನವಾಗಿದ್ದವು.
ಒಂದು ವಿಫಲತೆಯು ಕ್ರೆಡಿಟ್ಗಳು ಮುಗಿದುಹೋಗಿದ್ದರಿಂದ ಉಂಟಾದ API ದೋಷವಾಗಿತ್ತು. ಒಂದು ವಿಫಲತೆಯು CLI ಕಮಾಂಡ್ನಿಂದ ಬಂದ ಟರ್ಮಿನಲ್ ಕಂಟ್ರೋಲ್ ಬೈಟ್ಗಳಿಂದ (terminal control bytes) ಪಠ್ಯವು ಹಾಳಾಗಿದ್ದರಿಂದ ಉಂಟಾಯಿತು. ಒಂದು ವಿಫಲತೆಯು ಪಾರ್ಸರ್ (parser) ಓದಲು ಸಾಧ್ಯವಾಗದಂತೆ ಮಾರ್ಕ್ಡೌನ್ ಫೆನ್ಸ್ಗಳ (markdown fences) ನಡುವೆ ಇರುವ ಮಾನ್ಯವಾದ JSON ಆಗಿತ್ತು.
ನಾನು ಆ ಮೊದಲ ಸಾರಾಂಶವನ್ನು ಪ್ರಕಟಿಸಿದ್ದರೆ, ನಾನು ಸುಳ್ಳು ಹೇಳುತ್ತಿದ್ದೆ. ನನ್ನ ಸ್ವಂತ ಕೋಡ್ನಲ್ಲಿನ ದೋಷಗಳಿಗೆ ನಾನು ಮಾಡೆಲ್ಗಳನ್ನು ದೂಷಿಸುತ್ತಿದ್ದೆ.
ಸಾರಾಂಶವನ್ನು ನಂಬುವ ಬದಲು ರಾಗ್ ರೆಕಾರ್ಡ್ಗಳನ್ನು (raw records) ನೋಡುವುದರ ಮೂಲಕ ನಾನು ಈ ಬಗ್ಗಳನ್ನು (bugs) ಪತ್ತೆಹಚ್ಚಿದೆ.
ಮೊದಲ ಬಗ್ Ollama ಅನ್ನು ಕರೆಯಲು ನಾನು CLI ಸಬ್ಪ್ರೊಸೆಸ್ (subprocess) ಬಳಸಿದ್ದರಿಂದ ಸಂಭವಿಸಿತು. ಆ ಕಮಾಂಡ್ ಸ್ಪಿನ್ನರ್ಗಳು ಮತ್ತು ಕರ್ಸರ್ ಚಲನೆಗಳಂತಹ ಟರ್ಮಿನಲ್ ಅನಿಮೇಷನ್ಗಳನ್ನು ಉತ್ಪಾದಿಸಿತು. ಈ ANSI ಕಂಟ್ರೋಲ್ ಬೈಟ್ಗಳು ನನ್ನ ಡೇಟಾದಲ್ಲಿ ಸೇರಿಕೊಂಡವು. ಪಾರ್ಸರ್ ಅದೃಶ್ಯ ಅಕ್ಷರಗಳನ್ನು ಕಂಡು ಕ್ರ್ಯಾಶ್ (crash) ಆಗಿಹೋಯಿತು.
ಪರಿಹಾರ: CLI ಸಬ್ಪ್ರೊಸೆಸ್ನಿಂದ ನೇರ HTTP API ಗೆ ಬದಲಾಯಿಸಿ.
ಎರಡನೇ ಬಗ್ LLMಗಳು ಹೆಚ್ಚಾಗಿ JSON ಅನ್ನು ಮಾರ್ಕ್ಡೌನ್ ಫೆನ್ಸ್ಗಳ ಒಳಗೆ ಇಡುವುದರಿಂದ ಸಂಭವಿಸಿತು. ನನ್ನ ಪಾರ್ಸರ್ ರಾಗ್ ಸ್ಟ್ರಿಂಗ್ ಮೇಲೆ json.loads() ಅನ್ನು ಬಳಸಿತು. ಅದು ಬ್ಯಾಕ್ಟಿಕ್ಗಳನ್ನು (backticks) ನೋಡಿ ವಿಫಲವಾಯಿತು.
ಪರಿಹಾರ: ಪಾರ್ಸಿಂಗ್ ಮಾಡುವ ಮೊದಲು ಕೋಡ್ ಫೆನ್ಸ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು (strip) ಒಂದು ಫಂಕ್ಷನ್ ಅನ್ನು ಸೇರಿಸಿ.
ನಾನು ಪೈಪ್ಲೈನ್ ಅನ್ನು ಸರಿಪಡಿಸಿದ ನಂತರ, ನೈಜ ಫಲಿತಾಂಶಗಳು ಕಾಣಿಸಿಕೊಂಡವು.
ಮಾಡೆಲ್ಗಳು "ಸತ್ತಿರಲಿಲ್ಲ". ಅವು ಕೇವಲ ಹಾರ್ನೆಸ್ನಿಂದಾಗಿ ಅಸ್ತವ್ಯಸ್ತವಾಗಿದ್ದವು. ಸರಿಪಡಿಸಿದ ನಂತರ, ಎರಡು ಮಾಡೆಲ್ಗಳ ಗುಣಮಟ್ಟದ ನಡುವಿನ ವ್ಯತ್ಯಾಸವು ಸ್ಪಷ್ಟವಾಗಿ ಮತ್ತು ಅಳೆಯುವಂತಾಯಿತು.
ನಿಮ್ಮ AI ಇವ್ಯಾಲ್ಯೂಯೇಶನ್ ಪೈಪ್ಲೈನ್ಗಾಗಿ ಪಾಠಗಳು:
- ರಾಗ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಇಟ್ಟುಕೊಳ್ಳಿ. ಸಾರಾಂಶವು "malformed" ಎಂದು ಹೇಳಿದರೆ, ರಾಗ್ ಔಟ್ಪುಟ್ ನಿಮ್ಮ ಏಕೈಕ ಸತ್ಯದ ಮೂಲವಾಗಿದೆ.
- ವಿಫಲತೆಗೆ ಕಾರಣವನ್ನು ದಾಖಲಿಸಿ. ಕೇವಲ "malformed" ಎಂದು ಹೇಳಬೇಡಿ. "API error" ಅಥವಾ "parse error" ಎಂದು ಹೇಳಿ.
- ನಿಮ್ಮ ಪರೀಕ್ಷಾ ಮಾನದಂಡಗಳನ್ನು ಸ್ಥಿರವಾಗಿಡಿ. ಫಲಿತಾಂಶಗಳು ಉತ್ತಮವಾಗಿ ಕಾಣುವಂತೆ ಮಾಡಲು ನಿಮ್ಮ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸಬೇಡಿ.
- ಹಾರ್ನೆಸ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿರುವ ವ್ಯವಸ್ಥೆಯ (system under test) ಒಂದು ಭಾಗವೆಂದು ಪರಿಗಣಿಸಿ.
ಕೇವಲ ಮಾಡೆಲ್ ಮಾತ್ರ ಪರೀಕ್ಷೆಗೆ ಒಳಪಟ್ಟಿಲ್ಲ. ನಿಮ್ಮ ಕೋಡ್ ಕೂಡ ಹೌದು.
Source: https://dev.to/kenielzep97/your-harness-will-lie-to-you-before-your-model-does-662
Optional learning community: https://t.me/GyaanSetuAi
