Setup Ollama + Qwen 2.5 32B trên VPS GPU rẻ nhất Việt Nam

Chia sẻ bài viết

Mục lục
TL;DR
  • Ollama là cách dễ nhất chạy LLM local trên Linux/Mac. Pull và chạy Qwen 2.5 32B qua 2 lệnh.
  • Qwen 2.5 32B với quantization Q4_K_M cần ~22GB VRAM, chạy ổn trên RTX 4090 24GB. Tốc độ 25-35 tok/s.
  • VPS GPU rẻ nhất VN cấu hình RTX 3060 12GB (~1 triệu/tháng) chỉ chạy nổi Qwen 14B Q4. Cần RTX 4090 cho 32B.
  • Qwen 2.5 hỗ trợ tiếng Việt rất tốt, hiểu context dài 128k token, code completion gần ngang GPT-4o-mini.
  • Bài này hướng dẫn full: cài driver, deploy Ollama, pull model, expose REST API, dùng từ Open WebUI và Tabby.

Năm 2026, Qwen 2.5 của Alibaba đã vượt Llama 3.3 ở nhiều benchmark, đặc biệt nổi bật ở khả năng tiếng Việt và code. Cho dev solo Việt Nam, một câu hỏi cuối cùng cần trả lời: cài Qwen tự host trên VPS GPU rẻ nhất có thể, để có một AI agent hoàn toàn riêng, không phụ thuộc Anthropic hay OpenAI. Bài này hướng dẫn deploy Ollama + Qwen 2.5 trên VPS GPU NVIDIA, từ chọn cấu hình hợp lý đến gọi API và tích hợp với Open WebUI làm dashboard chat.

Test trên hai cấu hình: RTX 3060 12GB (chạy Qwen 14B Q4) và RTX 4090 24GB (chạy Qwen 32B Q4). Cả hai đều phù hợp dev solo, chi phí từ 1 triệu tới 5 triệu/tháng tùy lựa chọn. Sau bài này bạn có một LLM endpoint OpenAI-compatible chạy nội bộ, có thể wrap mọi tool hỗ trợ OpenAI API (Cursor, Continue.dev, Tabby).

Vì sao chọn Qwen 2.5 thay vì Llama 3.3 hay Mistral?

Tiêu chíQwen 2.5Llama 3.3Mistral Large 2
Tiếng ViệtRất tốtTrung bìnhTốt
CodeRất tốt (Qwen2.5-Coder)TốtTốt
Context window128k token128k128k
LicenseApache 2.0 (1.5B-32B)Llama CommunityMRL (commercial restricted)
Size đa dạng0.5B/1.5B/3B/7B/14B/32B/72B3B/8B/70B/405B123B only
Quantization hỗ trợTốt (gguf, awq, gptq)TốtTốt

Qwen 2.5 thắng ở: tiếng Việt, dải size linh hoạt (chọn phù hợp VRAM), license Apache thoải mái thương mại. Mistral Large 2 size quá lớn, không khả thi tự host budget thường.

Lựa chọn VPS GPU theo budget

VPS GPUVRAMGiá/thángQwen 2.5 chạy đượcTok/s
RTX 306012 GB~1-1.5 triệu7B FP16, 14B Q430-50
RTX 407012 GB~1.5-2 triệu14B Q4, 14B Q540-60
RTX 409024 GB~4-6 triệu32B Q4, 32B Q525-35
2x RTX 409048 GB~10 triệu72B Q4 split15-25
A100 40GB40 GB~15-20 triệu72B Q540-60

Cho dev solo, sweet spot là RTX 4090 24GB chạy Qwen 32B. Đủ thông minh cho 90 phần trăm task, giá hợp lý. Khi chỉ test thử, RTX 3060 12GB + Qwen 14B đủ trải nghiệm.

Bước 1: Cài NVIDIA driver

sudo apt update
sudo apt install -y ubuntu-drivers-common
sudo ubuntu-drivers autoinstall
sudo reboot

# sau reboot
nvidia-smi

Thấy bảng GPU info nghĩa driver OK.

Bước 2: Cài Ollama

curl -fsSL https://ollama.com/install.sh | sh
ollama --version
sudo systemctl status ollama

