Model Deployment
Triển khai model đưa một model đã huấn luyện vào môi trường production để tạo dự đoán trên dữ liệu mới. Nội dung bao gồm đích triển khai trên cloud và edge, xuất model, phát hành và giám sát.
Triển khai model là quá trình đưa model học máy đã training vào môi trường production, nơi ứng dụng gửi dữ liệu mới đến model và xử lý các dự đoán của model. Quy trình này bao gồm chọn nơi chạy model, chuyển đổi model sang định dạng mà runtime mục tiêu có thể thực thi, kết nối model với đầu vào và đầu ra thông qua API hoặc ứng dụng, phát hành phiên bản mới an toàn và theo dõi hành vi của model khi người dùng thực tế phụ thuộc vào model. Model đạt điểm cao trong notebook vẫn chỉ là một thử nghiệm cho đến khi được triển khai; triển khai là giai đoạn vận hành học máy (MLOps) nơi khoa học dữ liệu phải đáp ứng các ràng buộc của kỹ thuật phần mềm như latency, chi phí, thời gian hoạt động và bảo mật.
Các hình thức triển khai model#
- Triển khai trên cloud: Model chạy trên các server phía sau endpoint REST hoặc gRPC, thường thông qua hệ thống serving model có khả năng gom batch yêu cầu và mở rộng số replica theo nhu cầu. Hình thức này phù hợp với model lớn và lưu lượng biến động; mỗi yêu cầu đều phát sinh một lượt round trip qua mạng.
- Triển khai trên edge: Model chạy trên thiết bị thu thập dữ liệu, chẳng hạn điện thoại, camera, robot hoặc module NVIDIA Jetson. Đầu vào không rời khỏi thiết bị, giúp bảo vệ quyền riêng tư; model vẫn hoạt động khi ngoại tuyến, nhưng giới hạn về bộ nhớ và công suất thường đòi hỏi model được nén.
- Triển khai serverless: Nền tảng khởi chạy instance theo nhu cầu và giảm số lượng về 0 khi không hoạt động; đổi lại, yêu cầu đầu tiên phải chịu độ trễ khởi động nguội, còn khi không có yêu cầu thì không phát sinh chi phí.
- Triển khai theo batch: Một job chạy theo lịch sẽ chấm điểm toàn bộ dataset cùng lúc, chẳng hạn tạo gợi ý sản phẩm hằng đêm; trong trường hợp này, thông lượng quan trọng hơn tốc độ của từng yêu cầu.
Ultralytics Platform triển khai model YOLO đã huấn luyện lên endpoint chuyên dụng tại một trong 42 khu vực, mỗi endpoint có URL và hệ thống giám sát riêng; endpoint dùng kích thước tài nguyên mặc định sẽ giảm quy mô về 0 khi không hoạt động. Việc chọn đích triển khai dựa trên một số câu hỏi về ứng dụng, được trình bày chi tiết trong bài học Choose a Deployment Target của Ultralytics Academy:
Chuẩn bị model cho môi trường production#
Framework training được thiết kế linh hoạt, vì vậy model production thường được export sang định dạng mà inference engine có thể chạy hiệu quả, chẳng hạn ONNX để tăng tính di động, TensorRT cho GPU NVIDIA, OpenVINO cho phần cứng Intel, hoặc LiteRT và Core ML cho điện thoại. Lượng tử hóa model và cắt tỉa model giúp thu nhỏ model hơn nữa khi thiết bị đích có tài nguyên hạn chế. Sau đó, model đã export cùng mã tiền xử lý được đóng gói với các dependency cố định phiên bản, thường trong container Docker hoạt động giống nhau trên laptop, server hoặc cụm Kubernetes. Có thể export detector đã training rồi tải tệp đã export để kiểm tra nhanh trước khi phát hành như sau:
from ultralytics import YOLO
# Load a trained model (replace with your own best.pt)
model = YOLO("yolo26n.pt")
# Export to ONNX, a portable format that many inference engines run
path = model.export(format="onnx")
print(f"Deployable model: {path}")
# Smoke-test the exported file with the same API before shipping it
onnx_model = YOLO(path)
results = onnx_model("https://ultralytics.com/images/bus.jpg")
results[0].save(filename="bus_onnx.jpg")Lệnh export trả về đường dẫn đến tệp yolo26n.onnx mới; hình ảnh đã lưu xác nhận tệp này tải được và tạo ra các detection. Các nhóm cũng so sánh độ chính xác và tốc độ của model đã export với model gốc trên tập validation, vì việc chuyển đổi định dạng và giảm độ chính xác số học có thể làm thay đổi đôi chút kết quả đầu ra.
Phát hành phiên bản model mới#
Phiên bản model mới được lưu trong model registry và phát hành dần dần, vì metric ngoại tuyến không bao quát mọi điều kiện production. Khi triển khai shadow, model mới nhận bản sao lưu lượng truy cập trực tiếp trong khi model hiện tại vẫn trả lời người dùng, cho phép so sánh hai model mà không gặp rủi ro. Sau đó, phát hành canary chuyển một phần nhỏ lưu lượng thực sang phiên bản mới và chỉ tăng tỷ lệ khi tỷ lệ lỗi, latency và chất lượng dự đoán vẫn ổn định; A/B test đo lường tác động đến kết quả kinh doanh. Giữ cho phiên bản trước đó luôn sẵn sàng triển khai giúp rollback chỉ cần thay đổi cấu hình thay vì phải dựng lại hệ thống khẩn cấp:
Triển khai model và các thuật ngữ liên quan#
- Training model: Học trọng số của model từ một dataset. Triển khai bắt đầu từ các trọng số đã hoàn tất.
- Serving model: Lớp runtime xử lý các yêu cầu dự đoán. Đây là một phần của quá trình triển khai, vốn còn bao gồm đóng gói, phát hành và monitoring.
- Latency inference: Thời gian model đã triển khai cần để tính từng dự đoán riêng lẻ; đây là một trong những yêu cầu chính mà quy trình triển khai phải đáp ứng.
Monitoring sau triển khai#
Model đã triển khai có thể âm thầm suy giảm khi môi trường thay đổi. Monitoring model theo dõi các tín hiệu vận hành như latency, thông lượng, tỷ lệ lỗi và mức sử dụng phần cứng, thường bằng các công cụ như Prometheus và Grafana, đồng thời theo dõi thống kê của đầu vào và dự đoán. Khi monitoring phát hiện sự cố, các nhóm gán nhãn những trường hợp lỗi mới, training lại rồi đưa phiên bản mới qua cùng quy trình phát hành. Thống kê đầu vào đưa ra cảnh báo sớm nhất: data drift, tức sự dịch chuyển trong phân phối đầu vào như camera được chuyển sang góc mới hoặc ánh sáng thay đổi vào mùa đông, có thể xuất hiện trước vài ngày hoặc vài tuần so với thời điểm nhận được nhãn thực tế của dữ liệu production để đo độ chính xác.










