ML Model Deployment for Zillow Floor Plans with SageMaker
Bài tóm tắt Zillow 2020 3. Quy mô lớn Độ khó: Trung bình
Zillow · 2020 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc
Bối cảnh
- Zillow Floor Plan: model phát hiện cửa sổ, cửa ra vào, lối mở trong ảnh panorama của tour 3D để tự động hoá việc vẽ sơ đồ nhà. Cần hạ tầng deploy và phục vụ model dễ tích hợp, tin cậy, dễ thêm model, dùng lại được cho Zillow.
Thay đổi chính
- So sánh server riêng, EC2 tự quản và SageMaker; chọn SageMaker dù đắt hơn khoảng 40% (ml.m5.large 0,134 USD/giờ so với m5.large 0,096, 2020) vì dễ dùng, tích hợp sẵn với AWS.
- Chỉ dùng SageMaker cho inference; train trên máy cục bộ (GPU của SageMaker quá đắt so với lợi ích độ chính xác).
- Thử nghiệm online vs offline, loại instance, số instance, batch size; chọn Batch Transform trên CPU: không cần realtime vì có khoảng trễ giữa lúc chụp và lúc dùng kết quả; không phải duy trì endpoint; chỉ trả tiền lúc chạy. Mỗi job tốn 1–2 phút khởi động container.
- Tour 3D xong (ảnh đã trên S3) thì một CloudWatch Alarm kích hoạt Step Functions: tiền xử lý, rồi nhiều Lambda song song, mỗi Lambda cho một model, theo mẫu start → monitor → wait → monitor → end để không trả tiền Lambda trong lúc job chạy tới cả giờ. Lambda không phụ thuộc model, thêm model mới gần như không tốn công.
- Kết quả JSON trên S3, khoá lưu trong DynamoDB.
- Tiếp theo: repo artifact model có GitLab CI/CD (build image theo framework, lint, chạy train/inference, kiểm hiệu năng model trên bộ ảnh chuẩn); retrain định kỳ đang cân nhắc Kubeflow/MLflow.
Vì sao
- Câu hỏi đầu tiên là có cần inference realtime không; nếu không, batch rẻ và đơn giản hơn nhiều (Nền tảng ML (feature, training, serving, giám sát model), Chi phí hạ tầng và build vs buy).
Bài học cho SWE
- Trả thêm cho dịch vụ managed có thể đáng khi team nhỏ và workload nằm sẵn trong hệ sinh thái đó.
- Với job dài, orchestrator gọi-rồi-kiểm-tra rẻ hơn một hàm chờ đồng bộ.
- CI cho model nên kiểm cả chất lượng dự đoán, không chỉ code.
Liên quan
#SageMaker batch transform#online vs offline inference#Step Functions#Lambda start-monitor pattern#TensorFlow Serving#ECR#DynamoDB result index#GitLab CI for models#~40% markup vs EC2
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (2)