Hugging Face Blog
92

Sản phẩm

Tối ưu hóa hiệu suất vLLM: Tích hợp backend transformers với tốc độ gốc

(giờ Việt Nam)

Tóm tắt AI

Hugging Face giới thiệu khả năng tích hợp vLLM trực tiếp vào thư viện transformers, cho phép người dùng tận dụng tốc độ suy luận vượt trội của vLLM mà vẫn giữ nguyên giao diện lập trình quen thuộc.

Bản dịch AI

Quay lại các bài viết

Tóm tắt: Backend transformers vLLM hiện đã nhanh ngang bằng (hoặc nhanh hơn) so với các bản triển khai vLLM tùy chỉnh cho nhiều kiến trúc LLM. Các tác giả mô hình có thể tự động tận dụng các bản triển khai transformers của họ để đạt được tốc độ suy luận vLLM cực nhanh mà hoàn toàn miễn phí.

Thư viện transformers đã trở thành thư viện mô hình tham chiếu cho Machine Learning. Nó hỗ trợ hơn 450 kiến trúc thông qua các API nhất quán và được thiết kế với mục tiêu chính là giúp các bản triển khai mô hình trở nên độc lập và dễ hiểu. Việc tìm hiểu mã nguồn của transformers giúp các cộng tác viên dễ dàng nắm bắt cách thức hoạt động của một kiến trúc, từ đó chuyển đổi nó sang các framework khác như vLLM, SGLang, MLX, llama.cpp và nhiều framework khác.

Chúng tôi đã hoàn toàn đón nhận vai trò này trong hệ sinh thái và đang đầu tư rất nhiều nỗ lực để làm cho mọi thứ trở nên dễ dàng hơn. Một bước tiến lớn theo hướng này là việc tích hợp transformers làm backend mô hình trong vLLM vào năm ngoái. Điều này cho phép các tác giả mô hình chạy các mô hình transformers (cả LLM và VLM) bên trong vLLM mà không cần phải chuyển đổi bất cứ thứ gì. Transformers cung cấp mã mô hình, còn vLLM cung cấp các kỹ thuật suy luận được tối ưu hóa cực cao như continuous batching và các custom attention kernel.

Sự tích hợp này nay còn tốt hơn nữa 🚀!

Trình diễn

Chúng tôi đã đặt backend mô hình transformers cho vLLM lên bàn cân so sánh trực tiếp với các bản triển khai gốc được viết thủ công của vLLM trên ba mô hình Qwen3 rất khác biệt:

Pre and Post PR benchmarks with trasnformers vllm backend

Việc chạy bất kỳ* mô hình Hugging Face nào thông qua backend mô hình transformers chỉ cần một cờ duy nhất — --model-impl transformers. Nó tương thích với các tùy chọn song song thông thường, vì vậy thiết lập phục vụ (serving setup) của bạn không cần thay đổi gì cả:

*Các mô hình sử dụng linear attention hiện chưa được hỗ trợ, nhưng sẽ sớm có trong thời gian tới! Các mô hình tùy chỉnh có mã nguồn nằm trong kho lưu trữ Hub thường sẽ không hoạt động vì chúng chưa được viết theo tiêu chuẩn tương thích.

Cách chúng tôi đo lường

Mỗi mô hình được so sánh trong ba điều kiện giống hệt nhau về mọi mặt, ngoại trừ đường dẫn mã (code path):

Trình chạy đầy đủ, có thể tái lập hiện có sẵn dưới dạng gist: benchmark.sh

Vậy, có gì mới?

Backend mô hình transformers cho vLLM trước đây tập trung vào attention như là nút thắt cổ chai cho suy luận. Bằng cách cắm (plugging) bản triển khai attention của vLLM vào lúc runtime, chúng tôi có thể làm cho mô hình transformers chạy hiệu quả bên trong engine vLLM. Tuy nhiên, có nhiều khía cạnh trong việc triển khai mà chỉ một bản chuyển đổi tùy chỉnh mới có thể nhắm đến để đạt hiệu suất suy luận tối đa. Việc song song hóa trên các GPU, biên dịch, fused kernel và nhiều yếu tố khác đều góp phần tận dụng phần cứng của bạn để đạt được tốc độ suy luận cực nhanh.

New model integration to transformers and vLLM

Khi các tác giả mô hình muốn đạt hiệu suất tốt nhất tuyệt đối, họ vẫn phải viết các bản triển khai vLLM tùy chỉnh.

New model integrates to transformers, and is immediately available to vLLM

Phiên bản mới nhất của backend mô hình transformers cho vLLM tự động áp dụng các kỹ thuật hợp nhất lớp (layer fusions) dành riêng cho suy luận tại thời điểm runtime để đạt tốc độ tương đương với các bản triển khai mã tùy chỉnh, đối với các kiến trúc tương thích.

Nó hoạt động như thế nào?

Backend mô hình transformers cho vLLM hiện sử dụng torch.fx để thực hiện phân tích tĩnh trên đồ thị của mô hình. Quá trình này tìm kiếm các mẫu đã biết có thể tối ưu hóa. Sau khi các mẫu được xác định, nó sử dụng ast (cây cú pháp trừu tượng) để thao tác với mã nguồn và viết lại một số thao tác ngay tại chỗ.

Chúng ta có thể đạt được gì với điều này?

Như đã trình bày ở trên, kết quả là tốc độ suy luận vLLM gốc cho các mô hình tương thích mà không cần phải viết một dòng mã nào để tối ưu hóa mô hình cho suy luận.

Chúng tôi đang trong quá trình viết một bài blog chi tiết để đi sâu vào các phương pháp suy luận được tối ưu hóa này và giải thích chi tiết cách chúng tôi thao tác với mô hình để thích ứng với chúng.

Tài nguyên

vLLMHuggingFaceTối ưu hóaSuy luận AITransformers
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hugging Face Blog. Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.