1. Tổng quan
Trong lớp học này, bạn sẽ sử dụng Vertex AI để huấn luyện và phân phá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 xem trước.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách:
- Tải tập dữ liệu được quản lý lên Vertex AI
- Huấn luyện mô hình bằng AutoML
- Triển khai mô hình AutoML đã huấn luyện cho một điểm cuối và sử dụng điểm cuối đó để nhận thông tin dự đoán
Tổng chi phí để chạy lớp học này trên Google Cloud là khoảng 22 USD.
2. Giới thiệu về Vertex AI
Lớp học này sử dụng sản phẩm AI mới nhất có trên Google Cloud. Vertex AI tích hợp các dịch vụ học máy trên Google Cloud vào một trải nghiệm phát triển liền mạch. Trước đây, bạn có thể truy cập vào các mô hình được huấn luyện bằng AutoML và mô hình tuỳ chỉnh thông qua các dịch vụ riêng biệt. Sản phẩm mới 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 có nhiều sản phẩm nhằm hỗ trợ quy trình học máy toàn diện. Lớp học này sẽ tập trung vào các sản phẩm được nêu dưới đây: AutoML cho dữ liệu dạng bảng, Tính năng dự đoán và Workbench.
3. Thiết lập môi trường
Bạn cần một dự á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 dự án, hãy làm theo hướng dẫn tại đây.
Bước 1: Bật API Compute Engine
Chuyển đến Compute Engine rồi chọn Bật nếu bạn chưa bật. Bạn sẽ cần có gói này để tạo thực thể sổ tay.
Bước 2: Bật API Vertex AI
Chuyển đến mục Vertex AI trong Cloud Console rồi nhấp vào Bật API Vertex AI.
Bước 3: Tạo một thực thể Vertex AI Workbench
Trong phần Vertex AI của Cloud Console, hãy nhấp vào Workbench (Bảng điều khiển):
Tại đó, trong phần Sổ tay do người dùng quản lý, hãy nhấp vào Sổ tay mới:
Sau đó, hãy chọn phiên bản mới nhất của loại thực thể TensorFlow Enterprise (có LTS) không có GPU:
Sử dụng các tuỳ chọn mặc định rồi nhấp vào Tạo.
Bước 5: Mở Sổ tay
Sau khi tạo thực thể, hãy chọn Mở JupyterLab:
Dữ liệu 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 Tập dữ liệu được quản lý
Trong Vertex AI, bạn có thể tạo 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 số liệu thống kê đó để huấn luyện 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 tập dữ liệu
Trong trình đơn Vertex trong bảng điều khiển của bạn, hãy chọn Tập dữ liệu:
Trong phòng thí nghiệm này, chúng tôi sẽ xây dựng một mô hình phát hiện gian lận để xác định xem có nên phân loại một giao dịch cụ thể bằng thẻ tín dụng 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 Bảng và Hồi quy/phân loại. Sau đó, hãy Tạo tập dữ liệu:
Có một số cách để nhập dữ liệu vào Tập dữ liệu được quản lý trong Vertex:
- Tải tệp cục bộ lên từ máy tính
- Chọn tệp trong Cloud Storage
- Chọn dữ liệu từ BigQuery
Ở đâ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 "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 Bảng BigQuery: bigquery-public-data.ml_datasets.ulb_fraud_detection
. Sau đó, chọn Tiếp tục:
Sau khi nhập tập dữ liệu, bạn sẽ thấy giao diện như sau:
Nếu muốn, bạn có thể nhấp vào Tạo số liệu thống kê để xem thêm thông tin về tập dữ liệu này. Tuy nhiên, bạn không bắt buộc phải làm 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 tế. Hầu hết tên cột đều bị che khuất, đó là lý do chúng được gọi là V1
, V2
, v.v.
5. Huấn luyện mô hình bằng AutoML
Sau khi tải tập dữ liệu được quản lý lên, chúng ta đã sẵn sàng huấn luyện 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ề máy học.
- Huấn luyện tuỳ chỉnh: Chạy các ứng dụng huấn luyện tuỳ chỉnh trên đám mây bằng một trong các vùng chứa tạo 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 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 chi tiết về tập dữ liệu mà bạn đã dừng lại ở bước trước, hãy chọn Huấn luyện mô hình mới ở trên cùng bên phải. Chọn Phân loại làm mục tiêu, giữ nguyên lựa chọn AutoML để huấn luyện mô hình, rồi nhấp vào 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 Cột mục tiêu, hãy chọn Lớp. Đây là một số nguyên cho biết liệu một giao dịch cụ thể có gian lận hay không (0
đối với giao dịch không gian lận, 1
đối với giao dịch gian lận).
Sau đó, chọn Tiếp tục:
Trong bước này, hãy di chuyển xuống rồi nhấp vào để mở rộng Tùy chọn nâng cao. Vì tập dữ liệu này bị mất cân bằng nghiêm trọng (dưới 1% dữ liệu chứa giao dịch gian lận), hãy chọn tuỳ chọn AUC PRC để tối đa hoá độ chính xác-độ hồi quy cho lớp ít phổ biến hơn:
Chọn Tiếp tục rồi chuyển sang bước cuối cùng (Tính toán và định giá). Tại đây, hãy nhập 1 làm số giờ nút cho ngân sách của bạn và bật tính năng dừng sớm. Huấn luyện mô hình AutoML trong 1 giờ điện toán thường là một khởi đầu tốt để hiểu liệu có mối quan hệ nào 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 thêm để cải thiện hiệu suất của mô hình. Tiếp theo, hãy chọn 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ẻ Mô hình trong Vertex. Nhấp vào mô hình bạn vừa huấn luyện và 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ố: Ma trận nhầm lẫn và Tầm 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 ví dụ từ mỗi lớp trong tập kiểm thử 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à thước đo hiệu suất của mô hình tốt hơn 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à 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 này chỉ đoán ngẫu nhiên lớp không gian lận trong 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ố phù hợp hơn ở đây.
Nếu di chuyển xuống thẻ Evaluate (Đánh giá), bạn sẽ thấy một ma trận nhầm lẫn có dạ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 thử. Điều này khá tốt, đặc biệt là khi xem xét sự mất cân bằng đáng kể về tập dữ liệu của chúng ta. Tiếp theo, chúng ta có thể thử huấn luyện mô hình của mình để có thêm số giờ điện toán để xem liệu chúng ta có thể cải thiện từ mức 85% này hay không.
Bước 2: Xem xét tầm 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 đồ về mức độ quan trọng của tính năng như sau:
Điều này cho chúng ta biết những đặc điểm đã cung cấp tín hiệu lớn nhất cho mô hình của chúng ta khi đưa ra dự đoán. Tầm quan trọng của đặc điểm là một loại AI có thể giải thích – một lĩnh vực bao gồm nhiều phương pháp để hiểu rõ hơn về mô hình học máy đang dự đoán. Biểu đồ tầm quan trọng của đặc điểm xuất hiện ở đâ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 dữ liệu kiểm thử. Trang 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 đặc điểm 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 được rằng loại giao dịch (chuyển, gửi tiền, v.v.) là chỉ báo lớn nhất về hành vi gian lận.
Trong trường hợp thực tế, các giá trị tầm quan trọng của đặc điểm này có thể được dùng để giúp chúng ta cải thiện mô hình và tự tin hơn vào kết quả dự đoán của mô hình. Chúng tôi 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 trong số các tính năng quan trọng hơn của chúng tôi thành một nhiều tính năng để xem liệu điều này có cải thiện hiệu suất của mô hình hay không.
Tại đây, chúng tôi đang xem xét tầm quan trọng của tính năng theo từng đợt, nhưng cũng có thể xem xét tầm quan trọng của tính năng đối với từng dự đoán riêng lẻ 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
Giờ đây, 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ể liên kết với nhiều điểm cuối và bạn có thể phân chia lưu lượng truy cập giữa các điểm cuối.
Bước 1: Tạo điểm cuối
Trên trang mô hình, hãy chuyển đến thẻ Triển khai và kiểm thử rồi nhấp vào Triển khai đến điểm cuối:
Đặt tên cho điểm cuối, chẳng hạn như fraud_v1
, giữ nguyên quyền truy cập ở chế độ Chuẩn rồi nhấp vào Tiếp tục.
Giữ nguyên chế độ cài đặt mặc định cho tính năng phân chia lưu lượng truy cập và loại máy, nhấp vào Xong rồi nhấp vào 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 Triển khai. Quá trình triển khai điểm cuối sẽ mất vài phút. Sau 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 hoàn tất:
Bạn sắp đạt được mục tiêu rồi! 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 thông tin dự đoán về mô hình đã triển khai của chúng tôi
Có một vài tùy chọn để nhận dự đoán mô hình:
- Giao diện người dùng Vertex AI
- Vertex AI API
Chúng ta sẽ hiển thị cả hai ở đâ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 Kiểm thử mô hình:
Tại đây, Vertex AI đã chọn các giá trị ngẫu nhiên cho từng đặc điểm của mô hình mà chúng ta có thể sử dụng để nhận kết quả dự đoán thử nghiệm. 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 Dự đoán.
Trong phần 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 lớp. 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 thông tin dự đoán của mô hình bằng API Vertex AI
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 của bạn đang hoạt động như mong đợi, nhưng có thể bạn sẽ muốn nhận thông tin dự đoán một cách linh động thông qua lệnh gọi API REST. Để hướng dẫn bạn 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 này.
Tiếp theo, hãy mở thực thể sổ tay bạn đã tạo và mở một sổ tay Python 3 trong Trình chạy:
Trong sổ tay, hãy chạy mã sau trong một ô để cài đặt Vertex SDK:
!pip3 install google-cloud-aiplatform --upgrade --user
Sau đó, hãy thêm một ô trong sổ tay để nhập SDK và tạo một tệp 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 của bạn. Bạn có thể tìm thấy số dự án của mình bằng cách chuyển đến trang tổng quan dự án rồi nhận giá trị Số dự án.
Bạn có thể tìm thấy mã thiết bị đầu cuối trong mục thiết bị đầu cuối của bảng điều khiển tại đây:
Cuối cùng, hãy dự đoán đ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 thông tin dự đoán vào khoảng .67
cho lớp 0, tức là mô hình cho rằng có 67% khả năng giao dịch này không phải là giao dịch lừa đảo.
🎉 Xin chúc mừng! 🎉
Bạn đã tìm hiểu cách sử dụng Vertex AI để:
- Tải tập dữ liệu được quản lý lên
- Huấn luyện và đánh giá 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 thông tin dự đoán về điểm cuối của mô hình bằng cách sử dụ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 muốn tiếp tục sử dụng sổ tay mà bạn đã tạo trong lớp học này, bạn nên tắt sổ tay khi không sử dụng. Trên giao diện người dùng Workbench trong Cloud Console, hãy chọn sổ tay rồi chọn Dừng.
Nếu bạn muốn xoá toàn bộ sổ tay, 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 Đ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á Bộ nhớ, hãy sử dụng trình đơn Điều hướng trong Cloud Console, chuyển đến Bộ nhớ, chọn bộ nhớ của bạn rồi nhấp vào Xoá: