TECHSCENE DIGEST 01 - Tổng quan Hệ thống Machine Learning

(5 min read)

Hàng tuần, chuyên mục TechScene Digest sẽ giới thiệu tới các bạn những chia sẻ thú vị về Khoa học và Công nghệ từ các "tech guru". Mở đầu là chủ đề "hot hit" Machine Learning từ anh Quân Đặng - Machine Learning Engineer - Cộng đồng MLOps VN.

"Hồi mới nhận nhiệm vụ triển khai hệ thống ML, mình cứ nghĩ là chắc build một Web API đơn giản là xong. Tuy nhiên khi thực sự bắt tay vào làm, cộng thêm đọc tài liệu trên trời dưới đất, mình mới chợt nhận ra API chỉ là một phần nhỏ xíu thôi. Hy vọng bài viết này giúp mọi người có cái nhìn tổng quan hơn về một hệ thống ML, để khi nhận task đỡ bỡ ngỡ.

Do tính tình bộc trực thẳng thắn nên mình xin phép đi thẳng vào vấn đề chính bằng cách để bức ảnh tổng quan về hệ thống ML ở đây luôn (xem ảnh ở phần comment).

Ở đây, ngoài môi trường để Data Scientist (DS) thử nghiệm model, mình dùng thêm 2 môi trường là staging và production.

Môi trường staging

Thực hiện unit test để đảm bảo tính chính xác của các hàm riêng lẻ. Thực hiện integration test để khi kết hợp các hàm với nhau không xảy ra vấn đề gì.

Test training pipeline với dữ liệu staging (dữ liệu giả, hoặc lấy một phần dữ liêụ production) để xem có lỗi không.

Ví dụ: Lỗi pipeline không trả ra model, lỗi thiếu quyền truy cập vào các tài nguyên cloud (GCS,S3), …

Test luồng từ khi model được upload lên model registry cho tới khi serve model

Ví dụ: Online serving có serve được request và trả ra kết quả đúng như dự đoán không.

Môi trường production

Thực hiện train với dữ liệu production, và retrain tuỳ theo bài toán.

Ví dụ: Với dữ liệu training biến đổi nhiều thì retrain hàng ngày, còn nếu ít thì chỉ retrain khi nhận được event báo có sự thay đổi nhiều trong phân bố của training data.

Thu thập ML metadata, ví dụ:

  • Training pipeline metadata: ghi lại thời gian retrain, phân bố của dữ liệu training, kết quả model trên tập validation.

  • Serving metadata: thông tin các model đang được serve hiện tại, hoặc model đang được A/B test.

Trả về kết quả dự đoán (có thể kèm giải thích cho dự đoán tuỳ model và bài toán) cho user, và lưu lại log để phân tích thêm

Có 2 cách thức serve phổ biến:

  • Online serving: dự đoán mỗi khi có request đến.

  • Offline batch serving: dự đoán trên toàn bộ dữ liệu, và mỗi khi có request, chỉ cần trả query kết quả dự đoán tương ứng.

Monitor hệ thống

Ví dụ: monitor tình trạng CPU, GPU để scale tài nguyên lên hoặc xuống cho phù hợp, hoặc monitor thời gian phản hồi của model xem có bị chậm không.

Monitor model: sử dụng log của bước dự đoán, kết hợp cùng dữ liệu có sẵn (ví dụ label cho user) để đánh giá xem model đã bị giảm performance chưa, hoặc có sự biến đổi nhiều trong phân bố của kết quả dự đoán không, vân vân và mây mây.

Kết luận

Hệ thống ML không chỉ đơn giản là làm xong một Web API rồi ném đấy. Mình cần xem xét các yếu tố khác, ví dụ như làm sao để quá trình từ lúc model còn đang ở môi trường research lên môi trường production nhanh nhất, hoặc khi nào thì cần thay thế một model đang trên production rồi, và thay thế như nào để giảm downtime, và nhiều thứ khác.

Tuỳ từng yêu cầu bài toàn, mà hệ thống ML sẽ được phát triển theo các hướng khác nhau, với các thành phần khác nhau, do đó nên xác định rõ yêu cầu và timeline từ đầu, để có định hướng xây dựng hệ thống phù hợp.

Tài liệu tham khảo

  • https://cloud.google.com/.../mlops-continuous-delivery...

  • https://github.com/mercari/ml-system-design-pattern

  • https://stanford-cs329s.github.io/

  • https://docs.seldon.io/projects/seldon-core/en/latest/

Michael Munn, Sara Robinson, and Valliappa Lakshmanan: Machine Learning Design Patterns (2020)

Cộng đồng MLOps VN:

https://www.facebook.com/groups/240875227766690

____________________

TechScene is a non-profit organization for tech professional working people in Vietnam, aiming to bring a well-rounded scene of what is going on in the Vietnam technology industry.

CONTACT DETAILS

  • Website:

    https://techscene.vn/

  • Email: techscene.vn@gmail.com

  • LinkedIn:

    linkedin.com/company/tech-scene-vn/

Từ khóa: techscene, ml, machine learning, Công nghệ thông tin

Bài viết rất hay, hy vọng anh cập nhập thêm nhiều nội dung như này ạ

Trả lời

Bài viết rất hay, hy vọng anh cập nhập thêm nhiều nội dung như này ạ