Llama.cpp b10327 ಒಂದು ನಿರ್ಣಾಯಕ CUDA quantization ದೋಷವನ್ನು (bug) ಸರಿಪಡಿಸುತ್ತದೆ, ಇದು NVIDIA ಕಾರ್ಡ್‌ಗಳ ಮೇಲೆ ಸ್ಥಳೀಯ GPU inference ಅನ್ನು ಸ್ಥಿರಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಅದೇ ಹಾರ್ಡ್‌ವೇರ್‌ನಿಂದ ಹೆಚ್ಚಿನ ವೇಗವನ್ನು ಪಡೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಗ್ರಾಹಕ-ಶ್ರೇಣಿಯ (consumer-grade) GPU ಮೇಲೆ LLaMA-ಶೈಲಿಯ ಮಾದರಿಗಳನ್ನು ಬಳಸುವವರಿಗೆ ಈ ಪರಿಹಾರವು ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ, ಏಕೆಂದರೆ ಅಲ್ಲಿ ಆಗುವ ಕ್ರ್ಯಾಶ್‌ಗಳು ಮತ್ತು ನಿಖರತೆಯಲ್ಲಿನ ಸಣ್ಣ ವ್ಯತ್ಯಾಸಗಳು ದೊಡ್ಡ ತಲೆನೋವಾಗಿ ಪರಿಣಮಿಸಿದ್ದವು.

ಸ್ಥಳೀಯ inference ಅನ್ನು ತಡೆಹಿಡಿದಿದ್ದ ದೋಷ

Llama.cpp ಎಂಬುದು ಕ್ಲೌಡ್ ಸೇವೆಯಿಲ್ಲದೆ CPU ಮತ್ತು GPU ಗಳಲ್ಲಿ ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳನ್ನು (large language models) ಚಲಾಯಿಸಲು ಬಳಸುವ ಪ್ರಮುಖ ಓಪನ್-ಸೋರ್ಸ್ ಇಂಜಿನ್ ಆಗಿದೆ. ಸಾಧಾರಣ ಗಾತ್ರದ GPU ಗಳಲ್ಲಿ ಕ್ವಾಂಟೈಸ್ಡ್ ಮಾಡೆಲ್‌ಗಳನ್ನು—ಅಂದರೆ ಕಡಿಮೆ-ಬಿಟ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ತೂಕಗಳನ್ನು (weights)—ಚಲಾಯಿಸುವ ಸಾಮರ್ಥ್ಯವೇ ಇದರ ದೊಡ್ಡ ಆಕರ್ಷಣೆ. b10327 ಬಿಡುಗಡೆಯು NVIDIA ನ CUDA ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಆ ಕ್ವಾಂಟೈಸ್ಡ್ ಕರ್ನಲ್‌ಗಳನ್ನು (quantised kernels) ಪ್ರಾರಂಭಿಸುವಾಗ ಬಳಸುವ thread ಮತ್ತು block-count ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಸರಿಪಡಿಸುತ್ತದೆ.

ಹಿಂದಿನ ಲೆಕ್ಕಾಚಾರಗಳು work-items ಅನ್ನು ತಪ್ಪಾಗಿ ಜೋಡಿಸುತ್ತಿದ್ದವು, ಇದು ಎರಡು ಪ್ರಾಯೋಗಿಕ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತಿತ್ತು:

  • ಮೆಮೊರಿ ನಿರ್ವಹಣೆಯ ತಪ್ಪು (Memory mishandling) – ಕರ್ನಲ್‌ಗಳು ಕೆಲವೊಮ್ಮೆ ನಿಗದಿಪಡಿಸಿದ ಬಫರ್‌ನ ಹೊರಗಿನ ಮೆಮೊರಿಯನ್ನು ಪ್ರವೇಶಿಸುತ್ತಿದ್ದವು, ಇದರಿಂದಾಗಿ ಕ್ರ್ಯಾಶ್‌ಗಳು ಅಥವಾ ಡೇಟಾ ಹಾನಿ (silent corruption) ಸಂಭವಿಸುತ್ತಿದ್ದವು.
  • ಗಣಿತದ ಅಸಮರ್ಪಕತೆ (Math inaccuracy) – ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಕಾರ್ಯಾಚರಣೆಗಳು ಸರಿಯಾಗಿ ನಡೆಯದೆ, ಸೃಷ್ಟಿಯಾಗುವ ಪಠ್ಯದ ಗುಣಮಟ್ಟವನ್ನು ಕುಗ್ಗಿಸುತ್ತಿದ್ದವು.

