TensorRT
TensorRT là SDK của NVIDIA dùng để tối ưu hóa các model đã huấn luyện, giúp chúng chạy với độ trễ thấp trên GPU NVIDIA. Tìm hiểu cách hoạt động và cách xuất YOLO sang TensorRT.
TensorRT là bộ công cụ phát triển phần mềm (SDK) suy luận deep learning hiệu năng cao do NVIDIA phát triển. TensorRT được thiết kế để tối ưu hóa model mạng nơ-ron cho triển khai, giúp ứng dụng deep learning đạt độ trễ suy luận thấp và thông lượng cao. Hoạt động như một trình biên dịch tối ưu hóa, TensorRT tiếp nhận các mạng đã huấn luyện từ những framework phổ biến như PyTorch và TensorFlow, rồi tái cấu trúc chúng để chạy hiệu quả trên GPU NVIDIA. Khả năng này rất quan trọng khi chạy các model AI phức tạp trong môi trường production, nơi tốc độ và hiệu quả là ưu tiên hàng đầu.
Cách TensorRT tối ưu hóa model#
Chức năng cốt lõi của TensorRT là chuyển đổi mạng nơ-ron đã huấn luyện thành một “engine” được tối ưu hóa chuyên biệt cho phần cứng mục tiêu. TensorRT thực hiện điều này thông qua một số kỹ thuật tiên tiến:
- Hợp nhất layer: Trình tối ưu hóa kết hợp nhiều layer của mạng nơ-ron thành một kernel duy nhất, giảm chi phí truy cập bộ nhớ và cải thiện tốc độ thực thi.
- Hiệu chuẩn độ chính xác: TensorRT hỗ trợ các chế độ giảm độ chính xác, chẳng hạn như độ chính xác hỗn hợp (FP16) và lượng tử hóa số nguyên (INT8). Bằng cách giảm số bit dùng để biểu diễn số—thường chỉ làm giảm độ chính xác ở mức tối thiểu—nhà phát triển có thể tăng tốc đáng kể các phép toán và giảm mức sử dụng bộ nhớ. Đây là một dạng lượng tử hóa model.
- Tự động tinh chỉnh kernel: Phần mềm tự động chọn bố cục dữ liệu và thuật toán phù hợp nhất với kiến trúc GPU đang sử dụng, đảm bảo tận dụng tối đa khả năng xử lý song song của phần cứng thông qua CUDA.
Ứng dụng thực tế#
Nhờ khả năng xử lý lượng dữ liệu khổng lồ với độ trễ tối thiểu, TensorRT được ứng dụng rộng rãi trong các ngành dựa vào thị giác máy tính và các tác vụ AI phức tạp, nơi thời gian xử lý rất quan trọng.
-
Hệ thống tự hành: Trong lĩnh vực AI trong ngành ô tô, xe tự lái phải xử lý luồng video từ nhiều camera để phát hiện ngay lập tức người đi bộ, biển báo và chướng ngại vật. Với TensorRT, các model perception như mạng phát hiện đối tượng có thể phân tích từng khung hình trong vài mili giây, cho phép hệ thống điều khiển phương tiện đưa ra quyết định quan trọng về an toàn mà không bị trễ.
-
Tự động hóa công nghiệp: Các nhà máy hiện đại sử dụng AI trong sản xuất để kiểm tra quang học tự động. Camera tốc độ cao chụp ảnh sản phẩm trên dây chuyền lắp ráp, còn các model được tối ưu hóa bằng TensorRT xác định lỗi hoặc điểm bất thường theo thời gian thực. Nhờ đó, hoạt động kiểm soát chất lượng theo kịp môi trường sản xuất tốc độ cao; các hệ thống này thường được triển khai trên thiết bị AI biên như nền tảng NVIDIA Jetson, ngay tại nhà máy.
Sử dụng TensorRT với Ultralytics YOLO#
Tích hợp TensorRT vào quy trình làm việc rất đơn giản với các công cụ AI hiện đại. Gói ultralytics cung cấp phương thức liền mạch để chuyển đổi các model PyTorch tiêu chuẩn thành engine TensorRT. Nhờ đó, người dùng có thể kết hợp kiến trúc hiện đại nhất của Ultralytics YOLO26 với khả năng tăng tốc phần cứng của GPU NVIDIA. Với các nhóm muốn quản lý tập dữ liệu và pipeline huấn luyện trước khi xuất, Ultralytics Platform cung cấp môi trường toàn diện để chuẩn bị model cho triển khai hiệu năng cao.
Ví dụ sau minh họa cách xuất model Ultralytics YOLO26 thành tệp engine TensorRT (.engine) và dùng tệp này để suy luận thời gian thực:
from ultralytics import YOLO
# Tải model YOLO26 ổn định mới nhất (kích thước nano)
model = YOLO("yolo26n.pt")
# Xuất model sang định dạng TensorRT (tạo 'yolo26n.engine')
# Bước này tối ưu hóa đồ thị tính toán cho GPU cụ thể của bạn
model.export(format="engine")
# Tải TensorRT engine đã tối ưu hóa để suy luận tốc độ cao
trt_model = YOLO("yolo26n.engine")
# Chạy suy luận trên nguồn ảnh
results = trt_model("https://ultralytics.com/images/bus.jpg")TensorRT, ONNX và framework huấn luyện#
Điều quan trọng là phải phân biệt TensorRT với các thuật ngữ khác thường được nhắc đến trong lĩnh vực triển khai model:
- So với PyTorch/TensorFlow: Các framework như PyTorch chủ yếu được thiết kế để huấn luyện model và nghiên cứu, cung cấp tính linh hoạt và khả năng gỡ lỗi dễ dàng. TensorRT là một inference engine chỉ được thiết kế để thực thi model đã huấn luyện nhanh nhất có thể. TensorRT không được dùng để huấn luyện.
- So với ONNX: Định dạng ONNX (Trao đổi mạng nơ-ron mở) đóng vai trò cầu nối trung gian giữa các framework. ONNX cung cấp khả năng tương tác (ví dụ: chuyển model từ PyTorch sang nền tảng khác), trong khi TensorRT tập trung vào tối ưu hóa riêng cho phần cứng. Model thường được chuyển đổi sang ONNX trước, sau đó được TensorRT phân tích để tạo engine cuối cùng.
Đối với nhà phát triển muốn tối đa hóa hiệu năng của tác tử AI hoặc hệ thống thị giác, việc hiểu quá trình chuyển từ framework huấn luyện sang runtime được tối ưu hóa như TensorRT là bước quan trọng trong MLOps chuyên nghiệp.










