×
Community Blog How I deploy a Computer Vision (AI/ML/DL) Project on Alibaba Cloud?

How I deploy a Computer Vision (AI/ML/DL) Project on Alibaba Cloud?

Bài viết này hướng dẫn thực hiện đồ án Thị giác máy tính trên Alibaba Cloud

Mình đã thực hiện đồ án Thị giác máy tính trên Alibaba Cloud như thế nào?

By Vo Thi Phuong Anh, Alibaba Cloud Solutions Architect of Vietnam


1) Bài viết này có gì?
Khi kể đến thực hiện một dự án công nghệ thông tin (hoặc từ ngôn ngữ sinh viên, có thể gọi là đồ án), có rất nhiều về nền tảng (platform) khác nhau để lựa chọn. Trong số đó, nhu cầu cơ bản của người sử dụng (là sinh viên hay bất kỳ ai) bao gồm:
● Tài nguyên điện toán mạnh (CPU, RAM, GPU…)
● Có hỗ trợ các thư viện, package cần thiết cho dự án. Hoặc nếu không hỗ trợ, việc cài đặt chúng có thể được thực hiện dễ dàng.
● Dễ sử dụng, tốc độ ổn (nhanh thì càng tốt)
● Tích hợp được với nhiều nền tảng khác (là một điểm cộng lớn)
● Chi phí thấp (hoặc miễn phí)
● v/v

Từ góc độ của 1 Junior Solution Architect và 1 sinh viên thực hiện đồ án, mình đã triển khai đồ án môn học Thị giác máy tính nâng cao của mình trên Alibaba Cloud. Vì vậy bài viết này sẽ mang đến một số hướng dẫn về cách thực hiện, và một số đánh giá khi triển khai một project trên Cloud (cụ thể là Alibaba Cloud).

Bài viết sẽ chia thành các phần như sau:
● Thông tin về dự án Thị giác máy tính
● Pipeline triển khai trên Alibaba Cloud
● Thông tin và giới thiệu về các sản phẩm Alibaba Cloud được sử dụng
● Kết quả project của mình
● Một số đánh giá so sánh giữa Alibaba Cloud và 1 số dịch vụ khác mình từng dùng
● Dành cho những ai quan tâm đến việc trải nghiệm Alibaba Cloud: cách bắt đầu sử dụng một số sản phẩm của Alibaba Cloud hoàn toàn miễn phí

Nếu có bất kỳ đóng góp/thắc mắc nào, đừng ngần ngại liên lạc với mình qua email vothiphuo01674576@alibaba-inc.com hoặc cmt tại bài blog này.

2) Thông tin về project
Đồ án (project) được thực hiện trong bài blog này có chủ đề là Age Estimation From Person Images: dự đoán tuổi của một người dựa vào hình ảnh (cụ thể là hình ảnh khuôn mặt và body của họ) với:
● Input: hình ảnh chứa một hoặc nhiều người, có thể có khuôn mặt hoặc khuôn mặt và cơ thể (body).
● Output: Khuôn mặt (và cơ thể) được phát hiện từ ảnh có độ tuổi (và giới tính) được dự đoán, được bao quanh bởi các bounding boxes.
Screen_Shot_2024_01_01_at_19_06_39
Screen_Shot_2024_01_01_at_19_07_00

Project sử dụng các mô hình và bộ dữ liệu khác nhau trong quá trình training và testing. Thông tin chi tiết bên dưới đây:
● Mô hình/phương pháp nhận diện khuôn mặt, body: YOLOv8. [1]
● Mô hình/phương pháp ước tính tuổi (và giới tính): VOLO [2], MiVOLO [3]. (thử cả mô hình tự train và pre-trained).
● Bộ dữ liệu: UTK-Face [4], Lagenda [5], IMDB-Clean [6].

Quá trình thực hiện bài toán này đi qua các giai đoạn:
● Lưu trữ các bộ dữ liệu có sẵn
● Chạy các mô hình thực nghiệm (train, test…)
● Kiểm tra kết quả mô hình trên các hình ảnh mới

3) Pipeline sử dụng để thực hiện đồ án
Để thực hiện các task này, mình cần những công cụ sau để có một project end-to-end (tập trung tất cả tài nguyên trên 1 nền tảng):
● Nơi để chứa các bộ dữ liệu của mình (có kích thước khá lớn, ~100 nghìn ảnh) và lưu cả các hình kết quả.
● Một Jupyter Notebook IDE hoặc máy ảo (có GPU) để chạy mô hình, máy càng mạnh càng nhanh càng tốt.

Trên cơ sở đó, mình đã sử dụng pipeline như sau trên nền tảng mình chọn là Alibaba Cloud:
Screen_Shot_2024_01_01_at_19_42_54

Trong pipeline trên, mình giải quyết 2 task được đặt ra trước đó bằng các sản phẩm trên Cloud được hỗ trợ bởi Alibaba Cloud.
● Lưu dataset và mô hình pretrain: mình lưu trong AI Platform của Alibaba Cloud (gọi là Alibaba Cloud Platform for AI – PAI), tên chức năng của nó là Asset Management, còn backbone của nó thực chất là liên kết về Object Storage Service (dịch vụ lưu trữ đám mây của Alibaba Cloud).
● Train và test mô hình: phần này sẽ có 2 cách mình chọn lọc ra như sau:
○ Cách 1: Tạo một máy ảo trên dịch vụ máy ảo của Alibaba Cloud là Elastic Compute Service (cách làm có thể xem tại đây). Alibaba Cloud cung cấp cả những máy ảo có gắn sẵn GPU.
○ Cách 2: Sử dụng Jupyter Notebook IDE và GPU được cài đặt sẵn bởi Alibaba Cloud Platform for PAI – Data Science Workshop. Thông tin về cách sử dụng bạn có thể xem tại đây.

4) Các sản phẩm Alibaba Cloud được sử dụng
Như pipeline ở phía trên, mình đã sử dụng kết hợp một số sản phẩm của Alibaba Cloud. Trong phần này, mình sẽ diễn giải các sản phẩm đó.

A. Dịch vụ máy ảo Elastic Compute Service (ECS)
Đầu tiên là dịch vụ máy ảo ECS, đây là nơi mọi người có thể mua các máy ảo và bắt đầu sử dụng các máy ảo được cung cấp bởi Alibaba Cloud. Các dòng máy ảo được cung cấp trên hầu hết hệ điều hành phổ biến, hỗ trợ nhiều kiến trúc máy như x86, ARM, có cả các dòng có gắn sẵn GPU.
Screen_Shot_2024_01_01_at_19_46_06
Screen_Shot_2024_01_01_at_19_47_08

Thông tin chi tiết bạn có thể xem tại đây.
Về cách tạo máy ảo ECS trên Alibaba Cloud, bạn có thể tham khảo tại đây.

B. Dịch vụ lưu trữ Object Storage Service (OSS)
OSS là dịch vụ lưu trữ được cung cấp bởi Alibaba Cloud, bạn có thể lưu dữ liệu ở mọi format và có thể truy cập vào dữ liệu bằng link.
OSS cũng hỗ trợ nhiều loại bộ nhớ phục vụ nhiều nhu cầu khác nhau.

Thông tin cụ thể về OSS bạn có thể xem tại đây.
Để bắt đầu sử dụng OSS, bạn có thể tham khảo bài viết này.

C. Nền tảng AI của Alibaba Cloud: Platform for AI (PAI)
Alibaba Cloud Platform for AI là một sản phẩm cung cấp nền tảng đặc thù để thực hiện các dự án về Trí tuệ nhân tạo như triển khai các graphical pipeline, code python trên Notebook, đào tạo các mô hình máy học, lable tự động…. Thông tin chi tiết bạn có thể xem tại series này hoặc trang thông tin PAI.

Trong lần triển khai đồ án Thị giác máy tính lần này, mình đã sử dụng sản phẩm Notebook tích hợp sẵn trong Data Sciene Workshop thuộc PAI để chạy thực nghiệm. Trong các dòng máy được hỗ trợ cho tính năng này, các dòng có tích hợp sẵn các framework phổ biến như TensorFlow, PyTorch…

5) Tutorial & Kết quả
Vậy quy trình thực hiện đồ án này đi qua những bước nào? Bạn có thể tham khảo flow dưới đây:
● Bước 1: Lưu các dataset và mô hình pretrained trong AI Assets.
● Bước 2: Tạo một instance Notebook trên Data Science Workshop – PAI.
● Bước 3: Chạy thực nghiệm và lưu kết quả.
Tất cả các bước trên đều được thực hiện trên Alibaab Cloud PAI, vì vậy từ trang chủ của Alibaba Cloud, tìm kiếm “PAI” để vào Alibaba Cloud PAI.
Screen_Shot_2024_01_01_at_19_54_11

Đối với trường hợp lần đầu sử dụng PAI, bạn có thể làm theo hướng dẫn trên màn hình để kích hoạt dịch vụ và sau đó tạo workspace đầu tiên để bắt đầu sử dụng được các tính năng AI Asset, Data Science Workshop. Chi tiết bạn có thể tham khảo bài viết Tạo workspace.