ಈ ಎರಡೂ ಸಮಸ್ಯೆಗಳು ಕ್ವಾಂಟೈಸ್ಡ್ inference ನ ಕಟ್ಟುನಿಟ್ಟಾದ ಮೆಮೊರಿ ಮಿತಿಗಳ ಅಡಿಯಲ್ಲಿ ಮಾತ್ರ ಕಂಡುಬರುತ್ತಿದ್ದವು, ಆದ್ದರಿಂದ ದೊಡ್ಡ ಮತ್ತು ಫುಲ್-ಪ್ರಿಸಿಸನ್ (full-precision) ರನ್‌ಗಳಲ್ಲಿ ಇವುಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುವುದು ಕಷ್ಟವಾಗಿತ್ತು.

ಈ ಪರಿಹಾರವು ಆನ್-ಡೈವೈಸ್ AI ಗೆ ಏಕೆ ಒಂದು ಗೆಲುವು?

ಡೇಟಾವನ್ನು ಗೌಪ್ಯವಾಗಿಡಲು, ಕ್ಲೌಡ್ ಕರೆಗಳಿಂದ ಉಂಟಾಗುವ ವಿಳಂಬವನ್ನು (latency) ತಪ್ಪಿಸಲು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಡೆವಲಪರ್‌ಗಳು ಮತ್ತು ಹವ್ಯಾಸಿಗಳು ಸ್ಥಳೀಯ inference ಮೇಲೆ ಅವಲಂಬಿತರಾಗಿದ್ದಾರೆ. ಈ ದೋಷದ ಕಾರಣದಿಂದಾಗಿ, ಮಾದರಿಯು GPU ಮೆಮೊರಿಗೆ ಹೊಂದಿಕೆಯಾಗಿದ್ದರೂ ಸಹ, ಅದು ಅನಿರೀಕ್ಷಿತವಾಗಿ ವಿಫಲವಾಗುತ್ತಿತ್ತು. ಸರಿಪಡಿಸಲಾದ ಲಾಂಚ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳೊಂದಿಗೆ, ಅದೇ ಹಾರ್ಡ್‌ವೇರ್ ಈಗ ಈ ಕೆಳಗಿನವುಗಳನ್ನು ನೀಡುತ್ತದೆ:

  • ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ರನ್‌ಗಳು (More reliable runs) – ಕಡಿಮೆ out-of-memory ಕ್ರ್ಯಾಶ್‌ಗಳು ಮತ್ತು ಸುಗಮ ಬ್ಯಾಚ್ ಪ್ರೊಸೆಸಿಂಗ್.
  • ಸುಧಾರಿತ ವೇಗ (Improved speed) – ಈ ಅಪ್‌ಡೇಟ್ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಥ್ರೂಪುಟ್ (throughput) ಎರಡನ್ನೂ ಹೆಚ್ಚಿಸುತ್ತದೆ.

ಗ್ರಾಹಕ-ಶ್ರೇಣಿಯ GPU ಗಾಗಿ, ಇದು ಬಳಕೆಗೆ ಯೋಗ್ಯವಾದ ಇಂಟರಾಕ್ಟಿವ್ ಚಾಟ್‌ಬಾಟ್ ಮತ್ತು ಅಸ್ಥಿರವಾದ (flaky) ಡೆಮೊ ನಡುವಿನ ವ್ಯತ್ಯಾಸವಾಗಿರಬಹುದು.

ವಿಶಾಲವಾದ GPU AI ಅಪ್‌ಡೇಟ್ ಸಾರಾಂಶ

