Vertex AI:Sử dụng các quy trình dự đoán tuỳ chỉnh với Sklearn để xử lý trước và sau xử lý dữ liệu cho thông tin dự đoán

1. Giới thiệu

Trong phòng thí nghiệm này, bạn sẽ tìm hiểu cách sử dụng các quy trình dự đoán tuỳ chỉnh trên Vertex AI để viết logic xử lý trước và hậu xử lý tuỳ chỉnh. Mặc dù mẫu này sử dụng tính năng Scikit-learn, nhưng các quy trình dự đoán tuỳ chỉnh có thể hoạt động với các khung máy học Python khác như XGTăng, PyTorch và TensorFlow.

Kiến thức bạn sẽ học được

  • Viết logic dự đoán tuỳ chỉnh bằng các quy trình dự đoán tuỳ chỉnh
  • Thử nghiệm vùng chứa phân phát tuỳ chỉnh và mô hình cục bộ
  • Kiểm thử vùng chứa phân phát tuỳ chỉnh trên Vertex AI Predictions

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.

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 Dự đoán và Workbench.

440e66b5fde4cee7.pngs

3. Tổng quan về trường hợp sử dụng

Trong phòng thí nghiệm này, bạn sẽ xây dựng một mô hình hồi quy khu rừng ngẫu nhiên để dự đoán giá của một viên kim cương dựa trên các thuộc tính như vết cắt, độ trong và kích thước.

Bạn sẽ viết logic xử lý trước tuỳ chỉnh để kiểm tra nhằm đảm bảo dữ liệu tại thời điểm phân phát có định dạng mà mô hình dự kiến. Bạn cũng sẽ viết logic xử lý bài đăng tuỳ chỉnh để làm tròn các dự đoán và chuyển đổi chúng thành các chuỗi. Để viết logic này, bạn sẽ sử dụng các quy trình dự đoán tùy chỉnh.

Giới thiệu về quy trình dự đoán tuỳ chỉnh

Các vùng chứa tích hợp sẵn Vertex AI xử lý các yêu cầu dự đoán bằng cách thực hiện thao tác dự đoán của khung học máy. Trước các quy trình dự đoán tuỳ chỉnh, nếu muốn xử lý trước dữ liệu đầu vào trước khi thực hiện dự đoán hoặc hậu xử lý dự đoán của mô hình trước khi trả về kết quả, bạn cần xây dựng một vùng chứa tuỳ chỉnh.

Để xây dựng một vùng chứa phân phát tuỳ chỉnh, bạn phải viết một máy chủ HTTP bao bọc mô hình đã huấn luyện, chuyển yêu cầu HTTP thành dữ liệu đầu vào của mô hình và chuyển dữ liệu đầu ra của mô hình thành phản hồi.

Với các quy trình dự đoán tuỳ chỉnh, Vertex AI cung cấp cho bạn các thành phần liên quan đến hoạt động phân phát để bạn có thể tập trung vào mô hình và các hoạt động chuyển đổi dữ liệu của mình.

Sản phẩm bạn sẽ tạo ra

Bạn sẽ thiết lập một mạng đám mây riêng ảo (VPC) có tên là Aiml-vpc. Mạng này bao gồm một mạng con trên bàn làm việc. Mạng này dùng để triển khai sổ tay do người dùng quản lý và truy cập vào thông tin dự đoán trực tuyến cũng như điểm cuối của mô hình được triển khai trong us-central1 được minh hoạ trong hình 1 bên dưới.

                                                                            Figure1

6ce21c7fdae12b4f.pngS

4. Bật API hướng dẫn

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 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 Artifact Registry API

Chuyển đến Artifact Registry và chọn Bật nếu bạn chưa bật. Bạn sẽ dùng tên này để tạo một vùng chứa phân phát tuỳ chỉnh.

Bước 3: 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 4: Tạo một thực thể Vertex AI Workbench

Bật Notebooks API nếu chưa bật.

5. Tạo Đích-vpc

