Cách đưa mô hình Machine Learning vào hoạt động: Từ ý tưởng đến triển khai thực tế

Cách đưa mô hình Machine Learning vào hoạt động: Từ ý tưởng đến triển khai thực tế

Chia sẻ kiến thức 28/02/2022

Phương pháp machine learning phù hợp xuất phát từ nhu cầu tập trung vào dữ liệu. Từ đó, nó dẫn đến các dự án tập trung vào hoạt động qua những giai đoạn khám phá, làm sạch, đào tạo, xây dựng, lặp lại dữ liệu.

Mục tiêu của xây dựng mô hình Machine Learning là để giải quyết một vấn đề nào đó. Chỉ khi mô hình này được đưa vào hoạt động, nó mới đáp ứng được nhu cầu của thị trường. Đồng thời, chúng phải được hưởng ứng tích cực từ phía người dùng. Cho nên, việc triển khai mô hình Machine Learning có vai trò quan trọng như việc xây dựng mô hình.

1. Từ mô hình đến triển khai hoạt động

Cần có kế hoạch khi triển khai mô hình Machine Learning
Cần có kế hoạch khi triển khai mô hình Machine Learning.

Nhiều nhóm nhà phát triển bắt tay vào xây dựng mô hình Machine Learning (ML) mà không có kế hoạch triển khai hoạt động. Cho đến khi người ta thực hiện mới nhận ra, việc không có kế hoạch cụ thể sẽ dẫn đến những vấn đề rất nghiêm trọng, vì việc tạo ra một mô hình vừa tốn kém vừa mất nhiều thời gian. Nếu lập trình viên không có kế hoạch đưa vào hoạt động, ta sẽ không nên đầu tư vào một dự án ML, trừ khi bạn thực hiện nghiên cứu thuần túy. Với một bản kế hoạch chi tiết, ta sẽ lường trước các tình huống và nhanh chóng có phương án xử lý sự cố xảy ra.

Ba vấn đề chính mà nhóm Developer cần xem xét trước khi bắt tay vào bất kỳ dự án ML là:

  • Lưu trữ và truy xuất dữ liệu
  • Framework và công cụ 
  • Phản hồi (Feedback) và lặp lại (Iteration)

2. Lưu trữ và truy xuất dữ liệu

Mô hình Machine Learning không mang lại bất kỳ giá trị nào nếu nó không có dữ liệu được liên kết. Có thể bạn nên có các tập dữ liệu đào tạo (Training), đánh giá, kiểm tra và dự đoán. Ta cần trả lời một số câu hỏi như:

  • Dữ liệu đào tạo của bạn được lưu trữ như thế nào?
  • Dữ liệu của bạn lớn đến mức nào?
  • Bạn sẽ lấy dữ liệu để đào tạo như thế nào?
  • Bạn sẽ lấy dữ liệu để dự đoán như thế nào?

Những câu hỏi này rất quan trọng, chúng sẽ quyết định việc ta nên sử dụng Framework hoặc công cụ nào, cách tiếp cận vấn đề, thiết kế mô hình ML. Trước khi thực hiện bất kỳ điều gì khác của dự án, bạn hãy nghĩ về những câu hỏi về dữ liệu này.

Dữ liệu có thể được lưu trữ tại chỗ (nơi mà bạn xây dựng mô hình ML), bộ nhớ đám mây hoặc kết hợp cả hai. Việc lưu trữ dữ liệu tại nơi mà quá trình Training mô hình được thực hiện là hợp lý: Đào tạo và phục vụ mô hình tại chỗ sẽ phù hợp nhất với dữ liệu tại chỗ (On-premise Data), nhất là các dữ liệu có dung lượng lớn. Trong khi dữ liệu được lưu trữ trên hệ thống đám mây như GCS, AWS S3 hoặc bộ nhớ Azure) phải phù hợp với đào tạo và triển khai ML đám mây.

Có nhiều vị trí để lưu trữ dữ liệu
Có nhiều vị trí để lưu trữ dữ liệu.

Dung lượng của dữ liệu cũng rất quan trọng, bởi vì dữ liệu quá lớn khiến ta cần nhiều công sức để tính toán hơn cho các giai đoạn tối ưu hóa mô hình Machine Learning. Điều này có nghĩa là bạn cần lập kế hoạch tính toán nhiều hơn hoặc thiết lập tự động mở quy mô trên đám mây ngay từ đầu. Lập trình viên nên nhớ rằng, một trong hai cách trên có thể sẽ tốn chi phí hơn, nếu bạn chưa tính toán chính xác về dung lượng dữ liệu. Vậy nên, chúng ta cần lập kế hoạch trước để đảm bảo ngân sách sẽ đủ để phục vụ cả quá hình, từ khi bạn xây dựng mô hình đến khi đưa vào hoạt động.

Cùng với việc truy xuất dữ liệu đào tạo, Developer cũng sẽ cần chú trọng đến truy xuất dữ liệu dự đoán (Data Retrieval). Một số vấn đề ta cần xem xét về dữ liệu dự đoán trong mô hình ML như:

  • Bạn có nhận được dữ liệu suy luận từ các trang Web không? 
  • Bạn có nhận được yêu cầu dự đoán từ các API không?
  • Bạn đang đưa ra dự đoán hàng loạt hay thời gian thực?

Nếu nhà phát triển đang lấy dữ liệu từ trang Web thì câu hỏi đặt ra đấy là loại dữ liệu nào? Nếu là dữ liệu từ người dùng trong các Website, nó có thể là dữ liệu có cấu trúc (CSV, JSON) hoặc phi cấu trúc (hình ảnh, video, âm thanh). Và công cụ để phân tích cần đủ mạnh để có khả năng đề xuất, xử lý và đưa ra những dự đoán. Dữ liệu dự đoán thường khác so với dữ liệu đào tạo, đặc biệt là khi nó đến trực tiếp từ người dùng cuối cùng chứ không phải API. Do vậy, chúng ta phải cung cấp cơ sở hạ tầng cần thiết để tự động hóa hoàn toàn việc phát hiện các thay đổi cũng như xử lý dữ liệu mới này.

