Ví dụ thực tế về triển khai mô hình Machine Learning
Để xây dựng mô mình Machine Learning thành công trong thực tế đòi hỏi ở mỗi giai đoạn bạn cần có lựa chọn chính xác. Ngay từ những bước đầu tiên, các kịch bản và phương pháp giải quyết vấn đề cần được thảo luận kỹ càng.
Table of Contents
Bài viết trước, chúng ta đã tìm hiểu những kiến thức để triển khai một mô hình Machine Learning từ ý tưởng đến hoạt động thực thực tế. Trong phần này, FUNiX sẽ hướng dẫn bạn thực hiện một dự án Machine Learning (ML). Ta sẽ cần áp dụng tất cả những thông tin từ bài viết trước (bạn có thể đọc phần 01 tại đây) và các kiến thức của một kỹ sư Machine Learning để thiết kế mô hình ML hoàn chỉnh nhất.
1. Thông tin chung của dự án
Trong dự án này, bạn sẽ là kỹ sư ML đang làm việc trong một dự án đầy tiềm năng. Lập trình viên phải thiết kế một hệ thống chống xảy ra sự cố có cài đặt, theo dõi và triển khai mô hình Machine Learning một cách hiệu quả.
Aristocrat là một công ty quảng cáo cung cấp cho các đơn vị kinh doanh Online giải pháp theo dõi và kiểm soát quảng cáo hiệu quả. Gần đây, doanh nghiệp này đã nhận được hợp đồng xây dựng hệ thống ML, giúp họ dự đoán liệu khách hàng có nhấp vào quảng cáo được hiển thị trên trang Web hay không. Đối tác sở hữu tập dữ liệu khối lượng lớn trong Google Cloud Storage (GCS), họ muốn Aristocrat phát triển hệ thống ML end-to-end.
Là một kỹ sư phụ trách, bạn sẽ phải đưa ra giải pháp thiết kế trước khi dự án được triển khai. Để giải quyết được vấn đề trên, nhà phát triển sẽ thực hiện trả lời các câu hỏi ở phần trước. Dựa vào đó để xây dựng một hệ thống end-to-end.
2. Mối quan tâm về dữ liệu
2.1 Dữ liệu đào tạo (Data Training) được lưu trữ như thế nào?
Dữ liệu được lưu trữ trong nhóm GCS có hai dạng. Đầu tiên là tệp CSV mô tả quảng cáo, thứ hai là hình ảnh tương ứng của quảng cáo. Nếu đã có dữ liệu lưu trữ trên đám mây, ta có thể xây dựng hệ thống ML tại đó. Bạn sẽ giảm thiểu được độ trễ cho quá trình I/O, dễ dàng mở rộng quy mô dữ liệu (có thể lên hàng trăm Gigabyte), thiết lập cấu hình nhanh chóng cho bất kỳ GPU và TPU nào.
2.2 Dữ liệu của bạn lớn đến mức nào?
Đối tác của bạn phân phối hàng triệu quảng cáo, dữ liệu được tổng hợp trên đám mây vào cuối mỗi tháng. Nên ta hoàn xác định được dữ liệu có dung lượng bao nhiêu.
2.3 Bạn sẽ lấy dữ liệu để đào tạo (Training) như thế nào?
Vì dữ liệu được lưu trữ trong nhóm GCS, bởi vậy nó dễ dàng truy xuất và sử dụng bằng hệ thống được xây dựng trên nền tảng đám mây của Google.
2.4 Bạn sẽ lấy dữ liệu để dự đoán (Prediction) như thế nào?
Nhà phát triển sẽ nhận được dữ liệu dự đoán từ API nội bộ của đối tác, vì dữ liệu này được lấy từ một API REST. Khi đã có dữ liệu dự đoán, bạn sẽ có được các ý tưởng về nền tảng mục tiêu cho dự án.
3. Framework và công cụ cho dự án
Có nhiều cách kết hợp công cụ mà ta sử dụng ở bước này, bạn cần chọn rất kỹ lưỡng vì các công cụ sẽ tác động đến nhau. Về ngôn ngữ lập trình để tạo mẫu (Prototyping), xây dựng hệ thống và triển khai; bạn nên chọn cùng một ngôn ngữ cho ba giai đoạn hoặc sử dụng ngôn ngữ khác nhau, tùy theo kết quả nghiên cứu trước đó. Java là ngôn ngữ rất hiệu quả để lập trình phụ trợ (Backend Programming), nhưng khi nói đến Machine Learning thì Python sẽ là ngôn ngữ đa năng hơn.
Nếu sau khi cân nhắc Developer chọn Python làm ngôn ngữ lập trình và chọn Tensorflow Framework để xây dựng hệ thống. Vì bạn sẽ cần làm việc với tập dữ liệu lớn gồm hình ảnh và Tensorflow Extended (đây là công cụ mã nguồn mở được phát hành và sử dụng nội bộ tại Google để xây dựng đường Link). Đối với vấn đề khác khi xây dựng mô hình Machine Learning như: Phân tích, giám sát, hỗ trợ,… thì lập trình viên cũng sử dụng luôn Tensorflow Extended (TFX).
TFX cung cấp một loạt Framework, thư viện và thành phần. Chúng sẽ giúp xác định, khởi chạy và giám sát mô hình ML trong quá trình hoạt động. Nền tảng này sở hữu các chức năng cho phép người dùng xây dựng đường dẫn ML hiệu quả. Tính năng của TFX được tích hợp hỗ trợ, đào tạo, phục vụ (Serving), quản lý cho ML…
TFX tương thích với các ngôn ngữ lập trình (Python) cũng như lựa chọn về trình xây dựng mô hình ML (Tensorflow). Điều này sẽ tạo ra sự nhất quán trong suốt quá trình thực hiện dự án. Bên cạnh đó, TFX và Tensorflow được Google xây dựng, nên chúng được hỗ trợ rất tốt trong nền tảng đám mây của Google.
3.1 Lựa chọn mã nguồn mở hay mã nguồn đóng?
Python, TFX và Tensorflow đều là mã nguồn mở. Chúng sẽ là các công cụ chính để xây dựng hệ thống của bạn. Về khả năng tính toán và lưu trữ, ta sẽ sử dụng tất cả GCP (một dịch vụ đám mây có trả phí).
Chúng ta sẽ đánh giá về ưu điểm và nhược điểm của GCP như sau:
Ưu điểm:
- Tiết kiệm chi phí
- Thiết lập và triển khai nhanh chóng
- Sao lưu và phục hồi hiệu quả
Khuyết điểm:
- Khả năng bảo mật kém nên rất nguy hiểm đối với các thông tin mật, nhạy cảm
- Là nền tảng đám mây nên chúng cần có Internet để làm việc. Nếu chất lượng mạng không ổn định nó có thể ảnh hưởng đến công việc
- Phải sẽ phải trả phí định kỳ chứ không thể mua nó hoàn toàn
Nhìn chung, GCP sẽ phù hợp với doanh nghiệp nhỏ hoặc công ty đang khởi nghiệp. Vì chi phí của nó rẻ hơn so với nền tảng đám mây khác.
3.2 Có bao nhiêu nền tảng / công cụ hỗ trợ?
Python làm việc được trên nền tảng nào, TFX và Tensorflow có thể hoạt động trên nền tảng đó. Đồng thời, các hệ thống được xây dựng với Tensorflow sẽ dễ dàng lưu và phục vụ trong trình duyệt sử dụng Tensorflow.js, thiết bị di động sử dụng Tensorflow lite, nền tảng đám mây.
4. Mối quan tâm về phản hồi và lặp lại
TFX hỗ trợ cơ chế phản hồi dễ dàng sử dụng để quản lý việc tạo hệ thống. Nó cũng trợ giúp thay thế và tung ra các mô hình mới cho hệ thống ML. Custom Feedback (phản hồi tùy chỉnh) được xây dựng xung quanh công cụ này, giúp ta theo dõi hiệu quả của mô hình Machine Learning trong quá trình hoạt động. TFX được gọi là phân tích Tensorflow (TFMA), cho phép người dùng dễ dàng đánh giá hệ thống mới so với mô hình hiện tại trước khi đưa vào hoạt động.
5. Kết luận
Việc đưa một mô hình Machine Learning vào hoạt động không quá khó, nếu chúng ta có một kế hoạch chi tiết cho tất cả giai đoạn. Đây là công việc rất quan trọng và cần được ưu tiên trước khi thực hiện bất kỳ công việc nào.
Mặc dù bài viết chưa được đầy đủ nhưng FUNiX hy vọng bạn đã có thể hình dung các công việc, Framework và công cụ cần thiết để xây dựng một mô hình Machine Learning như thế nào. Chúc bạn thành công!
>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:
- Tất cả những điều bạn cần biết về khóa học lập trình tại FUNiX FPT
- 5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX
- Từ A-Z chương trình học FUNiX – Mô hình đào tạo lập trình trực tuyến số 1 Việt Nam
- Lý do phổ biến khiến học viên nước ngoài chọn FUNiX
- Lưu ý để học blockchain trực tuyến hiệu quả cao tại FUNiX
- Lý do nữ giới nên chọn FUNiX để học chuyển nghề IT
- FUNiX trở thành đối tác của Liên minh Blockchain Việt Nam
- 3 lý do bạn trẻ nên học blockchain trực tuyến ở FUNiX
Công Sơn
Bình luận (0
)