1. Tổng quan
Trong lớp học lập trình này, bạn sẽ sử dụng Vertex AI để huấn luyện và phân phát một mô hình có dữ liệu dạng bảng. Đây là sản phẩm AI mới nhất trên Google Cloud và hiện đang ở giai đoạn dùng thử.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách:
- Tải một tập dữ liệu được quản lý lên Vertex AI
- Huấn luyện một mô hình bằng AutoML
- Triển khai mô hình AutoML đã huấn luyện đến một điểm cuối và sử dụng điểm cuối đó để nhận kết quả dự đoán
Tổng chi phí để chạy lớp học lập trình này trên Google Cloud là khoảng 22 USD.
2. Giới thiệu về Vertex AI
Lớp học lập trình này sử dụng sản phẩm AI mới nhất hiện có trên Google Cloud. Vertex AI tích hợp các sản phẩm học máy trên Google Cloud để mang lại trải nghiệm phát triển liền mạch. Trước đây, các mô hình được huấn luyện bằng AutoML và các mô hình tuỳ chỉnh có thể truy cập thông qua các dịch vụ riêng biệt. Sản phẩm mới này kết hợp cả hai thành một API duy nhất, cùng với các sản phẩm mới khác. Bạn cũng có thể di chuyển các dự án hiện có sang Vertex AI. Nếu bạn có ý kiến phản hồi, vui lòng xem trang hỗ trợ.
Vertex AI bao gồm nhiều sản phẩm khác nhau để hỗ trợ quy trình làm việc học máy từ đầu đến cuối. Lớp học lập trình này sẽ tập trung vào các sản phẩm được nêu bật bên dưới: AutoML cho dữ liệu dạng bảng, Prediction và Workbench.

3. Thiết lập môi trường
Bạn cần có một dự án trên Google Cloud Platform đã bật tính năng thanh toán để chạy lớp học lập trình này. Để tạo một dự án, hãy làm theo hướng dẫn tại đây.
Bước 1: Bật Compute Engine API
Chuyển đến Compute Engine rồi chọn Bật nếu bạn chưa bật. Bạn sẽ cần bật API này để tạo phiên bản sổ ghi chép.
Bước 2: Bật Vertex AI API
Chuyển đến phần Vertex AI của Bảng điều khiển Cloud rồi nhấp vào Bật Vertex AI API.

Bước 3: Tạo một phiên bản Vertex AI Workbench
Trong phần Vertex AI của Bảng điều khiển Cloud, hãy nhấp vào Workbench:

Từ đó, trong phần user-managed Notebooks (Sổ ghi chép do người dùng quản lý), hãy nhấp vào New Notebook (Sổ ghi chép mới):

Sau đó, hãy chọn phiên bản mới nhất của loại thực thể TensorFlow Enterprise (with LTS) without GPUs (không có GPU):

Sử dụng các lựa chọn mặc định rồi nhấp vào Tạo.
Bước 5: Mở sổ ghi chép
Sau khi tạo phiên bản, hãy chọn Open JupyterLab (Mở JupyterLab):

Dữ liệu mà chúng ta sẽ sử dụng để huấn luyện mô hình là từ tập dữ liệu Phát hiện gian lận thẻ tín dụng này. Chúng ta sẽ sử dụng một phiên bản của tập dữ liệu này được cung cấp công khai trong BigQuery.
4. Tạo một tập dữ liệu được quản lý
Trong Vertex AI, bạn có thể tạo các tập dữ liệu được quản lý cho nhiều loại dữ liệu. Sau đó, bạn có thể tạo số liệu thống kê về các tập dữ liệu này và sử dụng chúng để huấn luyện các mô hình bằng AutoML hoặc mã mô hình tuỳ chỉnh của riêng bạn.
Bước 1: Tạo một tập dữ liệu
Trong trình đơn Vertex của bảng điều khiển, hãy chọn Data sets (Tập dữ liệu):

