Tổng Quan Về Triton Inference Server
Trong bài viết trước, chúng ta đã tìm hiểu khái niệm và kiến trúc của Triton Inference Server. Bài viết này sẽ cung cấp hướng dẫn chi tiết về cách cài đặt và sử dụng Triton Inference Server.
Triton Inference Server Là Gì?
Triton Inference Server là phần mềm phục vụ suy luận AI nguồn mở, có khả năng triển khai các mô hình từ nhiều framework học sâu khác nhau như TensorRT, TensorFlow, PyTorch, ONNX và OpenVINO. Triton hỗ trợ nhiều cách triển khai khác nhau, bao gồm trên cloud, trung tâm dữ liệu và thiết bị nhúng, đồng thời tối ưu hóa hiệu suất cho nhiều loại truy vấn như real-time và batched. Ngoài ra, Triton còn dễ dàng tích hợp với các công cụ như Kubernetes và Prometheus.
Các Tính Năng Nổi Bật
- Hỗ trợ nhiều framework học sâu
- Hỗ trợ batch động
- Thực thi mô hình đồng thời
- API backend cho phép thêm các backend tùy chỉnh
- Mô hình kết hợp (ensemble)
- Giao thức HTTP/REST và gRPC cho suy luận
- Các chỉ số như throughput và latency
Các Kiến Thức Cơ Bản về Triton
- Model Repository: Cấu trúc thư mục nơi lưu trữ các mô hình.
- Model Configuration: Cấu hình và tùy chọn cho các mô hình.
- Model Management: Quản lý và theo dõi các mô hình đã triển khai.
Công Cụ Triton
- Triton Performance Analyzer: Công cụ CLI giúp tối ưu hóa hiệu suất của các mô hình.
- Triton Model Analyzer: Công cụ sử dụng Performance Analyzer để xác định cấu hình tối ưu cho mô hình, giúp tăng cường hiệu suất.
Hướng Dẫn Cài Đặt Triton Inference Server
Cài Đặt
Cách đơn giản nhất để cài đặt Triton là sử dụng hình ảnh Docker đã được xây dựng sẵn từ NVIDIA GPU Cloud (NGC). Bài viết này hướng dẫn các bước cài đặt cơ bản bao gồm:
- Tạo Model Repository.
- Khởi động Triton.
- Gửi yêu cầu suy luận.
Tạo Model Repository
Model repository là thư mục chứa các mô hình bạn muốn Triton phục vụ. Ví dụ:
model_repository
├── ensemble_model
│ ├── 1
│ └── config.pbtxt
├── resnet34
│ ├── 1
│ │ └── model.pt
│ └── config.pbtxt
└── unet34
├── 1
│ └── model.pt
└── config.pbtxt
Khởi Động Triton
Triton được tối ưu hóa để chạy trên GPU, nhưng cũng có thể chạy trên hệ thống chỉ có CPU. Để khởi động Triton trên GPU, sử dụng lệnh:
docker run --gpus all --rm -p8000:8000 -p8001:8001 -p8002:8002 -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:22.12-py3 tritonserver --model-repository=/models
Đối với hệ thống CPU, lệnh sẽ không có flag --gpus
:
docker run --rm -p8000:8000 -p8001:8001 -p8002:8002 -v ${PWD}/model_repository:/models nvcr.io/nvidia/tritonserver:<xx.yy>-py3 tritonserver --model-repository=/models
Xác Minh Triton Đã Chạy
Sử dụng endpoint sẵn sàng của Triton để kiểm tra xem máy chủ đã sẵn sàng cho suy luận chưa:
curl -v localhost:8000/v2/health/ready
Kiểm Tra Log của Triton
Sau khi chạy lệnh docker run
, bạn có thể kiểm tra các log của container để biết trạng thái các mô hình đã sẵn sàng cho suy luận hay chưa.
Gửi Yêu Cầu Suy Luận
Gửi yêu cầu vào Triton Server qua các ứng dụng khách.
Hướng Dẫn từ Triton Documentation
docker pull nvcr.io/nvidia/tritonserver:<xx.yy>-py3-sdk
Từ bên trong Docker Client Image, chạy ứng dụng client để gửi yêu cầu.
Cài Đặt Python Client
Cài đặt thư viện cần thiết:
pip install tritonclient[all]
Sử dụng Python để gửi yêu cầu đến Triton Server:
client = grpcclient.InferenceServerClient(url="localhost:8001")
Kết hợp với các bước xử lý dữ liệu đầu vào phù hợp với cấu hình của mô hình trong config.pbtxt
.
Triton Model Analyzer (Tùy Chọn)
Triton Model Analyzer sử dụng Performance Analyzer để tối ưu hóa hiệu suất suy luận. Hướng dẫn xây dựng và sử dụng Model Analyzer đã được nêu rõ để bạn có thể tự thực hiện.
Tổng Kết
Bài viết này đã cung cấp cái nhìn tổng quan về Triton Inference Server và cách thức cài đặt, sử dụng cơ bản. Để tìm hiểu thêm, hãy tham khảo Triton Documentation.
Tài Liệu Tham Khảo
- Triton Inference Server Documentation
- Triton Inference Server Tutorial Github
- Model Analyzer GitHub
- Triton Client Libraries
source: viblo