Hướng dẫn này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.

Bên trong Cloud Shell, hãy thực hiện như sau:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid

Tạo intentl-vpc

Bên trong Cloud Shell, hãy thực hiện như sau:

gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom

Tạo mạng con cho sổ tay do người dùng quản lý

Bên trong Cloud Shell, hãy tạo mạng con Workbench.

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

Cấu hình Cloud Router và NAT

Cloud NAT được dùng trong hướng dẫn để tải các gói phần mềm xuống vì sổ tay do người dùng quản lý không có địa chỉ IP bên ngoài. Cloud NAT cung cấp chức năng NAT đầu ra, nghĩa là các máy chủ Internet không được phép bắt đầu giao tiếp với sổ tay do người dùng quản lý, nhờ đó tăng cường bảo mật cho sổ tay đó.

Bên trong Cloud Shell, hãy tạo bộ định tuyến đám mây theo khu vực, us-central1.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Bên trong Cloud Shell, hãy tạo cổng vào đám mây theo khu vực, us-central1.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

6. Tạo sổ tay do người dùng quản lý

Tạo tài khoản dịch vụ do người dùng quản lý (Sổ tay)

Trong phần sau, bạn sẽ tạo một tài khoản dịch vụ do người dùng quản lý. Tài khoản này sẽ liên kết với Vertex Workbench (Sổ tay) mà bạn dùng trong phần hướng dẫn.

Trong hướng dẫn, các quy tắc sau sẽ áp dụng cho tài khoản dịch vụ:

Bên trong Cloud Shell, hãy tạo tài khoản dịch vụ.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với vai trò Quản trị viên bộ nhớ.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với vai trò Người dùng Vertex AI.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với vai trò Quản trị viên Artifact Registry.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

Trong Cloud Shell, hãy liệt kê tài khoản dịch vụ và ghi lại địa chỉ email sẽ được dùng khi tạo sổ tay do người dùng quản lý.

gcloud iam service-accounts list

Tạo Sổ tay do người dùng quản lý

Trong phần sau, hãy tạo một sổ tay do người dùng quản lý kết hợp tài khoản dịch vụ đã tạo trước đó, sổ tay do người dùng quản lý.

Bên trong Cloud Shell, hãy tạo thực thể máy khách riêng tư.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --shielded-secure-boot \
      --subnet-region=us-central1 \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

7. Viết mã huấn luyện

Bước 1: Tạo bộ chứa lưu trữ trên đám mây

Bạn sẽ lưu trữ mô hình và các cấu phần phần mềm xử lý trước vào một bộ chứa Cloud Storage. Nếu muốn dùng một bộ chứa trong dự án, bạn có thể bỏ qua bước này.

Từ trình chạy, hãy mở một phiên đầu cuối mới.

84a53a5b528f2507.pngS

Trên dòng lệnh, hãy chạy lệnh sau để xác định một biến env cho dự án của bạn, nhớ thay thế dự án-trên đám mây bằng mã dự án của bạn:

PROJECT_ID='your-cloud-project'

Tiếp theo, chạy dòng sau trong dòng lệnh để tạo một bộ chứa mới trong dự án của bạn.

BUCKET="gs://${PROJECT_ID}-cpr-bucket"
gsutil mb -l us-central1 $BUCKET

Bước 2: Đào tạo mô hình

Từ cửa sổ dòng lệnh, hãy tạo một thư mục mới có tên cpr-codelab và cd vào thư mục đó.

mkdir cpr-codelab
cd cpr-codelab

Trong trình duyệt tệp, hãy chuyển đến thư mục cpr-codelab mới rồi dùng trình chạy để tạo một sổ tay Python 3 mới có tên là task.ipynb.

f230930e0b79650c.png

Bây giờ, thư mục cpr-codelab của bạn sẽ có dạng như sau:

+ cpr-codelab/
    + task.ipynb

Trong sổ tay, hãy dán mã sau vào sổ tay.

Trước tiên, hãy viết một tệp yêu cầu.

%%writefile requirements.txt
fastapi
uvicorn==0.17.6
joblib~=1.1.1
numpy>=1.17.3, <1.24.0
scikit-learn~=1.0.0
pandas
google-cloud-storage>=2.2.1,<3.0.0dev
google-cloud-aiplatform[prediction]>=1.18.2

Mô hình mà bạn triển khai sẽ có một bộ phần phụ thuộc khác được cài đặt sẵn so với môi trường sổ tay của bạn. Do đó, bạn nên liệt kê tất cả phần phụ thuộc cho mô hình trong policies.txt rồi sử dụng pip để cài đặt chính xác các phần phụ thuộc tương tự trong sổ tay. Sau đó, bạn sẽ kiểm thử cục bộ mô hình này trước khi triển khai cho Vertex AI để kiểm tra kỹ xem các môi trường có khớp với nhau hay không.

Pip cài đặt các phần phụ thuộc trong sổ tay.

!pip install -U --user -r requirements.txt

Lưu ý rằng bạn cần khởi động lại nhân sau khi quá trình cài đặt pip hoàn tất.

Tiếp theo, hãy tạo các thư mục để lưu trữ mô hình và các cấu phần phần mềm xử lý trước.

USER_SRC_DIR = "src_dir"
!mkdir $USER_SRC_DIR
!mkdir model_artifacts

# copy the requirements to the source dir
!cp requirements.txt $USER_SRC_DIR/requirements.txt

Bây giờ, thư mục cpr-codelab của bạn sẽ có dạng như sau:

+ cpr-codelab/
    + model_artifacts/
    + scr_dir/
        + requirements.txt
    + task.ipynb
    + requirements.txt

Giờ đây, cấu trúc thư mục đã được thiết lập, đã đến lúc huấn luyện mô hình!

Trước tiên, hãy nhập các thư viện.

import seaborn as sns
import numpy as np
import pandas as pd

from sklearn import preprocessing
from sklearn.ensemble import RandomForestRegressor
from sklearn.pipeline import make_pipeline
from sklearn.compose import make_column_transformer

import joblib
import logging

# set logging to see the docker container logs
logging.basicConfig(level=logging.INFO)

Sau đó, xác định các biến sau. Hãy nhớ thay thế PROJECT_ID bằng id dự án và BUCKET_NAME bằng bộ chứa mà bạn đã tạo ở bước trước.

REGION = "us-central1"
MODEL_ARTIFACT_DIR = "sklearn-model-artifacts"
REPOSITORY = "diamonds"
IMAGE = "sklearn-image"
MODEL_DISPLAY_NAME = "diamonds-cpr"

# Replace with your project
PROJECT_ID = "{PROJECT_ID}"

# Replace with your bucket
BUCKET_NAME = "gs://{BUCKET_NAME}"

Tải dữ liệu từ thư viện Seaborn rồi tạo hai khung dữ liệu, một khung có các tính năng và khung còn lại có nhãn.

data = sns.load_dataset('diamonds', cache=True, data_home=None)

label = 'price'

y_train = data['price']
x_train = data.drop(columns=['price'])

Hãy cùng xem dữ liệu huấn luyện. Bạn có thể thấy rằng mỗi hàng đại diện cho một hình thoi.

x_train.head()

Và các nhãn, giá tương ứng.

y_train.head()

Bây giờ, hãy xác định biến đổi cột sklearn thành một mã hoá nóng cho các tính năng phân loại và điều chỉnh tỷ lệ các tính năng dạng số

column_transform = make_column_transformer(
    (preprocessing.OneHotEncoder(sparse=False), [1,2,3]),
    (preprocessing.StandardScaler(), [0,4,5,6,7,8]))

Xác định mô hình rừng ngẫu nhiên

regr = RandomForestRegressor(max_depth=10, random_state=0)

Tiếp theo, hãy tạo quy trình sklearn. Điều này có nghĩa là dữ liệu được cấp đến quy trình này trước tiên sẽ được mã hoá/điều chỉnh theo tỷ lệ và sau đó được truyền đến mô hình.

my_pipeline = make_pipeline(column_transform, regr)

Điều chỉnh quy trình cho phù hợp với dữ liệu huấn luyện

my_pipeline.fit(x_train, y_train)

Hãy thử mô hình để đảm bảo mô hình hoạt động như mong đợi. Gọi phương thức dự đoán trên mô hình, truyền vào một mẫu kiểm thử.

my_pipeline.predict([[0.23, 'Ideal', 'E', 'SI2', 61.5, 55.0, 3.95, 3.98, 2.43]])

Bây giờ, chúng ta có thể lưu quy trình vào thư mục model_artifacts và sao chép nó vào bộ chứa Cloud Storage

joblib.dump(my_pipeline, 'model_artifacts/model.joblib')

!gsutil cp model_artifacts/model.joblib {BUCKET_NAME}/{MODEL_ARTIFACT_DIR}/

Bước 3: Lưu cấu phần phần mềm xử lý trước

Tiếp theo, bạn sẽ tạo một cấu phần phần mềm xử lý trước. Cấu phần phần mềm này sẽ được tải trong vùng chứa tuỳ chỉnh khi máy chủ mô hình khởi động. Cấu phần phần mềm xử lý trước của bạn có thể ở hầu hết mọi dạng (chẳng hạn như tệp pickle), nhưng trong trường hợp này, bạn sẽ ghi từ điển cho tệp JSON.

clarity_dict={"Flawless": "FL",
              "Internally Flawless": "IF",
              "Very Very Slightly Included": "VVS1",
              "Very Slightly Included": "VS2",
              "Slightly Included": "S12",
              "Included": "I3"}

Tính năng làm rõ trong dữ liệu huấn luyện của chúng tôi luôn ở dạng viết tắt (tức là "FL" thay vì "Flawless"). Tại thời điểm phân phát, chúng tôi muốn kiểm tra xem dữ liệu cho tính năng này có được viết tắt hay không. Điều này là do mô hình của chúng tôi biết cách mã hoá nóng "FL" nhưng không phải là "Flawless". Bạn sẽ viết logic xử lý trước tùy chỉnh này vào lúc khác. Nhưng hiện tại, bạn chỉ cần lưu bảng tra cứu này vào một tệp json rồi ghi tệp đó vào bộ chứa Cloud Storage.

import json
with open("model_artifacts/preprocessor.json", "w") as f:
    json.dump(clarity_dict, f)

!gsutil cp model_artifacts/preprocessor.json {BUCKET_NAME}/{MODEL_ARTIFACT_DIR}/

Bây giờ, thư mục cpr-codelab cục bộ của bạn sẽ có dạng như sau:

+ cpr-codelab/
    + model_artifacts/
        + model.joblib
        + preprocessor.json
    + scr_dir/
        + requirements.txt
    + task.ipynb
    + requirements.txt

8. Tạo vùng chứa phân phát tuỳ chỉnh bằng máy chủ mô hình CPR

Giờ đây, khi mô hình đã được huấn luyện và lưu cấu phần phần mềm xử lý trước cũng như đã đến lúc tạo vùng chứa phân phát tuỳ chỉnh. Thông thường, việc xây dựng một vùng chứa phân phát yêu cầu phải viết mã máy chủ mô hình. Tuy nhiên, với các quy trình dự đoán tuỳ chỉnh, Vertex AI Predictions sẽ tạo một máy chủ mô hình và xây dựng một hình ảnh vùng chứa tuỳ chỉnh cho bạn.