Trong lớp học lập trình này, chúng ta sẽ xây dựng một mô hình phát hiện gian lận để xác định xem một giao dịch thẻ tín dụng cụ thể có nên được phân loại là gian lận hay không.
Trên trang Tập dữ liệu, hãy đặt tên cho tập dữ liệu, sau đó chọn Tabular (Dạng bảng) và Regression/classification (Hồi quy/phân loại). Sau đó, hãy Create (Tạo) tập dữ liệu:

Có một vài lựa chọn để nhập dữ liệu vào Tập dữ liệu được quản lý trong Vertex:
- Tải một tệp cục bộ lên từ máy tính
- Chọn tệp từ Cloud Storage
- Chọn dữ liệu từ BigQuery
Tại đây, chúng ta sẽ tải dữ liệu lên từ một bảng BigQuery công khai.
Bước 2: Nhập dữ liệu từ BigQuery
Chọn "Select a table or view from BigQuery" (Chọn một bảng hoặc chế độ xem từ BigQuery) làm phương thức nhập, sau đó sao chép nội dung sau vào hộp BigQuery table (Bảng BigQuery): bigquery-public-data.ml_datasets.ulb_fraud_detection. Sau đó, chọn Continue (Tiếp tục):

Sau khi nhập tập dữ liệu, bạn sẽ thấy một nội dung như sau:

Nếu muốn, bạn có thể nhấp vào Generate statistics (Tạo số liệu thống kê) để xem thêm thông tin về tập dữ liệu này, nhưng bạn không bắt buộc phải thực hiện việc này trước khi chuyển sang bước tiếp theo. Tập dữ liệu này chứa các giao dịch thẻ tín dụng thực. Hầu hết tên cột đã bị che khuất, đó là lý do chúng được gọi là V1, V2, v.v.
5. Huấn luyện một mô hình bằng AutoML
Sau khi tải một tập dữ liệu được quản lý lên, chúng ta đã sẵn sàng huấn luyện một mô hình bằng dữ liệu này. Chúng ta sẽ huấn luyện một mô hình phân loại để dự đoán xem một giao dịch cụ thể có phải là gian lận hay không. Vertex AI cung cấp cho bạn hai lựa chọn để huấn luyện mô hình:
- AutoML: Huấn luyện các mô hình chất lượng cao mà chỉ cần rất ít công sức và chuyên môn về học máy.
- Custom training (Huấn luyện tuỳ chỉnh): Chạy các ứng dụng huấn luyện tuỳ chỉnh của bạn trên đám mây bằng một trong các vùng chứa được xây dựng sẵn của Google Cloud hoặc sử dụng vùng chứa của riêng bạn.
Trong lớp học lập trình này, chúng ta sẽ sử dụng AutoML để huấn luyện.
Bước 1: Bắt đầu công việc huấn luyện
Trên trang thông tin chi tiết về tập dữ liệu mà bạn đã dừng lại ở bước trước, hãy chọn Train new model (Huấn luyện mô hình mới) ở trên cùng bên phải. Chọn Classification (Phân loại) làm mục tiêu, để AutoML được chọn cho quá trình huấn luyện mô hình, sau đó nhấp vào Continue (Tiếp tục):

Đặt tên cho mô hình hoặc bạn có thể sử dụng tên mặc định. Trong phần Target column (Cột mục tiêu), hãy chọn Class (Lớp). Đây là một số nguyên cho biết liệu một giao dịch cụ thể có phải là gian lận hay không (0 cho không gian lận, 1 cho gian lận).
Sau đó, chọn Continue (Tiếp tục):

Ở bước này, hãy di chuyển xuống rồi nhấp để mở rộng Advanced options (Lựa chọn nâng cao). Vì tập dữ liệu này rất mất cân bằng (chưa đến 1% dữ liệu chứa các giao dịch gian lận), hãy chọn lựa chọn AUC PRC sẽ tối đa hoá độ chính xác-khả năng thu hồi cho lớp ít phổ biến hơn:

Chọn Continue (Tiếp tục) rồi chuyển sang bước cuối cùng (Compute and pricing) (Tính toán và giá). Tại đây, hãy nhập 1 làm số giờ của nút cho ngân sách của bạn và để tính năng dừng sớm được bật. Việc huấn luyện mô hình AutoML trong 1 giờ tính toán thường là một khởi đầu tốt để hiểu liệu có mối quan hệ giữa các tính năng và nhãn mà bạn đã chọn hay không. Từ đó, bạn có thể sửa đổi các tính năng và huấn luyện trong thời gian dài hơn để cải thiện hiệu suất của mô hình. Tiếp theo, hãy chọn Start training (Bắt đầu huấn luyện).
Bạn sẽ nhận được email khi công việc huấn luyện hoàn tất. Quá trình huấn luyện sẽ mất nhiều thời gian hơn một chút so với một giờ để tính đến thời gian khởi động và huỷ bỏ tài nguyên.
6. Khám phá các chỉ số đánh giá mô hình
Trong bước này, chúng ta sẽ xem hiệu suất của mô hình.
Sau khi công việc huấn luyện mô hình hoàn tất, hãy chuyển đến thẻ Models (Mô hình) trong Vertex. Nhấp vào mô hình mà bạn vừa huấn luyện rồi xem thẻ Evaluate (Đánh giá). Có nhiều chỉ số đánh giá ở đây – chúng ta sẽ tập trung vào hai chỉ số: Confusion Matrix (Ma trận nhầm lẫn) và Feature Importance (Mức độ quan trọng của tính năng).
Bước 1: Tìm hiểu ma trận nhầm lẫn
Ma trận nhầm lẫn cho chúng ta biết tỷ lệ phần trăm các ví dụ từ mỗi loại trong tập kiểm định mà mô hình của chúng ta đã dự đoán chính xác. Trong trường hợp tập dữ liệu mất cân bằng như tập dữ liệu mà chúng ta đang xử lý, đây là một thước đo tốt hơn về hiệu suất của mô hình so với độ chính xác tổng thể.
Hãy nhớ rằng chưa đến 1% ví dụ trong tập dữ liệu của chúng ta là các giao dịch gian lận, vì vậy, nếu độ chính xác của mô hình là 99%, thì rất có thể mô hình chỉ đoán ngẫu nhiên lớp không gian lận 99% thời gian. Đó là lý do tại sao việc xem xét độ chính xác của mô hình cho từng lớp là một chỉ số tốt hơn ở đây.
Nếu di chuyển xuống trên thẻ Evaluate (Đánh giá), bạn sẽ thấy một ma trận nhầm lẫn trông như sau (tỷ lệ phần trăm chính xác có thể khác nhau):

Ma trận nhầm lẫn cho thấy mô hình ban đầu của chúng ta có thể phân loại chính xác 85% ví dụ gian lận trong tập kiểm định. Đây là một kết quả khá tốt, đặc biệt là khi xét đến sự mất cân bằng đáng kể của tập dữ liệu. Tiếp theo, chúng ta có thể thử huấn luyện mô hình trong nhiều giờ tính toán hơn để xem liệu có thể cải thiện từ 85% này hay không.
Bước 2: Xem xét mức độ quan trọng của tính năng
Bên dưới ma trận nhầm lẫn, bạn sẽ thấy một biểu đồ mức độ quan trọng của tính năng trông như sau:

