𝗤𝘂𝗮𝗻𝘁𝗶𝘇𝗶𝗻𝗴 𝗠𝗼𝗱𝗲𝗹𝘀 𝗼𝗻 𝗮 𝟲 𝗚𝗕 𝗟𝗮𝗽𝘁𝗼𝗽 𝗚𝗣𝗨
ನಾನು RTX 3050 ಲ್ಯಾಪ್ಟಾಪ್ GPU ನಲ್ಲಿ ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳನ್ನು (large language models) ಅಳವಡಿಸಲು ಪ್ರಯತ್ನಿಸಿದೆ. ಈ ಕಾರ್ಡ್ನಲ್ಲಿ ಕೇವಲ 6 GB VRAM ಇದೆ. 4-bit ಕ್ವಾಂಟೈಸೇಶನ್ನೊಂದಿಗೆ ಯಾವ ಮಾಡೆಲ್ಗಳು ಕೆಲಸ ಮಾಡುತ್ತವೆ ಮತ್ತು ಯಾವುವು ವಿಫಲವಾಗುತ್ತವೆ ಎಂಬುದನ್ನು ನಾನು ನೋಡಲು ಬಯಸಿದೆ.
ನಾನು ಮೂರು ಮಾಡೆಲ್ಗಳನ್ನು ಕ್ವಾಂಟೈಸ್ ಮಾಡಲು ಒಂದೇ ಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸಿದೆ:
- Phi-3.5-mini (3.8B)
- Llama-3.2-3B
- Qwen2.5-3B (VibeThinker)
ಫಲಿತಾಂಶಗಳು: Phi ಮತ್ತು Llama ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡಿದವು. Phi 34 ನಿಮಿಷಗಳಲ್ಲಿ 7.6 GB ನಿಂದ 2.2 GB ಗೆ ಇಳಿಯಿತು. Llama ಮತ್ತು VibeThinker ಕೂಡ ಇದೇ ರೀತಿಯ ಹಾದಿಯನ್ನು ಅನುಸರಿಸಿದವು. ಈ ಮಾಡೆಲ್ಗಳು ಸುಲಭವಾಗಿ ಅಳವಡಿಕೆಯಾದವು.
ನಂತರ ನಾನು Qwen2.5-7B ಅನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ. ಅದು ವಿಫಲವಾಯಿತು. 'Out of Memory' ದೋಷದೊಂದಿಗೆ (error) ಪ್ರಕ್ರಿಯೆಯು ಎರಡನೇ ಲೇಯರ್ನಲ್ಲಿ ಸ್ಥಗಿತಗೊಂಡಿತು (crash).
ಅದು ಏಕೆ ವಿಫಲವಾಯಿತು: GPTQ ಕ್ವಾಂಟೈಸೇಶನ್ ಪ್ರತಿ ಲೇಯರ್ಗಾಗಿ Hessian matrix ಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. 7B ಮಾಡೆಲ್ಗಾಗಿ, ಈ ಗಣಿತವು 6 GB ಕಾರ್ಡ್ ಒದಗಿಸುವതിಗಿಂತ ಹೆಚ್ಚಿನ ಮೆಮೊರಿಯನ್ನು ಬಯಸುತ್ತದೆ. ನಾನು ಹಲವಾರು ಪರಿಹಾರಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ:
- ಸಣ್ಣ ಕ್ಯಾಲಿಬ್ರೇಶನ್ ಡೇಟಾ ಸೆಟ್ಗಳು: ಯಾವುದೇ ಬದಲಾವಣೆ ಇಲ್ಲ.
- Hessians ಅನ್ನು CPU ಗೆ ಆಫ್ಲೋಡ್ ಮಾಡುವುದು: ಇದು ಹೆಚ್ಚು ಸಮಯದವರೆಗೆ ಚಲಿಸಿತು ಆದರೆ ನಂತರವೂ ಕ್ರ್ಯಾಶ್ ಆಯಿತು.
- GPTQ ಬದಲಿಗೆ AWQ ಬಳಸುವುದು: ಇದು ಅದೇ ಸ್ಥಳದಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಆಯಿತು.
- ಕೇವಲ CPU ಬಳಸುವುದು: ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಆದರೆ ತುಂಬಾ ನಿಧಾನವಾಗಿದೆ. ಇದು ಪ್ರತಿ ಲೇಯರ್ಗೆ ಸುಮಾರು 16 ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ.
ಸಣ್ಣ GPU ಗಳಿಗಾಗಿ ಪ್ರಮುಖ ಅಂಶಗಳು:
- ಮಾಡೆಲ್ ಗಾತ್ರದಲ್ಲಿ 3x ಕಡಿತವನ್ನು ನಿರೀಕ್ಷಿಸಿ.
- GPU ಕ್ವಾಂಟೈಸೇಶನ್ಗಾಗಿ 3 ರಿಂದ 4 ಬಿಲಿಯನ್ ಪ್ಯಾರಾಮೀಟರ್ ಮಿತಿಯನ್ನು ಗುರಿಯಾಗಿಡಿ.
- ನಿಮ್ಮ KV ಬಜೆಟ್ ಅನ್ನು ಗಮನಿಸಿ. ಫೈಲ್ ಗಾತ್ರಗಳು ಒಂದೇ ಆಗಿದ್ದರೂ ಸಹ, ಇನ್ಫರೆನ್ಸ್ (inference) ಸಮಯದಲ್ಲಿ ಬಳಸುವ ಮೆಮೊರಿ ವ್ಯತ್ಯಾಸವಾಗುತ್ತದೆ.
- ಸರ್ವಿಂಗ್ (serving) ಗಿಂತ ಕ್ವಾಂಟೈಸೇಶನ್ ಹೆಚ್ಚು ಮೆಮೊರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರಕ್ರಿಯೆಯ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಸಿಸ್ಟಮ್ RAM ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ.
ಮಾಡೆಲ್ ಹೋಲಿಕೆ (W4A16): • Phi-3.5-mini: 2.27 GB | 68.7 tok/s • Llama-3.2-3B: 2.26 GB | 66.0 tok/s • VibeThinker-3B: 2.07 GB | 43.9 tok/s
ಕ್ವಾಂಟೈಸೇಶನ್ ನಂತರ ಮೂರೂ ಮಾಡೆಲ್ಗಳು ಮೂಲಭೂತ ಗಣಿತ ಮತ್ತು ಪ್ರೈಮ್ ನಂಬರ್ ಲಾಜಿಕ್ ಅನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸಿದವು.
ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ: https://t.me/GyaanSetuAi