Script tự install binary, tạo systemd service, expose REST API tại localhost:11434.

Bước 3: Pull và chạy Qwen 2.5

# 32B với Q4 (cho RTX 4090)
ollama pull qwen2.5:32b

# Hoặc 14B với Q4 (cho RTX 3060/4070)
ollama pull qwen2.5:14b

# Hoặc 7B (thử nhanh)
ollama pull qwen2.5:7b

Download mất 5-15 phút tùy bandwidth (model size 4-20GB). Khi xong, test:

ollama run qwen2.5:32b "Viết hàm Python tính tuổi từ ngày sinh"

Model load lần đầu mất 30-60 giây vào VRAM. Sau đó stream câu trả lời mượt, 25-35 tok/s.

Bước 4: Expose API ra ngoài

Mặc định Ollama bind 127.0.0.1. Sửa systemd:

sudo systemctl edit ollama
# Thêm:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
sudo systemctl daemon-reload
sudo systemctl restart ollama

Bây giờ port 11434 mở ra interface ngoài. Đặt sau Caddy với auth token để tránh ai cũng gọi được.

Bước 5: Caddy reverse proxy + auth

ollama.your-domain.com {
    @authorized header Authorization "Bearer $YOUR_LONG_API_KEY"
    handle @authorized {
        reverse_proxy localhost:11434
    }
    handle {
        respond "Unauthorized" 401
    }
}

App từ ngoài gọi:

curl -X POST https://ollama.your-domain.com/api/generate 
  -H "Authorization: Bearer $YOUR_API_KEY" 
  -d '{"model": "qwen2.5:32b", "prompt": "Hello in Vietnamese"}'

Bước 6: OpenAI-compatible endpoint

Ollama có endpoint /v1/chat/completions tương thích OpenAI:

curl -X POST https://ollama.your-domain.com/v1/chat/completions 
  -H "Authorization: Bearer $YOUR_API_KEY" 
  -H "Content-Type: application/json" 
  -d '{
    "model": "qwen2.5:32b",
    "messages": [{"role": "user", "content": "Viết quote về dev solo"}]
  }'

Mọi tool hỗ trợ OpenAI API đều dùng được bằng cách đổi base URL. Cursor, Continue.dev, LiteLLM, LangChain, OpenAI SDK.

Bước 7: Cài Open WebUI làm dashboard chat

docker run -d --name open-webui 
  --add-host=host.docker.internal:host-gateway 
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 
  -p 3000:8080 
  -v open-webui:/app/backend/data 
  --restart=always 
  ghcr.io/open-webui/open-webui:main

Đặt sau Caddy:

chat.your-domain.com {
    reverse_proxy localhost:3000
}

Mở https://chat.your-domain.com, đăng ký account đầu tiên (auto admin). UI giống ChatGPT, có RAG (upload file), web search plugin, model switcher.

Tích hợp với Tabby cho code completion

Tabby (đã có bài riêng) hỗ trợ Ollama backend. Sửa Tabby config:

model:
  completion:
    http:
      kind: ollama/completion
      model_name: qwen2.5-coder:7b
      api_endpoint: http://localhost:11434
  chat:
    http:
      kind: ollama/chat
      model_name: qwen2.5:14b
      api_endpoint: http://localhost:11434

Restart Tabby. Code completion trong VS Code dùng Qwen2.5-Coder 7B (latency 100-200ms), chat dùng Qwen 14B. Toàn bộ nội bộ.

Tích hợp với Cursor

Cursor cho phép custom OpenAI endpoint. Settings > Models > Override OpenAI Base URL:

  • OpenAI API Key: $YOUR_API_KEY
  • Override OpenAI Base URL: https://ollama.your-domain.com/v1
  • Default Model: qwen2.5:32b

Cursor chat và edit dùng Qwen tự host. Tiết kiệm subscription Cursor Pro.

Tối ưu performance

  • num_ctx: giảm context window xuống 8192 nếu không cần long context, tăng tốc 2x.
  • num_predict: giới hạn output token, tránh agent loop dài.
  • num_gpu: số layer trên GPU. Default tự detect, force = N nếu cần.
  • flash_attention: bật trong env OLLAMA_FLASH_ATTENTION=1, tăng tốc 20-30 phần trăm.
  • Preload model: giữ model trong VRAM với ollama run qwen2.5:32b "" rồi exit, model vẫn loaded.

