ಸ್ಟ್ರೀಮಿಂಗ್ ಮತ್ತು ಕ್ಯಾಶಿಂಗ್ ಮೂಲಕ ನಾನು AI Latency ಅನ್ನು ಹೇಗೆ ಸರಿಪಡಿಸಿದೆ

ನಾನು ಒಬ್ಬ ಕ್ಲೈಂಟ್‌ಗಾಗಿ ಚಾಟ್ ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ಅದು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡಲಿಲ್ಲ.

ಬಳಕೆದಾರರು ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತಿದ್ದರು. ಅವರು 15 ಸೆಕೆಂಡುಗಳ ಕಾಲ ಕಾಯುತ್ತಿದ್ದರು. ಅವರಿಗೆ ಖಾಲಿ ಪರದೆ ಕಾಣಿಸುತ್ತಿತ್ತು. ನಂತರ ಅವರು ಹೊರಟುಹೋಗುತ್ತಿದ್ದರು. ಕ್ಲೈಂಟ್‌ಗೆ ಇದು ಅತೃಪ್ತಿ ತಂದಿತು.

ಸಮಸ್ಯೆ AI ಮಾಡೆಲ್ ಆಗಿರಲಿಲ್ಲ. ಸಮಸ್ಯೆ ನನ್ನ ಕೋಡ್ ಆಗಿತ್ತು. ಬಳಕೆದಾರರಿಗೆ ಏನನ್ನೂ ತೋರಿಸುವ ಮೊದಲು ನಾನು ಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯುತ್ತಿದ್ದೆ.

ನಾನು ಹಲವಾರು ಪರಿಹಾರಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ. Async ಸಹಾಯ ಮಾಡಲಿಲ್ಲ. ನಿಖರವಾದ ಪಠ್ಯವನ್ನು ಕ್ಯಾಶ್ ಮಾಡುವುದು (Caching exact text) ಕೇವಲ FAQs ಗೆ ಮಾತ್ರ ಕೆಲಸ ಮಾಡಿತು. ಟೋಕನ್ ಸಂಖ್ಯೆಯನ್ನು ಮಿತಿಗೊಳಿಸುವುದು ಉತ್ತರಗಳನ್ನು ನಿರುಪಯುಕ್ತವಾಗಿಸಿತು.

ನಾನು ಎರಡು ವಿಧಾನಗಳನ್ನು ಬಳಸಿ ಇದನ್ನು ಪರಿಹರಿಸಿದೆ.

  1. ಸ್ಟ್ರೀಮಿಂಗ್ (Streaming)

ಹೆಚ್ಚಿನ AI APIs ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ. ಪಠ್ಯದ ಇಡೀ ಭಾಗಕ್ಕಾಗಿ ಕಾಯುವ ಬದಲು, ನೀವು ಸಣ್ಣ ತುಣುಕುಗಳನ್ನು (chunks) ಪಡೆಯುತ್ತೀರಿ. ಈ ತುಣುಕುಗಳು ಬಂದ ತಕ್ಷಣ ನೀವು ಅವುಗಳನ್ನು ತೋರಿಸಬಹುದು.

ಮೊದಲ ಪದವು 300ms ನಲ್ಲೇ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಪೂರ್ಣ ಉತ್ತರಕ್ಕೆ ಇನ್ನೂ ಸಮಯ ಬೇಕಾಗಬಹುದು, ಆದರೆ ಬಳಕೆದಾರರು ತಕ್ಷಣವೇ ಪ್ರಗತಿಯನ್ನು ನೋಡುತ್ತಾರೆ. ಇದು ಬಳಕೆದಾರರನ್ನು ತೊಡಗಿಸಿಕೊಳ್ಳುವಂತೆ ಮಾಡುತ್ತದೆ.

  1. ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್ (Semantic Caching)

ಬಳಕೆದಾರರು ಹೆಚ್ಚಾಗಿ ಒಂದೇ ರೀತಿಯ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುತ್ತಾರೆ. ನಾನು ಅರ್ಥವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಕ್ಯಾಶ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ.

ನಾನು sentence embeddings ಮತ್ತು vector database ಅನ್ನು ಬಳಸುತ್ತೇನೆ. API ಅನ್ನು ಕರೆಯುವ ಮೊದಲು, ನನ್ನ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಅಂತಹದೇ ಪ್ರಶ್ನೆ ಇದೆಯೇ ಎಂದು ನಾನು ಪರಿಶೀಲಿಸುತ್ತೇನೆ.

ಒಂದು ವೇಳೆ ಹೊಂದಾಣಿಕೆಯ ಪ್ರಶ್ನೆ ಇದ್ದರೆ, ನಾನು 10ms ನಲ್ಲೇ ಉತ್ತರವನ್ನು ನೀಡುತ್ತೇನೆ. ಇದು ನನ್ನ 30% ಬಳಕೆದಾರರಿಗೆ API ಕರೆಯುವ ಅಗತ್ಯವನ್ನು ತಪ್ಪಿಸಿತು.

ಫಲಿತಾಂಶಗಳು:

• ಸ್ಟ್ರೀಮಿಂಗ್ ನೈಜ-ಸಮಯದ ಪ್ರಗತಿಯನ್ನು ತೋರಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. • ಸೆಮ್ಯಾಂಟಿಕ್ ಕ್ಯಾಶಿಂಗ್ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪುನರಾವರ್ತಿತ ಪ್ರಶ್ನೆಗಳಿಗೆ ವಿಳಂಬವನ್ನು (latency) ತಗ್ಗಿಸುತ್ತದೆ.

ಸವಾಲುಗಳು (Trade-offs):

• ಸ್ಟ್ರೀಮಿಂಗ್ ನಿಮ್ಮ ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಹೆಚ್ಚು ಸಂಕೀರ್ಣಗೊಳಿಸುತ್ತದೆ. ನೀವು ತೆರೆದ ಕನೆಕ್ಷನ್‌ಗಳನ್ನು (open connections) ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ. • ಕ್ಯಾಶಿಂಗ್ ಮಾಡಲು vector database ನಂತಹ ಹೆಚ್ಚುವರಿ ಹಾರ್ಡ್‌ವೇರ್ ಅಥವಾ ಸಾಫ್ಟ್‌ವೇರ್ ಅಗತ್ಯವಿದೆ. • ಕ್ಯಾಶ್ ಥ್ರೆಶೋಲ್ಡ್‌ಗಳನ್ನು (cache thresholds) ನಿಗದಿಪಡಿಸುವುದು ಕಷ್ಟ. ಥ್ರೆಶೋಲ್ಡ್ ತುಂಬಾ ಹೆಚ್ಚಿದ್ದರೆ, ನೀವು ಹೊಂದಾಣಿಕೆಯಾಗುವ ಪ್ರಶ್ನೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಅದು ತುಂಬಾ ಕಡಿಮೆಯಿದ್ದರೆ, ನೀವು ತಪ್ಪು ಉತ್ತರಗಳನ್ನು ನೀಡುತ್ತೀರಿ.

ನಿಧಾನಗತಿಯಕ್ಕಾಗಿ AI ಮಾಡೆಲ್ ಅನ್ನು ದೂಷಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ನೀವು ಡೇಟಾವನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ಗಮನಿಸಿ.

ಮೂಲ: https://dev.to/__c1b9e06dc90a7e0a676b/how-i-tamed-ai-api-latency-with-streaming-and-prompt-caching-g0

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi