Vertex AI:استخدِم سلاسل إجراءات التوقّع المخصّصة مع Sklearn لمعالجة بيانات العملية مسبقًا ونشرها للحصول على التوقّعات.

1. مقدمة

في هذا الدرس التطبيقي، ستتعلّم كيفية استخدام سلاسل إجراءات التوقّع المخصّصة على Vertex AI لكتابة منطق مخصّص للمعالجة المسبقة وما بعد المعالجة. على الرغم من أنّ هذا النموذج يستخدم مكتبة ساي كيت ليرن، يمكن أن تعمل روتين التوقع المخصص مع أُطر عمل تعلُّم الآلة الأخرى في لغة بايثون مثل XGBoost وPyTorch وTensorFlow.

المعلومات التي ستطّلع عليها

  • كتابة منطق توقّع مخصّص باستخدام سلاسل إجراءات التوقّع المخصّصة
  • اختبار حاوية العرض المخصّص والنموذج على الجهاز
  • اختبار حاوية العرض المخصّصة على توقعات Vertex AI

2. مقدّمة عن Vertex AI

يستخدم هذا البرنامج أحدث منتجات الذكاء الاصطناعي المتوفّرة على Google Cloud. تدمج Vertex AI حلول تعلُّم الآلة في Google Cloud ضمن تجربة تطوير سلسة. في السابق، كان الوصول إلى النماذج المدرَّبة باستخدام AutoML والنماذج المخصّصة ممكنًا من خلال خدمات منفصلة. ويدمج العرض الجديد كلاً من واجهة برمجة تطبيقات واحدة مع منتجات جديدة أخرى. يمكنك أيضًا نقل المشاريع الحالية إلى Vertex AI.

يتضمّن Vertex AI العديد من المنتجات المختلفة لدعم سير العمل الشامل لتعلُّم الآلة. سيركّز هذا التمرين المعملي على التوقّعات ومنصة العمل.

440e66b5fde4cee7.png

3- نظرة عامة على حالة الاستخدام

سوف تنشئ في هذا التمرين المعملي نموذج انحدار عشوائي للغابات للتنبؤ بسعر المعين بناءً على سمات مثل القطْع والوضوح والحجم.

ستكتب منطق المعالجة المسبقة المخصص للتحقق من أن البيانات في وقت العرض هي بالتنسيق الذي يتوقعه النموذج. ستكتب أيضًا منطق معالجة منشور مخصص لتقريب التوقعات وتحويلها إلى سلاسل. لكتابة هذا المنطق، ستستخدم سلاسل إجراءات التوقع المخصصة.

مقدّمة عن سلاسل إجراءات التوقّع المخصّصة

تتعامل حاويات Vertex AI المنشأة مسبقًا مع طلبات التوقّع من خلال تنفيذ عملية توقّع إطار عمل تعلُّم الآلة. قبل تنفيذ الإجراءات الروتينية المخصَّصة للتوقّعات، إذا أردت معالجة الإدخال مسبقًا قبل تنفيذ التوقّع، أو ما بعد معالجة توقّع النموذج قبل عرض النتيجة، ستحتاج إلى إنشاء حاوية مخصّصة.

يتطلب إنشاء حاوية عرض مخصّصة كتابة خادم HTTP يلتف النموذج المدرَّب، ويترجم طلبات HTTP إلى مدخلات النماذج، ويحول مخرجات النموذج إلى استجابات.

من خلال سلاسل الإجراءات المخصّصة للتوقّعات، يوفّر لك Vertex AI المكوّنات المتعلّقة بالعرض، حتى تتمكّن من التركيز على عمليات تحويل النموذج والبيانات.

ما الذي ستنشئه

ستقوم بإعداد شبكة VPC تسمى Manyl-vpc والتي تتكون من شبكة فرعية للوحة العمل تُستخدم لنشر دفتر ملاحظات يديره المستخدم والوصول إلى التنبؤ عبر الإنترنت ونقطة نهاية النموذج المنشورة في us-central1 الموضح في الشكل 1 أدناه.

                                                                            Figure1

6ce21c7fdae12b4f.png

4. تفعيل واجهات برمجة التطبيقات للدليل التوجيهي

الخطوة 1: تفعيل Compute Engine API

انتقِل إلى Compute Engine واختَر "تفعيل" إذا لم يسبق لك تفعيله. ستحتاج إلى هذا لإنشاء مثيل دفتر الملاحظات.

الخطوة 2: تفعيل واجهة برمجة تطبيقات Artifact Registry

انتقِل إلى Artifact Registry واختَر "تفعيل" إذا لم يسبق لك إجراء ذلك. ستستخدم هذه الواجهة لإنشاء حاوية عرض مخصّصة.

الخطوة 3: تفعيل Vertex AI API

