Modal ಮೇಲೆ GLM-5.2 ಅನ್ನು ನಿಯೋಜಿಸುವುದು (Deploy ಮಾಡುವುದು)

GLM-5.2 ಒಂದು ಬೃಹತ್ ಓಪನ್-ವೇಟ್ಸ್ (open-weights) ಮಾಡೆಲ್ ಆಗಿದೆ. ಸಂಕೀರ್ಣ ತರ್ಕ (reasoning) ಮತ್ತು ಕೋಡಿಂಗ್‌ಗಾಗಿ ಇದು Mixture-of-Experts (MoE) ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಎಂಜಿನಿಯರಿಂಗ್ ಕಾರ್ಯಗಳಲ್ಲಿ ಇದು Claude 3.5 Sonnet ನಂತಹ ಮಾಡೆಲ್‌ಗಳಿಗೆ ಸಮಾನವಾಗಿದೆ.

ಈ 700B ಪ್ಯಾರಾಮೀಟರ್ ಮಾಡೆಲ್ ಅನ್ನು ಸೆಲ್ಫ್-ಹೋಸ್ಟ್ ಮಾಡಲು 8x NVIDIA H200 GPUs ಬೇಕಾಗುತ್ತವೆ. Modal ನಲ್ಲಿ ಸರ್ವರ್‌ಲೆಸ್ (serverless) ವಿಧಾನವನ್ನು ಬಳಸಿ ನಾನು ಇದನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸಿದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ.

ವೆಚ್ಚದ ಪ್ರಯೋಜನಗಳು (The Cost Benefit)

ಮೀಸಲಾದ (dedicated) 8x H200 ನೋಡ್ ಅನ್ನು ಬಾಡಿಗೆಗೆ ಪಡೆಯುವುದು ದುಬಾರಿಯಾಗಿದೆ.

  • RunPod ಗಂಟೆಗೆ $35.12 ವೆಚ್ಚವಾಗುತ್ತದೆ.
  • Modal ಗಂಟೆಗೆ $36.31 ವೆಚ್ಚವಾಗುತ್ತದೆ.

ಆದಾಗ್ಯೂ, Modal ಪ್ರತಿ ಸೆಕೆಂಡಿಗೆ ಬಿಲ್ ಮಾಡುತ್ತದೆ. ನೀವು ಬಳಸದಿದ್ದಾಗ ಇದು ಸ್ಕೇಲ್ ಟು ಜೀರೋ (scales to zero) ಆಗುತ್ತದೆ. 20 ನಿಮಿಷಗಳ ಅಭಿವೃದ್ಧಿ (development) ಸೆಷನ್ ಸುಮಾರು $12.00 ವೆಚ್ಚವಾಗುತ್ತದೆ. ನೀವು ಸಕ್ರಿಯವಾಗಿಲ್ಲದಿದ್ದಾಗ, ವೆಚ್ಚವು $0.00 ಆಗಿರುತ್ತದೆ.

ಕ್ವಾಂಟೈಸೇಶನ್ ಟ್ರೇಡ್-ಆಫ್‌ಗಳು (Quantization Trade-offs)

ನೀವು ಪೂರ್ಣ BF16 ಮಾಡೆಲ್ ಅನ್ನು ಒಂದೇ ನೋಡ್‌ನಲ್ಲಿ ರನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಇದಕ್ಕೆ 1.5 TB VRAM ಬೇಕಾಗುತ್ತದೆ. ಉತ್ತಮ ಸಮತೋಲನವನ್ನು ಕಂಡುಕೊಳ್ಳಲು ನಾನು ವಿವಿಧ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿದೆ:

  • FP8: ಸುಮಾರು ~700 GB ಬೇಕಾಗುತ್ತದೆ. ಇದು 99.2% ನಿಖರತೆಯನ್ನು (accuracy) ಕಾಯ್ದುಕೊಳ್ಳುತ್ತದೆ. ಇದು ಅತ್ಯುತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ. ವೇಗದ ವೇಗಕ್ಕಾಗಿ ಇದು Hopper native Tensor Cores ಅನ್ನು ಬಳಸುತ್ತದೆ.
  • INT8: ಸುಮಾರು ~750 GB ಬೇಕಾಗುತ್ತದೆ. ಹಾರ್ಡ್‌ವೇರ್ ಆಪ್ಟಿಮೈಸೇಶನ್ ಇಲ್ಲದ ಕಾರಣ ಇದು ನಿಧಾನವಾಗಿದೆ.
  • INT4: ಸುಮಾರು ~400 GB ಬೇಕಾಗುತ್ತದೆ. ತರ್ಕದ ಕಾರ್ಯಗಳಲ್ಲಿ (reasoning tasks) ನಿಖರತೆಯು ಗಣನೀಯವಾಗಿ ಕುಸಿಯುತ್ತದೆ.

