CodeVetter ನ v1 ಬೆಂಚ್‌ಮಾರ್ಕ್ 27 ಕೃತಕ ಪ್ರಕರಣಗಳನ್ನು (synthetic cases) AI-ಚಾಲಿತ ಕೋಡ್-ರಿವ್ಯೂ ಪೈಪ್‌ಲೈನ್ ಮೂಲಕ ನಡೆಸುತ್ತದೆ ಮತ್ತು ಅಳವಡಿಸಲಾದ ಬಗ್‌ಗಳನ್ನು (bugs) ಪರಿಕರವು ಪತ್ತೆಹಚ್ಚುತ್ತದೆಯೇ ಎಂದು ದಾಖಲಿಸುತ್ತದೆ. ನಂತರ ಅದು ಪ್ರತಿ ಪ್ರಕರಣಕ್ಕೆ ಪಾಸ್ ಅಥವಾ ಫೇಲ್ ಅನ್ನು ಲೆಕ್ಕಹಾಕುತ್ತದೆ.

ಈ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಏಕೆ ಮುಖ್ಯ

ಈ ಪರೀಕ್ಷೆಯು ಒಂದು ನಿರ್ದಿಷ್ಟ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತದೆ: ಬೆಂಚ್‌ಮಾರ್ಕ್ ವಿನ್ಯಾಸಕರು ಈ ನಿಗದಿತ ಸ್ನಿಪ್ಪೆಟ್‌ಗಳಲ್ಲಿ (snippets) ಅಳವಡಿಸಿರುವ ನಿಖರವಾದ ದೋಷಗಳನ್ನು (defects) ನೀಡಲಾದ ರಿವ್ಯೂವರ್ ಗುರುತಿಸಬಲ್ಲನೇ? ಡೆವಲಪರ್‌ಗಳು ಈ ಫಲಿತಾಂಶವನ್ನು ಇಶ್ಯೂ ಕವರೇಜ್‌ನ (issue coverage) ತ್ವರಿತ ಪರಿಶೀಲನೆಯಾಗಿ ಬಳಸಬಹುದು. ರೆಪೊಸಿಟರಿಯು ಟಾಸ್ಕ್ ಪ್ಯಾಕೇಜ್‌ಗಳು ಮತ್ತು ಸ್ಕೋರಿಂಗ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವುದರಿಂದ, ಯಾರೇ ಆಗಲಿ ಪರೀಕ್ಷೆಯನ್ನು ಮರುಪ್ರದರ್ಶಿಸಬಹುದು ಮತ್ತು ಅದೇ ಅಂಕಿಅಂಶಗಳನ್ನು ಪಡೆಯಬಹುದು.

ಈ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಏನನ್ನು ಸಾಬೀತುಪಡಿಸುವುದಿಲ್ಲ

27 ಪ್ರಕರಣಗಳ ಕೃತಕ ಸೂಟ್ (synthetic suite), ಒಂದು ತಂಡವು ಪ್ರತಿದಿನ ನಿರ್ವಹಿಸುವ ಸಾವಿರಾರು ಪುಲ್ ರಿಕ್ವೆಸ್ಟ್‌ಗಳಿಗೆ (pull requests) ಪರ್ಯಾಯವಲ್ಲ. ಈ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಈ ಕೆಳಗಿನವುಗಳ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ:

  • ನೈಜ-ಪ್ರಪಂಚದ ವೈವಿಧ್ಯತೆ – ಇದು ಕೇವಲ ಕೆಲವು ಭಾಷೆಗಳನ್ನು ಮತ್ತು ಸೀಮಿತ ಬಗ್ ವರ್ಗಗಳನ್ನು ಮಾತ್ರ ಒಳಗೊಂಡಿದೆ.
  • ಕಾರ್ಯಕ್ಷಮತೆ – ಇದು ಸಮಯ ಅಥವಾ ಕಂಪ್ಯೂಟ್-ವೆಚ್ಚದ (compute-cost) ಅಳತೆಗಳನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ.
  • ಕೋಡ್ ಬೇಸ್‌ಗಳಾದ್ಯಂತ ವಿಶ್ವಾಸಾರ್ಹತೆ – ಲೈವ್-ರೆಪೊ (live-repo) ಪರೀಕ್ಷೆಯಿಲ್ಲದೆ, ಪರಿಕರವು ಸೂಕ್ಷ್ಮ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸುತ್ತದೆಯೇ ಅಥವಾ ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ತಪ್ಪು ಪಾಸಿಟಿವ್‌ಗಳನ್ನು (false positives) ಸೃಷ್ಟಿಸುತ್ತದೆಯೇ ಎಂದು ನಮಗೆ ತಿಳಿಯಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಪ್ರಕಟಿತ ಫಲಿತಾಂಶಗಳನ್ನು ಮೂಲಸೌಕರ್ಯ ಫೈಲ್‌ಗಳು ಮತ್ತು ಭವಿಷ್ಯದ "ವ್ಯಾಪಕ, ವಾಸ್ತವಿಕ ಡೇಟಾ" ಎಂಬ ಭರವಸೆಗಳೊಂದಿಗೆ ಬೆರೆಸುವುದರಿಂದ, ಆ ಒಂದೇ ಸ್ಕೋರ್ ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ ಸಾಮರ್ಥ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಎಂಬ ಮಾರ್ಕೆಟಿಂಗ್ ನಿರೂಪಣೆಯನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ, ಆದರೆ ಡೇಟಾ ಅದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.