انتقِل إلى قسم Vertex AI في Cloud Console وانقر على Enable Vertex AI API.

الخطوة 4: إنشاء مثيل Vertex AI Workbench

فعِّل AP APK إذا لم يسبق لك تفعيلها.

5- إنشاء vpc

يستخدم هذا البرنامج التعليمي $variables للمساعدة في تنفيذ تهيئة gcloud في Cloud Shell.

داخل Cloud Shell، يمكنك تنفيذ ما يلي:

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

إنشاء ملف intentl-vpc

داخل Cloud Shell، يمكنك تنفيذ ما يلي:

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

إنشاء شبكة فرعية لورقة الملاحظات التي يديرها المستخدم

داخل Cloud Shell، أنشئ الشبكة الفرعية لطاولة العمل.

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

ضبط Cloud Router وNAT

يتم استخدام ترجمة عنوان الشبكة في السحابة الإلكترونية في البرنامج التعليمي لتنزيل حزم البرامج لأن ورقة الملاحظات التي يديرها المستخدم لا تحتوي على عنوان IP خارجي. وتوفِّر ترجمة عنوان الشبكة في السحابة الإلكترونية إمكانات ترجمة عنوان الشبكة (NAT)، ما يعني أنّه لا يُسمح لمضيفي الإنترنت ببدء الاتصال بدفتر ملاحظات يديره المستخدم، ما يجعله أكثر أمانًا.

من داخل Cloud Shell، أنشئ جهاز توجيه سحابي إقليميًا، us-central1.

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

من داخل Cloud Shell، أنشئ بوابة nat الإقليمية للسحابة الإلكترونية، 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- إنشاء ورقة ملاحظات يديرها المستخدم

إنشاء حساب خدمة يديره المستخدم (دفتر ملاحظات)

في القسم التالي، ستقوم بإنشاء حساب خدمة يديرها المستخدم وسيتم ربطه بـ Vertex Workbench (دفتر الملاحظات) المستخدم في البرنامج التعليمي.

في الدليل التعليمي، سيتم تطبيق القواعد التالية على حساب الخدمة:

داخل Cloud Shell، أنشئ حساب الخدمة.

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

داخل Cloud Shell، عدِّل حساب الخدمة الذي يحمل دور "مشرف مساحة التخزين".

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

داخل Cloud Shell، عدِّل حساب الخدمة باستخدام الدور "مستخدم Vertex AI".

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

داخل Cloud Shell، عدِّل حساب الخدمة باستخدام الدور "مشرف سجلّ Artifact".

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

داخل Cloud Shell، أدرِج حساب الخدمة ودوِّن عنوان البريد الإلكتروني الذي سيتم استخدامه عند إنشاء ورقة الملاحظات التي يديرها المستخدم.

gcloud iam service-accounts list

إنشاء ورقة ملاحظات يديرها المستخدم

في القسم التالي، أنشِئ ورقة ملاحظات مُدارة بواسطة المستخدم تتضمّن حساب الخدمة الذي تم إنشاؤه سابقًا، user-managed-notebook-sa.

يُنشئ داخل Cloud Shell مثيل العميل الخاص.

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. كتابة رمز التدريب

الخطوة 1: إنشاء حزمة في السحابة الإلكترونية

سيتم تخزين النموذج والعناصر التي تتم معالجتها مسبقًا في حزمة على Cloud Storage. إذا كانت لديك حزمة في مشروعك تريد استخدامها، يمكنك تخطّي هذه الخطوة.

من مشغّل التطبيقات، افتح جلسة طرفية جديدة.

84a53a5b528f2507.png

من الوحدة الطرفية، شغِّل ما يلي لتحديد متغيّر env لمشروعك، مع الحرص على استبدال your-cloud-project بمعرّف مشروعك:

PROJECT_ID='your-cloud-project'

بعد ذلك، نفِّذ ما يلي في Terminal لإنشاء حزمة جديدة في مشروعك.

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

الخطوة 2: نموذج القطار

من الوحدة الطرفية، أنشِئ دليلاً جديدًا باسم cpr-codelab وأضِفه إليه.

mkdir cpr-codelab
cd cpr-codelab

في متصفّح الملفات، انتقِل إلى دليل cpr-codelab الجديد، ثم استخدِم المشغّل لإنشاء دفتر ملاحظات Python 3 جديد باسم task.ipynb.

f230930e0b79650c.png

من المفترض أن يظهر دليل cpr-codelab الآن على النحو التالي:

+ cpr-codelab/
    + task.ipynb

في دفتر الملاحظات، الصق التعليمة البرمجية التالية.

أولاً، اكتب ملفrequirements.txt.

%%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

سيكون للنموذج الذي تنشره مجموعة من الموارد الاعتمادية المثبَّتة مسبقًا عن بيئة ورقة الملاحظات. لهذا السبب، سترغب في سرد جميع التبعيات للنموذج فيrequirements.txt ثم استخدام pip لتثبيت نفس التبعيات بالضبط في دفتر الملاحظات. لاحقًا، ستختبر النموذج محليًا قبل نشره على Vertex AI للتأكّد من تطابُق البيئات.

يقوم Pip بتثبيت التبعيات في دفتر الملاحظات.

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

يُرجى العِلم أنّه عليك إعادة تشغيل النواة بعد اكتمال عملية التثبيت في وضع pip.

بعد ذلك، أنشِئ الأدلة التي ستخزن فيها النموذج وعناصر المعالجة المسبقة.

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

من المفترض أن يظهر دليل cpr-codelab الآن على النحو التالي:

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

والآن بعد أن تم إعداد هيكل الدليل، حان وقت تدريب أحد النماذج!

أولاً، قم باستيراد المكتبات.

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)

ثم حدِّد المتغيرات التالية. تأكد من استبدال PROJECT_ID برقم تعريف مشروعك وBUCKET_NAME بالحزمة التي أنشأتها في الخطوة السابقة.

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}"

قم بتحميل البيانات من مكتبة سيبورن ثم قم بإنشاء إطاري بيانات، أحدهما بالميزات والآخر بالتسمية.

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

label = 'price'

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

لنلقِ نظرة على بيانات التدريب. يمكنك أن ترى أن كل صف يمثل معينًا.

x_train.head()

والتسميات، وهي الأسعار المتجاوبة.

y_train.head()

والآن، حدِّد تحويل العمود في نظام sklearn إلى تنسيق واحد لترميز الخصائص الفئوية وقياس الخصائص العددية.

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

تحديد نموذج الغابة العشوائي

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

بعد ذلك، أنشئ مسار sklearn. وهذا يعني أنه سيتم أولاً ترميز/تحجيم البيانات التي يتم تغذيةها إلى هذا المسار، ثم تمريرها إلى النموذج.

my_pipeline = make_pipeline(column_transform, regr)

ملاءمة مسار بيانات التدريب

my_pipeline.fit(x_train, y_train)

لنجرب النموذج للتأكد من أنه يعمل كما هو متوقع. استدعِ طريقة التنبؤ على النموذج، واجتذب عينة اختبار.

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

يمكننا الآن حفظ المسار في الحقل model_artifacts dir ونسخه إلى حزمة Cloud Storage.

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

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

الخطوة 3: حفظ عنصر قبل المعالجة

بعد ذلك، ستقوم بإنشاء عنصر ما قبل المعالجة. سيتم تحميل هذا العنصر في الحاوية المخصّصة عند بدء تشغيل خادم النموذج. يمكن أن يكون عنصر المعالجة المسبقة بأي شكل تقريبًا (مثل ملف Pickle)، ولكن في هذه الحالة ستكتب قاموسًا على ملف JSON.

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

كانت ميزة الوضوح في بيانات التدريب الخاصة بنا دائمًا في الشكل المختصَر (أي "FL" بدلاً من "Flooless"). في وقت العرض، نريد التحقّق من اختصار بيانات هذه الميزة أيضًا. وذلك لأنّ نموذجنا يعرف كيف يمكن ترميز "FL" ولكن ليس "خالٍ من الأخطاء". ستكتب هذا المنطق المخصص للمعالجة المسبقة لاحقًا. في الوقت الحالي، ما عليك سوى حفظ جدول البحث هذا في ملف json ثم كتابته في حزمة 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}/

من المفترض أن يظهر دليل cpr-codelab المحلي الآن على النحو التالي:

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

8. إنشاء حاوية عرض مخصّصة باستخدام خادم نموذج CPR

والآن بعد تدريب النموذج وحفظ العناصر التي تمت معالجتها مسبقًا والمعالجة المسبقة لها، حان الوقت لإنشاء حاوية العرض المخصّصة. عادةً ما يتطلب إنشاء حاوية عرض كتابة رمز الخادم النموذجي. مع ذلك، باستخدام سلسلة إجراءات التوقّع المخصّصة، تُنشئ أداة Vertex AI توقّعات نموذج خادمًا وتنشئ صورة حاوية مخصّصة لك.

تحتوي حاوية العرض المخصّصة على الرموز الثلاثة التالية:

  1. خادم النموذج (سيتم إنشاء هذا تلقائيًا بواسطة SDK وتخزينه في scr_dir/)
  • خادم HTTP الذي يستضيف النموذج
  • مسئولة عن إعداد المسارات/المنافذ/وما إلى ذلك.
  1. معالج الطلب
  • مسؤول عن جوانب خادم الويب المتعلقة بالتعامل مع الطلب، مثل إلغاء تسلسل نص الطلب، وتسلسل الرد، وضبط عناوين الاستجابة، وما إلى ذلك
  • في هذا المثال، ستستخدم المعالج الافتراضي google.cloud.aiplatform.prediction.handler.توقعionHandler المتوفرة في حزمة تطوير البرامج (SDK).
  1. أداة التوقّعات
  • تكون هذه البيانات مسؤولة عن منطق تعلُّم الآلة لمعالجة طلب التوقّع.