Đối với truy xuất, bạn cần xem xét liệu phân tích được thực hiện hàng loạt hay thực hiện trong thời gian thực. Hai tình huống này yêu cầu cách tiếp cận khác nhau, vì công nghệ/kỹ năng sẽ khác nhau. Đối với suy luật hàng loạt, ta có thể muốn lưu một yêu cầu vào cửa hàng trung tâm và đưa ra phân tích sau khoảng thời gian được chỉ định. Đối với xem xét dữ liệu trong thời gian thực, bạn có thể thực hiện phân tích ngay sau khi yêu cầu được thực hiện.

3. Framework và công cụ

Framework và công cụ sẽ giúp dự án ML triển khai có hiệu quả hơn
Framework và công cụ sẽ giúp dự án triển khai hiệu quả

Để mô hình hoạt động được bạn sẽ cần có các Framework và công cụ, phần mềm và phần cứng sẽ giúp triển khai hiệu quả các mô hình ML. Đấy có thể là các Framework (như Tensorflow, Pytorch và Scikit-Learn, ngôn ngữ lập trình (như Python, Java và Go), môi trường dữ liệu đám mây (như AWS, GCP và Azure).

Việc lựa chọn Framework đặc biệt quan trọng, vì nó quyết định đến tính liên tục, duy trì và sử dụng một mô hình. Trong bước này, chúng ta phải trả lời các câu hỏi sau:

  • Công cụ tốt nhất cho nhiệm vụ trong tầm tay là gì?
  • Sự lựa chọn của các công cụ là mã nguồn mở hay mã nguồn đóng?
  • Có bao nhiêu nền tảng / mục tiêu hỗ trợ công cụ?

Để đưa ra được quyết định lựa chọn công cụ nào, bạn có thể theo dõi các tiêu chí dưới đây:

  • Hiệu quả: Framework hoặc công cụ trong sản xuất hiệu quả như thế nào? Một Framework hoặc công cụ hiệu quả nếu nó sử dụng tối ưu được tài nguyên bộ nhớ, CPU. Điều quan trọng là xem xét hiệu quả của nền tảng bạn có ý định sử dụng. Vì chúng nó ảnh hưởng trực tiếp đến hiệu suất, độ tin cậy và tính ổn định của dự án
  • Mức độ phổ biến: Mức độ phổ biến của công cụ đó trong cộng đồng nhà phát triển như thế nào? Nếu được sử dụng phổ biến thì chúng có khả năng cao là hoạt động tốt và có nhiều hỗ trợ khi cần thiết. Ta cũng nên cân nhắc những công cụ ít phổ biến, nhưng chúng mang lại hiệu quả cao. Đặc biệt là đối với các nền tảng độc quyền và mã nguồn đóng
  • Hỗ trợ: Sự hỗ trợ của công cụ như thế nào? Nếu là mã nguồn mở thì nó có cộng đồng hỗ trợ không hoặc nếu là mã nguồn đóng thì có được trợ giúp tốt hay không? Bạn có thể tìm thấy những mẹo, thủ thuật, hướng dẫn bằng cách nào? Một Framework và công cụ tốt sẽ đảm bảo được các yếu tố trên

Một câu hỏi khác nữa mà bạn cần trả lời là Framework đó hỗ trợ bao nhiêu nền tảng? Công cụ đã lựa chọn có hỗ trợ các nền tảng như Website hoặc Mobile không? Chúng có chạy trên Windows, Linux hay MacOS không? Nền tảng đó có hoạt động dễ dàng trong môi trường dự định xây dựng mô hình ML hay không? Những câu hỏi này rất quan trọng, vì có nhiều công cụ để chúng ta lựa chọn cho một dự án. Những nhận định này giống như một bài khảo sát giúp chúng ta phân loại và đưa ra quyết định hợp lý nhất.

4. Phản hồi và lặp lại (Feedback and iteration)

Đến đây thì nhóm nhà phát triển đã có thể triển khai mô hình ML vào hoạt động. Trong quá trình làm việc, ta cần chú trọng đến những sự thay đổi, vấn đề và sự cố của mô hình ML. Bạn sẽ cần trả lời các câu hỏi như:

  • Làm thế nào để tôi nhận được phản hồi từ một mô hình đang hoạt động?
  • Làm thế nào để bạn thiết lập được sự phân phối liên tục?

Nhận phản hồi từ mô hình trong quá trình hoạt động là rất quan trọng. Chủ động theo dõi và giám sát mô hình, nó sẽ giúp bạn kịp thời phát hiện trường hợp giảm hiệu suất làm việc, sai lệch dữ liệu,… Điều này sẽ đảm bảo các vấn đề được giải quyết nhanh chóng.

Developer nên nghiên cứu để kiểm tra, giám sát mà không ảnh hưởng đến hoạt động của nó. Bên cạnh đó, một mô hình mới sẽ cần rà soát kỹ càng trước khi đưa vào hoạt động và thay thế cho mô hình cũ. 

Trong quá trình đưa mô hình Machine Learning vào hoạt động, bạn sẽ cần nghiên cứu và tìm hiểu nhiều vấn đề khác. Nhưng FUNiX chắc chắn rằng, hầu hết chúng sẽ được giải quyết bằng một trong các câu hỏi được nêu trong bài.

>>> 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:

>>> Xem thêm các chủ đề hữu ích:

 

Công Sơn

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!