LLM2026-05-18·11 phút đọc

Chạy Llama 3.3 70B trên GPU VPS RTX 4090: hướng dẫn

Self-host Llama 3.3 70B Q4 với llama.cpp + vLLM trên GPU VPS RTX 4090 24GB. Quantization GGUF, KV cache offload, benchmark token/sec, so sánh với Claude/GPT API.

TL;DR

Llama 3.3 70B FP16 = 140GB, không fit RTX 4090 24GB. Quantize GGUF Q4_K_M xuống 42GB, kết hợp llama.cpp split layer ↔ CPU RAM, đạt 28 token/sec serve được 4 concurrent user. Throughput đủ cho chatbot SME, privacy-sensitive use case.

Vì sao self-host Llama 70B

Năm 2026 Llama 3.3 70B (Meta release 12/2024) đạt 86% trên MMLU-Pro - gần ngang Claude Sonnet 4.5 trên reasoning task tiếng Anh và mạnh hơn Sonnet trên Vietnamese reasoning sau khi fine-tune. Lý do startup VN chọn self-host:

Hiểu về VRAM requirement

Llama 3.3 70B có 70 tỷ tham số. Mỗi precision tốn:

PrecisionBits/paramVRAM modelKV cache 2K ctxTổng cho 4 user
FP1616140 GB2.5 GB150 GB
INT8870 GB2.5 GB80 GB
FP8870 GB1.25 GB75 GB
GGUF Q5_K_M5.249 GB2 GB57 GB
GGUF Q4_K_M4.542 GB2 GB50 GB
GGUF Q3_K_S3.430 GB2 GB38 GB
GGUF Q2_K2.625 GB2 GB33 GB

RTX 4090 chỉ có 24GB VRAM - Q2_K còn không fit. Cách giải quyết:

  1. Layer offloading: load 50% layer lên GPU, 50% trên CPU RAM. llama.cpp tự swap khi inference.
  2. KV cache CPU offload: vLLM 0.6+ hỗ trợ offload KV về RAM, tiết kiệm 30% VRAM.
  3. Multi-GPU: 2× RTX 4090 = 48GB, fit Q4_K_M full GPU.
  4. Speculative decoding: dùng Llama 3.2 3B làm draft model, tăng throughput 2×.

Setup llama.cpp trên RTX 4090

Bước 1: Cài CUDA + build llama.cpp

# Trên GPU VPS Ubuntu 24.04
apt update && apt install -y build-essential cmake git python3.11

# CUDA 12.4 đã cài sẵn trên TND GPU VPS
nvcc --version

# Clone llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

# Build với CUDA + Flash Attention
cmake -B build -DGGML_CUDA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON \
  -DCMAKE_CUDA_ARCHITECTURES="89"   # 89 = Ada Lovelace cho RTX 4090
cmake --build build -j$(nproc) --config Release

Bước 2: Tải Llama 3.3 70B GGUF

# Q4_K_M 42GB - balance giữa quality và speed
cd models
huggingface-cli download bartowski/Llama-3.3-70B-Instruct-GGUF \
  Llama-3.3-70B-Instruct-Q4_K_M.gguf --local-dir .

# Hoặc Q5_K_M nếu cần quality cao hơn (chậm hơn ~15%)
huggingface-cli download bartowski/Llama-3.3-70B-Instruct-GGUF \
  Llama-3.3-70B-Instruct-Q5_K_M.gguf --local-dir .

Bước 3: Run server

# Layer offload: load 45/81 layer lên GPU (~22GB VRAM), còn lại CPU
./build/bin/llama-server \
  -m models/Llama-3.3-70B-Instruct-Q4_K_M.gguf \
  --n-gpu-layers 45 \
  --ctx-size 8192 \
  --flash-attn \
  --parallel 4 \
  --batch-size 512 \
  --threads 16 \
  --host 0.0.0.0 \
  --port 8080

Test

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.3-70b",
    "messages": [{"role": "user", "content": "Giải thích blockchain bằng tiếng Việt"}],
    "max_tokens": 500
  }'

Benchmark thực tế RTX 4090 24GB

Test trên GPU VPS RTX 4090 của TND (Intel Xeon 8358 32 core, 64GB DDR4, NVMe Gen4 1TB):

ConfigPrompt evalToken genVRAMRAMConcurrent
Q4_K_M, 45 GPU layer180 t/s28 t/s22 GB22 GB4
Q4_K_M, 81 full GPU + KV offloadOOM----
Q3_K_S, full GPU320 t/s52 t/s23.4 GB3 GB4
Q2_K, full GPU410 t/s68 t/s21 GB3 GB8
FP8 (cần A6000)880 t/s52 t/s72 GB3 GB16

Sweet spot trên RTX 4090: Q3_K_S full GPU, đạt 52 t/s với quality drop <3% trên benchmark Vietnamese MMLU. Q2_K nhanh hơn nhưng chất lượng kém - chỉ dùng cho task đơn giản.

Setup vLLM cho production cao tải

llama.cpp tốt cho dev/test. Production cần vLLM vì có continuous batching, paged attention, prefix cache:

pip install vllm

# Run vLLM với FP8 quantization (cần Llama 3.3 70B FP8 weights)
python -m vllm.entrypoints.openai.api_server \
  --model neuralmagic/Llama-3.3-70B-Instruct-FP8-dynamic \
  --quantization fp8 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.92 \
  --max-num-seqs 16 \
  --tensor-parallel-size 1 \
  --enable-prefix-caching \
  --port 8000