Biểu đồ này cho chúng ta thấy các tính năng cung cấp tín hiệu lớn nhất cho mô hình khi đưa ra dự đoán. Mức độ quan trọng của tính năng là một loại AI giải thích – một lĩnh vực bao gồm nhiều phương thức để hiểu rõ hơn về cách mô hình học máy đưa ra dự đoán. Biểu đồ mức độ quan trọng của tính năng được thấy ở đây được tính toán dưới dạng tổng hợp bằng cách xem xét tất cả các dự đoán của mô hình trên tập kiểm định. Biểu đồ này cho chúng ta thấy các tính năng quan trọng nhất trên một loạt ví dụ.
Biểu đồ này sẽ thú vị hơn nếu hầu hết các tính năng trong tập dữ liệu của chúng ta không bị che khuất. Ví dụ: chúng ta có thể biết rằng loại giao dịch (chuyển khoản, gửi tiền, v.v.) là chỉ báo lớn nhất về gian lận.
Trong một tình huống thực tế, các giá trị mức độ quan trọng của tính năng này có thể được sử dụng để giúp chúng ta cải thiện mô hình và tự tin hơn vào các dự đoán của mô hình. Chúng ta có thể quyết định xoá các tính năng ít quan trọng nhất vào lần huấn luyện mô hình tiếp theo hoặc kết hợp hai tính năng quan trọng hơn thành một nhân chéo tính chất để xem liệu điều này có cải thiện hiệu quả của mô hình hay không.
Chúng ta đang xem xét mức độ quan trọng của tính năng trên một loạt ở đây, nhưng chúng ta cũng có thể nhận được mức độ quan trọng của tính năng cho từng dự đoán trong Vertex AI. Chúng ta sẽ xem cách thực hiện việc đó sau khi triển khai mô hình.
7. Triển khai mô hình đến một điểm cuối
Bây giờ chúng ta đã có một mô hình được huấn luyện, bước tiếp theo là tạo một Điểm cuối trong Vertex. Một tài nguyên Mô hình trong Vertex có thể có nhiều điểm cuối được liên kết với tài nguyên đó và bạn có thể phân tách lưu lượng truy cập giữa các điểm cuối.
Bước 1: Tạo một điểm cuối
Trên trang mô hình, hãy chuyển đến thẻ Deploy and test (Triển khai và kiểm thử) rồi nhấp vào Deploy to endpoint (Triển khai đến điểm cuối):

Đặt tên cho điểm cuối, chẳng hạn như fraud_v1, để Quyền truy cập được đặt thành Standard (Tiêu chuẩn) rồi nhấp vào Continue (Tiếp tục).
Để tính năng phân tách lưu lượng truy cập và loại máy ở chế độ cài đặt mặc định, hãy nhấp vào Done (Xong) rồi nhấp vào Continue (Tiếp tục).
Chúng ta sẽ không sử dụng tính năng giám sát mô hình cho điểm cuối này, vì vậy, bạn có thể bỏ chọn tính năng đó rồi nhấp vào Deploy (Triển khai). Điểm cuối sẽ mất vài phút để triển khai. Khi hoàn tất, bạn sẽ thấy một dấu kiểm màu xanh lục bên cạnh điểm cuối đó:

Bạn sắp hoàn tất! Bây giờ, bạn đã sẵn sàng nhận kết quả dự đoán trên mô hình đã triển khai.
8. Nhận kết quả dự đoán trên mô hình đã triển khai
Có một vài lựa chọn để nhận kết quả dự đoán của mô hình:
- Giao diện người dùng Vertex AI
- Vertex AI API
Chúng ta sẽ trình bày cả hai lựa chọn ở đây.
Bước 1: Nhận kết quả dự đoán của mô hình trong giao diện người dùng
Trên trang mô hình nơi hiển thị điểm cuối (nơi chúng ta đã dừng lại ở bước cuối cùng), hãy di chuyển xuống phần Test your model (Kiểm thử mô hình):

Tại đây, Vertex AI đã chọn các giá trị ngẫu nhiên cho từng tính năng của mô hình mà chúng ta có thể sử dụng để nhận kết quả dự đoán kiểm thử. Bạn có thể thay đổi các giá trị này nếu muốn. Di chuyển xuống cuối trang rồi chọn Predict (Dự đoán).
Trong phần Prediction result (Kết quả dự đoán) của trang, bạn sẽ thấy tỷ lệ phần trăm dự đoán của mô hình cho từng loại. Ví dụ: điểm tin cậy là 0.99 cho lớp 0 có nghĩa là mô hình của bạn cho rằng ví dụ này có 99% khả năng không phải là gian lận.
Bước 2: Nhận kết quả dự đoán của mô hình bằng Vertex AI API
Giao diện người dùng là một cách tuyệt vời để đảm bảo điểm cuối đã triển khai đang hoạt động như dự kiến, nhưng rất có thể bạn sẽ muốn nhận kết quả dự đoán một cách linh động thông qua lệnh gọi API REST. Để cho bạn thấy cách nhận kết quả dự đoán của mô hình tại đây, chúng ta sẽ sử dụng thực thể Vertex Workbench mà bạn đã tạo ở đầu lớp học lập trình này.
Tiếp theo, hãy mở thực thể sổ ghi chép mà bạn đã tạo rồi mở một sổ ghi chép Python 3 từ Trình chạy:

Trong sổ ghi chép, hãy chạy lệnh sau trong một ô để cài đặt Vertex SDK:
!pip3 install google-cloud-aiplatform --upgrade --user
Sau đó, hãy thêm một ô vào sổ ghi chép để nhập SDK và tạo một tham chiếu đến điểm cuối mà bạn vừa triển khai:
from google.cloud import aiplatform
endpoint = aiplatform.Endpoint(
endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)
Bạn cần thay thế hai giá trị trong chuỗi endpoint_name ở trên bằng số dự án và điểm cuối. Bạn có thể tìm thấy số dự án bằng cách chuyển đến trang tổng quan dự án và lấy giá trị Số dự án.
Bạn có thể tìm thấy mã nhận dạng điểm cuối trong phần điểm cuối của bảng điều khiển tại đây:

Cuối cùng, hãy đưa ra dự đoán cho điểm cuối bằng cách sao chép và chạy mã bên dưới trong một ô mới:
test_instance={
'Time': 80422,
'Amount': 17.99,
'V1': -0.24,
'V2': -0.027,
'V3': 0.064,
'V4': -0.16,
'V5': -0.152,
'V6': -0.3,
'V7': -0.03,
'V8': -0.01,
'V9': -0.13,
'V10': -0.18,
'V11': -0.16,
'V12': 0.06,
'V13': -0.11,
'V14': 2.1,
'V15': -0.07,
'V16': -0.033,
'V17': -0.14,
'V18': -0.08,
'V19': -0.062,
'V20': -0.08,
'V21': -0.06,
'V22': -0.088,
'V23': -0.03,
'V24': 0.01,
'V25': -0.04,
'V26': -0.99,
'V27': -0.13,
'V28': 0.003
}
response = endpoint.predict([test_instance])
print('API response: ', response)
Bạn sẽ thấy một kết quả dự đoán khoảng .67 cho loại 0, có nghĩa là mô hình cho rằng có 67% khả năng giao dịch này không phải là gian lận.
🎉 Xin chúc mừng! 🎉
Bạn đã tìm hiểu cách sử dụng Vertex AI để:
- Tải một tập dữ liệu được quản lý lên
- Huấn luyện và đánh giá một mô hình trên dữ liệu dạng bảng bằng AutoML
- Triển khai mô hình đến một điểm cuối
- Nhận kết quả dự đoán trên một điểm cuối mô hình bằng SDK cho Vertex
Để tìm hiểu thêm về các phần khác nhau của Vertex AI, hãy xem tài liệu.
9. Dọn dẹp
Nếu bạn muốn tiếp tục sử dụng sổ ghi chép mà bạn đã tạo trong lớp học lập trình này, thì bạn nên tắt sổ ghi chép đó khi không sử dụng. Trên giao diện người dùng Workbench trong Bảng điều khiển Cloud, hãy chọn sổ ghi chép rồi chọn Stop (Dừng).
Nếu bạn muốn xoá hoàn toàn sổ ghi chép, chỉ cần nhấp vào nút Xoá ở trên cùng bên phải.
Để xoá điểm cuối mà bạn đã triển khai, hãy chuyển đến phần Endpoints (Điểm cuối) của bảng điều khiển Vertex AI rồi huỷ triển khai mô hình khỏi điểm cuối:

Để xoá Nhóm lưu trữ, hãy sử dụng trình đơn Điều hướng trong Bảng điều khiển Cloud, duyệt đến Storage (Bộ nhớ), chọn nhóm của bạn rồi nhấp vào Delete (Xoá):