يمكن تخصيص كل عنصر من هذه المكوّنات وفقًا لمتطلبات حالة الاستخدام. في هذا المثال، ستُنفذ فقط المؤشر.

يكون المتنبئ مسؤولًا عن منطق تعلُّم الآلة لمعالجة طلب التوقّع، مثل المعالجة المُسبقة المخصّصة والمعالجة اللاحقة. لكتابة منطق توقّع مخصّص، عليك تصنيف واجهة أداة التوقّع Vertex AI كفئة فرعية.

يتضمّن هذا الإصدار من سلسلة إجراءات التوقّع المخصّصة أدوات توقُّع XGBoost وSklearn القابلة لإعادة الاستخدام، ولكن إذا أردت استخدام إطار عمل مختلف، يمكنك إنشاء إطار عمل خاص بك عن طريق وضع تصنيف فرعي للمؤشر الأساسي.

يمكنك الاطّلاع على مثال على مؤشر Sklearn أدناه. هذه هي كل الرموز التي ستحتاج إلى كتابتها لإنشاء خادم النموذج المخصّص هذا.

262df1246b28657e.png

الصق التعليمة البرمجية التالية في دفتر ملاحظاتك أدناه لفئة فرعية Sklearnفهم واكتبها في ملف بايثون في src_dir/. لاحظ أننا في هذا المثال نخصص طرق التحميل والمعالجة المسبقة وما بعد المعالجة فقط، وليس طريقة التنبؤ.

%%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)]}

لنلقِ نظرة عن كثب على كل طريقة من هذَين الأسلوبين.

  • يتم تحميل طريقة التحميل في عنصر المعالجة المسبقة، وهو في هذه الحالة قاموس يعين قيم وضوح الماس باختصاراتها.
  • وتستخدم طريقة المعالجة المسبقة هذا العنصر للتأكد من أن ميزة الوضوح في وقت العرض تستخدم تنسيقها المختصَر. وإذا لم يكن الأمر كذلك، فإنه تحول السلسلة الكاملة إلى اختصارها.
  • تُرجع طريقة ما بعد المعالجة القيمة المتنبأ بها كسلسلة بعلامة $ وتقريب القيمة.

بعد ذلك، استخدِم حزمة تطوير برامج Vertex AI Python لإنشاء الصورة. باستخدام سلسلة إجراءات التوقع المخصصة، سيتم إنشاء ملف شامل وسيتم إنشاء صورة لك.

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"),
)

اكتب ملف اختبار مع نموذجين للتنبؤ. تحتوي إحدى الحالات على اسم الوضوح المختصر، لكن الآخر يحتاج إلى تحويله أولاً.

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)

اختبِر الحاوية محليًا من خلال نشر نموذج محلي.

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

يمكنك الاطّلاع على نتائج التوقّع باستخدام:

predict_response.content

9. نشر النموذج في Vertex AI

بعد أن اختبرت الحاوية محليًا، حان الوقت لإرسال الصورة إلى Artifact Registry وتحميل النموذج إلى Vertex AI Model Registry.

أولاً، اضبط Docker للوصول إلى 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

بعد ذلك، ادفع الصورة.

local_model.push_image()

ثم حمّل النموذج.

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

عند تحميل النموذج، من المفترض أن يظهر لك في وحدة التحكّم:

بعد ذلك، انشر النموذج لتتمكّن من استخدامه للتنبؤات على الإنترنت. وتعمل سلاسل الإجراءات المخصّصة للتوقّعات مع التوقّعات المجمّعة أيضًا، فإذا كانت حالة الاستخدام لا تتطلّب توقّعات على الإنترنت، لن تحتاج إلى نشر النموذج.

بعد ذلك، ادفع الصورة.

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

وأخيرًا، اختبر النموذج المنشور من خلال الحصول على تنبؤ.

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

🎉 تهانينا. 🎉

لقد تعلمت كيفية استخدام Vertex AI لإجراء ما يلي:

  • كتابة منطق مخصّص للمعالجة المسبقة وما بعد المعالجة باستخدام سلاسل إجراءات التوقّع المخصَّصة

يرى موقع Cosmopup أنّ الدروس التطبيقية حول الترميز رائعة.

e6d3675ca7c6911f.jpeg

الخطوات التالية

تعزيز القراءة الفيديوهات

المستندات المرجعية