1. Tổng quan
Trong phòng thí nghiệm này, bạn sẽ huấn luyện một mô hình bằng công cụ Học máy BigQuery, sau đó xuất và triển khai mô hình đó sang Vertex AI. Đây là sản phẩm AI mới nhất trên Google Cloud.
Kiến thức bạn sẽ học được
Bạn sẽ tìm hiểu cách:
- Huấn luyện mô hình bằng công nghệ Học máy BigQuery (BQML)
- Xuất mô hình BQML sang Cloud Storage
- Triển khai BQML đã qua đào tạo cho Vertex AI
- Nhận thông tin dự đoán về mô hình đã triển khai
Tổng chi phí để chạy phòng thí nghiệm này trên Google Cloud là khoảng 2 USD.
2. Giới thiệu về Vertex AI
Phòng thí nghiệm 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 giải pháp 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, các mô hình được huấn luyện bằng AutoML và mô hình tuỳ chỉnh có thể truy cập được thông qua các dịch vụ riêng biệt. Dịch vụ 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. Phòng thí nghiệm này sẽ tập trung vào các sản phẩm được làm nổi bật dưới đây: Dự đoán và Sổ tay.
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 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 Enable (Bật) nếu bạn chưa bật tính năng này. Bạn sẽ cần có gói này để tạo thực thể sổ tay.
Bước 2: Bật Vertex AI API
Chuyển đến phần Vertex AI trong Cloud Console rồi nhấp vào Bật Vertex AI API.
Bước 3: Tạo một thực thể của Sổ tay
Chúng tôi sẽ sử dụng Sổ tay để nhận thông tin dự đoán sau khi triển khai mô hình. Trong mục Vertex AI trên Cloud Console, hãy nhấp vào Sổ tay:
Tại đó, chọn New Instance (Phiên bản mới). Sau đó, hãy chọn loại thực thể TensorFlow Enterprise 2.3 không có GPU:
Sử dụng các tuỳ chọn mặc định rồi nhấp vào Tạo. Sau khi tạo phiên bản, hãy chọn Open JupyterLab:
4. Huấn luyện mô hình máy học BigQuery
Công nghệ học máy của BigQuery giúp bạn huấn luyện các mô hình học máy tuỳ chỉnh bằng cách sử dụng dữ liệu được lưu trữ trong BigQuery. Bạn có thể huấn luyện và nhận thông tin dự đoán từ các mô hình – tất cả đều bằng SQL. Đối với phòng thí nghiệm này, chúng tôi sẽ sử dụng tập dữ liệu được cung cấp công khai trong BigQuery để dự đoán khả năng thanh toán bằng thẻ tín dụng không thành công.
Bước 1: Tạo tập dữ liệu BigQuery trong dự án của bạn
Để huấn luyện một mô hình trong BigQuery ML, bạn cần tạo một tập dữ liệu trong dự án của mình để lưu trữ mô hình này. Nhấp vào dự án của bạn trong thanh trình đơn bên trái, rồi chọn Create Dataset (Tạo tập dữ liệu):
Trong trường Mã tập dữ liệu, hãy nhập cc_default
. Giữ nguyên các trường còn lại, rồi nhấp vào Tạo tập dữ liệu.
Bước 2: Chạy truy vấn TẠO MÔ HÌNH
Trong Trình chỉnh sửa truy vấn của BigQuery, hãy chạy truy vấn CREATE MODEL
sau để tạo và huấn luyện một mô hình máy học BigQuery trên tập dữ liệu công khai mà chúng tôi sẽ sử dụng. Hãy nhớ thay thế your-project
bằng tên của dự án trên Cloud:
CREATE OR REPLACE MODEL
`your-project.cc_default.logistic_model` OPTIONS(model_type='LOGISTIC_REG',
input_label_cols=['default_payment_next_month']) AS
SELECT
limit_balance,
sex,
education_level,
marital_status,
age,
pay_0,
pay_2,
pay_3,
pay_4,
pay_5,
pay_6,
bill_amt_1,
bill_amt_2,
bill_amt_3,
bill_amt_4,
bill_amt_5,
bill_amt_6,
pay_amt_1,
pay_amt_2,
pay_amt_3,
pay_amt_4,
pay_amt_5,
pay_amt_6,
default_payment_next_month
FROM
`bigquery-public-data.ml_datasets.credit_card_default`
Thao tác này sẽ tạo một mô hình hồi quy logistic cho ra một giá trị số trong khoảng từ 0 đến 1, cho biết mất khoảng một phút để chạy. Khi quá trình hoàn tất, bạn sẽ thấy mô hình này trong tập dữ liệu của mình:
Bạn có thể nhấp vào mô hình đó để xem các chỉ số huấn luyện và đánh giá của mô hình đó.
5. Xuất mô hình học máy BigQuery
Với mô hình BQML đã qua huấn luyện, chúng ta có thể sử dụng cú pháp SQL BQML để nhận thông tin dự đoán hoặc có thể xuất mô hình để triển khai ở nơi khác. Ở đây, chúng ta sẽ xuất mô hình để có thể triển khai cho Vertex AI nhằm phân phát mô hình trên quy mô lớn và nhận thông tin dự đoán.
Bước 1: Tạo một bộ chứa trong Cloud Storage cho mô hình
Trong thông tin chi tiết về mô hình, hãy nhấp vào Xuất mô hình:
Thao tác này sẽ nhắc bạn nhập vị trí Google Cloud Storage (GCS) mà bạn muốn xuất thành phần của mô hình. Nếu bạn chưa có bộ chứa GCS, đừng lo lắng! Chúng tôi sắp tạo một tài khoản. Trước tiên, hãy nhấp vào Duyệt qua:
Sau đó, hãy nhấp vào biểu tượng dấu + để tạo một bộ chứa mới:
Đặt một tên duy nhất cho bộ chứa lưu trữ (Tên bộ chứa lưu trữ phải là tên duy nhất trên toàn hệ thống). Nhấp vào Tiếp tục. Trong bước tiếp theo, trong mục Loại vị trí, hãy chọn Khu vực rồi chọn bất kỳ khu vực nào từ trình đơn thả xuống:
Sử dụng lớp bộ nhớ mặc định và nhớ chọn Đồng nhất trong phần kiểm soát quyền truy cập:
Nhấp vào tiếp tục và sử dụng các giá trị mặc định cho các lựa chọn còn lại. Sau đó, hãy nhấp vào nút Tạo.
Bước 2: Xuất mô hình BQML
Khi bộ chứa mới được tạo, hãy nhập model-assets
(hoặc bất kỳ nội dung nào bạn muốn) vào trường Tên rồi nhấp vào Chọn:
Sau đó, nhấp vào Xuất. Thao tác này sẽ tạo một công việc trong BigQuery để xuất mô hình của bạn ở định dạng SavedModel của TensorFlow sang bộ chứa GCS mới tạo mà bạn đã chỉ định. Quá trình xuất sẽ mất khoảng một phút.
Khi mô hình của bạn đang được xuất, hãy chuyển đến phần Bộ nhớ trong bảng điều khiển Cloud của bạn. Khi công việc hoàn tất, bạn sẽ thấy các thành phần mô hình của mình được xuất sang bộ chứa mà bạn vừa tạo trong thư mục con model-assets
:
6. Nhập mô hình vào Vertex AI
Ở bước này, chúng ta sẽ tham chiếu đến vị trí lưu trữ trong GCS nơi chúng ta vừa xuất các thành phần mô hình để tạo và nhập mô hình vào Vertex AI.
Bước 1: Nhập mô hình
Trong bảng điều khiển Cloud, hãy chuyển đến phần Mô hình của Vertex AI. Tại đó, hãy chọn Nhập:
Trong bước đầu tiên, hãy đặt tên cho mô hình là predict_default
. Chọn cùng một khu vực nơi bạn đã tạo bộ chứa (us-central1, europe-west4 hoặc asia-east1. Sau đó, hãy nhấp vào Tiếp tục. Trong phần Cài đặt mô hình, hãy giữ lại tuỳ chọn "Nhập cấu phần phần mềm của mô hình vào một vùng chứa tạo sẵn mới" đã chọn.
Trong trình đơn thả xuống Mô hình khung, hãy chọn TensorFlow. Sau đó, chọn 2.3 làm phiên bản khung.
Trong trường vị trí cấu phần phần mềm Mô hình, hãy nhấp vào Duyệt qua, nhấp vào bộ chứa GCS mà bạn vừa tạo rồi nhấp vào thư mục model-asset:
Sau đó, nhấp vào Nhập. Sẽ mất vài phút để nhập mô hình của bạn. Sau khi tạo, bạn sẽ thấy mô hình đó trong phần mô hình của Cloud Console:
7. Triển khai mô hình đến một điểm cuối
Bây giờ, chúng ta đã tải mô hình lên, bước tiếp theo là tạo Điểm cuối trong Vertex. Một tài nguyên mô hình trong Vertex có thể được 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 cho điểm cuối:
Đặt tên cho điểm cuối, chẳng hạn như default_pred_v1
, giữ nguyên chế độ cài đặt phân chia lưu lượng truy cập, sau đó chọn loại máy để triển khai mô hình. Chúng tôi đã sử dụng n1-highcpu-2
ở đây nhưng bạn có thể chọn bất kỳ loại máy nào mình muốn.
Sau đó, hãy chọn Xong rồi nhấp vào Tiếp tục. Giữ nguyên các chế độ cài đặt vị trí đã chọn, sau đó nhấp vào Triển khai. Quá trình triển khai điểm cuối của bạn sẽ mất vài phút. 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 thông tin dự đoán về 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
Dưới đây, chúng tôi sẽ hướng dẫn cách nhận cụm từ gợi ý thông qua API
Bước 1: Nhận thông tin dự đoán về mô hình bằng Vertex AI API
Để cho bạn biết cách nhận thông tin dự đoán về mô hình tại đây, chúng tôi sẽ sử dụng phiên bản Vertex Notebook mà bạn đã tạo ở phần đầu của phòng thí nghiệm này.
Tiếp theo, hãy mở thực thể sổ tay mà bạn đã tạo rồi mở một sổ tay Python 3 trong Trình chạy:
Trong sổ tay của bạn, hãy chạy lệnh sau trong một ô để viết một ví dụ kiểm thử vào tệp JSON có tên default-pred.json
. Chúng tôi sẽ gửi ví dụ này đến mô hình của mình để cung cấp thông tin dự đoán:
%%writefile default-pred.json
{
"instances": [
{"age": 39,
"bill_amt_1": 47174,
"bill_amt_2": 47974,
"bill_amt_3": 48630,
"bill_amt_4": 50803,
"bill_amt_5": 30789,
"bill_amt_6": 15874,
"education_level": "1",
"limit_balance": 50000,
"marital_status": "2",
"pay_0": 0,
"pay_2":0,
"pay_3": 0,
"pay_4": 0,
"pay_5": "0",
"pay_6": "0",
"pay_amt_1": 1800,
"pay_amt_2": 2000,
"pay_amt_3": 3000,
"pay_amt_4": 2000,
"pay_amt_5": 2000,
"pay_amt_6": 2000,
"sex": "1"}
]
}
Tiếp theo, trong giao diện người dùng Vertex, nhấp vào Sample Request (Yêu cầu mẫu) cho điểm cuối bạn vừa triển khai:
Sao chép mã ở Bước 4 trên thẻ REST vào sổ tay rồi chạy ô:
Sau đó, hãy thêm một biến cho khu vực mà bạn đã tạo bộ chứa và mô hình của mình. Thay thế your-region
trong chuỗi bên dưới:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
Cuối cùng, hãy gửi yêu cầu dự đoán đến điểm cuối của bạn bằng curl
bằng cách sao chép mã sau vào sổ tay:
!curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-prediction-aiplatform.googleapis.com/v1alpha1/projects/$PROJECT_ID/locations/$REGION/endpoints/$ENDPOINT_ID:predict \
-d "@default-pred.json"
Bạn sẽ thấy như sau (các giá trị dự đoán chính xác sẽ khác nhau một chút):
{
"predictions": [
{
"default_payment_next_month_values": [
"1",
"0"
],
"default_payment_next_month_probs": [
0.180815295299778,
0.819184704700222
],
"predicted_default_payment_next_month": [
"0"
]
}
],
"deployedModelId": "your-model-id"
}
Các giá trị trong default_payment_next_month_probs
cho thấy xác suất của mỗi lớp. Trong ví dụ này, mô hình của chúng tôi dự đoán có 81% khả năng người này không phải trả nợ mặc định trong lần thanh toán tiếp theo. Giá trị .819
tương ứng với lớp 0
(không phải lớp mặc định).
🎉 Xin chúc mừng! 🎉
Bạn đã tìm hiểu cách:
- Huấn luyện người mẫu trong BQML
- Xuất mô hình BQML sang Cloud Storage
- Nhập mô hình BQML vào Vertex AI để dự đoán
- Tạo mô hình Vertex AI và 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 đã triển khai thông qua Vertex Notebooks và curl
Để tìm hiểu thêm về các phần của Vertex AI, hãy xem tài liệu này.
9. Dọn dẹp
Nếu muốn tiếp tục sử dụng sổ tay mà bạn đã tạo trong phòng thí nghiệm 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 của Sổ tay trong Cloud Console, hãy chọn sổ tay đó rồi chọn Dừng:
Nếu muốn xoá hoàn toàn sổ tay, bạn chỉ cần nhấp vào nút Xoá ở trên cùng bên phải.
Để xoá điểm cuối bạn đã triển khai, hãy chuyển đến phần Điểm cuối trong bảng điều khiển Vertex AI rồi nhấp vào biểu tượng xoá:
Để xoá Bộ chứa Storage, hãy sử dụng trình đơn Điều hướng trong Cloud Console, duyệt đến Bộ nhớ, chọn bộ chứa rồi nhấp vào Xoá: