RadixAttention của SGLang đã cắt giảm mạnh thời gian khởi động đến token đầu tiên (TTFT) xuống còn 68 ms trên hệ thống chạy hai card RTX 3090, trong khi PagedAttention của vLLM vẫn ở mức 184 ms—một khoảng cách về độ trễ lên tới 82,9 %, giúp các tương tác của agent đa lượt trở nên mượt mà hơn đáng kể.

Cả hai dự án đều cố gắng tăng tốc quá trình suy luận mô hình ngôn ngữ lớn (LLM), nhưng bài kiểm tra (benchmark) này nhắm vào các khối lượng công việc vận hành các trợ lý tự hành: các câu lệnh hệ thống (system prompt) dài, lược đồ gọi công cụ (tool-calling schemas) và lịch sử luân phiên giữa người dùng và trợ lý. Những token lặp lại này nằm trong bộ nhớ GPU; nếu bộ nhớ đệm (cache) không được quản lý hiệu quả, chúng sẽ trở thành nút thắt cổ chai về tính toán làm gián đoạn cuộc hội thoại.

Khối lượng công việc tạo nên sự khác biệt

Các máy chủ LLM truyền thống tối ưu hóa cho một lượt trao đổi duy nhất—người dùng đặt câu hỏi, mô hình trả lời, xong. Tuy nhiên, các agent hiện đại duy trì một "trạng thái hội thoại" có thể kéo dài qua hàng chục lượt, mỗi lượt lại thêm hàng trăm token vào bộ nhớ đệm. Bộ thử nghiệm đã mô phỏng lại vòng lặp đa lượt như vậy trên hai card RTX 3090, đo lường các chỉ số:

  • Thời gian khởi động đến token đầu tiên (TTFT) – độ trễ trước khi token đầu tiên xuất hiện sau khi một lượt mới bắt đầu.
  • Độ trễ tổng thể – thời gian trung bình cho mỗi token trong toàn bộ vòng lặp.
  • Thông lượng duy trì – số lượng token được xử lý mỗi giây khi vòng lặp chạy liên tục.
  • Tỷ lệ cache-hit – tỷ lệ các token được tái sử dụng từ bộ nhớ đệm key-value (KV) thay vì phải tính toán lại.

SGLang đã vượt qua vLLM ở mọi chỉ số: TTFT đạt 68 ms so với 184 ms, giảm 82,9 % độ trễ, thông lượng cao hơn 39,8 % và tỷ lệ cache-hit đạt 96,8 % so với 84,2 % của vLLM.

PagedAttention so với RadixAttention

Cả hai engine đều lưu trữ các cặp KV trung gian trong bộ nhớ GPU, nhưng chúng tổ chức bộ nhớ đó theo cách khác nhau.

  • PagedAttention (vLLM) chia bộ nhớ đệm thành các khối có kích thước cố định. Nếu một prompt kết thúc giữa một khối, các token còn lại phải được tính toán lại trong mỗi lượt vì khối đó không thể được tái sử dụng một phần. Cách tiếp cận này đơn giản và hoạt động tốt khi các prompt khớp với ranh giới khối, nhưng nó lãng phí chu kỳ tính toán vào các token "rìa" vốn thay đổi thường xuyên nhất trong các vòng lặp của agent.
  • RadixAttention (SGLang) coi bộ nhớ đệm như một cấu trúc cây. Nó tìm tiền tố chung dài nhất giữa prompt hiện tại và những gì đã được lưu trong cache, bất kể giới hạn của khối, và cắt tỉa các nhánh không sử dụng. Điều này cho phép một system prompt khổng lồ được giữ cố định trong bộ nhớ GPU trong khi chỉ có lượt mới nhất được xử lý, giúp tăng tỷ lệ cache-hit và giảm bớt các công việc dư thừa.

Khi nào mỗi engine phát huy thế mạnh

Kịch bản Engine ưu tiên
Các agent tự hành đa lượt, gọi công cụ cường độ cao, suy luận dạng cây tư duy (tree-of-thought) SGLang (RadixAttention)
Hỗ trợ phần cứng rộng rãi (bao gồm các bộ tăng tốc AMD và Gaudi), giải mã suy đoán (speculative decoding), các mô hình thị giác-ngôn ngữ vLLM (PagedAttention)

Sự khác biệt không chỉ nằm ở hiệu suất; nó còn nằm ở hệ sinh thái. Khả năng tương thích phần cứng rộng hơn của vLLM khiến nó trở thành lựa chọn mặc định an toàn hơn cho các tổ chức có cụm tính toán không đồng nhất. Tính năng giải mã suy đoán (speculative decoding) của nó—tạo ra nhiều ứng viên token song song—có thể tăng tốc quá trình tạo văn bản đơn lượt, một phân khúc mà việc lưu trữ cache dựa trên cấu trúc cây của RadixAttention ít mang lại lợi thế hơn.

Kết luận

Đối với các nhà phát triển đang xây dựng các agent đa lượt cần xử lý các prompt dài và các cập nhật lũy tiến, RadixAttention của SGLang mang lại trải nghiệm nhanh hơn rõ rệt và hiệu quả bộ nhớ đệm tốt hơn trên các GPU phổ thông. Các đội ngũ cần độ phủ phần cứng rộng hoặc chuyên về tạo văn bản đơn lượt có thể vẫn sẽ ưu tiên vLLM. Lựa chọn hiện tại phụ thuộc vào việc khối lượng công việc thiên về "agent" hay "đa dạng phần cứng".