AI ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಮತ್ತು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು
ವಿತರಿಸಿದ (Distributed) AI ವ್ಯವಸ್ಥೆಗಳು ಸಂಕೀರ್ಣವಾಗಿವೆ. ಅವು ಬೃಹತ್ ಪ್ರಮಾಣದ ವಿನಂತಿಗಳನ್ನು (requests) ಮತ್ತು ಭಾರೀ ಮಾಡೆಲ್ ಇನ್ಫರೆನ್ಸ್ (model inference) ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ. ನೀವು GPU ಕ್ಲಸ್ಟರ್ಗಳು, ಡೇಟಾಬೇಸ್ಗಳು ಮತ್ತು ಥರ್ಡ್-ಪಾರ್ಟಿ API ಗಳ ಮೇಲೆ ಅವಲಂಬಿತರಾಗಿರುತ್ತೀರಿ. ಒಂದು ಕೆಟ್ಟ ಘಟಕ ಅಥವಾ ಟ್ರಾಫಿಕ್ ಏರಿಕೆ ನಿಮ್ಮ ಇಡೀ ವ್ಯವಸ್ಥೆಯನ್ನು ಕುಸಿಯುವಂತೆ ಮಾಡಬಹುದು.
ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯನ್ನು ರಕ್ಷಿಸಲು ನಿಮಗೆ ಎರಡು ಪರಿಕರಗಳ ಅಗತ್ಯವಿದೆ: ರೇಟ್ ಲಿಮಿಟಿಂಗ್ (rate limiting) ಮತ್ತು ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು (circuit breakers).
ರೇಟ್ ಲಿಮಿಟಿಂಗ್ (Rate Limiting) ರೇಟ್ ಲಿಮಿಟಿಂಗ್ ಒಬ್ಬ ವ್ಯಕ್ತಿ ಅಥವಾ ಸೇವೆಯು ಅತಿಯಾದ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸದಂತೆ ತಡೆಯುತ್ತದೆ. ಇದು ಎಲ್ಲರಿಗೂ ಸಮಾನವಾದ ಪ್ರವೇಶವನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಸಾಮಾನ್ಯ ವಿಧಾನಗಳು:
- Token Bucket: AI ಗೆ ಅತ್ಯುತ್ತಮವಾದುದು. ಇದು ಸ್ಥಿರವಾದ ಸರಾಸರಿಯನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುವಾಗ ಅಲ್ಪಾವಧಿಯ ಚಟುವಟಿಕೆಗಳ ಏರಿಕೆಯನ್ನು (bursts) ಅನುಮತಿಸುತ್ತದೆ.
- Leaky Bucket: ವಿನಂತಿಗಳ ನಿರಂತರ ಹರಿವನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುತ್ತದೆ.
- Fixed Window: ಸರಳವಾಗಿದೆ ಆದರೆ ಹೊಸ ವಿಂಡೋ ಪ್ರಾರಂಭದಲ್ಲಿ ಏರಿಕೆಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು.
- Sliding Window: Fixed windows ಗಿಂತ ಹೆಚ್ಚು ನಿಖರವಾಗಿದೆ.
AI ಗಾಗಿ ಪ್ರೊ ಟಿಪ್ (Pro tip): ಕೇವಲ ವಿನಂತಿಗಳ ಮೂಲಕವಲ್ಲದೆ, ಟೋಕನ್ ಸಂಖ್ಯೆಯ ಮೂಲಕ ಮಿತಿ ನಿಗದಿಪಡಿಸಿ. 10 ಟೋಕನ್ಗಳಿರುವ ಪ್ರಾಂಪ್ಟ್ಗಿಂತ 4,000 ಟೋಕನ್ಗಳಿರುವ ಒಂದು ಪ್ರಾಂಪ್ಟ್ ಹೆಚ್ಚು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬಳಸುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ಗಳು (Circuit Breakers) ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕರ್ ನಿಮ್ಮ GPU ಸರ್ವರ್ ಅಥವಾ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ನಂತಹ ಸೇವೆಗಳಿಗೆ ಮಾಡುವ ಕರೆಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ. ಒಂದು ವೇಳೆ ಸೇವೆ ಪದೇ ಪದೇ ವಿಫಲವಾದರೆ, ಬ್ರೇಕರ್ ತೆರೆಯುತ್ತದೆ (opens). ಇದು ಆ ಸೇವೆಗೆ ಮಾಡುವ ಎಲ್ಲಾ ಕರೆಗಳನ್ನು ತಕ್ಷಣವೇ ನಿಲ್ಲಿಸುತ್ತದೆ. ಇದು ಇಡೀ ವ್ಯವಸ್ಥೆಯ ಕುಸಿತವನ್ನು ತಡೆಯುತ್ತದೆ.
ಸರ್ಕ್ಯೂಟ್ ಮೂರು ಸ್ಥಿತಿಗಳನ್ನು ಅನುಸರಿಸುತ್ತದೆ:
- Closed: ಎಲ್ಲವೂ ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದೆ.
- Open: ಸೇವೆ ವಿಫಲವಾಗುತ್ತಿದೆ. ಕರೆಗಳು ತಕ್ಷಣವೇ ವಿಫಲವಾಗುತ್ತವೆ ಅಥವಾ ಫಾಲ್ಬ್ಯಾಕ್ (fallback) ಬಳಸುತ್ತವೆ.
- Half-Open: ವ್ಯವಸ್ಥೆಯು ಸೇವೆವು ಚೇತರಿಸಿಕೊಂಡಿದೆಯೇ ಎಂದು ಪರೀಕ್ಷಿಸುತ್ತದೆ.
ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು:
- ನಿಧಾನಗತಿಯ ಕರೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ. ಒಂದು LLM ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದ್ದರೆ, ಅದನ್ನು ವಿಫಲತೆಯೆಂದು ಪರಿಗಣಿಸಿ.
- ದೋಷದ ಪ್ರಕಾರಗಳನ್ನು (error types) ಪ್ರತ್ಯೇಕಿಸಿ. 400 Bad Request ನಂತಹ ಬಳಕೆದಾರರ ದೋಷಗಳಿಗಾಗಿ ಬ್ರೇಕರ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಡಿ. ಕೇವಲ ಕನೆಕ್ಷನ್ ದೋಷಗಳು ಅಥವಾ ಟೈಮ್ಔಟ್ಗಳಿಗಾಗಿ ಮಾತ್ರ ಅದನ್ನು ಬಳಸಿ.
Optional learning community: https://t.me/GyaanSetuAi