"ನಿಮ್ಮ ಕೋಡ್ ಚಲಿಸುವ ಮಿಲಿಸೆಕೆಂಡುಗಳಿಗೆ ಮಾತ್ರ ನೀವು ಪಾವತಿಸುತ್ತೀರಿ" ಎಂಬ ಸರ್ವರ್‌ಲೆಸ್ (serverless) ಕಲ್ಪನೆಯು, ನೀವು AWS Lambda ನಲ್ಲಿ AI ಏಜೆಂಟ್ ಅನ್ನು ನಡೆಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ತಪ್ಪೆಂದು ಸಾಬೀತಾಗುತ್ತದೆ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಅತಿ ದೊಡ್ಡ ವೆಚ್ಚದ ಅಂಶಗಳು Lambda-compute ಶುಲ್ಕಗಳಲ್ಲ, ಬದಲಾಗಿ ಕೋಲ್ಡ್-ಸ್ಟಾರ್ಟ್ ವಿಳಂಬ (cold-start latency), ರಿಟ್ರೈ ಲೂಪ್‌ಗಳು (retry loops) ಮತ್ತು ಆ ಲೂಪ್‌ಗಳು ಸೃಷ್ಟಿಸುವ ಟೋಕನ್ ಬಳಕೆಯಾಗಿದೆ.

ಸಾಮಾನ್ಯ ಸರ್ವರ್‌ಲೆಸ್ ಚಿತ್ರಣವು AI ಏಜೆಂಟ್‌ಗಳನ್ನು ಏಕೆ ದಾರಿ ತಪ್ಪಿಸುತ್ತದೆ

ಹೆಚ್ಚಿನ ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರು (developers) Lambda ಫಂಕ್ಷನ್ ಅನ್ನು ಕೇವಲ ಕಂಪ್ಯೂಟ್ ಸ್ಯಾಂಡ್‌ಬಾಕ್ಸ್‌ನಂತೆ ಪರಿಗಣಿಸುತ್ತಾರೆ: ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ವೇಗವಾಗಿ ಇರಿಸಿ, ಸಾಧಾರಣ ಮೆಮೊರಿ ಗಾತ್ರವನ್ನು ನಿಗದಿಪಡಿಸಿ ಮತ್ತು ಬಿಲ್ ಸ್ಥಿರವಾಗಿರುವುದನ್ನು ಗಮನಿಸಿ. ಇದು ಸರಳ HTTP ಎಂಡ್‌ಪಾಯಿಂಟ್‌ಗಳಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಒಂದು ಭಾಷಾ ಮಾದರಿಯನ್ನು (language model) ಕರೆಯುವ, ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವ ಮತ್ತು ಸಾಧ್ಯವಾಗುವಷ್ಟು ಇಡೀ ಚಕ್ರವನ್ನು ಮರುಪ್ರಯತ್ನಿಸುವ (retry) ಏಜೆಂಟ್ ಒಂದೇ Lambda ಇನ್ವೋಕೇಶನ್‌ಗೆ (invocation) ನೇರವಾಗಿ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. ಏಜೆಂಟ್‌ನ ಆಂತರಿಕ ಕಾರ್ಯವಿಧಾನವು ಮಾಡೆಲ್ ಕರೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಹೆಚ್ಚುವರಿ ಕರೆಯು ಕಂಪ್ಯೂಟ್ ಶುಲ್ಕಕ್ಕಿಂತಲೂ ಹೆಚ್ಚಿನ ಟೋಕನ್ ವೆಚ್ಚವನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್‌ಗಳು ಅಡಗಿರುವ ಬೆಲೆಯಾಗಿವೆ

Lambda ಕಂಟೇನರ್ ಅನ್ನು ಮೊದಲ ಬಾರಿಗೆ ಪ್ರೊವಿಷನ್ ಮಾಡಿದಾಗ, ಅದು ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಅನ್‌ಪ್ಯಾಕ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಬಳಸಲಾದ ಏಜೆಂಟ್ ದೊಡ್ಡ ಪ್ರಮಾಣದ Python ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸುವುದರಿಂದ, ಇಮೇಜ್ ಗಾತ್ರವು ದೊಡ್ಡದಾಗಿರಬಹುದು. ಕೇವಲ ಸ್ಥಳೀಯ ಪರೀಕ್ಷೆಗಾಗಿ ಬಳಸುವ ಬ್ರೌಸರ್ ಆಟೊಮೇಷನ್ ಲೈಬ್ರರಿಯಂತಹ ಅಭಿವೃದ್ಧಿ-ಮಾತ್ರದ (development-only) ಪರಿಕರಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಇಮೇಜ್ ಗಾತ್ರವು ಕಡಿಮೆಯಾಗುತ್ತದೆ, ಇದು ಅನ್‌ಪ್ಯಾಕ್ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಸಣ್ಣ ಪ್ಯಾಕೇಜ್ ಎಂದರೆ ಫಂಕ್ಷನ್ ವಿನಂತಿಯನ್ನು (request) ವೇಗವಾಗಿ ನಿರ್ವಹಿಸಲು ಸಿದ್ಧವಾಗುತ್ತದೆ, ಇದರಿಂದ ಕಂಟೇನರ್ ವಾರ್ಮ್ ಅಪ್ ಆಗಲು ಕಾಯುವ ಸಮಯ ಕಡಿಮೆಯಾಗುತ್ತದೆ.

ಎರಡನೆಯ ಅಂಶವೆಂದರೆ ಇನಿಶಿಯಲೈಸೇಶನ್ ಕೋಡ್ (initialization code) ಎಲ್ಲಿ ಇರುತ್ತದೆ ಎಂಬುದು. ಏಜೆಂಟ್‌ನ ಗ್ರಾಫ್ ಅನ್ನು ಮಾಡ್ಯೂಲ್ ಇಂಪೋರ್ಟ್ ಸಮಯದಲ್ಲಿ ನಿರ್ಮಿಸುವ ಮೂಲಕ, ಭಾರೀ ಕೆಲಸವು ಪ್ರತಿ ವಿನಂತಿಯ ಬದಲಾಗಿ ಕಂಟೇನರ್ ಪ್ರಾರಂಭದ ಸಮಯದಲ್ಲಿ ಒಮ್ಮೆ ಮಾತ್ರ ನಡೆಯುತ್ತದೆ. ನಂತರದ ವಾರ್ಮ್ ಇನ್ವೋಕೇಶನ್‌ಗಳು ಆ ಕೆಲಸವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಬಿಡುತ್ತವೆ. ಇದರ ವಹಿವಾಟು (trade-off) ಸ್ವಲ್ಪ ದೀರ್ಘವಾದ ಕೋಲ್ಡ್ ಸ್ಟಾರ್ಟ್ ಆಗಿರಬಹುದು, ಆದರೆ ಕಂಟೇನರ್ ವಾರ್ಮ್ ಆದ ನಂತರ ಪ್ರತಿ ವಿನಂತಿಗೆ ಅಗತ್ಯವಿರುವ ಸೆಟಪ್ ಸಮಯವು ಶೂನ್ಯಕ್ಕೆ ಹತ್ತಿರವಾಗಿರುತ್ತದೆ.

ಮೆಮೊರಿ ವಿಳಂಬದ ನಿಯಂತ್ರಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ

Lambda ನಲ್ಲಿ ನೀವು ಮೀಸಲಿಡುವ ಮೆಮೊರಿ ಪ್ರಮಾಣವು ಫಂಕ್ಷನ್ ಪಡೆಯುವ CPU ಹಂಚಿಕೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಫಂಕ್ಷನ್ ಅನ್ನು 1 GB ಮೆಮೊರಿಗೆ ಹೊಂದಿಸುವುದರಿಂದ ಅದಕ್ಕೆ ಪೂರ್ಣ ವರ್ಚುವಲ್ CPU ಕೋರ್ ಸಿಗುತ್ತದೆ. ಹೆಚ್ಚುವರಿ CPU ಲೈಬ್ರರಿಗಳ ಇಂಪೋರ್ಟ್ ಮತ್ತು ಏಜೆಂಟ್ ಗ್ರಾಫ್ ರಚನೆಯನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ, ಇದರಿಂದ ಕೋಲ್ಡ್-ಸ್ಟಾರ್ಟ್ ಮತ್ತು ವಾರ್ಮ್-ಅಪ್ ವಿಳಂಬ ಎರಡೂ ಕಡಿಮೆಯಾಗುತ್ತದೆ.

ಲೂಪ್ ವೆಚ್ಚ: ಮರುಪ್ರಯತ್ನಗಳು ಟೋಕನ್ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ

ಏಜೆಂಟ್ ವರ್ಕರ್-ಎವ್ಯಾಲ್ಯೂಯೇಟರ್ (worker-evaluator) ಲೂಪ್ ಅನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ವರ್ಕರ್ ಒಂದು ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ, ಎವ್ಯಾಲ್ಯೂಯೇಟರ್ ಅದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಎವ್ಯಾಲ್ಯೂಯೇಟರ್ ತಪ್ಪನ್ನು ಗುರುತಿಸಿದರೆ, ಕಾರ್ಯವನ್ನು ಮತ್ತೆ ವರ್ಕರ್ ಬಳಿಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಈ ಲೂಪ್ ಬಿಟ್ಟುಕೊಡುವ ಮೊದಲು ಐದು ಬಾರಿ ಪುನರಾವರ್ತನೆಯಾಗಬಹುದು. ಇದರರ್ಥ ಒಂದು ಬಾಹ್ಯ ವಿನಂತಿಯು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಪ್ರಚೋದಿಸಬಹುದು:

  • ವರ್ಕರ್ ಮಾಡೆಲ್‌ಗೆ ಐದು ವರೆಗೆ ಕರೆಗಳು
  • ಎವ್ಯಾಲ್ಯೂಯೇಟರ್ ಮಾಡೆಲ್‌ಗೆ ಐದು ವರೆಗೆ ಕರೆಗಳು
  • ಏಜೆಂಟ್ ನಿರ್ಧರಿಸುವ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಟೂಲ್ ಕರೆಗಳು

AWS ಮில்லிಸೆಕೆಂಡ್ ಚಾಲನೆಯ ಆಧಾರದ ಮೇಲೆ ಶುಲ್ಕವನ್ನು ವಿಧಿಸುವುದರಿಂದ Lambda ಬಿಲ್ ಅಂದಾಜು ಮಾಡಬಹುದಾಗಿದೆ, ಆದರೆ ಎಷ್ಟು ಮರುಪ್ರಯತ್ನಗಳು ಬೇಕಾಗುತ್ತವೆ ಎಂಬುದರ ಮೇಲೆ ಟೋಕನ್ ಬಿಲ್ ಅನಿರೀಕ್ಷಿತವಾಗಿ ಏರಿಳಿತವಾಗಬಹುದು.

ಟೈಮೌಟ್ ಬಲೆ: API Gateway vs. Lambda

API Gateway ತನ್ನ ಮುಂಭಾಗದಲ್ಲಿರುವ HTTP ವಿನಂತಿಗೆ ಕಠಿಣವಾದ 29-ಸೆಕೆಂಡ್‌ಗಳ ಟೈಮೌಟ್ ಅನ್ನು ವಿಧಿಸುತ್ತದೆ. ಅಡಿಯಲ್ಲಿರುವ Lambda ಫಂಕ್ಷನ್ ಐದು ನಿಮಿಷಗಳ ಚಾಲನಾ ಅವಧಿಗೆ ಕಾನ್ಫಿಗರ್ ಆಗಿದ್ದರೂ ಸಹ, ಐದು ಸುತ್ತಿನ ಏಜೆಂಟ್ ಲೂಪ್ ಸುಲಭವಾಗಿ ಆ ಮಿತಿಯನ್ನು ಮೀರಬಹುದು. Lambda Function URLs ಬಳಸಿ API Gateway ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುವುದರಿಂದ 29-ಸೆಕೆಂಡ್‌ಗಳ ಮಿತಿಯನ್ನು ನಿವಾರಿಸಬಹುದು, ಇದು ಫಂಕ್ಷನ್ ಮಧ್ಯದಲ್ಲಿ ಕಡಿತಗೊಳ್ಳದೆ ತನ್ನ ಲೂಪ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.

ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರು ಯಾವುದಕ್ಕಾಗಿ ಬಜೆಟ್ ಮಾಡಬೇಕು

ಪಾಠ ಸರಳವಾಗಿದೆ: ಸರ್ವರ್‌ಲೆಸ್ AI ಏಜೆಂಟ್‌ಗಾಗಿ ಬಜೆಟ್ ಮಾಡಲು ಕೇವಲ Lambda ರನ್-ಟೈಮ್‌ನ ಮಿಲಿಸೆಕೆಂಡುಗಳನ್ನು ಕೂಡಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದಿನ ಅಗತ್ಯವಿದೆ. ನೀವು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕಾಗುತ್ತದೆ:

  • ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಪ್ಯಾಕೇಜ್‌ನ ಗಾತ್ರ ಮತ್ತು ಅದರ ಪರಿಣಾಮವಾಗಿ ಉಂಟಾಗುವ ಕೋಲ್ಡ್-ಸ್ಟಾರ್ಟ್ ವಿಳಂಬ
  • CPU ಮತ್ತು ಅದರ ಮೂಲಕ ಇಂಪೋರ್ಟ್ ವೇಗವನ್ನು ನಿರ್ಧರಿಸುವ ಮೆಮೊರಿ ಸೆಟ್ಟಿಂಗ್
  • ವರ್ಕರ್-ಎವ್ಯಾಲ್ಯೂಯೇಟರ್ ಲೂಪ್‌ನಲ್ಲಿ ನಿರೀಕ್ಷಿತ ಮರುಪ್ರಯತ್ನಗಳ ಸಂಖ್ಯೆ, ಇದು ನೇರವಾಗಿ ಟೋಕನ್ ಬಳಕೆಯನ್ನು ಪ್ರೇರೇಪಿಸುತ್ತದೆ
  • ಅಕಾಲಿಕ ಟೈಮೌಟ್‌ಗಳನ್ನು ತಪ್ಪಿಸಲು ಫ್ರಂಟ್-ಎಂಡ್ ಆಯ್ಕೆ (API Gateway vs. Function URL)

ಈ ಯಾವುದೇ ಚರಾಂಶಗಳನ್ನು (variables) ನಿರ್ಲಕ್ಷಿಸುವುದು ನೀವು ಯೋಜಿಸಿದ ಬಿಲ್‌ನಂತೆಯೇ ಇಲ್ಲದ ದೊಡ್ಡ ಬಿಲ್ ಅನ್ನು ತರಬಹುದು.