Llama.cpp ಪ್ಯಾಚ್ ಪ್ರಮುಖ ಸುದ್ದಿಯಾಗಿದ್ದರೂ, ಇತರ ಕೆಲವು ಬಿಡುಗಡೆಗಳು ಸ್ಥಳೀಯ AI ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು (ecosystem) ಮುಂದಕ್ಕೆ ಕೊಂಡೊಯ್ಯುತ್ತಿವೆ:

  • NVIDIA NeMo Speech 3.0 ಆಟೋಮ್ಯಾಟಿಕ್ ಸ್ಪೀಚ್ ರೆಕಗ್ನಿಷನ್, ಟೆಕ್ಸ್ಟ್-ಟು-ಸ್ಪೀಚ್ ಮತ್ತು ಸ್ಪೀಚ್-ಲಾರ್ಜ್ ಲ್ಯಾಂಗ್ವೇಜ್ ಮಾಡೆಲ್‌ಗಳಿಗಾಗಿ ನವೀಕರಿಸಿದ ಟೂಲ್‌ಕಿಟ್ ಅನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಇದರ ಹೊಸ ವಿನ್ಯಾಸವು ವಿಶೇಷ ವಾಯ್ಸ್ ಅಸಿಸ್ಟೆಂಟ್‌ಗಳ ರಚನೆಯನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ.
  • AMD ROCm Quark ಲೈಬ್ರರಿಯ ಮೂಲಕ SVDQuant ಬೆಂಬಲವನ್ನು ಸೇರಿಸುತ್ತದೆ, ಇದು Stable Diffusion ನಂತಹ ಡಿಫ್ಯೂಷನ್ ಮಾಡೆಲ್‌ಗಳು AMD GPU ಗಳಲ್ಲಿ ಕಡಿಮೆ ಮೆಮೊರಿ ಬಳಕೆಯಲ್ಲಿ ಚಲಾಯಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರ ಜೊತೆಗೆ ಬರುವ VSA (Video Sparse Attention) ಮಾಡ್ಯೂಲ್, ಡಿಫ್ಯೂಷನ್ ಹಂತಗಳಿಗೆ ಬೇಕಾಗುವ ಗಣಿತದ ಸಂಕೀರ್ಣತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ ವೇಗವಾದ ವಿಡಿಯೋ ಜನರೇಷನ್ ಅನ್ನು ಭರವಸೆ ನೀಡುತ್ತದೆ.
  • Linux kernel 7.3 ಗ್ರಾಫಿಕ್ಸ್ ಮೆಮೊರಿಗಾಗಿ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ TTM (Translation Table Maps) ಸಬ್‌ಸಿಸ್ಟಮ್ ಅನ್ನು ಪರಿಚಯಿಸಲಿದೆ. ಈ ಬದಲಾವಣೆಯು ಕಂಪ್ಯೂಟ್-ಹೆವಿ ವರ್ಕ್‌ಲೋಡ್‌ಗಳಿಗಾಗಿ ಮೆಮೊರಿ ಮರುಪಡೆಯುವಿಕೆಯನ್ನು (memory reclamation) ಸುಧಾರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ, ಇದು ಲಿನಕ್ಸ್ ಆಧಾರಿತ ಯಂತ್ರಗಳಲ್ಲಿ AI inference ಗೆ ಪರೋಕ್ಷವಾಗಿ ಪ್ರಯೋಜನಕಾರಿಯಾಗಬಹುದು.

ಯಾರು ಗೆಲ್ಲುತ್ತಾರೆ, ಯಾರು ಎಚ್ಚರಿಕೆಯಿಂದ ಇರಬೇಕು?

ಗ್ರಾಹಕ-ಶ್ರೇಣಿಯ NVIDIA ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ಈಗಾಗಲೇ ಹೂಡಿಕೆ ಮಾಡಿರುವ ಸ್ವತಂತ್ರ ಡೆವಲಪರ್‌ಗಳು, ಸಣ್ಣ ಸ್ಟಾರ್ಟ್‌ಅಪ್‌ಗಳು ಮತ್ತು ಗೌಪ್ಯತೆಗೆ ಆದ್ಯತೆ ನೀಡುವ ತಂಡಗಳು ತಕ್ಷಣದ ಪ್ರಯೋಜನಗಳನ್ನು ಪಡೆಯುತ್ತವೆ. ಅವರ ಪೈಪ್‌ಲೈನ್‌ಗಳು ಹೆಚ್ಚು ಮುನ್ಸೂಚನೆ ನೀಡಬಲ್ಲವು (predictable) ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಏರಿಕೆಯು ದೊಡ್ಡ ಕ್ವಾಂಟೈಸ್ಡ್ ಮಾಡೆಲ್‌ಗಳೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡುವ ಅಡೆತಡೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

