Triển khai hệ thống gợi ý tạo sinh với NVIDIA Dynamo-Triton và HSTU
NVIDIA trình diễn quy trình làm việc end-to-end để phục vụ các mô hình Hierarchical Sequential Transduction Unit (HSTU) bằng cách sử dụng PyTorch AOTI, bộ nhớ đệm FlexKV và Dynamo-Triton nhằm giảm độ trễ suy luận.
Được dịch tự động từ bản gốc tiếng Anh.
NVIDIA đã phát hành một hướng dẫn kỹ thuật chi tiết về cách triển khai các hệ thống gợi ý tạo sinh dựa trên đơn vị chuyển đổi tuần tự phân cấp (Hierarchical Sequential Transduction Unit - HSTU) bằng máy chủ suy luận Dynamo-Triton của hãng. Được công bố vào cuối tháng 9 năm 2026, hướng dẫn này phác thảo một quy trình làm việc end-to-end kết hợp biên dịch trước thời gian chạy (Ahead-of-Time Inductor) của PyTorch với bộ nhớ đệm key-value hỗ trợ GPU để xử lý hiệu quả các chuỗi lịch sử người dùng dài.
Bản phát hành nhắm mục tiêu đến các kỹ sư xây dựng động cơ cá nhân hóa quy mô lớn, những người cần cân bằng giữa độ phức tạp của mô hình và ngân sách độ trễ nghiêm ngặt. Bằng cách tích hợp các công cụ này, nhà phát triển có thể phục vụ các mô hình gợi ý nhận biết chuỗi mà không cần viết lại mã cho các runtime riêng biệt, đạt được tốc độ tăng đáng kể trên phần cứng hiện đại.
Điều gì đã xảy ra
Các hệ thống gợi ý tạo sinh đang thay đổi cách các nền tảng xử lý cá nhân hóa bằng cách coi hành vi người dùng là một bài toán mô hình hóa chuỗi thay vì một loạt các bước truy xuất và xếp hạng riêng lẻ. Trong mô hình này, tương tác của người dùng, ngữ cảnh và các mục ứng viên trở thành các token trong một luồng sự kiện có cardinality cao. Mô hình học cách dự đoán các mục liên quan tiếp theo dựa trên chuỗi này. Mặc dù phương pháp này nắm bắt được hành vi tuần tự phong phú, nó đặt ra những thách thức lớn về mặt phục vụ do lịch sử người dùng dài và các bảng embedding lớn.
Để giải quyết những thách thức này, NVIDIA đã cập nhật kho lưu trữ recsys-examples với một quy trình suy luận HSTU hoàn chỉnh. Quy trình này tận dụng Dynamo-Triton, trước đây được gọi là Triton Inference Server, để quản lý vòng đời triển khai. Hệ thống sử dụng PyTorch AOTI để biên dịch các mô hình thành các đối tượng C++ gốc, giúp giảm bớt gánh nặng từ Python. Nó cũng kết hợp bộ nhớ đệm key-value dựa trên FlexKV để lưu trữ các trạng thái attention có thể tái sử dụng, ngăn chặn nhu cầu tính toán lại toàn bộ lịch sử người dùng dài cho mỗi yêu cầu.
Hướng dẫn cung cấp các benchmark cho thấy stack này mang lại lợi ích hiệu suất đo lường được. Trên GPU NVIDIA RTX PRO 6000 Blackwell Workstation Edition, mô hình HSTU tám lớp đã đạt được độ trễ thấp hơn tới 5,93 lần ở kích thước batch 8 khi sử dụng tỷ lệ hit cache key-value trên GPU là 100%. Sự cải thiện này là so với cùng cấu hình đó nhưng không sử dụng bộ nhớ đệm, nhấn mạnh vào hiệu quả của việc tái sử dụng các trạng thái đã tính toán.
Cách hoạt động
Lõi của quy trình làm việc này là sự kết hợp giữa biên dịch trước thời gian chạy và bộ nhớ đệm thông minh. PyTorch AOTI xuất mô hình xếp hạng HSTU thành một gói bao gồm tệp lưu trữ đã biên dịch, metadata và các tệp bảng embedding. Đối tượng này có thể được tải bởi một runtime C++ gốc, loại bỏ gánh nặng diễn giải liên quan đến thực thi Python tiêu chuẩn. Việc triển khai embedding còn tối ưu hóa bộ nhớ hơn nữa bằng cách sử dụng NV Embedding Cache, chỉ lưu trữ các embedding phổ biến trong bộ nhớ GPU trong khi giữ toàn bộ bảng trong bộ nhớ CPU.
Hiệu quả phục vụ được nâng cao hơn nữa bởi KVCacheManager, quản lý việc lưu trữ dữ liệu key-value từ các phép tính chuỗi trước đó. Trình quản lý này sử dụng bảng dữ liệu key-value dạng trang trong bộ nhớ GPU, hỗ trợ các thao tác như tra cứu, cấp phát và xóa bỏ (eviction). Khi bộ nhớ GPU bị hạn chế, các trạng thái người dùng cũ sẽ bị xóa bỏ theo chính sách ít được sử dụng gần nhất (least-recently-used), với bộ nhớ phía host cung cấp một tầng bổ sung. Kernel attention của HSTU tiêu thụ dữ liệu trực tiếp từ bộ nhớ đệm này, cho phép mô hình bỏ qua việc tính toán lại các phần ổn định trong lịch sử của người dùng.
Dynamo-Triton đóng vai trò là lớp sản xuất, tải gói đã biên dịch AOTI thông qua backend PyTorch của nó. Thiết lập này đảm bảo rằng quá trình xác thực được thực hiện trong giai đoạn phát triển bằng cách replay C++ gốc phù hợp chặt chẽ với việc phục vụ trong môi trường sản xuất. Hệ thống quản lý việc xử lý yêu cầu, số liệu thống kê và tích hợp backend, tạo ra một stack thống nhất cho suy luận hệ thống gợi ý tạo sinh.
Chi tiết chính
- Benchmark phần cứng: Các bài kiểm tra được thực hiện trên GPU NVIDIA RTX PRO 6000 Blackwell Workstation Edition sử dụng cấu hình xếp hạng KuaiRand-1K.
- Cải thiện độ trễ: Mô hình HSTU tám lớp cho thấy mức giảm độ trễ 5,93 lần ở kích thước batch 8 với 100% hit KV-cache trên GPU so với suy luận AOTI không có bộ nhớ đệm.
- Cấu trúc mô hình: Benchmark sử dụng các biến thể HSTU với ba và tám lớp, kích thước ẩn là 512, bốn đầu attention và trọng số BF16.
- Độ dài chuỗi: Độ dài chuỗi lịch sử tối đa là 8.192 token, với độ dài chuỗi đã căn chỉnh hiệu quả là 8.320 token.
- Phương pháp biên dịch: PyTorch AOTI biên dịch mô hình trước thời gian chạy thành các đối tượng C++ gốc, giảm bớt gánh nặng runtime so với backend Python tiêu chuẩn.
- Cơ chế bộ nhớ đệm: Bộ nhớ đệm KV dựa trên FlexKV lưu trữ các trạng thái attention có thể tái sử dụng, tránh tính toán lại các lịch sử người dùng dài khi chỉ có các token mới được thêm vào.
Tại sao điều này quan trọng
Đối với các kỹ sư phần mềm xây dựng hệ thống gợi ý, độ trễ là một ràng buộc quan trọng. Sự chậm trễ trong xếp hạng có thể ảnh hưởng trực tiếp đến thời gian tải trang và mức độ tương tác của người dùng. Khi các mô hình trở nên nhận biết chuỗi tốt hơn để cải thiện chất lượng cá nhân hóa, chi phí tính toán để xử lý các lịch sử người dùng dài sẽ tăng lên. Quy trình làm việc này chứng minh rằng có thể duy trì các kiến trúc mô hình tạo sinh phức tạp trong khi vẫn đáp ứng các yêu cầu độ trễ nghiêm ngặt thông qua hạ tầng phục vụ được tối ưu hóa.
Việc tích hợp AOTI và bộ nhớ đệm KV giải quyết hai nút thắt chính: gánh nặng runtime và tính toán dư thừa. Bằng cách biên dịch mô hình trước thời gian chạy, các nhà phát triển loại bỏ hình phạt do diễn giải Python trong quá trình suy luận. Bằng cách lưu trữ các trạng thái key-value, họ tránh lặp lại các phép tính attention tốn kém cho các phần tĩnh trong lịch sử người dùng. Điều này cho phép các nhóm mở rộng độ sâu mô hình và độ dài chuỗi mà không làm tăng chi phí suy luận tương ứng.
Hơn nữa, sự phù hợp giữa xác thực trong giai đoạn phát triển và phục vụ trong môi trường sản xuất giúp giảm rủi ro vận hành. Sử dụng cùng một gói AOTI cho cả xác thực C++ và triển khai Dynamo-Triton đảm bảo rằng các đặc điểm hiệu suất quan sát được trong thử nghiệm vẫn đúng trong môi trường sản xuất. Tính nhất quán này đơn giản hóa con đường từ nghiên cứu đến triển khai cho các hệ thống gợi ý tạo sinh.
Những gì bạn có thể làm
- Nhân bản kho lưu trữ
recsys-examplescủa NVIDIA để truy cập hướng dẫn suy luận HSTU và mã mẫu. - Xem xét tài liệu Dynamo-Triton để hiểu cách cấu hình backend PyTorch AOTI cho các mô hình của bạn.
- Thử nghiệm với bộ nhớ đệm dựa trên FlexKV để đo lường mức giảm độ trễ cho các độ dài lịch sử người dùng cụ thể của bạn.
- Xác thực các đối tượng AOTI đã xuất bằng cách replay C++ gốc để đảm bảo tính chính xác trước khi triển khai vào môi trường sản xuất.
- Benchmark các mô hình HSTU của bạn ở các kích thước batch khác nhau để xác định cấu hình tối ưu cho phần cứng của bạn.
- Khám phá các tính năng của NV Embedding Cache để giảm mức sử dụng bộ nhớ GPU cho các bảng embedding phân loại lớn.
