Lessons Learnt From Consolidating ML Models in a Large Scale Recommendation System
Bài tóm tắt Netflix 2023 4. Điều chỉnh Độ khó: Trung bình
Netflix · 2023 · 4. Điều chỉnh · Độ khó: Trung bình — bài gốc
Bối cảnh
- Hệ recommendation và search thường mọc ra một model riêng cho mỗi use case: notification (user→item), item liên quan (item→item), search (query→item), khám phá theo thể loại (category→item). Mỗi cái có pipeline offline riêng (sinh nhãn, featurize, train) gần giống nhau, và phía online mỗi model nằm ở một service với inference API riêng. Theo Netflix, đây là nợ kỹ thuật ẩn của hệ ML (dẫn Sculley 2015).
Thay đổi chính
- Offline: chỉ bước chuẩn bị nhãn còn riêng theo use case; phần còn lại thành một pipeline và một model multi-task. Request context hợp nhất là hợp của mọi trường ngữ cảnh các task (query, nước, ngôn ngữ, item nguồn...), trường thiếu điền giá trị sentinel, thêm biến phân loại
task_typecho model biết đang phục vụ task nào. Dữ liệu nhãn từ các canvas gộp lại có phân tầng. - Online: cùng một model, triển khai ở nhiều môi trường theo use case, mỗi môi trường có "núm" chỉnh latency, độ tươi dữ liệu model, chính sách cache, mức song song khi chạy. Bên ngoài là một API không phụ thuộc canvas: nhận ngữ cảnh và tập ứng viên dị loại (user, video, thể loại...), cấu hình timeout và fallback theo bên gọi.
- Mục tiêu online là phục vụ các SLA, mức sẵn sàng, ngân sách inference và logic nghiệp vụ khác nhau mà không kéo model về "mẫu số chung thấp nhất".
Vì sao
- Theo Netflix: ít code và ít deploy hơn (mỗi model mới tốn pipeline, nâng framework, sửa lỗi); on-call dễ hơn vì một codebase, ít chuyển ngữ cảnh, ít điểm hỏng; cải tiến cho một use case áp được cho các use case khác mà không làm thêm pipeline; dễ thêm use case mới nhờ schema ngữ cảnh linh hoạt.
- Đánh đổi: feature thêm cho một use case có thể làm hồi quy use case khác; theo Netflix, thực tế chưa thành vấn đề khi các use case đủ gần nhau. Chưa rõ có nên gộp model xếp hạng các đích hoàn toàn khác nhau.
Bài học cho SWE
- Gộp model giống refactor gộp module trùng lặp: giảm hệ phải vận hành, nhưng biến tách biệt giữa các use case thành phụ thuộc chung.
- Tách "một model" khỏi "một cách triển khai": cùng artifact có thể chạy ở nhiều môi trường với cấu hình latency, cache khác nhau.
- Bài không nêu số model trước và sau, cũng không nêu số liệu chất lượng.
Liên quan
- Nền tảng ML (feature, training, serving, giám sát model)
- Cùng công ty: Netflix 2022 · Netflix 2020
- Cùng bài toán: Reddit 2021 (chiều ngược lại: tách model ra pool riêng) · Zillow 2022 · Uber 2026
#Multi-task model#model consolidation#recommendation#search#request context#task_type#inference API chung#môi trường theo use case#technical debt ML#on-call
Được nhắc tới trong
Công ty (1)
Bài tóm tắt (1)