ಈ ಬೆಂಚ್‌ಮಾರ್ಕ್ ವಿಶಾಲವಾದ ಟೆಸ್ಟಿಂಗ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಹೇಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ

CodeVetter ನಂತಹುት ರೆಕಗ್ನಿಷನ್-ಶೈಲಿಯ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳು ಒಂದು ಪರಿಕರವು ನಿರ್ವಹಿಸಬಲ್ಲ ವ್ಯಾಪ್ತಿಯನ್ನು (surface area) ಗುರುತಿಸುತ್ತವೆ. ಅವು SWE-bench ನಂತಹ ಫಂಕ್ಷನಲ್ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳಿಗೆ ಪೂರಕವಾಗಿವೆ, ಇವು AI-ಸೃಷ್ಟಿಸಿದ ಪ್ಯಾಚ್ (patch) ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಬೇಸ್‌ನಲ್ಲಿನ ನೈಜ ಸಮಸ್ಯೆಯನ್ನು ವಾಸ್ತವವಾಗಿ ಪರಿಹರಿಸುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತವೆ. ಇವೆರಡೂ ಒಟ್ಟಾಗಿ ಒಂದು ಸಂಪೂರ್ಣ ಚಿತ್ರಣವನ್ನು ನೀಡುತ್ತವೆ: ಕವರೇಜ್ ಮತ್ತು ಪರಿಣಾಮಕಾರಿತ್ವದ ನಡುವಿನ ವ್ಯತ್ಯಾಸ.

ಒಂದು ಉತ್ತಮ ಏಜೆಂಟ್ ಬೆಂಚ್‌ಮಾರ್ಕ್ ಪೂರ್ಣ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಬೇಕು:

  1. ಡೇಟಾಸೆಟ್ – ಕಚ್ಚಾ ಇನ್‌ಪುಟ್‌ಗಳು ಮತ್ತು ನಿರೀಕ್ಷಿತ ಔಟ್‌ಪುಟ್‌ಗಳು.
  2. ಪ್ರತಿ ಪ್ರಕರಣದ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ – ಪ್ರತಿ ಪರೀಕ್ಷೆಯ ಬಗ್, ಸರಿಯಾದ ಪರಿಹಾರ ಮತ್ತು ಪರಿಕರದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ತೋರಿಸುವ ಒಂದು ಪುಟ.
  3. ರಿವ್ಯೂವರ್ ಔಟ್‌ಪುಟ್‌ಗಳು – AI ಸೃಷ್ಟಿಸಿದ ನಿಖರವಾದ ಕಾಮೆಂಟ್‌ಗಳು ಅಥವಾ ಸಲಹೆಗಳು.
  4. ಸ್ಕೋರಿಂಗ್ ವಿಧಾನ – ಪಾರ್ಶಿಯಲ್ ಕ್ರೆಡಿಟ್‌ಗಾಗಿ ಸಹಿಷ್ಣುತೆಯನ್ನು ಒಳಗೊಂಡಂತೆ, ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಹೇಗೆ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ ಎಂಬುದು.
  5. ಮರುಹೊಂದು ಬಾರಿ ಮಾಡುವ ಸೂಚನೆಗಳು (Reproducibility instructions) – ವರ್ಷನ್ ಪಿನ್‌ಗಳು, ಹಾರ್ಡ್‌ವೇರ್ ವಿವರಗಳು ಮತ್ತು ಪರೀಕ್ಷೆಯನ್ನು ಮರುಪ್ರದರ್ಶಿಸಲು ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು.