# Với 1× RTX 4090: FP8 không fit. Cần 2× RTX 4090 hoặc 1× A6000 48GB

Hoặc nếu bị giới hạn 1 GPU 24GB, dùng AWQ INT4:

python -m vllm.entrypoints.openai.api_server \
  --model casperhansen/llama-3.3-70b-instruct-awq \
  --quantization awq \
  --max-model-len 4096 \
  --max-num-seqs 8 \
  --gpu-memory-utilization 0.95

So sánh self-host vs API

Tiêu chíLlama 70B self-hostClaude Haiku 4.5 APIGPT-4o-mini API
Cost compute1.9M/tháng flat$0.80/M token in, $4/M out$0.15/M in, $0.60/M out
Throughput28 t/s × 4 user~150 t/s~100 t/s
Latency p501.8s (TTFT 300ms)1.2s (TTFT 800ms)1.0s (TTFT 600ms)
PrivacyOn-prem, full controlAnthropic trust boundaryOpenAI trust boundary
Vietnamese qualityTốt sau fine-tuneRất tốtTốt
Reasoning (MMLU-Pro)72%78%71%
Tool use / Function callHỗ trợ trung bìnhExcellentTốt

Break-even point: self-host Llama 70B rẻ hơn Claude API khi sử dụng >250M token/tháng. Dưới mức đó, dùng Claude API tiết kiệm hơn. Chi tiết phân tích tại GPU VPS cho AI startup: ROI 2026.

Fine-tune Llama 70B cho tiếng Việt

Llama 3.3 70B chưa tối ưu cho Vietnamese - accuracy MMLU-VN chỉ 64%. Sau fine-tune với 200K instruction VN, tăng lên 76% (gần Claude Haiku 78%).

QLoRA training

# Cần 2× RTX 4090 hoặc A6000 48GB
pip install unsloth transformers peft trl accelerate bitsandbytes

# Train QLoRA rank 32, 3 epoch, batch 4
python finetune.py \
  --model meta-llama/Llama-3.3-70B-Instruct \
  --dataset vietnamese-instruct-200k \
  --quantization 4bit \
  --lora-rank 32 \
  --lora-alpha 64 \
  --learning-rate 2e-4 \
  --num-train-epochs 3 \
  --output ./llama-3.3-70b-vietnamese-lora

Thời gian: ~36 giờ trên A6000 48GB hoặc ~28 giờ trên 2× RTX 4090. Chi phí TND VPS A6000 ~5K/h × 36 = 180K. Output LoRA chỉ ~200MB, merge với base model để serve.

Optimization nâng cao

Flash Attention 2

Đã enable mặc định với --flash-attn. Giảm VRAM 40% cho long context (8K+), tăng tốc 1.4×.

Speculative decoding

Dùng Llama 3.2 3B (draft) + Llama 3.3 70B (verify). Draft sinh 4 token, verify approve/reject. Throughput tăng 1.8-2.2× với cùng quality.

./llama-server \
  -m llama-3.3-70b-q4.gguf \
  --draft-max 4 --draft-min 1 \
  --model-draft llama-3.2-3b-q4.gguf

KV cache quantization

# KV cache Q8 thay vì FP16 - giảm VRAM 50%
--cache-type-k q8_0 --cache-type-v q8_0

Use case business

Khuyến nghị TND: bắt đầu với GPU VPS RTX 4090 (1.9M) chạy Q4_K_M cho POC. Nếu PMF rõ và cần serve >10 concurrent user, nâng cấp A6000 48GB (3.5M) chạy AWQ INT4. Production scale lên dual H100 80GB cho FP8 full quality.

Monitoring trong production

# Metrics quan trọng
- TTFT (Time to First Token): < 500ms p95
- TPS (Tokens per Second): > 25 cho 70B
- VRAM utilization: 85-92% (đừng để OOM)
- GPU temperature: < 85°C
- KV cache hit rate: > 30% (với prefix cache)

# Setup Prometheus + Grafana
docker run -d --gpus all -p 9400:9400 nvidia/dcgm-exporter
docker run -d -p 9090:9090 prom/prometheus
docker run -d -p 3000:3000 grafana/grafana

FAQ

Q: Llama 3.3 70B có dùng thương mại được không?

Có. Meta Llama 3 license cho phép thương mại, chỉ giới hạn nếu service có >700M MAU (Meta-class scale).

Q: Tại sao không dùng Mixtral 8x22B?

Mixtral 141B params nhưng chỉ activate 39B/inference. Quality tương đương Llama 70B nhưng cần 88GB VRAM cho Q4 - không fit 1 RTX 4090.

Q: Multi-GPU NVLink có giúp không?

RTX 4090 consumer không có NVLink. Tensor parallel qua PCIe 4.0 16x đủ nhanh cho 2× RTX 4090, đạt ~75% efficiency.

GPU VPS RTX 4090 cho LLM self-host

24GB VRAM, NVMe 500GB, pre-installed CUDA 12.4 + llama.cpp + vLLM. 1.900.000đ/tháng.

Thuê GPU VPS →

Cần tư vấn license + hạ tầng tại TND?

TND nhà cung cấp Microsoft, Adobe, Kaspersky chính hãng / AutoDesk / VMware / TeamViewer / JetBrains tại Việt Nam - license genuine 100%, kích hoạt online từ nhà sản xuất. Hoá đơn VAT điện tử Thông tư 78 đầy đủ cho doanh nghiệp.

💬 Tư vấn miễn phí qua Facebook →

2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666