A. Lưu dataset và mô hình pretrained
Sau khi có workspace trên PAI, chọn vào AI Computing Asset Management, chọn Datasets để thêm dataset và Models để thêm các mô hình pretrained.
Screen_Shot_2024_01_01_at_19_55_45

B. Dùng notebook IDE
Để tiến hành chạy thực nghiệm trên Jupyter Notebook, tạo 1 instance trong Data Science Workshop (DSW). Chi tiết bạn có thể tham khảo tại đây.

Screen_Shot_2024_01_01_at_20_02_04

Chạy thực nghiệm trên Noteboook, Data Science Workshop:
Screen_Shot_2024_01_01_at_20_02_36

C. Một số kết quả
Mình đã thực hiện thành công đồ án Ước tính tuổi này trên Alibaba Cloud với phương pháp như trên. Dưới đây là một số kết quả dự đoán tuổi.
Screen_Shot_2024_01_01_at_20_03_35
Screen_Shot_2024_01_01_at_20_04_00
Screen_Shot_2024_01_01_at_20_04_25

6) So sánh sản phẩm của Alibaba Cloud với những nhà cung cấp khác (từ góc nhìn cá nhân)
Sau khi triển khai đồ án của mình trên Alibaba Cloud, mình có một vài kết luận (so sánh) như sau về Alibaba Cloud so với một số nền tảng khác mình từng dùng.
● Ưu điểm của Alibaba Cloud:
○ Dễ sử dụng, đa số được tích hợp sẵn.
○ Do đây là một hệ thống Cloud lớn và chuẩn chỉnh nên có đầy đủ các sản phẩm cho mọi nhu cầu và tương thích trực tiếp với nhau.
○ Hiệu năng mạnh và có thể sử dụng để train mô hình liên tục (vì nếu dùng Colab thì sẽ cần phải thường trực để “canh chừng” cho máy không bị ngắt kết nối khỏi runtime, Alibaba Cloud thì không cần), cũng không giới hạn quota.
○ So với xài Jupyter Notebook trên máy local: nhanh hơn rất nhiều, tài nguyên được isolated, không cần cài đặt phức tạp.
● Nhược điểm:
○ Có tính phí (lưu trữ thì dưới 5GB được miễn phí, nhưng instance Jupyter Notebook vẫn phải trả phí). Tuy nhiên có thể trả pay-as-you-go theo tiếng cũng không quá đắt.
○ Có sẵn GPU nhưng cần thiết lập 1 chút thì mới chạy cuda được (thiết lập driver GPU).

● Khuyến nghị của mình: Nếu bạn muốn triển khai một project theo dạng end-to-end, nghĩa là không cần dùng nhiều tool từ nhiều nhà cung cấp khác nhau, thì Alibaba Cloud là một lựa chọn tuyệt vời. Vừa deploy vừa làm quen với Cloud luôn. Tuy nhiên nếu nhu cầu quá nhỏ thì dùng các tool miễn phí vẫn là sự lựa chọn tối ưu, vì bản chất lên Cloud sẽ là mua máy ảo.

7) Bắt đầu sử dụng sản phẩm Alibaba Cloud
Phần cuối này dành cho những ai muốn bắt đầu trải nghiệm Alibaba Cloud. Alibaba Cloud cung cấp các chương trình dùng thử (và học online) miễn phí dành cho cộng đồng và học sinh sinh viên.

  • Dành cho học sinh/sinh viên
    Screen_Shot_2024_01_01_at_20_16_01

Nếu bạn có thẻ ngân hàng quốc tế, bạn có thể tham khảo bài viết này.
Nếu bạn không có thẻ ngân hàng quốc tế, bạn có thể tham khảo bài viết này.

8) Tài liệu tham khảo
[1] YOLOv8. https://docs.ultralytics.com/models/yolov8/
[2] VOLO: Vision Outlooker for Visual Recognition. https://arxiv.org/abs/2106.13112
[3] MiVOLO: Multi-input Transformer for Age and Gender Estimation. https://arxiv.org/abs/2307.04616
[4] UTK-Face Dataset. https://susanqq.github.io/UTKFace/
[5] LAGENDA Dataset. https://wildchlamydia.github.io/lagenda/
[6] IMDB-Clean Dataset. https://github.com/yiminglin-ai/imdb-clean

0 0 0
Share on

Alibaba Cloud Vietnam

46 posts | 5 followers

You may also like

Comments

Alibaba Cloud Vietnam

46 posts | 5 followers

Related Products