ಈ ಎಲ್ಲಾ ಅಂಶಗಳು ಪಾರದರ್ಶಕವಾಗಿದ್ದಾಗ ಮಾತ್ರ ನಾವು ಒಂದೇ ಒಟ್ಟು ಸ್ಕೋರ್‌ನ (aggregate score) ಮೇಲೆ ನಂಬಿಕೆ ಇಡಬಹುದು.

ಬೆಂಚ್‌ಮಾರ್ಕ್ ತಾನೇ ಪಟ್ಟಿ ಮಾಡುವ ಮಿತಿಗಳು

  • ಲೈವ್ ರೆಪೊಸಿಟರಿಗಳಿಂದ ಪಡೆಯದ ಕೃತಕ ಪ್ರಕರಣಗಳು.
  • ಸೀಮಿತ ಭಾಷೆ ಮತ್ತು ಬಗ್-ಟೈಪ್ ಆಯ್ಕೆಗಳು.
  • ಸಮಯ ಅಥವಾ ವೆಚ್ಚದ ಡೇಟಾ ಇಲ್ಲದ ಕಾರಣ, ದಕ್ಷತೆಯು ತಿಳಿದಿಲ್ಲ.
  • ಗಡಿಬಿಡಿಯ ವೈಫಲ್ಯಗಳನ್ನು (borderline failures) ಮರೆಮಾಚಬಹುದಾದ ನಿಖರತೆಯ ಮಿತಿಗಳು.

ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು

CodeVetter ಗಾಗಿ—ಮತ್ತು AI ರಿವ್ಯೂರ್‌ಗಳನ್ನು ಬಳಸುವ ಯಾರಿಗಾದರೂ—ಮುಂದಿನ ಹಂತವೆಂದರೆ ದೊಡ್ಡದಾದ, ಹೆಚ್ಚು ವೈವಿಧ್ಯಮಯ ಕಾರ್ಪರಾಗಳಲ್ಲಿ (corpora) ಪುನರಾವರ್ತಿತ ಪುರಾವೆಗಳನ್ನು ಒದಗಿಸುವುದು. ಅಂದರೆ ನೈಜ ಪುಲ್-ರಿಕ್ವೆಸ್ಟ್ ಸ್ಟ್ರೀಮ್‌ಗಳ ಮೇಲೆ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಕಟಿಸುವುದು, ವಿಳಂಬ (latency) ಮತ್ತು ಕಂಪ್ಯೂಟ್ ಬಳಕೆಯನ್ನು ವರದಿ ಮಾಡುವುದು ಮತ್ತು ವೈಫಲ್ಯದ ವಿಧಾನಗಳನ್ನು ವರ್ಗಗಳಾಗಿ ವಿಂಗಡಿಸುವುದು ಎಂದರ್ಥ. ಅಂತಹ ಡೇಟಾ ಲಭ್ಯವಾಗುವವರೆಗೆ, 27 ಪ್ರಕರಣಗಳ ಸ್ಕೋರ್ ಅನ್ನು ಆರಂಭಿಕ ಸೂಚಕ ಎಂದು ಪರಿಗಣಿಸಿ, ಸಿದ್ಧತೆಯ ಗ್ಯಾರಂಟಿ ಎಂದು ಭಾವಿಸಬೇಡಿ.

ಸಾರಾಂಶ: ಒಂದು ಪರಿಕರವು ಕೆಲವು ಮೊದಲೇ ಬರೆದ ಬಗ್‌ಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಬಲ್ಲದೇ ಎಂದು ಮಾತ್ರ ತಿಳಿಸುವ ಬೆಂಚ್‌ಮಾರ್ಕ್, ಸ್ಯಾನಿಟಿ-ಚೆಕಿಂಗ್‌ಗೆ (sanity-checking) ಉಪಯುಕ್ತವಾಗಿದೆ, ಆದರೆ ಅದು ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ ರಿವ್ಯೂನ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ಮತ್ತು ವೆಚ್ಚ-ಸಂವೇದನಾಶೀಲ ವಾಸ್ತವದಲ್ಲಿ ಪರಿಕರವು ಯಶಸ್ವಿಯಾಗಬಲ್ಲದು ಎಂದು ಪ್ರಮಾಣೀಕರಿಸುವುದಿಲ್ಲ.