FDE PulseViệc làm FDE đang mở 316Mới đăng 7 ngày qua 10Chủ đề nổi bật: Đào tạo kỹ năng FDE tại Đông Nam Á

Tờ báo của nghề Forward Deployed Engineer

Công cụ

vLLM: engine phục vụ model open-weight mà FDE nên biết trước khi lên site on-prem

Cùng một engine có hai con số hiệu năng, "tới 24 lần" và "2-4 lần", vì mỗi con số so với một mốc khác nhau. FDE nào trích nhầm mốc trước đội hạ tầng của khách sẽ mất uy tín ngay buổi họp đầu.

Đồ hoạMột engine, hai con số: khác nhau ở mốc so sánh
Blog ra mắt (6/2023)Bài báo PagedAttention (9/2023)
Con số công bốThông lượng cao hơn tới 24 lầnThông lượng cao hơn 2-4 lần
Mốc so sánhHuggingFace TransformersCác hệ thống phục vụ tốt nhất thời điểm đó
Điều kiện đi kèmKhông cần thay đổi kiến trúc modelCùng mức độ trễ, trên các LLM phổ biến
Khi nào nên tríchKhi khách chỉ có code HF Transformers đơn giảnKhi khách đã có sẵn hệ thống serving tử tế

Muốn trích benchmark của vLLM cho đúng thì phải nói kèm mốc so sánh và năm đo, rồi đo lại trên workload của khách.

Đồ hoạ: FDE Times

Tóm tắt nhanh

  • vLLM ra đời ở Sky Computing Lab (UC Berkeley), dùng PagedAttention và từ tháng 5/2025 là dự án trực thuộc PyTorch Foundation.
  • Server của vLLM tương thích OpenAI API, nên code client hiện có chuyển sang on-prem gần như chỉ cần đổi địa chỉ endpoint.
  • Con số 24 lần và 2-4 lần đều đúng nhưng so với hai mốc khác nhau. Cả hai đều đo từ năm 2023, nên khách vẫn phải tự benchmark trên workload của mình.
Chia sẻLinkedInFacebookX

Tháng 6/2023, bài blog ra mắt vLLM tuyên bố thông lượng cao hơn HuggingFace Transformers tới 24 lần. Ba tháng sau, bài báo học thuật về PagedAttention của Kwon và cộng sự đưa ra một con số khiêm tốn hơn nhiều: 2-4 lần.

Không con số nào sai. Con số 24 lần lấy HuggingFace Transformers làm mốc. Con số 2-4 lần so với các hệ thống phục vụ tốt nhất lúc bấy giờ, ở cùng mức độ trễ.

Với FDE, khác biệt này có hệ quả thực tế. Giả sử đội hạ tầng của khách đã chạy sẵn một hệ thống serving tử tế mà bạn vẫn mang con số 24 lần vào phòng họp: bạn đang hứa một điều mà chính bài báo gốc không hứa. Muốn hiểu vLLM, trước hết phải hiểu nó tối ưu cái gì.

PagedAttention mượn ý tưởng từ hệ điều hành

Khi LLM sinh văn bản, mỗi request phải giữ key và value của attention cho các token đã xử lý. Vùng nhớ này gọi là KV cache. Nói đơn giản: càng nhiều request chạy đồng thời thì càng nhiều KV cache phải chứa, nên cách quản lý vùng nhớ này quyết định server nhận được bao nhiêu request cùng lúc.

Tính năng cốt lõi của vLLM là PagedAttention, một thuật toán attention lấy cảm hứng từ bộ nhớ ảo và kỹ thuật phân trang của hệ điều hành. Hệ điều hành chia bộ nhớ thành từng trang, và PagedAttention cũng quản lý KV cache theo từng trang như thế. vLLM kết hợp cách làm này với continuous batching.

Vì vậy, lợi ích của vLLM hiện rõ nhất khi có nhiều người dùng cùng lúc. Một bản demo chỉ có một người gõ thử sẽ không cho thấy được bao nhiêu.

Khi nào FDE cần đến vLLM?

Tình huống điển hình là khách hàng muốn chạy model open-weight ngay trong hạ tầng của họ. Lúc đó vLLM giải quyết cùng lúc ba nỗi lo.

