Vertex AI: Xuất và triển khai Mô hình học máy của BigQuery để dự đoán

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.

Tổng quan về sản phẩm Vertex

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.

Trang tổng quan Vertex AI

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:

Trình đơn Vertex AI

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:

Thực thể TFE

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:

Mở Sổ tay CAIP

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

Tạo tập dữ liệu BQ

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:

Chi tiết mô hình BQML

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:

Xuất mô hình BQML

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:

Duyệt qua các bộ chứa GCS

Sau đó, hãy nhấp vào biểu tượng dấu + để tạo một bộ chứa mới:

Bộ chứa GCS 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:

Vị trí bộ chứa

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:

Cơ chế kiểm soát quyền truy cập thống nhất

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:

Đường dẫn xuất mô hình

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:

Các thành phần mô hình đã xuất

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:

Nhập mô hình

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:

Đường dẫn đến thành phần mô hình

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:

Mục Mẫu sản phẩm

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:

Triển khai và thử nghiệm

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

Điểm cuối đã triển khai

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:

Mở sổ tay

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:

Yêu cầu mẫu

Sao chép mã ở Bước 4 trên thẻ REST vào sổ tay rồi chạy ô:

Yêu cầu biến

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:

Dừng thực thể

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á điểm cuối

Để 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á:

Xoá bộ nhớ