ಏಕೆ ಸೆಲ್ಫ್-ಹೋಸ್ಟ್ ಮಾಡಬೇಕು?

  1. ಗೌಪ್ಯತೆ (Privacy): ನಿಮ್ಮ ಸೂಕ್ಷ್ಮ ಕೋಡ್ ಅನ್ನು ನಿಮ್ಮದೇ ಸುರಕ್ಷಿತ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಇರಿಸಿ.
  2. ಮಿತಿಗಳಿಲ್ಲ (No Limits): ಸಾರ್ವಜನಿಕ APIಗಳಲ್ಲಿ ಕಂಡುಬರುವ ರೇಟ್ ಲಿಮಿಟ್ಸ್ (rate limits) ಮತ್ತು ಕಾಂಟೆಕ್ಸ್ಟ್ ಥ್ರೊಟಲಿಂಗ್ (context throttling) ಅನ್ನು ತಪ್ಪಿಸಿ.
  3. ಸ್ಥಿರ ಕ್ಯಾಶ್ (Stable Cache): ನೀವು GPU ಮೆಮೊರಿಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತೀರಿ. ನಿಮ್ಮ ಕಾಂಟೆಕ್ಸ್ಟ್ ಕ್ಯಾಶ್ (context cache) ಸುಸ್ಥಿತಿಯಲ್ಲಿ ಮತ್ತು ಸ್ಥಿರವಾಗಿ ಇರುತ್ತದೆ.

ತಾಂತ್ರಿಕ ಪಾಠಗಳು (Technical Lessons)

  • ಇಂಪೋರ್ಟ್ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸುವುದು: ಕ್ರ್ಯಾಶ್‌ಗಳನ್ನು ತಡೆಯಲು Dockerfile ನಲ್ಲಿರುವ ಹಳೆಯ (legacy) typing_extensions ಮಾಡ್ಯೂಲ್ ಅನ್ನು ನಾನು ಡಿಲೀಟ್ ಮಾಡಬೇಕಾಯಿತು.
  • ಲೋಡಿಂಗ್ ವೇಗವನ್ನು ಹೆಚ್ಚಿಸುವುದು: ಪ್ರಿಫೆಚ್ (prefetch) ತಂತ್ರವನ್ನು ಬಳಸುವುದರಿಂದ ಮಾಡೆಲ್ ಲೋಡಿಂಗ್ ಸಮಯವು 12 ನಿಮಿಷಗಳಿಂದ 1 ನಿಮಿಷಕ್ಕೆ ಇಳಿಕೆಯಾಯಿತು.
  • ಈಗರ್ ಮೋಡ್ (Eager Mode) ಬಳಸಿ: ಗಣಿತದ ಗ್ರಾಫ್‌ಗಳನ್ನು ಕಾಂಪೈಲ್ ಮಾಡಲು 20 ನಿಮಿಷಗಳು ಬೇಕಾದವು. Eager mode 4.5 ನಿಮಿಷಗಳಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಮೊದಲ ಕ್ವೆರಿಯ ಸಮಯದಲ್ಲಿ ನೀವು ಸ್ವಲ್ಪ ವಿಳಂಬವನ್ನು ನೋಡಬಹುದು, ಆದರೆ ಇದು ವೇಗದ ಸ್ಟಾರ್ಟ್‌ಅಪ್‌ಗಾಗಿ ಯೋಗ್ಯವಾಗಿದೆ.

ಫಲಿತಾಂಶ (The Result)

ಈ ಮಾಡೆಲ್ ಬೃಹತ್ ಫೈಲ್‌ಗಳನ್ನು ಸುಲಭವಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ. ನಾನು ಇದನ್ನು 1,000+ ಸಾಲುಗಳ Python ಕೋಡ್‌ನೊಂದಿಗೆ ಪರೀಕ್ಷಿಸಿದೆ. ಇದು ಲಾಜಿಕ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಿ ನಿಖರವಾದ ಆರ್ಕಿಟೆಕ್ಚರಲ್ ಅನಾಲಿಸಿಸ್ ಅನ್ನು ನೀಡಿತು. ಇದು ಕೇವಲ ಒಂದು ಹಂತದಲ್ಲಿ (single pass) ಕಸ್ಟಮ್ ಆಡಿಯೊದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಗೇಮ್ ಅನ್ನು ಸಹ ನಿರ್ಮಿಸಿತು.

ಫ್ರಾಂಟಿಯರ್ AI (frontier AI) ಅನ್ನು ಸೆಲ್ಫ್-ಹೋಸ್ಟ್ ಮಾಡುವುದು ಈಗ ವೈಯಕ್ತಿಕ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಸಾಧ್ಯವಿದೆ. ನೀವು ಕಡಿಮೆ ವೆಚ್ಚದಲ್ಲಿ ಗೌಪ್ಯತೆ ಮತ್ತು ಶಕ್ತಿಯನ್ನು ಪಡೆಯಬಹುದು.

Source: https://dev.to/silvestre-po/deploying-glm-52-fp8-700b-moe-on-modal-serverless-8x-h200s-trade-offs-and-lessons-learned-4m7i

Optional learning community: https://t.me/GyaanSetuAi