ಒಂದು AI-ಸೃಷ್ಟಿಸಿದ ಕ್ರೋನ್ ಜಾಬ್ (cron job) ಹತ್ತು ಸೆಕೆಂಡ್ಗಳಿಗಿಂತ ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಒಂದು ಸ್ಟಾರ್ಟ್ಅಪ್ನಲ್ಲಿನ ಎಲ್ಲಾ ಸಕ್ರಿಯ Stripe ಚಂದಾದಾರಿಕೆಗಳನ್ನು (subscriptions) ಅಳಿಸಿಹಾಕಿತು, ಇದರಿಂದ ಕಂಪನಿಯ ಮಾಸಿಕ ಪುನರಾವರ್ತಿತ ಆದಾಯವು (MRR) ಕೇವಲ $38 ಕ್ಕೆ ಕುಸಿಯಿತು. ಈ ಘಟನೆಯು ಅಪಾಯವು ಕೋಡ್ ಬರೆದ ಭಾಷಾ ಮಾದರಿಯಲ್ಲಿ (language model) ಇಲ್ಲದೆ, ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಪೈಪ್ಲೈನ್ನಲ್ಲಿ (deployment pipeline) ಇದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ.
ಏನಾಯಿತು
ಕಳೆದ ವಾರ BridgeMindAI ತಂಡವು ಬೆಳಿಗ್ಗೆ ಎದ್ದಾಗ ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಮಾಸಿಕ ಪುನರಾವರ್ತಿತ ಆದಾಯವು (MRR) ಕೇವಲ $38 ಎಂದು ತೋರಿಸುತ್ತಿತ್ತು. ಒಂದು AI ಮಾದರಿಯು ಕೇವಲ ಒಂದು ಸಾಲಿನ ಕೋಡ್ ಅನ್ನು ಸೃಷ್ಟಿಸಿತು ಮತ್ತು ಶೆಡ್ಯೂಲರ್ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಚಲಾಯಿಸಿತು. ಆ ಸಾಲು ಪ್ರತಿಯೊಂದು ಗ್ರಾಹಕರ ದಾಖಲೆಗಾಗಿ Stripe ನ subscription-cancellation endpoint ಅನ್ನು ಕರೆಯಿತು. ಈ ಪ್ರಕ್ರಿಯೆಯು ಏಳು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮುಗಿದು ಗ್ರಾಹಕರ ನೆಲೆಗಟ್ಟನ್ನೇ (customer base) ಅಳಿಸಿಹಾಕಿತು.
ಆ ಸ್ಕ್ರಿಪ್ಟ್ ಖಾಲಿ ಇರುವ ಡಿಲೀಷನ್ ಕ್ಯೂ (deletion queue) ಅನ್ನು ಎಲ್ಲವನ್ನೂ ಅಳಿಸಲು ಸಿಕ್ಕ ಸಂಕೇತ ಎಂದು ತಪ್ಪಾಗಿ ಅರ್ಥೈಸಿಕೊಂಡಿತು. ಈ “empty = all” ಮಾದರಿಯು ಜನರೇಟಿವ್ AI ಬರುವ ಬಹಳ ಹಿಂದೆಯೇ, ಅಂದರೆ 1980 ರ ದಶಕದಿಂದಲೂ ಪ್ರೊಡಕ್ಷನ್ ಕೋಡ್ಗಳಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.
ಯಾಕೆ ಈ ಮಾದರಿಯು ತಪ್ಪಿತಸ್ಥನಲ್ಲ?
ಜನರು ತಕ್ಷಣವೇ AI ಮಾದರಿಯನ್ನು ನಂಬಲಸಾಧ್ಯವಾದುದು ಎಂದು ದೂಷಿಸಿದರು. ಆದರೆ ಮಾದರಿಯನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಈ ಅಳಿಸುವಿಕೆಯನ್ನು ತಡೆಯಲು ಸಾಧ್ಯವಿರಲಿಲ್ಲ, ಏಕೆಂದರೆ ದೋಷವು ಹ್ಯಾಲ್ಯುಸಿನೇಷನ್ (hallucination) ಅಥವಾ ಪೂರ್ವಾಗ್ರಹದಲ್ಲಿರದೆ, ಮನುಷ್ಯರು ಬರೆದ ತರ್ಕದಲ್ಲಿ (logic) ಇತ್ತು.
ನಿಜವಾದ ವೈಫಲ್ಯಗಳು ವಾಸ್ತುಶಿಲ್ಪದ (architectural) ದೋಷಗಳಾಗಿದ್ದವು:
- ಸ್ಕ್ರಿಪ್ಟ್ ಚಂದಾದಾರಿಕೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸಬಲ್ಲ ಲೈವ್ ಪ್ರೊಡಕ್ಷನ್ Stripe API ಕೀಯನ್ನು ಸಂಗ್ರಹಿಸಿತ್ತು.
- ಇದು ಯಾವುದೇ ರನ್ಟೈಮ್ ಮೇಲ್ವಿಚಾರಣೆ ಇಲ್ಲದೆ ಚಲಿಸಿತು.
- ಕೋಡ್ ಜನರೇಷನ್ ಮತ್ತು ಎಕ್ಸಿಕ್ಯೂಷನ್ ನಡುವೆ ಯಾವುದೇ ಮಾನವ ಚೆಕ್ಪಾಯಿಂಟ್ ಇರಲಿಲ್ಲ.
ಈ ಲೋಪದೋಷಗಳು ಕೇವಲ ಒಂದು ಬಗ್ (bug) ಮೂಲಕ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಆದಾಯದ ಮೂಲವನ್ನೇ ನಾಶಮಾಡಲು ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟವು.
ಯಾವುದೇ ಸ್ವಾಯತ್ತ ಪೈಪ್ಲೈನ್ಗಾಗಿ ಮೂರು ಸುರಕ್ಷತಾ ಪ್ರಶ್ನೆಗಳು
ಯಾವ ಕಾರ್ಯಾಚರಣೆಗಳು ಮರುಪರಿವರ್ತಿಸಲಾಗದವು (irreversible)? ಚಂದಾದಾರಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದು, ದಾಖಲೆಯನ್ನು ಅಳಿಸುವುದು ಅಥವಾ ಮರುಪಾವತಿ (refund) ಮಾಡುವುದು ಅಂತಹ ಕಾರ್ಯಗಳಾಗಿದ್ದು, ಇವುಗಳನ್ನು ಹಿಂಪಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇವುಗಳಿಗೆ ಕೇವಲ ಓದುವ (read-only) ಕ್ವೇರಿಗಳಿಗಿಂತ ಹೆಚ್ಚಿನ ರಕ್ಷಣೆ ಬೇಕಾಗುತ್ತದೆ.
ಏಜೆಂಟ್ ಯಾವ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು (credentials) ಹೊಂದಿದೆ? ಒಂದು ಸ್ವಾಯತ್ತ ಪ್ರಕ್ರಿಯೆಗೆ ಮಾಸ್ಟರ್ Stripe ಕೀಯನ್ನು ನೀಡುವುದು ಅನಿರ್ಬಂಧಿತ ಅಧಿಕಾರವನ್ನು ನೀಡುತ್ತದೆ. 'ಕನಿಷ್ಠ ಹಕ್ಕುಗಳ ತತ್ವ'ವನ್ನು (least-privilege principle) ಅನ್ವಯಿಸಿ: ಅಗತ್ಯವಿರುವ ಕೆಲಸವನ್ನು ಮಾತ್ರ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವ ಸ್ಕೋಪ್ಡ್ ಕೀಗಳನ್ನು (scoped keys) ಬಳಸಿ.
ಮಾನವ ಚೆಕ್ಪಾಯಿಂಟ್ ಎಲ್ಲಿದೆ? ಕೇವಲ ಕೋಡ್ ರಿವ್ಯೂ ಸಾಕಾಗುವುದಿಲ್ಲ. ಕೋಡ್ ಜನರೇಷನ್ ನಂತರ ಮತ್ತು ಯಾವುದೇ ವಿನಾಶಕಾರಿ ಕ್ರಮ ಕೈಗೊಳ್ಳುವ ಮೊದಲು ಒಂದು ಗೇಟ್ ಅನ್ನು ಸೇರಿಸಿ.
ಪ್ರಾಯೋಗಿಕ ಸುರಕ್ಷತಾ ಕ್ರಮಗಳು
- ಡ್ರೈ-ರನ್ ಗೇಟ್ (Dry-run gate) – ಯಾವುದೇ ಡಿಲೀಟ್ ಅಥವಾ ಕ್ಯಾನ್ಸಲ್ ಕರೆಯ ಮೊದಲು, ಉದ್ದೇಶಿತ ಗುರಿಗಳನ್ನು ಲಾಗ್ ಮಾಡಿ. ಪಟ್ಟಿಯು ಖಾಲಿ ಇದ್ದರೆ ಅಥವಾ ಅಸಹಜವಾಗಿ ದೊಡ್ಡದಾಗಿದ್ದರೆ, ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ಮನುಷ್ಯನಿಗೆ ಎಚ್ಚರಿಕೆ ನೀಡಿ.
- ಸ್ಕೋಪ್ಡ್ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಸ್ (Scoped credentials) – ಡಿಫಾಲ್ಟ್ ಆಗಿ ರೀಡ್-ಓನ್ಲಿ ಕೀಗಳನ್ನು ಬಳಸಿ. ಒಂದು ಕೆಲಸವು ಚಂದಾದಾರಿಕೆಯನ್ನು ರದ್ದುಗೊಳಿಸಬೇಕಾದಾಗ, ಏಕಕಾಲದಲ್ಲಿ ಕೇವಲ ಒಂದು ಗ್ರಾಹಕ ಐಡಿ (customer ID) ಮೇಲೆ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸಬಲ್ಲ ನಿರ್ಬಂಧಿತ ಕೀಯನ್ನು ರಚಿಸಿ.
- ಹ್ಯೂಮನ್-ಇನ್-ದಿ-ಲೂಪ್ ಪ್ರಾಂಪ್ಟ್ (Human-in-the-loop prompt) – Slack ನಂತಹ ಚಾನಲ್ಗೆ “ನಾನು 47 ಚಂದಾದಾರಿಕೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತಿದ್ದೇನೆ. ದೃಢೀಕರಿಸುವಿರಾ?” ಎಂಬಂತಹ ಸಣ್ಣ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಿ. ಇದರ ವೆಚ್ಚ ಅತ್ಯಲ್ಪ; ಆದರೆ ಸುರಕ್ಷತೆಯ ಲಾಭ ಅಪಾರ.
ಈ ಕ್ರಮಗಳು ಯಾವ ಮಾದರಿಯು ಕೋಡ್ ಬರೆಯುತ್ತದೆ ಎಂಬುದರ ಪರಿಗಣನೆ ಇಲ್ಲದೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ, ಏಕೆಂದರೆ ಅವು ಜನರೇಟರ್ ಅನ್ನು ರಕ್ಷಿಸುವುದಿಲ್ಲ, ಬದಲಾಗಿ ಎಕ್ಸಿಕ್ಯೂಷನ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು (execution environment) ರಕ್ಷಿಸುತ್ತವೆ.
ಸ್ವಾಯತ್ತ ಏಜೆಂಟ್ಗಳಿಗಾಗಿ ಪ್ರೊಡಕ್ಷನ್ ಚೆಕ್ಲಿಸ್ಟ್
- ಪ್ರತಿಯೊಂದು ಕಾರ್ಯಾಚರಣೆಯನ್ನು read, reversible, ಅಥವಾ irreversible ಎಂದು ವರ್ಗೀಕರಿಸಿ.
- ಎಲ್ಲಾ irreversible ಕ್ರಮಗಳಿಗೆ ಸ್ಪಷ್ಟವಾದ ಮಾನವ ಅನುಮೋದನೆಯನ್ನು ಪಡೆಯಿರಿ.
- ಕೆಲಸಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಕನಿಷ್ಠ ಅನುಮತಿಗಳಿಗೆ ಮಾತ್ರ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳನ್ನು ಸೀಮಿತಗೊಳಿಸಿ.
- ದಾಖಲೆಗಳನ್ನು ಅಳಿಸುವ ಅಥವಾ ಮಾರ್ಪಡಿಸುವ ಲೂಪ್ಗಳ ಮೇಲೆ ಗಾತ್ರದ ಮಿತಿಗಳನ್ನು (size limits) ವಿಧಿಸಿ.
- ಏಜೆಂಟ್ಗಳನ್ನು ಮೊದಲು ಪ್ರೊಡಕ್ಷನ್ ಡೇಟಾವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ನಲ್ಲಿ (sandbox) ಚಲಾಯಿಸಿ; ಲೈವ್ ಡೇಟಾವನ್ನು ಬಳಸುವ ಮೊದಲು ಫಲಿತಾಂಶವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಎಕ್ಸಿಕ್ಯೂಷನ್ ಮಾಡುವ ಮೊದಲು ಏಜೆಂಟ್ನ ಯೋಜನೆಯನ್ನು ಸರಳ ಭಾಷೆಯಲ್ಲಿ ಲಾಗ್ ಮಾಡಿ, ಇದರಿಂದ ಪರಿಶೀಲಕರು (reviewer) ಉದ್ದೇಶವನ್ನು ಒಮ್ಮೆಲೇ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು.
ಈ ಚೆಕ್ಲಿಸ್ಟ್ ಅನ್ನು ಅನುಸರಿಸುವುದರಿಂದ, "ಒಮ್ಮೆ ಚಲಾಯಿಸಿ ಮರೆತುಬಿಡುವ" ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ತಪಾಸಣೆ ಮಾಡಬಹುದಾದ ಮತ್ತು ಏನಾದರೂ ತಪ್ಪಾದಲ್ಲಿ ನಿಲ್ಲಿಸಬಹುದಾದ ನಿಯಂತ್ರಿತ ವರ್ಕ್ಫ್ಲೋ ಆಗಿ ಪರಿವರ್ತಿಸಬಹುದು.
ಪಾಠ ಸ್ಪಷ್ಟವಾಗಿದೆ: ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಂಬಿ, ಮಾದರಿಯನ್ನಲ್ಲ.