Một vùng chứa phân phát tuỳ chỉnh chứa 3 đoạn mã sau:

  1. Máy chủ mô hình (máy chủ này sẽ được SDK tạo tự động và được lưu trữ trong scr_dir/)
  • Máy chủ HTTP lưu trữ mô hình
  • Chịu trách nhiệm thiết lập tuyến đường/cảng, v.v.
  1. Trình xử lý yêu cầu
  • Chịu trách nhiệm về các khía cạnh của máy chủ web trong quá trình xử lý yêu cầu, chẳng hạn như giải tuần tự nội dung yêu cầu, chuyển đổi tuần tự nội dung phản hồi, đặt tiêu đề phản hồi, v.v.
  • Trong ví dụ này, bạn sẽ sử dụng Trình xử lý mặc định, google.cloud.aiplatform.expectedion.handler.ForecastionHandler có trong SDK.
  1. Bộ dự đoán
  • Chịu trách nhiệm về logic ML để xử lý yêu cầu dự đoán.

Bạn có thể tuỳ chỉnh từng thành phần trong số này dựa trên các yêu cầu của trường hợp sử dụng. Trong ví dụ này, bạn sẽ chỉ triển khai công cụ dự đoán.

Công cụ dự đoán chịu trách nhiệm về logic ML trong việc xử lý yêu cầu dự đoán, chẳng hạn như xử lý trước và hậu xử lý tuỳ chỉnh. Để viết logic dự đoán tuỳ chỉnh, bạn sẽ tạo lớp con cho giao diện Vertex AI Predictionor.

Bản phát hành này của các quy trình dự đoán tuỳ chỉnh đi kèm với các công cụ dự đoán XGTăng và Sklearn có thể tái sử dụng, nhưng nếu cần sử dụng một khung khác, bạn có thể tạo khung của riêng mình bằng cách phân lớp con công cụ dự đoán cơ sở.

Bạn có thể xem một ví dụ về công cụ dự đoán Sklearn ở bên dưới. Đây là tất cả mã bạn cần viết để xây dựng máy chủ mô hình tuỳ chỉnh này.

262df1246b28657e.pngS

Trong sổ tay của bạn, hãy dán mã dưới đây vào lớp con Sklearn Predictionor và ghi mã đó vào tệp Python trong src_dir/. Lưu ý rằng trong ví dụ này, chúng ta chỉ tuỳ chỉnh phương thức tải, phương thức tiền xử lý và phương thức hậu xử lý chứ không tuỳ chỉnh phương thức dự đoán.

%%writefile $USER_SRC_DIR/predictor.py

import joblib
import numpy as np
import json

from google.cloud import storage
from google.cloud.aiplatform.prediction.sklearn.predictor import SklearnPredictor


class CprPredictor(SklearnPredictor):

    def __init__(self):
        return

    def load(self, artifacts_uri: str) -> None:
        """Loads the sklearn pipeline and preprocessing artifact."""

        super().load(artifacts_uri)

        # open preprocessing artifact
        with open("preprocessor.json", "rb") as f:
            self._preprocessor = json.load(f)


    def preprocess(self, prediction_input: np.ndarray) -> np.ndarray:
        """Performs preprocessing by checking if clarity feature is in abbreviated form."""

        inputs = super().preprocess(prediction_input)

        for sample in inputs:
            if sample[3] not in self._preprocessor.values():
                sample[3] = self._preprocessor[sample[3]]
        return inputs

    def postprocess(self, prediction_results: np.ndarray) -> dict:
        """Performs postprocessing by rounding predictions and converting to str."""

        return {"predictions": [f"${value}" for value in np.round(prediction_results)]}

Hãy cùng tìm hiểu kỹ hơn về từng phương pháp này.

  • Phương thức tải sẽ tải cấu phần phần mềm xử lý trước. Trong trường hợp này là từ điển ánh xạ các giá trị độ rõ của kim cương với chữ viết tắt của chúng.
  • Phương thức tiền xử lý sử dụng cấu phần phần mềm đó để đảm bảo rằng tại thời điểm phân phát, tính năng làm rõ sẽ ở định dạng viết tắt. Nếu không, hệ thống sẽ chuyển đổi chuỗi đầy đủ thành chữ viết tắt.
  • Phương thức hậu xử lý sẽ trả về giá trị được dự đoán dưới dạng một chuỗi có ký hiệu $ và làm tròn giá trị đó.

