ನಾನು ನನ್ನ ASUS ROG Ally ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ LLM ಅನ್ನು ಚಲಾಯಿಸಿದೆ

ನಾನು ಕೆಲವು ವಾರಗಳ ಕಾಲ ನನ್ನ ASUS ROG Ally ನಲ್ಲಿ ಸ್ಥಳೀಯ AI ಮಾಡೆಲ್ ಅನ್ನು ಚಲಾಯಿಸಿದೆ. ಇದು ಒಂದು ಮೋಜಿನ ಪ್ರಾಜೆಕ್ಟ್ ಆಗಿರುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸಿದ್ದೆ. ಆದರೆ, ಬದಲಾಗಿ ಇದು ಹಾರ್ಡ್‌ವೇರ್ ಮಿತಿಗಳ ಬಗ್ಗೆ ಒಂದು ಪಾಠವಾಯಿತು.

ನಾನು ಇದನ್ನು ಕ್ಲೌಡ್ ಬದಲಾಗಿ ಬಳಸಲಿಲ್ಲ. ಬದಲಾಗಿ ಸಣ್ಣ ಕೆಲಸಗಳಿಗಾಗಿ ಒಂದು ವಿಶೇಷ ಸಾಧನವಾಗಿ ಬಳಸಿದೆ. ಹ್ಯಾಂಡ್‌ಹೆಲ್ಡ್ (handheld) ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ AI ಅನ್ನು ಚಲಾಯಿಸುವ ಬಗ್ಗೆ ನಾನು ಕಲಿತ ವಿಷಯಗಳು ಇಲ್ಲಿವೆ.

ಮೆಮೊರಿ ಅಡೆತಡೆ (The Memory Barrier)

ಹ್ಯಾಂಡ್‌ಹೆಲ್ಡ್‌ಗಳು Unified Memory Architecture ಅನ್ನು ಬಳಸುತ್ತವೆ. ಇದರರ್ಥ CPU ಮತ್ತು GPU ಒಂದೇ RAM ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಡಿಫಾಲ್ಟ್ ಆಗಿ, GPU ಗೆ ಅತ್ಯಲ್ಪ ಪ್ರಮಾಣದ ಮೆಮೊರಿ ಸಿಗುತ್ತದೆ.

ನಿಮ್ಮ ಮಾಡೆಲ್ ಆ ಮೆಮೊರಿ ಭಾಗದಲ್ಲಿ ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ, ಸಿಸ್ಟಮ್ CPU ಅನ್ನು ಬಳಸುತ್ತದೆ. ಇದು ಜನರೇಷನ್ (generation) ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅತ್ಯಂತ ನಿಧಾನವಾಗಿಸುತ್ತದೆ.

ಪರಿಹಾರ:

  • ನಿಮ್ಮ BIOS ಗೆ ಹೋಗಿ.
  • UMA frame buffer ಅನ್ನು ಮ್ಯಾನುಯಲ್ ಆಗಿ ಹೆಚ್ಚಿಸಿ.
  • ನಾನು ನನ್ನದನ್ನು 4 GB ಗೆ ಹೆಚ್ಚಿಸಿದೆ. ಈ ಬದಲಾವಣೆಯು ಇತರ ಯಾವುದೇ ಬದಲಾವಣೆಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸಹಾಯ ಮಾಡಿತು.

ಯಾವುದು ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ

ನನ್ನ ಮೆಮೊರಿಯಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಪಡೆಯಲು ನಾನು zRAM ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿದೆ. ಅದು ವಿಫಲವಾಯಿತು. ಹೆಚ್ಚಿನ AI ಮಾಡೆಲ್‌ಗಳು ಈಗಾಗಲೇ ಕಂಪ್ರೆಸ್ ಆಗಿರುವ GGUF ಫೈಲ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಸ್ಥಳಾವಕಾಶವನ್ನು ಪಡೆಯಲು ನೀವು ಅವುಗಳನ್ನು ಮತ್ತಷ್ಟು ಕಂಪ್ರೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಸಹಾಯಕ್ಕಾಗಿ ನಾನು ಡಿಸ್ಕ್ ಸ್ವ್ಯಾಪ್ (disk swap) ಬಳಸಲು ಕೂಡ ಪ್ರಯತ್ನಿಸಿದೆ. ಸ್ವ್ಯಾಪ್ ವಿಷಯಗಳನ್ನು ವೇಗಗೊಳಿಸುವುದಿಲ್ಲ. ಬದಲಾಗಿ ಅವುಗಳನ್ನು ಬಳಸಲಾಗದಂತೆ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಮಾಡೆಲ್ ಡಿಸ್ಕ್ ಸ್ವ್ಯಾಪ್ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದರೆ, ನೀವು ಪ್ರತಿ ಕೆಲವು ಸೆಕೆಂಡುಗಳಿಗೊಮ್ಮೆ ಕೇವಲ ಒಂದು ಪದವನ್ನು ಮಾತ್ರ ನೋಡಬಹುದು.

RAM ಖಾಲಿಯಾದಾಗ ಸಿಸ್ಟಮ್ ನಿಮ್ಮ ಪ್ರಕ್ರಿಯೆಯನ್ನು (process) ನಿಲ್ಲಿಸದಂತೆ ತಡೆಯಲು ಮಾತ್ರ ಸ್ವ್ಯಾಪ್ ಅನ್ನು ಎನೇಬಲ್ ಮಾಡಿರಬಹುದು.

ಸುಗಮವಾಗಿ ಚಲಾಯಿಸಲು ಸಲಹೆಗಳು

ನಿಮ್ಮ AI ಔಟ್‌ಪುಟ್ ಅಸ್ತವ್ಯಸ್ತವಾಗಿ ಅಥವಾ ಅನಿರಂತರವಾಗಿ (choppy/jumpy) ಅನಿಸಿದರೆ, ನಿಮ್ಮ Linux kernel ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.

  • ನಿಮ್ಮ vm.swappiness ಮೌಲ್ಯವನ್ನು ಕಡಿಮೆ ಮಾಡಿ.
  • ಇದು ಸಿಸ್ಟಮ್ ಮೆಮೊರಿಯನ್ನು ತುಂಬಾ ಬೇಗನೆ ಸ್ವ್ಯಾಪ್‌ಗೆ ವರ್ಗಾಯಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
  • ಇದು ಜನರೇಷನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅಸ್ತವ್ಯಸ್ತವಾಗುವ ಬದಲು ಸ್ಥಿರವಾಗಿರುವಂತೆ ಮಾಡುತ್ತದೆ.

ಮಾಡೆಲ್ ಆಯ್ಕೆಯು ಬಳಕೆಯ ಉದ್ದೇಶದ (Use-Case) ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ

ಹೆಚ್ಚಿನ ಜನರು ಅತ್ಯಂತ ವೇಗವಾದ ಮಾಡೆಲ್ ಅನ್ನು ಹುಡುಕುತ್ತಾರೆ. ಬದಲಾಗಿ ನಾನು ನಿಧಾನವಾದ ಆದರೆ ಹೆಚ್ಚು ನಿಖರವಾದ (sharper) ಮಾಡೆಲ್ ಅನ್ನು ಆರಿಸಿಕೊಂಡೆ.

  • ನೀವು ರಿಯಲ್ ಟೈಮ್‌ನಲ್ಲಿ ಚಾಟ್ ಮಾಡುತ್ತಿದ್ದರೆ, ನಿಮಗೆ ವೇಗ ಬೇಕು.
  • ನೀವು ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ಏಜೆಂಟ್ ಅನ್ನು ಚಲಾಯಿಸುತ್ತಿದ್ದರೆ, ನಿಮಗೆ ಗುಣಮಟ್ಟ ಬೇಕು.

ನಾನು ನನ್ನ ಸೆಟಪ್ ಅನ್ನು ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ಕೆಲಸಗಳಿಗಾಗಿ ಬಳಸುತ್ತೇನೆ. ನಾನು ಒಂದು ವಿನಂತಿಯನ್ನು (request) ಕಳುಹಿಸುತ್ತೇನೆ ಮತ್ತು ನಂತರ ಫಲಿತಾಂಶವನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇನೆ. ನಾನು ಪರದೆಯನ್ನು ನೋಡುತ್ತಿರುವುದಿಲ್ಲದ ಕಾರಣ, ಪ್ರತಿಕ್ರಿಯೆಯು 8 ಸೆಕೆಂಡುಗಳ ಬದಲಿಗೆ 40 ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಂಡರೂ ನನಗೆ ತೊಂದರೆಯಿಲ್ಲ. ನನಗೆ ಬೇಕಾಗಿರುವುದು ಅತ್ಯುತ್ತಮ ಉತ್ತರವೇ ಹೊರತು ಅತ್ಯಂತ ವೇಗದ ಉತ್ತರವಲ್ಲ.

ಹ್ಯಾಂಡ್‌ಹೆಲ್ಡ್‌ಗಳಲ್ಲಿ ರೀಸನಿಂಗ್ ಮಾಡೆಲ್‌ಗಳನ್ನು (reasoning models) ತಪ್ಪಿಸಿ. ದುರ್ಬಲ ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ಹಂತ-ಹಂತದ ಆಲೋಚನಾ ಪ್ರಕ್ರಿಯೆಯು ತುಂಬಾ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಗುಣಮಟ್ಟದಲ್ಲಿ ಆಗುವ ಹೆಚ್ಚಳವು ಕಾಯುವ ಸಮಯಕ್ಕೆ ತಕ್ಕಂತೆ ಇರುವುದಿಲ್ಲ.

ಇದು ಯಾವುದಕ್ಕೆ ಉತ್ತಮವಾಗಿದೆ

16 GB ಸಾಧನವು ಇವುಗಳಿಗೆ ಉತ್ತಮವಾಗಿದೆ:

  • ಸಣ್ಣ ಇಮೇಲ್‌ಗಳನ್ನು ಬರೆಯಲು (Drafting).
  • ಸಣ್ಣ ಕೋಡ್ ಸ್ನಿಪ್ಪೆಟ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು.
  • ದಿನನಿತ್ಯದ ಯೋಜನೆಯನ್ನು ರೂಪಿಸಲು.
  • ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ನಿಂದ ಹೊರಗೆ ಹೋಗಬಾರದು ಎನ್ನುವ ಖಾಸಗಿ ಕೆಲಸಗಳಿಗೆ.

ಇದು ಇವುಗಳಿಗೆ ಸೂಕ್ತವಲ್ಲ:

  • ಉದ್ದವಾದ ದಾಖಲೆಗಳು.
  • ಆಳವಾದ ಸಂಶೋಧನೆ.
  • ಸಂಕೀರ್ಣವಾದ ಕೋಡಿಂಗ್ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳು.

ಲೋಕಲ್ AI ಒಂದು ಸಾಧನವೇ ಹೊರತು ಪವಾಡವಲ್ಲ. ಇದು ದಿನನಿತ್ಯದ, ಲಘುವಾದ ಕೆಲಸಗಳಿಗೆ ಪರಿಪೂರ್ಣವಾಗಿದೆ.

Source: https://dev.to/frankydzoro/i-ran-an-llm-locally-on-my-asus-rog-ally-and-heres-what-i-actually-learned-3o6j

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