ಈಗಾಗಲೇ ಕ್ಲೌಡ್‌ನಲ್ಲಿ inference ನಡೆಸುತ್ತಿರುವ ಎಂಟರ್‌ಪ್ರೈಸ್‌ಗಳು ಈ ಪರಿಹಾರವನ್ನು ಹೈಬ್ರಿಡ್ ತಂತ್ರಗಳಿಗಾಗಿ (hybrid strategies) ಒಂದು驗ೀಕರಣದ ಅಂಶವಾಗಿ ನೋಡಬಹುದು—ಅಂದರೆ ವಿಳಂಬಕ್ಕೆ ತುತ್ತಾಗಬಾರದು ಎನ್ನುವ ಫ್ರಂಟ್-ಎಂಡ್ ಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಚಲಾಯಿಸುವುದು ಮತ್ತು ಭಾರೀ ಬ್ಯಾಚ್ ಕೆಲಸಗಳನ್ನು ಕ್ಲೌಡ್‌ಗೆ ವರ್ಗಾಯಿಸುವುದು. ಆದಾಗ್ಯೂ, ಈ ಪರಿಹಾರವು ಆನ್-ಡೈವೈಸ್ AI ನ ಆಳವಾದ ಮಿತಿಗಳನ್ನು ಅಳಿಸುವುದಿಲ್ಲ, ಉದಾಹರಣೆಗೆ VRAM ಮಿತಿಗಳು ಅಥವಾ ಕ್ವಾಂಟೈಸ್ಡ್ ಮತ್ತು ಫುಲ್-ಪ್ರಿಸಿಸನ್ ಮಾಡೆಲ್‌ಗಳ ನಡುವಿನ ಗುಣಮಟ್ಟದ ವ್ಯತ್ಯಾಸ.

ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು?

  • Llama.cpp ನ ಹೆಚ್ಚಿನ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು – ಮುಂಬರುವ ಪ್ಯಾಚ್‌ಗಳು ಕರ್ನಲ್ ಫ್ಯೂಷನ್ ಅನ್ನು ಸುಧಾರಿಸುತ್ತವೆ ಮತ್ತು ಹೊಸ NVIDIA ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ನೀಡುತ್ತವೆ.
  • ಕ್ರಾಸ್-ವೆಂಡರ್ ಕ್ವಾಂಟೈಸೇಶನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್‌ಗಳು – AMD ನ ROCm, SVDQuant ಅನ್ನು ಪಡೆಯುತ್ತಿರುವುದರಿಂದ, ಸಮುದಾಯವು ಒಂದು ಸಾಮಾನ್ಯ ಲೋ-ಬಿಟ್ ಫಾರ್ಮ್ಯಾಟ್‌ನ ಸುತ್ತ ಒಂದಾಗಬಹುದು, ಇದು ಮಾಡೆಲ್ ಪೋರ್ಟಬಿಲಿಟಿಯನ್ನು (portability) ಸುಲಭಗೊಳಿಸುತ್ತದೆ.
  • NeMo Speech ಘಟಕಗಳ ಸಂಯೋಜನೆಯು ಆನ್-ಡೈವೈಸ್ ರನ್‌ಟೈಮ್‌ಗಳಿಗೆ ಸೇರ್ಪಡೆಯಾದಲ್ಲಿ, ಈಗ ಪಠ್ಯ ಮಾದರಿಗಳನ್ನು ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ಚಲಾಯಿಸುವ ಅದೇ ಸ್ಥಳೀಯ inference ಸ್ಟ್ಯಾಕ್‌ಗೆ ಧ್ವನಿ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ತರಬಹುದು.

ಲಾಂಚ್ ಜಿಯೋಮೆಟ್ರಿಯಲ್ಲಿನ (launch geometry) ಒಂದು ಸಾಲಿನ ಮಟ್ಟದ ತಿದ್ದುಪಡಿಯು ಸ್ಥಳೀಯ AI ನ ಬಳಕೆಗೆ ದೊಡ್ಡ ಪರಿಣಾಮ ಬೀರಬಲ್ಲದು ಎಂಬುದನ್ನು b10327 ಪ್ಯಾಚ್ ಸಾಬೀತುಪಡಿಸುತ್ತದೆ. ನೀವು ಇನ್ನೂ ಗ್ರಾಹಕ GPU ಮೇಲೆ ಕ್ರ್ಯಾಶ್‌ಗಳೊಂದಿಗೆ ಹೋರಾಡುತ್ತಿದ್ದರೆ, ಹೆಚ್ಚು ಸ್ಥಿರವಾದ ಮತ್ತು ವೇಗವಾದ inference ಅನುಭವಕ್ಕಾಗಿ ಈಗಲೇ llama.cpp ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ.