LLM ಗೇಟ್ವೇಗಳು: ರೂಟಿಂಗ್, ಫಾಲ್ಬ್ಯಾಕ್ಗಳು ಮತ್ತು ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್
ಒಂದು ಸಾಲಿನ ಕೋಡ್ ನಿಮ್ಮ AI ಬಜೆಟ್ ಅನ್ನು ಹಾಳುಮಾಡಬಹುದು.
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ನೀವು ಕೇವಲ ಒಂದು ಮಾಡೆಲ್ ಪ್ರೊವೈಡರ್ ಅನ್ನು ಹಾರ್ಡ್ಕೋಡ್ ಮಾಡಿದರೆ, ನೀವು ಮೂರು ಅಪಾಯಗಳನ್ನು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ:
- ಸರಳ ಕೆಲಸಗಳಿಗೆ ಹೆಚ್ಚಿನ ವೆಚ್ಚ.
- ಪ್ರೊವೈಡರ್ ಕೆಲಸ ಮಾಡದಿದ್ದಾಗ ಸಂಪೂರ್ಣ ಸೇವೆಯ ವ್ಯತ್ಯಯ (outages).
- ಒಂದೇ ಉತ್ತರಕ್ಕಾಗಿ ಸಾವಿರಾರು ಬಾರಿ ಹಣ ಪಾವತಿಸುವುದು.
LLM ಗೇಟ್ವೇಯು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ನಿಮ್ಮ ಮಾಡೆಲ್ಗಳ ನಡುವೆ ಪ್ರೊಕ್ಸಿ (proxy) ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ರೂಟಿಂಗ್, ಫಾಲ್ಬ್ಯಾಕ್ಗಳು ಮತ್ತು ಕ್ಯಾಶಿಂಗ್ ಎಂಬ ಮೂರು ಪ್ರಮುಖ ಕೆಲಸಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
- ರೂಟಿಂಗ್ (Routing) ಹೆಚ್ಚಿನ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯನ್ನು (request) ಅತ್ಯಂತ ದುಬಾರಿ ಮಾಡೆಲ್ಗೆ ಕಳುಹಿಸುತ್ತವೆ. ಇದು ವ್ಯರ್ಥ. ಸುಲಭವಾದ ಕೆಲಸಗಳನ್ನು ಅಗ್ಗದ ಮಾಡೆಲ್ಗಳಿಗೆ ಕಳುಹಿಸಲು ರೂಟಿಂಗ್ ಬಳಸಿ.
- ಸ್ಟ್ಯಾಟಿಕ್ ರೂಟಿಂಗ್: ಬಳಕೆದಾರರ ಹಂತಗಳು (tiers) ಅಥವಾ ಕೆಲಸದ ಪ್ರಕಾರಗಳ ಆಧಾರದ ಮೇಲೆ ನಿಯಮಗಳನ್ನು ಬಳಸಿ.
- ವೆಚ್ಚ/ಲ್ಯಾಟೆನ್ಸಿ ರೂಟಿಂಗ್: ಲಭ್ಯವಿರುವ ಅತ್ಯಂತ ವೇಗವಾದ ಅಥವಾ ಅಗ್ಗದ ಮಾಡೆಲ್ ಅನ್ನು ಆರಿಸಿ.
- ಕಠಿಣತೆಯ ರೂಟಿಂಗ್: ಒಂದು ಕೆಲಸಕ್ಕೆ ದೊಡ್ಡ ಮಾಡೆಲ್ ಅಗತ್ಯವಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಸಣ್ಣ ಮಾಡೆಲ್ ಬಳಸಿ. ಸ್ಮಾರ್ಟ್ ರೂಟಿಂಗ್ ಮೂಲಕ ವೆಚ್ಚವನ್ನು 80% ಕ್ಕಿಂತ ಹೆಚ್ಚು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ಗುಣಮಟ್ಟವನ್ನು ಎತ್ತಿಡಬಹುದು ಎಂದು ಸಂಶೋಧನೆಗಳು ತೋರಿಸುತ್ತವೆ.
- ಫಾಲ್ಬ್ಯಾಕ್ಗಳು (Fallbacks) ಪ್ರೊವೈಡರ್ಗಳು ವಿಫಲವಾಗಬಹುದು. ಅವರು ರೇಟ್ ಲಿಮಿಟ್ಗಳನ್ನು ತಲುಪಬಹುದು ಅಥವಾ ಆಫ್ಲೈನ್ ಆಗಬಹುದು. ಗೇಟ್ವೇಯು ಫಾಲ್ಬ್ಯಾಕ್ ಚೈನ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ ಮಾಡೆಲ್ ವಿಫಲವಾದರೆ, ಗೇಟ್ವೇಯು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಮ್ಮ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಮುಂದಿನ ಮಾಡೆಲ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಸೇವೆಯ ವ್ಯತ್ಯಯವನ್ನು (outages) ಮತ್ತಷ್ಟು ಉಲ್ಬಣಗೊಳಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು, ಈ ಮಾದರಿಗಳನ್ನು ಬಳಸಿ:
- ಎಕ್ಸ್ಪೊನೆನ್ಶಿಯಲ್ ಬ್ಯಾಕ್ರಾಫ್ (Exponential backoff): ಕಷ್ಟದಲ್ಲಿರುವ ಪ್ರೊವೈಡರ್ ಮೇಲೆ ಹೆಚ್ಚಿನ ಒತ್ತಡ ಬರದಂತೆ ಮಾಡಲು ಮರುಪ್ರಯತ್ನಗಳ (retries) ನಡುವೆ ಸಮಯದ ಅಂತರವನ್ನು ಇರಿಸಿ.
- ಸರ್ಕ್ಯೂಟ್ ಬ್ರೇಕಿಂಗ್ (Circuit breaking): ವಿಫಲವಾಗುತ್ತಿರುವ ಪ್ರೊವೈಡರ್ಗೆ ಟ್ರಾಫಿಕ್ ಕಳುಹಿಸುವುದನ್ನು ನಿರ್ದಿಷ್ಟ ಅವಧಿಯವರೆಗೆ ನಿಲ್ಲಿಸಿ. ಇದು ಟೈಮೌಟ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಬದಲು ತಕ್ಷಣವೇ ಫೇಲ್ಓವರ್ (failover) ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್ (Semantic Caching) ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಕ್ಯಾಶಿಂಗ್ ನಿಖರವಾದ ಪಠ್ಯದ ಹೊಂದಾಣಿಕೆಯನ್ನು (exact text matches) ಹುಡುಕುತ್ತದೆ. ಬಳಕೆದಾರರು ಪ್ರಶ್ನೆಗಳನ್ನು ವಿಭಿನ್ನವಾಗಿ ಕೇಳುವುದರಿಂದ ಇದು LLMಗಳಿಗೆ ಅನ್ವಯಿಸುವುದಿಲ್ಲ. ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್ ಅರ್ಥವನ್ನು ಗಮನಿಸುತ್ತದೆ. ಇದು ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ನಲ್ಲಿ ಅಂತಹದೇ ಪ್ರಶ್ನೆ ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ.
- ಪ್ರಯೋಜನ: ಕ್ಯಾಶ್ ಹಿಟ್ (cache hit) ಕೇವಲ 5ms ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ವೆಚ್ಚ $0 ಆಗಿರುತ್ತದೆ. ಮಾಡೆಲ್ ಕಾಲ್ ಮಾಡಲು ಸೆಕೆಂಡುಗಳು ಬೇಕಾಗುತ್ತವೆ ಮತ್ತು ಟೋಕನ್ಗಳ ವೆಚ್ಚವಾಗುತ್ತದೆ.
- ಅಪಾಯ: ನಿಮ್ಮ ಸಿಮ್ಯುಲಾರಿಟಿ ಥ್ರೆಶೋಲ್ಡ್ (similarity threshold) ಅನ್ನು ತುಂಬಾ ಕಡಿಮೆ ಇರಿಸಿಕೊಂಡರೆ ತಪ್ಪು ಉತ್ತರಗಳು ಬರಬಹುದು. ಥ್ರೆಶೋಲ್ಡ್ ತುಂಬಾ ಸಡಿಲವಾಗಿದ್ದರೆ, "ಪಾಸ್ವರ್ಡ್ ರಿಸೆಟ್ ಮಾಡುವುದು" ಎಂಬ ಪ್ರಶ್ನೆಗೆ "ಇಮೇಲ್ ಬದಲಾಯಿಸುವುದು" ಎಂಬ ಉತ್ತರ ಬರಬಹುದು.
ನಿರ್ಮಿಸಬೇಕೆ ಅಥವಾ ಖರೀದಿಸಬೇಕೆ?
- ನಿರ್ಮಿಸಿ (Build): ಮೂಲಭೂತ ಫಾಲ್ಬ್ಯಾಕ್ಗಳು ಅಥವಾ ಎಕ್ಸಾಕ್ಟ್-ಮ್ಯಾಚ್ ಕ್ಯಾಶಿಂಗ್ನಂತಹ ಸರಳ ಅಗತ್ಯಗಳಿಗೆ ಇದು ಉತ್ತಮ.
- ಖರೀದಿಸಿ/ಓಪನ್ ಸೋರ್ಸ್ (Buy/Open Source): ನಿಮಗೆ ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್, ಅಬ್ಸರ್ವೇಬಿಲಿಟಿ (observability) ಮತ್ತು ಸಂಕೀರ್ಣ ಫೇಲ್ಓವರ್ ಲಾಜಿಕ್ ಅಗತ್ಯವಿದ್ದಾಗ LiteLLM ನಂತಹ ಪರಿಕರಗಳನ್ನು ಅಥವಾ ಮ್ಯಾನೇಜ್ಡ್ ಸರ್ವಿಸ್ಗಳನ್ನು ಬಳಸಿ.
ಗೇಟ್ವೇಯು ಒಂದು ಮೂಲಸೌಕರ್ಯವೇ ಹೊರತು ಕೇವಲ ಒಂದು ಫೀಚರ್ ಅಲ್ಲ. ನಿಮ್ಮ ಕೋಡ್ಬೇಸ್ನಾದ್ಯಂತ ಮಾಡೆಲ್ ಕಾಲ್ಗಳನ್ನು ಹರಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ನಿಮ್ಮ ವೆಚ್ಚ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ಮುಂದೆ ಒಂದು ಗೇಟ್ ಅನ್ನು ಇರಿಸಿ.
Source: https://dev.to/nazar_boyko/llm-gateways-routing-fallbacks-and-semantic-caching-1n2b
Optional learning community: https://t.me/GyaanSetuAi