Nỗi lo đầu tiên là phần cứng. Ngoài NVIDIA, vLLM hỗ trợ chính thức AMD, Google TPU, AWS Neuron, Intel CPU/XPU/HPU và ARM. Các bộ tăng tốc như IBM Spyre hay Huawei Ascend thì tích hợp qua hệ thống plugin. Khách on-prem thường có sẵn một dàn phần cứng không đồng nhất, và bạn hiếm khi được chọn lại từ đầu.

Nỗi lo thứ hai là model quá lớn so với một máy. Repo chính thức hỗ trợ tensor, pipeline, data, expert và context parallelism để chạy suy luận phân tán.

Nỗi lo thứ ba là pháp lý. vLLM dùng giấy phép Apache-2.0, và từ tháng 5/2025 là dự án trực thuộc PyTorch Foundation với cơ chế quản trị trung lập. Hai điều này giúp bộ phận mua sắm và pháp chế của khách dễ gật đầu hơn.

Ví dụ tối thiểu: đổi một địa chỉ, giữ nguyên code

Thử hình dung khách đã có một prototype gọi OpenAI qua SDK chính thức, nhưng giờ dữ liệu không được rời khỏi mạng nội bộ. vLLM có API server tương thích OpenAI, kèm Anthropic Messages API và gRPC, nên phần việc phía client có thể chỉ gói gọn trong một dòng:

from openai import OpenAI

# Minh họa: trỏ client sang server vLLM trong mạng khách hàng
client = OpenAI(base_url="DIA_CHI_ENDPOINT_VLLM_NOI_BO", api_key="KHOA_NOI_BO")

Logic prompt, phần xử lý kết quả và cơ chế retry đều giữ nguyên. Đây là lý lẽ mạnh nhất để thuyết phục đội ứng dụng của khách: họ không phải viết lại gì cả. Docs có một lưu ý nhỏ: API Completions và Chat chỉ dành cho model sinh văn bản, nên đừng định gọi model embedding qua cùng đường đó.

Hai cái bẫy của ngày đầu tiên

Bẫy đầu tiên là chat template. Docs nói thẳng: không có chat template thì server không xử lý được chat, và mọi chat request đều báo lỗi. Model open-weight tải từ nguồn lạ, hoặc bản fine-tune nội bộ, rất dễ thiếu thứ này. Hãy kiểm tra trước khi đội ứng dụng nối vào, đừng đợi họ báo lỗi.

Bẫy còn lại chỉ xuất hiện trong môi trường air-gapped. Theo mặc định, trang /docs của FastAPI cần kết nối internet, nên trong mạng cô lập nó không hiện ra. vLLM có cờ để chạy trang này ở chế độ offline. Bật sẵn cờ đó, bạn khỏi mất cả buổi chiều giải thích vì sao “trang tài liệu trắng trơn”.

Học gì trước khi nhận việc?

Nên học khái niệm trước, công cụ sau. Hãy nắm KV cache là gì và vì sao cách quản lý nó ảnh hưởng tới số request phục vụ được cùng lúc. Sau đó tự dựng một server vLLM, trỏ một client OpenAI vào và đo thông lượng khi tăng dần số request song song.

Nếu đang ứng tuyển FDE, hãy để ý những JD có cụm “on-prem”, “air-gapped” hay “open-weight models”. Trong CV, một dòng như “chuyển ứng dụng từ OpenAI API sang vLLM on-prem, không phải sửa logic client, xử lý lỗi chat template” nói được nhiều hơn hẳn “có kinh nghiệm với LLM”.

Khi trích benchmark với khách, luôn nói rõ mốc so sánh, và nhớ rằng con số 2-4 lần được đo năm 2023 trên các model phổ biến khi đó. Đề xuất tốt nhất bạn có thể đưa ra là chạy benchmark trên chính workload và phần cứng của khách, rồi mới hứa con số nào.

6 nguồn
Đọc tiếp trên lộ trình · Chặng 5: Triển khaiTerraform: khi "mỗi khách một stack" gói lại thành một module dùng chungHashiCorp khuyên viết module cho những gì bạn dựng đi dựng lại, nhưng cũng chính họ cảnh báo đừng dùng workspace để tách khách hàng — ranh giới đó quyết định bạn có ngủ ngon sau lần deployment thứ năm hay không.