vLLM vs SGLang: Nên Chọn Engine AI Nào?

vLLM hay SGLang: doanh nghiệp nên chọn engine nào cho Chatbot, RAG và Coder?

Câu hỏi thường gặp: “vLLM hay SGLang tốt hơn?”

Câu trả lời đúng không phải là chọn một engine cho mọi tình huống.
Benchmark cho thấy vLLM rất mạnh ở tải thấp/single-node,
trong khi SGLang nổi bật hơn khi scale-out
cho Chatbot tải cao, RAG dài và workload hỗn hợp.

Ở bài viết này, chúng ta sử dụng một cụm AI với cấu hình như sau:

  • 4 DGX Spark, mỗi node sử dụng unified GPU memory 128GB VRAM
  • 1 Switch MikroTik với bandwidth 200Gbps
  • Cụm Kubernetes với 4 worker node
  • Mô hình LLM thử nghiệm: Qwen3.6-35B-A3B-FP8

Benchmark Qwen3.6-35B-A3B-FP8

Benchmark mô hình Qwen3.6-35B-A3B-FP8

Mô hình triển khai thử nghiệm

Sơ đồ thiết kế kiểm thử với DGX Spark

Hình 1. Sơ đồ thiết kế kiểm thử với DGX Spark

Mô hình inference tham khảo

Chúng ta có thể tham khảo mô hình inference sau:

LLM inference pipeline

Hình 2. LLM inference pipeline

Chú thích thuật ngữ

  • xN: số node DGX Spark sử dụng trong bài test, từ 1 đến 4 node.
  • P – Prefill: giai đoạn mô hình nhận input và xử lý prompt.
  • D – Decode: giai đoạn mô hình sinh token để trả về kết quả.
  • 1P2D: 1 worker làm Prefill, 2 worker làm Decode.

1. Kịch bản thử nghiệm

Để trả lời câu hỏi “vLLM hay SGLang tốt hơn?”, chúng ta không thể chỉ nhìn vào một benchmark đơn lẻ.
Trong thực tế triển khai cho doanh nghiệp, cùng một mô hình LLM nhưng workload khác nhau sẽ tạo ra bottleneck khác nhau.

Một chatbot thông thường cần phản hồi nhanh và duy trì trải nghiệm mượt khi nhiều người dùng cùng truy cập.
Một hệ thống RAG lại phải xử lý input dài, đọc nhiều tài liệu trước khi sinh câu trả lời.
Trong khi đó, Coder hoặc Dev Assistant thường phải sinh output dài, nên áp lực nằm nhiều ở giai đoạn decode.

Các câu hỏi chính của bài test

  • Nếu chỉ demo hoặc PoC với ít người dùng, engine nào cho cảm giác phản hồi nhanh nhất?
  • Nếu triển khai chatbot cho nhiều người dùng đồng thời, engine nào scale-out tốt hơn?
  • Nếu workload là RAG với context dài, cấu hình nào xử lý prefill hiệu quả hơn?
  • Nếu workload là Coder sinh output dài, engine nào giữ tốc độ decode ổn định hơn?
  • Nếu doanh nghiệp chưa rõ workload tương lai, cấu hình nào là baseline ít rủi ro hơn?

Bảng cấu hình benchmark

Nhóm cấu hình Kiểu triển khai Vai trò Mục tiêu kiểm tra
vLLM 1N Single-node Baseline vLLM Đo hiệu năng vLLM ở tải thấp, ít overhead
SGLang 1N Single-node Baseline SGLang Đo hiệu năng SGLang single-node
vLLM Ray 2N Ray cluster Scale-out vLLM Kiểm tra khả năng mở rộng vLLM qua Ray
vLLM K8s 2N Kubernetes vLLM trên K8s Đánh giá hiệu quả khi triển khai vLLM trong Kubernetes
SGLang 2N 1P1D K8s Prefill/Decode Disaggregation 1 Prefill, 1 Decode Kiểm tra hiệu quả tách Prefill và Decode ở quy mô nhỏ
SGLang 4N 1P3D K8s Prefill/Decode Disaggregation 1 Prefill, 3 Decode Tối ưu cho Chatbot tải cao, decode-heavy
SGLang 4N 2P2D K8s Prefill/Decode Disaggregation 2 Prefill, 2 Decode Cấu hình cân bằng cho Chatbot + RAG

Bảng kịch bản test tổng quan

Mã kịch bản Workload Input/Output đặc trưng Concurrency Mục đích
c1 Chatbot tải thấp Prompt ngắn, output vừa 1 user Đo cảm giác phản hồi ban đầu
c64 Chatbot tải cao Prompt ngắn, nhiều user đồng thời 64 users Đo năng lực phục vụ nhiều user
OSL256 – OSL2048 Coder output dài Sinh output từ 256 đến 2048 tokens Theo bài test coder Đo độ ổn định khi sinh output dài
RAG 16K RAG context dài Input dài khoảng 16K tokens Theo bài test RAG Đo năng lực đọc context dài trước khi trả lời
Hết phần 1. Phần 2 sẽ đi vào kết quả benchmark thực tế: tải thấp, tải cao, Coder, RAG và bảng khuyến nghị chọn engine.