1. Đặt vấn đề
VRAM là bộ nhớ của GPU. Khi chạy model lớn, đặc biệt model 14B, 32B hoặc context dài trên GPU 16GB, hệ thống có thể hết VRAM. Khi đó model không load được, request lỗi, chạy rất chậm do offload sang CPU, hoặc Ollama/backend báo out of memory. Đây là lỗi phổ biến khi người triển khai muốn thử model lớn hơn khả năng phần cứng.
Trong bệnh viện, cần ưu tiên ổn định hơn tham vọng chạy model quá lớn.
2. Dấu hiệu nhận biết
- Model không chạy được.
- Lỗi out of memory.
nvidia-smibáo VRAM gần đầy.- Request bị dừng giữa chừng.
- Ollama treo hoặc restart.
- Model chạy chậm bất thường.
- Một model lớn chạy được khi một người dùng, nhưng lỗi khi nhiều người dùng.
- Context dài làm model lỗi.
3. Kiểm tra VRAM
Dùng:
nvidia-smiTheo dõi realtime:
watch -n 1 nvidia-smiKiểm tra model loaded:
ollama psCần xem:
- VRAM tổng.
- VRAM đã dùng.
- Process nào dùng GPU.
- Có nhiều model loaded không.
- Model dùng CPU/GPU ra sao.
4. Nguyên nhân thường gặp
4.1. Model quá lớn
Model vượt khả năng VRAM.
4.2. Quantization quá nặng
Q8 hoặc Q6 có thể tốn VRAM hơn Q4.
4.3. Context quá dài
Context lớn làm tăng bộ nhớ cần thiết.
4.4. Nhiều request đồng thời
Mỗi request cần thêm bộ nhớ cho KV cache.
4.5. Nhiều model loaded
Nhiều model giữ trong VRAM cùng lúc gây thiếu bộ nhớ.
4.6. Tác vụ embedding hoặc process khác dùng GPU
Một tiến trình khác chiếm VRAM.
5. Cách xử lý nhanh
- Dừng request nặng.
- Chờ model unload hoặc restart Ollama nếu cần.
- Kiểm tra process bằng
nvidia-smi. - Dùng model nhỏ hơn.
- Giảm context.
- Giảm số request đồng thời.
- Không chạy nhiều model cùng lúc.
- Chuyển tác vụ lớn sang queue hoặc ngoài giờ.
Nếu cần khôi phục nhanh:
sudo systemctl restart ollamaNhưng cần ghi nhận nguyên nhân trước khi restart nếu có thể.
6. Chọn model phù hợp VRAM 16GB
Với GPU 16GB, nên ưu tiên:
- Model 4B cho tốc độ và nhiều người dùng.
- Model 7B/8B quantized cho chất lượng tốt.
- Model 14B chỉ khi benchmark cho thấy chấp nhận được.
- Tránh model quá lớn làm mặc định toàn viện.
Model lớn chỉ nên cho nhóm ít người dùng và tác vụ chuyên sâu.
7. Giảm context
Nếu model gần đầy VRAM, giảm num_ctx có thể giúp. Có thể tạo nhiều cấu hình:
- Model nhanh context nhỏ.
- Model RAG context vừa.
- Model phân tích sâu context lớn nhưng giới hạn người dùng.
Không nên đặt context lớn mặc định cho tất cả.
8. Quản lý keep-alive
Ollama có thể giữ model trong bộ nhớ sau khi dùng. Điều này giúp request sau nhanh hơn nhưng chiếm VRAM. Nếu nhiều model được gọi luân phiên, VRAM có thể bị chiếm. API trung gian cần quản lý model nào được dùng thường xuyên và tránh gọi quá nhiều model khác nhau.
9. Phòng ngừa
Cần:
- Benchmark model trước khi dùng.
- Ghi VRAM từng model.
- Giới hạn model lớn.
- Giới hạn context.
- Có queue.
- Không chạy batch GPU giờ cao điểm.
- Theo dõi
nvidia-smi. - Đào tạo quản trị viên hiểu VRAM.
- Không chọn model chỉ vì tham số lớn.
10. Kết luận
Hết VRAM là lỗi thường gặp khi chạy model lớn hoặc context dài trên GPU giới hạn. Cách xử lý là chọn model phù hợp, dùng quantization hợp lý, giảm context, giới hạn request đồng thời và quản lý model loaded. Với bệnh viện, hệ thống ổn định với model vừa đủ thường có giá trị hơn hệ thống cố chạy model lớn nhưng chậm và lỗi.
- Đăng nhập để gửi ý kiến