Trong hệ sinh thái suy luận mô hình ngôn ngữ lớn, việc lựa chọn framework tối ưu phụ thuộc vào đặc thù tải công việc. vLLM thường được xem là chuẩn mực nhờ cơ chế PagedAttention và kỹ thuật Continuous Batching, giúp tối đa hóa thông lượng cho các yêu cầu đơn lẻ. Ngược lại, SGLang vượt trội trong các kịch bản hội thoại đa vòng hoặc hệ thống Agent nhờ RadixAttention. Cơ chế này cho phép cache và chia sẻ tiền tố (prefix) giữa các request, loại bỏ tính toán thừa và cải thiện đáng kể hiệu suất khi xử lý ngữ cảnh dài.
1. Xác minh phần cứng và môi trường CUDA
Quy trình bắt đầu bằng việc kiểm tra trạng thái driver GPU và xác nhận phiên bản trình biên dịch CUDA đang hoạt động.
# Hiển thị thông số driver và bộ nhớ VRAM
nvidia-smi
# Giám sát tải GPU theo chu kỳ 2 giây
watch -n 2 nvidia-smi
# Kiểm tra phiên bản CUDA toolkit
nvcc --version
2. Thiết lập môi trường ảo
Để đảm bảo tính ổn định, mọi phụ thuộc nên được cách ly trong một môi trường Python riêng biệt.
# Liệt kê các môi trường đang tồn tại
conda env list
# Xóa môi trường cũ nếu phát sinh xung đột
conda remove -n llm_infer_env --all -y
# Tạo và kích hoạt môi trường mới với Python 3.10
conda create -n llm_infer_env python=3.10 -y
conda activate llm_infer_env
3. Cài đặt PyTorch tương thích
Phiên bản PyTorch cần khớp chính xác với CUDA driver. Đoạn mã dưới đây cài đặt cho CUDA 12.1/12.2 và tích hợp script kiểm tra khả năng nhận diện thiết bị tính toán.
# Lệnh cho CUDA 12.1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# Hoặc CUDA 12.2
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu122
# Xác thực tích hợp GPU
python3 << 'EOF'
import torch
is_ready = torch.cuda.is_available()
print(f"Torch version: {torch.__version__}")
print(f"CUDA available: {is_ready}")
if is_ready:
print(f"Primary device: {torch.cuda.get_device_name(0)}")
print(f"Visible GPU count: {torch.cuda.device_count()}")
print(f"CUDA runtime version: {torch.version.cuda}")
EOF
4. Đồng bộ trọng số mô hình
Sử dụng công cụ quản lý mô hình để tải bộ weights về ổ đĩa cục bộ. Đường dẫn lưu trữ cần được chỉ định rõ ràng để framework truy xuất sau này.
# Cài đặt thư viện tải về
pip install modelscope
# Tải bộ weights về thư mục chỉ định
modelscope download --model Qwen/Qwen3.5-35B-A3B --local_dir /mnt/storage/models/qwen35_repo
5. Tích hợp FlashInfer và SGLang
FlashInfer đóng vai trò nhân tính toán tối ưu bắt buộc. Cài đặt gói pre-built sẽ bỏ qua bước JIT compile tốn thời gian khi khởi động lần đầu.
# Cài đặt phiên bản tương thích PyTorch 2.5 + CUDA 12.1
pip install flashinfer-python -i https://flashinfer.ai/whl/cu121/torch2.5
# Kiểm tra phiên bản
python -c "import flashinfer; print('FlashInfer:', flashinfer.__version__)"
Nếu gặp nghẽn mạng, có thể tải thủ công file .whl từ kho phát hành chính thức hoặc mirror, sau đó cài đặt cục bộ: pip install /đường_dẫn_tới/flashinfer_xxx.whl.
Tiếp theo, triển khai core framework cùng các gói tăng tốc GPU:
pip install "sglang[all]" --index-url https://pypi.tuna.tsinghua.edu.cn/simple
6. Khởi động dịch vụ suy luận
Đoạn lệnh cấu hình server chạy song song trên 4 card đồ họa, kích hoạt bộ nhớ tĩnh và bộ phân tích cú pháp đặc thù cho kiến trúc Qwen.
export TARGET_GPUS=0,1,2,3
export MODEL_REPO=/mnt/storage/models/qwen35_repo
CUDA_VISIBLE_DEVICES=$TARGET_GPUS python -m sglang.launch_server \
--model-path $MODEL_REPO \
--served-model-name qwen35-a3b-infer \
--host 0.0.0.0 \
--port 9200 \
--tp-size 4 \
--mem-fraction-static 0.85 \
--context-length 32768 \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
7. Vận hành và quản lý tiến trình
Để dịch vụ hoạt động liên tục ngoài session terminal, đóng gói lệnh khởi động vào script và chạy ở chế độ nền.
# Chạy ngầm và lưu output vào file log
nohup bash ./boot_server.sh > runtime.log 2>&1 &
# Theo dõi nhật ký thời gian thực
tail -f runtime.log
# Dọn dẹp tiến trình khi cần tắt dịch vụ
pkill -f "sglang.launch_server"
Về khả năng tương thích phần cứng: ngoài kiến trúc NVIDIA, SGLang từ phiên bản 0.4.4 đã chính thức hỗ trợ backend ROCm. Điều này cho phép triển khai trực tiếp trên GPU AMD hoặc các accelerator nội địa tương thích chuẩn ROCm mà không cần chỉnh sửa mã nguồn lõi.