Tiếp theo, hãy dùng Vertex AI Python SDK để tạo hình ảnh. Bằng cách sử dụng các quy trình dự đoán tuỳ chỉnh, Dockerfile sẽ được tạo và một hình ảnh sẽ được tạo cho bạn.

from google.cloud import aiplatform

aiplatform.init(project=PROJECT_ID, location=REGION)

import os

from google.cloud.aiplatform.prediction import LocalModel

from src_dir.predictor import CprPredictor  # Should be path of variable $USER_SRC_DIR

local_model = LocalModel.build_cpr_model(
    USER_SRC_DIR,
    f"{REGION}-docker.pkg.dev/{PROJECT_ID}/{REPOSITORY}/{IMAGE}",
    predictor=CprPredictor,
    requirements_path=os.path.join(USER_SRC_DIR, "requirements.txt"),
)

Viết một tệp kiểm thử có 2 mẫu để dự đoán. Một trong các trường hợp có tên rõ ràng được viết tắt, nhưng trường hợp còn lại cần được chuyển đổi trước.

import json

sample = {"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

with open('instances.json', 'w') as fp:
    json.dump(sample, fp)

Kiểm thử vùng chứa cục bộ bằng cách triển khai mô hình cục bộ.

with local_model.deploy_to_local_endpoint(
    artifact_uri = 'model_artifacts/', # local path to artifacts
) as local_endpoint:
    predict_response = local_endpoint.predict(
        request_file='instances.json',
        headers={"Content-Type": "application/json"},
    )

    health_check_response = local_endpoint.run_health_check()

Bạn có thể xem kết quả dự đoán bằng:

predict_response.content

9. Triển khai mô hình cho Vertex AI

Giờ đây, khi bạn đã kiểm thử vùng chứa trên thiết bị, đã đến lúc đẩy hình ảnh lên Artifact Registry và tải mô hình lên Vertex AI Model Registry.

Đầu tiên, hãy định cấu hình Docker để truy cập Artifact Registry.

!gcloud artifacts repositories create {REPOSITORY} --repository-format=docker \
--location=us-central1 --description="Docker repository"

!gcloud auth configure-docker {REGION}-docker.pkg.dev --quiet

Sau đó, đẩy hình ảnh.

local_model.push_image()

Và tải mô hình lên.

model = aiplatform.Model.upload(local_model = local_model,
                                display_name=MODEL_DISPLAY_NAME,
                                artifact_uri=f"{BUCKET_NAME}/{MODEL_ARTIFACT_DIR}",)

Sau khi tải mô hình lên, bạn sẽ thấy mô hình đó trong bảng điều khiển:

Tiếp theo, hãy triển khai mô hình này để có thể sử dụng cho các cụm từ gợi ý trực tuyến. Quy trình dự đoán tuỳ chỉnh cũng hoạt động với tính năng dự đoán theo lô, vì vậy, nếu trường hợp sử dụng của bạn không yêu cầu dự đoán trực tuyến thì bạn không cần triển khai mô hình.

Sau đó, đẩy hình ảnh.

endpoint = model.deploy(machine_type="n1-standard-2")

Cuối cùng, hãy kiểm thử mô hình đã triển khai bằng cách nhận thông tin dự đoán.

endpoint.predict(instances=[[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43]])

🎉 Xin chúc mừng! 🎉

Bạn đã tìm hiểu cách sử dụng Vertex AI để:

  • Viết logic tiền xử lý tuỳ chỉnh và logic hậu xử lý bằng các quy trình dự đoán tuỳ chỉnh

Cosmopup cho rằng lớp học lập trình thật tuyệt vời!!

e6d3675ca7c6911f.jpeg

Tiếp theo là gì?

Tài liệu đọc thêm & Video

Tài liệu tham khảo