Monitor GPU usage

watch -n 1 nvidia-smi
# Hoặc nvtop đẹp hơn
sudo apt install nvtop
nvtop

Theo dõi VRAM usage, GPU utilization, temperature. Trên Qwen 32B Q4, GPU thường 80-95 phần trăm util khi inference, idle 0 phần trăm khi không có request.

So sánh chi phí token

SolutionChi phí 1M tokenPrivacy
GPT-4o-mini API0.15 USD input, 0.6 USD outputGửi data ra OpenAI
Claude Haiku API0.25 USD input, 1.25 USD outputGửi data ra Anthropic
Qwen self-host RTX 4090Cost flat VPS ~5 triệu/tháng = unlimited100% nội bộ

Break-even: nếu dùng trên 30M token/tháng (GPT-4o-mini = 7-15 USD), self-host bắt đầu rẻ hơn. Đặc biệt khi privacy là yêu cầu, self-host là duy nhất khả thi.

Backup model và config

  • Model file ở ~/.ollama/models, khoảng 4-20GB mỗi model. Có thể tar và backup vào S3 nếu không muốn download lại.
  • Config systemd: /etc/systemd/system/ollama.service.d/override.conf - commit vào git.
  • Open WebUI data trong docker volume open-webui. Backup volume hàng tuần.

Update Ollama và model

curl -fsSL https://ollama.com/install.sh | sh  # update binary
ollama pull qwen2.5:32b  # update model nếu có version mới

Qwen mới (3.0+) ra mắt khi nào thì pull tương ứng. Test trước, switch dần.

FAQ

VPS GPU rẻ nhất Việt Nam tìm ở đâu?

Một số nhà cung cấp VN có VPS GPU với RTX 3060/4070 từ 1-2 triệu/tháng. Cần check kỹ về uptime, support, có dùng được full GPU không (một số virtualization chỉ cho 50 phần trăm). TND đang mở rộng dòng VPS GPU 2026, theo dõi cập nhật ở trang sản phẩm.

Qwen 2.5 có an toàn dùng cho production không?

License Apache 2.0 cho phép thương mại không hạn chế. Alibaba (Tongyi Lab) maintain tích cực, release model mới đều. Đã được nhiều startup VN dùng production. Chỉ lưu ý: data input không nên có PII của user khác để tránh vấn đề pháp lý nội bộ.

Có thể dùng Ollama trên Mac M3/M4 thay VPS GPU không?

Có. Apple Silicon dùng Metal backend, M3 Max 64GB chạy Qwen 32B Q4 ổn 15-25 tok/s. Phù hợp dev cá nhân. Khi cần share cho team, vẫn nên VPS GPU dedicated 24/7.

Qwen 32B so với Claude Sonnet 3.5 ra sao?

Trên benchmark public, Qwen 32B khoảng 85-90 phần trăm Claude Sonnet 3.5 ở task reasoning, code, summarize. Tiếng Việt Qwen tốt hơn. Task agentic phức tạp Claude vẫn hơn. Cho work hàng ngày 80 phần trăm task, Qwen đủ tốt.

Có thể chạy multiple model song song trên 1 VPS GPU không?

Có nếu VRAM còn dư. RTX 4090 24GB chứa được Qwen 14B Q4 (~9GB) + Qwen2.5-Coder 7B (~5GB) song song. Ollama tự load/unload theo request. Concurrent inference nhiều cùng lúc thì 1 model 1 thời điểm, queue.

Cloud VPS cho vibe coder

Cloud VPS làm app server + VPS GPU dedicated chạy Ollama

Cloud VPS TND sẵn AlmaLinux 9, Ubuntu 22/24, Debian 12/13. SSD CEPH, snapshot 1-click, backup hằng ngày, network 200Mbps trong nước. Combo: Cloud VPS 50 chạy Caddy + Open WebUI, VPS GPU dedicated chạy Ollama Qwen, tổng dưới 6 triệu/tháng cho full stack AI tự host.

Xem 8 cấu hình Cloud VPS →