vLLM cho LLM on-prem: tối ưu serving, throughput và bộ nhớ GPU
vLLM là engine mã nguồn mở cho suy luận và phục vụ LLM, nổi bật với PagedAttention, continuous batching và API tương thích OpenAI. Đây là các điểm đội vận hành cần kiểm tra khi đưa model vào hạ tầng nội bộ.
Một máy chủ GPU nội bộ hiếm khi chỉ phục vụ một người dùng. Chatbot, trợ lý lập trình, tác vụ embedding và các ứng dụng nghiệp vụ có thể cùng gọi model trong một ngày. Nếu xử lý từng yêu cầu rời rạc, GPU có thể chưa được khai thác hiệu quả dù hàng đợi vẫn tăng.
vLLM nhắm tới bài toán đó: đây là thư viện mã nguồn mở cho suy luận và phục vụ LLM. Với đội hạ tầng được giao đưa model vào mạng doanh nghiệp, vLLM là một lựa chọn đáng xem xét để xây dựng lớp serving giữa ứng dụng và tài nguyên GPU.
Theo dữ liệu GitHub Trending được cung cấp, dự án có 95.399 sao tại thời điểm ghi nhận.
Những cơ chế đáng chú ý cho workload nhiều request
README của vLLM nêu một số cơ chế phục vụ hướng đến throughput và quản lý bộ nhớ attention:
PagedAttention để quản lý hiệu quả bộ nhớ key-value của attention.
Continuous batching để liên tục đưa request mới vào quá trình xử lý.
Chunked prefill để xử lý phần prompt đầu vào theo từng đoạn.
Prefix caching để tái sử dụng các tiền tố giống nhau giữa request.
Speculative decoding, CUDA/HIP graphs và các kernel attention tối ưu.
Trong serving LLM, KV cache là phần bộ nhớ lưu trạng thái của các token đã được model xử lý để tiếp tục sinh đầu ra. Đây là một yếu tố cần được tính đến khi nhiều request chạy đồng thời hoặc khi context dài.
Với đội vận hành, các cơ chế này cho thấy vLLM được thiết kế cho workload có nhiều người dùng và request không đồng đều. Tuy vậy, chúng không thay thế việc sizing hạ tầng: năng lực thực tế vẫn phụ thuộc vào model, định dạng trọng số, độ dài context, VRAM và kiểu lưu lượng của hệ thống.
vLLM có thể phục vụ những loại model nào?
README cho biết vLLM hỗ trợ hơn 200 kiến trúc model trên Hugging Face, gồm:
LLM decoder-only như Llama, Qwen và Gemma.
Model Mixture-of-Experts như Mixtral, DeepSeek-V3, Qwen-MoE và GPT-OSS.
Model hybrid attention/state-space như Mamba và Qwen3.5.
Model đa phương thức như LLaVA, Qwen-VL và Pixtral.
Model embedding, retrieval như E5-Mistral, GTE và ColBERT.
Model reward và classification.
Danh sách hỗ trợ rộng giúp đội kỹ thuật có thể đánh giá một lớp serving chung cho nhiều nhu cầu như sinh văn bản, embedding hoặc một số luồng đa phương thức. Điều kiện quan trọng là kiến trúc model cụ thể phải nằm trong danh sách hỗ trợ của vLLM.
Ngoài model execution, README cũng liệt kê các khả năng sau:
Streaming output.
Tool calling và reasoning parsers.
Structured output thông qua xgrammar hoặc guidance.
Multi-LoRA cho dense layer và MoE layer.
Tensor, pipeline, data, expert và context parallelism cho inference phân tán.
API tương thích OpenAI, cùng Anthropic Messages API và gRPC.
API tương thích OpenAI có thể giảm phần việc sửa client nếu ứng dụng nội bộ đã dùng kiểu giao tiếp này. Tuy nhiên, cần kiểm thử theo API contract mà ứng dụng thực tế sử dụng; “tương thích” không đồng nghĩa mọi tham số hay hành vi đều giống mọi dịch vụ API khác.
Bắt đầu cài đặt: chỉ dùng lệnh có trong README
README khuyến nghị cài vLLM bằng uv hoặc pip. Ví dụ được nêu trực tiếp là:
bash
uv pip install vllm
Dự án cũng cung cấp lệnh tải kernel biên dịch sẵn để khởi động nhanh hơn:
bash
vllm download-kernels
Sau bước cài đặt, quy trình hợp lý là xác định model được hỗ trợ, kiểm tra nền tảng phần cứng và đọc kỹ tài liệu Installation, Quickstart cùng danh sách model hỗ trợ trước khi viết playbook triển khai.
README không đưa ra trong phần hướng dẫn này lệnh chạy server cụ thể, cổng mặc định, tham số cấp phát VRAM, cấu hình bind mạng hay ví dụ request API. Vì vậy, không nên tự suy diễn cờ CLI rồi áp dụng thẳng vào môi trường production.
Phần cứng và quantization: cần kiểm tra theo từng tổ hợp
README nêu hỗ trợ cho NVIDIA GPU, AMD GPU, Intel GPU và CPU x86, ARM, PowerPC. Dự án cũng liệt kê các plugin phần cứng như Google TPU, Intel Gaudi, IBM Spyre, Huawei Ascend, Rebellions NPU, Apple Silicon và MetaX GPU.
Về quantization, README đề cập các lựa chọn gồm FP8, MXFP8/MXFP4, NVFP4, INT8, INT4, GPTQ, AWQ, GGUF, compressed-tensors, ModelOpt và TorchAO.
Đây không phải là danh sách để chọn theo tên gọi. Trước khi triển khai, đội hạ tầng nên kiểm tra:
Model mục tiêu có được vLLM hỗ trợ không?
Định dạng trọng số và phương thức quantization có phù hợp accelerator đang dùng không?
VRAM còn lại sau khi nạp model có đáp ứng nhu cầu KV cache khi đồng thời nhiều request không?
Hệ thống có cần context dài, streaming, embedding hay đa phương thức không?
Nếu chạy phân tán, topology GPU và mạng hiện hữu có phù hợp với kiểu parallelism được chọn không?
README không nêu mức VRAM, RAM, số GPU, băng thông mạng hoặc throughput cần thiết cho từng model. Vì vậy, sizing nên được benchmark trên đúng model, quantization, context length và workload dự kiến của doanh nghiệp.
Vận hành nội bộ: hiệu năng không phải phần việc duy nhất
Khi một engine serving trở thành API dùng chung, vận hành production cần được thiết kế cùng lúc với hiệu năng. README không mô tả cấu hình xác thực, phân quyền, logging hay giới hạn năng lực mặc định, vì vậy không nên giả định các yêu cầu này đã được đáp ứng sẵn.
Một checklist vận hành nên bao gồm:
Xác định phạm vi mạng được phép truy cập API và lớp gateway phù hợp.
Thiết kế xác thực, phân quyền và quản lý khóa truy cập theo chính sách doanh nghiệp.
Quy định cách lưu log, quyền xem prompt/response và xử lý dữ liệu nhạy cảm.
Đặt giới hạn request, timeout, hàng đợi hoặc quota tại lớp vận hành phù hợp.
Thử nghiệm cập nhật vLLM, kernel, driver và model trước khi đưa vào môi trường chính thức.
Lợi ích của triển khai on-prem là doanh nghiệp có thể tự kiểm soát nơi model phục vụ và đường đi của dữ liệu trong hạ tầng của mình. Đổi lại, đội vận hành phải chịu trách nhiệm về capacity, quan sát hệ thống, bảo mật và tương thích phần cứng. README không cung cấp dữ liệu chi phí để kết luận mô hình nào rẻ hơn trong mọi trường hợp.
Kết luận
vLLM đáng để thử khi mục tiêu là biến GPU nội bộ thành dịch vụ LLM dùng chung, nhất là khi ứng dụng đã quen với API kiểu OpenAI. PagedAttention, continuous batching, các tùy chọn quantization và khả năng inference phân tán là những điểm trực tiếp liên quan tới bài toán serving trên server.
Bước tiếp theo không phải là mở API rộng ngay lập tức. Hãy kiểm tra model được hỗ trợ, dựng môi trường thử nghiệm, đo workload thật, rồi mới thiết kế gateway, xác thực, logging và giới hạn năng lực cho production.