ساخت یک مدل مالی مالی با ابزار What-If و Vertex AI

1. بررسی اجمالی

در این آزمایشگاه، از ابزار What-if برای تجزیه و تحلیل یک مدل XGBoost که بر روی داده های مالی آموزش دیده است، استفاده خواهید کرد. پس از تجزیه و تحلیل مدل، آن را در هوش مصنوعی جدید ابری Vertex مستقر خواهید کرد.

چیزی که یاد می گیرید

شما یاد خواهید گرفت که چگونه:

  • یک مدل XGBoost را بر روی مجموعه داده های وام مسکن عمومی در یک نوت بوک میزبان آموزش دهید
  • مدل را با استفاده از ابزار What-if آنالیز کنید
  • مدل XGBoost را در Vertex AI مستقر کنید

کل هزینه اجرای این آزمایشگاه در Google Cloud حدود 1 دلار است.

2. مقدمه ای بر Vertex AI

این آزمایشگاه از جدیدترین محصول هوش مصنوعی موجود در Google Cloud استفاده می کند. Vertex AI پیشنهادات ML را در سراسر Google Cloud در یک تجربه توسعه یکپارچه ادغام می کند. پیش از این، مدل‌های آموزش دیده با AutoML و مدل‌های سفارشی از طریق سرویس‌های جداگانه قابل دسترسی بودند. پیشنهاد جدید هر دو را به همراه سایر محصولات جدید در یک API واحد ترکیب می کند. همچنین می توانید پروژه های موجود را به Vertex AI منتقل کنید. اگر بازخوردی دارید، لطفاً صفحه پشتیبانی را ببینید.

Vertex AI شامل بسیاری از محصولات مختلف برای پشتیبانی از گردش کار ML سرتاسر است. این آزمایشگاه بر روی محصولاتی که در زیر برجسته شده اند تمرکز خواهد کرد: پیش بینی و نوت بوک.

نمای کلی محصول Vertex

3. پرایمر سریع XGBoost

XGBoost یک چارچوب یادگیری ماشینی است که از درخت های تصمیم گیری و تقویت گرادیان برای ساخت مدل های پیش بینی کننده استفاده می کند. این کار با ترکیب کردن چندین درخت تصمیم با هم بر اساس امتیاز مربوط به گره های برگ مختلف در یک درخت کار می کند.

نمودار زیر تجسمی از یک مدل درخت تصمیم ساده است که ارزیابی می کند که آیا یک بازی ورزشی باید بر اساس پیش بینی آب و هوا انجام شود یا خیر:

نمونه مدل درختی

چرا از XGBoost برای این مدل استفاده می کنیم؟ در حالی که نشان داده شده است که شبکه‌های عصبی سنتی بر روی داده‌های بدون ساختار مانند تصاویر و متن بهترین عملکرد را دارند، درخت‌های تصمیم اغلب بر روی داده‌های ساختاریافته مانند مجموعه داده‌های وام مسکن که در این مجموعه کد استفاده خواهیم کرد، عملکرد بسیار خوبی دارند.

4. محیط خود را راه اندازی کنید

برای اجرای این کد لبه به یک پروژه Google Cloud Platform با فعال بودن صورتحساب نیاز دارید. برای ایجاد یک پروژه، دستورالعمل های اینجا را دنبال کنید.

مرحله 1: Compute Engine API را فعال کنید

به Compute Engine بروید و اگر قبلاً فعال نشده است Enable را انتخاب کنید. برای ایجاد نمونه نوت بوک خود به این نیاز دارید.

مرحله ۲: Vertex AI API را فعال کنید

به بخش Vertex در Cloud Console خود بروید و روی Enable Vertex AI API کلیک کنید.

داشبورد Vertex

مرحله 3: یک نمونه Notebooks ایجاد کنید

از بخش Vertex در Cloud Console خود، روی Notebooks کلیک کنید:

نوت بوک ها را انتخاب کنید

از آنجا، New Instance را انتخاب کنید. سپس نوع نمونه TensorFlow Enterprise 2.3 را بدون GPU انتخاب کنید:

نمونه TFE

از گزینه های پیش فرض استفاده کنید و سپس روی ایجاد کلیک کنید. پس از ایجاد نمونه، Open JupyterLab را انتخاب کنید.

مرحله 4: XGBoost را نصب کنید

پس از باز شدن نمونه JupyterLab، باید بسته XGBoost را اضافه کنید.

برای انجام این کار، ترمینال را از لانچر انتخاب کنید:

سپس برای نصب آخرین نسخه XGBoost که توسط Vertex AI پشتیبانی می شود، موارد زیر را اجرا کنید:

pip3 install xgboost==1.2

پس از انجام این کار، یک نمونه پایتون 3 Notebook را از راه‌انداز باز کنید. برای شروع در دفترچه یادداشت خود آماده هستید!

مرحله 5: بسته های پایتون را وارد کنید

در اولین سلول نوت بوک، موارد زیر را وارد کنید و سلول را اجرا کنید. می توانید با فشار دادن دکمه فلش سمت راست در منوی بالا یا فشار دادن دستور-enter آن را اجرا کنید:

import pandas as pd
import xgboost as xgb
import numpy as np
import collections
import witwidget

from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix
from sklearn.utils import shuffle
from witwidget.notebook.visualization import WitWidget, WitConfigBuilder

5. داده ها را دانلود و پردازش کنید

ما از یک مجموعه داده وام مسکن از ffiec.gov برای آموزش مدل XGBoost استفاده خواهیم کرد. ما برخی از پیش‌پردازش‌ها را روی مجموعه داده اصلی انجام داده‌ایم و نسخه کوچک‌تری را برای شما ایجاد کرده‌ایم تا از آن برای آموزش مدل استفاده کنید. این مدل پیش بینی می کند که آیا یک درخواست وام مسکن خاص تایید می شود یا خیر .

مرحله 1: مجموعه داده از پیش پردازش شده را دانلود کنید

ما نسخه ای از مجموعه داده را در Google Cloud Storage برای شما در دسترس قرار داده ایم. با اجرای دستور gsutil زیر در نوت بوک Jupyter می توانید آن را دانلود کنید:

!gsutil cp 'gs://mortgage_dataset_files/mortgage-small.csv' .

مرحله 2: مجموعه داده را با پانداها بخوانید

قبل از ایجاد Pandas DataFrame خود، dict از نوع داده هر ستون ایجاد می کنیم تا Pandas مجموعه داده ما را به درستی بخواند:

COLUMN_NAMES = collections.OrderedDict({
 'as_of_year': np.int16,
 'agency_code': 'category',
 'loan_type': 'category',
 'property_type': 'category',
 'loan_purpose': 'category',
 'occupancy': np.int8,
 'loan_amt_thousands': np.float64,
 'preapproval': 'category',
 'county_code': np.float64,
 'applicant_income_thousands': np.float64,
 'purchaser_type': 'category',
 'hoepa_status': 'category',
 'lien_status': 'category',
 'population': np.float64,
 'ffiec_median_fam_income': np.float64,
 'tract_to_msa_income_pct': np.float64,
 'num_owner_occupied_units': np.float64,
 'num_1_to_4_family_units': np.float64,
 'approved': np.int8
})

سپس یک DataFrame ایجاد می‌کنیم و انواع داده‌هایی را که در بالا مشخص کردیم به آن ارسال می‌کنیم. در صورتی که مجموعه داده اصلی به روش خاصی مرتب شده باشد، مهم است که داده‌هایمان را به هم بزنیم. برای انجام این کار از یک ابزار sklearn به نام shuffle استفاده می کنیم که در سلول اول وارد کردیم:

data = pd.read_csv(
 'mortgage-small.csv',
 index_col=False,
 dtype=COLUMN_NAMES
)
data = data.dropna()
data = shuffle(data, random_state=2)
data.head()

data.head() به ما امکان می دهد پنج ردیف اول مجموعه داده خود را در Pandas پیش نمایش کنیم. پس از اجرای سلول بالا باید چیزی شبیه به این را ببینید:

پیش نمایش مجموعه داده وام مسکن

اینها ویژگی هایی هستند که ما از آنها برای آموزش مدل خود استفاده خواهیم کرد. اگر تا انتها پیمایش کنید، آخرین ستون approved را خواهید دید که همان چیزی است که ما پیش‌بینی می‌کنیم. مقدار 1 نشان می دهد که یک برنامه خاص تایید شده است و 0 نشان دهنده رد شدن آن است.

برای مشاهده توزیع مقادیر تایید شده / رد شده در مجموعه داده و ایجاد یک آرایه numpy از برچسب ها، موارد زیر را اجرا کنید:

# Class labels - 0: denied, 1: approved
print(data['approved'].value_counts())

labels = data['approved'].values
data = data.drop(columns=['approved'])

حدود 66٪ از مجموعه داده شامل برنامه های کاربردی تایید شده است.

مرحله 3: ایجاد ستون ساختگی برای مقادیر طبقه بندی شده

این مجموعه داده حاوی ترکیبی از مقادیر مقوله‌ای و عددی است، اما XGBoost نیاز دارد که همه ویژگی‌ها عددی باشند. به جای نمایش مقادیر طبقه‌بندی با استفاده از رمزگذاری یک‌طرفه ، برای مدل XGBoost ما از تابع get_dummies Pandas استفاده خواهیم کرد.

get_dummies یک ستون با چندین مقدار ممکن می گیرد و آن را به یک سری از ستون ها تبدیل می کند که هر کدام فقط 0 و 1 دارند. به عنوان مثال، اگر یک ستون "color" با مقادیر ممکن "آبی" و "قرمز" داشته باشیم، get_dummies آن را به 2 ستون به نام های "color_blue" و "color_red" با تمام مقادیر 0 و 1 بولی تبدیل می کند.

برای ایجاد ستون های ساختگی برای ویژگی های دسته بندی ما، کد زیر را اجرا کنید:

dummy_columns = list(data.dtypes[data.dtypes == 'category'].index)
data = pd.get_dummies(data, columns=dummy_columns)

data.head()

وقتی این بار داده‌ها را پیش‌نمایش می‌کنید، ویژگی‌های منفرد (مانند purchaser_type در تصویر زیر) را خواهید دید که به چندین ستون تقسیم شده‌اند:

ستون های ساختگی پانداها

مرحله 4: تقسیم داده ها به مجموعه های قطار و آزمایش

یک مفهوم مهم در یادگیری ماشین، تقسیم قطار/تست است. ما اکثریت داده های خود را می گیریم و از آن برای آموزش مدل خود استفاده می کنیم و بقیه را برای آزمایش مدل خود بر روی داده هایی که قبلاً دیده نشده است کنار می گذاریم.

کد زیر را به نوت بوک خود اضافه کنید که از تابع Scikit-learn train_test_split برای تقسیم داده های ما استفاده می کند:

x,y = data.values,labels
x_train,x_test,y_train,y_test = train_test_split(x,y)

اکنون شما آماده ساخت و آموزش مدل خود هستید!

6. یک مدل XGBoost بسازید، آموزش دهید و ارزیابی کنید

مرحله 1: مدل XGBoost را تعریف و آموزش دهید

ایجاد یک مدل در XGBoost ساده است. ما از کلاس XGBClassifier برای ایجاد مدل استفاده می کنیم و فقط باید پارامتر objective مناسب را برای وظیفه طبقه بندی خاص خود پاس کنیم. در این مورد ما از reg:logistic استفاده می‌کنیم زیرا یک مشکل طبقه‌بندی باینری داریم و می‌خواهیم مدل یک مقدار واحد در محدوده (0,1) خروجی دهد: 0 برای تایید نشده و 1 برای تایید.

کد زیر یک مدل XGBoost ایجاد می کند:

model = xgb.XGBClassifier(
    objective='reg:logistic'
)

می توانید مدل را با یک خط کد آموزش دهید، متد fit() را فراخوانی کرده و داده ها و برچسب های آموزشی را به آن ارسال کنید.

model.fit(x_train, y_train)

مرحله 2: دقت مدل خود را ارزیابی کنید

اکنون می‌توانیم از مدل آموزش‌دیده خود برای تولید پیش‌بینی‌های داده‌های آزمایشی با تابع predict() استفاده کنیم.

سپس از تابع accuracy_score() Scikit-learn برای محاسبه دقت مدل خود بر اساس نحوه عملکرد آن بر روی داده های آزمایشی خود استفاده خواهیم کرد. ما مقادیر حقیقت پایه را به همراه مقادیر پیش بینی شده مدل برای هر مثال در مجموعه آزمایشی خود ارسال می کنیم:

y_pred = model.predict(x_test)
acc = accuracy_score(y_test, y_pred.round())
print(acc, '\n')

شما باید دقت را در حدود 87٪ ببینید، اما دقت شما کمی متفاوت است زیرا همیشه عنصر تصادفی در یادگیری ماشین وجود دارد.

مرحله 3: مدل خود را ذخیره کنید

برای استقرار مدل، کد زیر را اجرا کنید تا آن را در یک فایل محلی ذخیره کنید:

model.save_model('model.bst')

7. از ابزار What-if برای تفسیر مدل خود استفاده کنید

مرحله 1: تجسم ابزار What-if را ایجاد کنید

برای اتصال ابزار What-if به مدل محلی خود، باید زیرمجموعه ای از نمونه های آزمایشی خود را به همراه مقادیر درستی زمین برای آن نمونه ها ارسال کنید. بیایید یک آرایه Numpy از 500 نمونه آزمایشی خود به همراه برچسب های حقیقت پایه آنها ایجاد کنیم:

num_wit_examples = 500
test_examples = np.hstack((x_test[:num_wit_examples],y_test[:num_wit_examples].reshape(-1,1)))

نمونه سازی ابزار What-if به سادگی ایجاد یک شیء WitConfigBuilder و انتقال آن به مدلی است که می خواهیم تجزیه و تحلیل کنیم.

از آنجایی که ابزار What-if لیستی از امتیازات را برای هر کلاس در مدل ما انتظار دارد (در این مورد 2)، ما از روش predict_proba XGBoost با ابزار What-If استفاده خواهیم کرد:

config_builder = (WitConfigBuilder(test_examples.tolist(), data.columns.tolist() + ['mortgage_status'])
  .set_custom_predict_fn(model.predict_proba)
  .set_target_feature('mortgage_status')
  .set_label_vocab(['denied', 'approved']))
WitWidget(config_builder, height=800)

توجه داشته باشید که بارگیری تجسم یک دقیقه طول می کشد. هنگام بارگذاری، باید موارد زیر را مشاهده کنید:

نمای اولیه ابزار What-If

محور y پیش‌بینی مدل را به ما نشان می‌دهد که 1 یک پیش‌بینی approved با اطمینان بالا و 0 یک پیش‌بینی denied با اطمینان بالا است. محور x فقط گسترش تمام نقاط داده بارگذاری شده است.

مرحله 2: نقاط داده فردی را کاوش کنید

نمای پیش فرض ابزار What-if تب ویرایشگر Datapoint است. در اینجا می‌توانید روی هر نقطه داده‌ای کلیک کنید تا ویژگی‌های آن را ببینید، مقادیر ویژگی‌ها را تغییر دهید و ببینید که چگونه این تغییر بر پیش‌بینی مدل بر روی یک نقطه داده تأثیر می‌گذارد.

در مثال زیر ما یک نقطه داده نزدیک به آستانه 0.5 را انتخاب کردیم. درخواست وام مسکن مرتبط با این نقطه داده خاص از CFPB سرچشمه گرفته است. ما این ویژگی را به 0 تغییر دادیم و همچنین مقدار agency_code_Department of Housing and Urban Development (HUD) به 1 تغییر دادیم تا ببینیم اگر این وام از HUD سرچشمه بگیرد، چه اتفاقی برای پیش‌بینی مدل می‌افتد:

همانطور که در قسمت پایین سمت چپ ابزار What-if می بینیم، تغییر این ویژگی به طور قابل توجهی پیش بینی approved مدل را تا 32% کاهش داد. این می تواند نشان دهد که آژانسی که از آن وام گرفته شده تأثیر زیادی بر خروجی مدل دارد، اما برای اطمینان باید تجزیه و تحلیل بیشتری انجام دهیم.

در قسمت پایین سمت چپ UI، همچنین می‌توانیم مقدار حقیقت پایه را برای هر نقطه داده ببینیم و آن را با پیش‌بینی مدل مقایسه کنیم:

مرحله 3: تحلیل خلاف واقع

سپس، روی هر نقطه داده کلیک کنید و نوار لغزنده Show nearest counterfactual datapoint را به سمت راست حرکت دهید:

با انتخاب این نقطه داده ای را به شما نشان می دهد که مشابه ترین مقادیر ویژگی را با ویژگی اصلی که انتخاب کرده اید، اما پیش بینی مخالف دارد. سپس می توانید در میان مقادیر ویژگی پیمایش کنید تا ببینید دو نقطه داده در کجا تفاوت دارند (تفاوت ها با رنگ سبز و پررنگ مشخص شده اند).

مرحله 4: به نمودارهای وابستگی جزئی نگاه کنید

برای اینکه ببینید هر ویژگی چگونه روی پیش‌بینی‌های مدل به طور کلی تأثیر می‌گذارد، کادر نمودارهای وابستگی جزئی را علامت بزنید و مطمئن شوید که نمودارهای وابستگی جزئی سراسری انتخاب شده است:

در اینجا می‌توانیم ببینیم که وام‌هایی که از HUD نشات می‌گیرند، احتمال رد شدن کمی بالاتر دارند. نمودار این شکل است زیرا کد آژانس یک ویژگی بولی است، بنابراین مقادیر فقط می توانند دقیقاً 0 یا 1 باشند.

applicant_income_thousands یک ویژگی عددی است، و در نمودار وابستگی جزئی می‌توانیم ببینیم که درآمد بالاتر کمی احتمال تایید شدن یک درخواست را افزایش می‌دهد، اما فقط تا حدود 200 هزار دلار. پس از 200 هزار دلار، این ویژگی تاثیری بر پیش بینی مدل ندارد.

مرحله 5: عملکرد کلی و عدالت را بررسی کنید

سپس به تب Performance & Fairness بروید. این آمار کلی عملکرد را در نتایج مدل در مجموعه داده ارائه شده، از جمله ماتریس های سردرگمی، منحنی های PR، و منحنی های ROC نشان می دهد.

برای مشاهده ماتریس سردرگمی، mortgage_status به عنوان ویژگی Ground Truth انتخاب کنید:

این ماتریس سردرگمی پیش بینی های صحیح و نادرست مدل ما را به عنوان درصدی از کل نشان می دهد. اگر مربع‌های بله واقعی/بله پیش‌بینی‌شده و خیر واقعی/خیر پیش‌بینی‌شده را جمع کنید، باید دقتی مشابه مدل شما داشته باشد (در این مورد حدود 87% است، اگرچه مدل شما ممکن است کمی متفاوت باشد زیرا عنصر تصادفی در آن وجود دارد. آموزش مدل های ML).

همچنین می‌توانید با نوار لغزنده آستانه آزمایش کنید، امتیاز طبقه‌بندی مثبتی را که مدل باید قبل از تصمیم‌گیری به approved برای وام بازگرداند، افزایش و کاهش دهید و ببینید که چگونه دقت، مثبت کاذب و منفی کاذب را تغییر می‌دهد. در این مورد، دقت در حدود آستانه 0.55 بالاترین میزان است.

سپس، در سمت چپ Slice by dropdown، loan_purpose_Home_purchase را انتخاب کنید:

اکنون عملکرد دو زیرمجموعه داده‌های خود را خواهید دید: بخش «0» زمانی را نشان می‌دهد که وام برای خرید خانه نیست، و قطعه «1» برای زمانی است که وام برای خرید خانه است. دقت، مثبت کاذب و نرخ منفی کاذب بین دو برش را بررسی کنید تا تفاوت عملکرد را جستجو کنید.

اگر ردیف‌ها را برای مشاهده ماتریس‌های سردرگمی گسترش دهید، می‌بینید که این مدل برای 70 درصد درخواست‌های وام برای خرید خانه و تنها 46 درصد وام‌هایی که برای خرید خانه نیستند، «تأیید شده» را پیش‌بینی می‌کند (درصدهای دقیق برای خرید خانه متفاوت است. مدل شما):

اگر برابری جمعیتی را از دکمه‌های رادیویی سمت چپ انتخاب کنید، دو آستانه به‌گونه‌ای تنظیم می‌شوند که مدل پیش‌بینی می‌کند برای درصد مشابهی از متقاضیان در هر دو بخش approved . این با دقت، مثبت کاذب و منفی کاذب برای هر برش چه می کند؟

مرحله 6: توزیع ویژگی را کاوش کنید

در نهایت، به تب Features در ابزار What-if بروید. این به شما توزیع مقادیر را برای هر ویژگی در مجموعه داده شما نشان می دهد:

می توانید از این برگه برای اطمینان از متعادل بودن مجموعه داده خود استفاده کنید. برای مثال، به نظر می‌رسد که وام‌های بسیار کمی در مجموعه داده‌ها از آژانس خدمات مزرعه گرفته شده است. برای بهبود دقت مدل، ممکن است در صورت موجود بودن داده، وام های بیشتری از آن آژانس اضافه کنیم.

ما فقط چند ایده اکتشافی What-if Tool را در اینجا شرح داده ایم. با خیال راحت به بازی کردن با این ابزار ادامه دهید، مناطق زیادی برای کاوش وجود دارد!

8. استقرار مدل به Vertex AI

ما مدل خود را به صورت محلی کار کرده‌ایم، اما خوب است اگر بتوانیم از هر جایی (نه فقط از این دفترچه!) روی آن پیش‌بینی کنیم. در این مرحله ما آن را در فضای ابری مستقر خواهیم کرد.

مرحله 1: یک سطل Cloud Storage برای مدل خود ایجاد کنید

اجازه دهید ابتدا چند متغیر محیطی را تعریف کنیم که در بقیه قسمت‌های Codelab از آنها استفاده خواهیم کرد. مقادیر زیر را با نام پروژه Google Cloud خود، نام سطل فضای ذخیره‌سازی ابری که می‌خواهید ایجاد کنید (باید در سطح جهانی منحصربه‌فرد باشد) و نام نسخه اولین نسخه مدل خود را پر کنید:

# Update the variables below to your own Google Cloud project ID and GCS bucket name. You can leave the model name we've specified below:
GCP_PROJECT = 'your-gcp-project'
MODEL_BUCKET = 'gs://storage_bucket_name'
MODEL_NAME = 'xgb_mortgage'

اکنون ما آماده ایجاد یک سطل ذخیره سازی برای ذخیره فایل مدل XGBoost خود هستیم. هنگام استقرار، Vertex AI را به این فایل نشان می دهیم.

این دستور gsutil را از داخل نوت بوک خود اجرا کنید تا یک سطل ذخیره سازی منطقه ای ایجاد کنید:

!gsutil mb -l us-central1 $MODEL_BUCKET

مرحله 2: فایل مدل را در Cloud Storage کپی کنید

در مرحله بعد، فایل مدل ذخیره شده XGBoost خود را در فضای ذخیره سازی ابری کپی می کنیم. دستور gsutil زیر را اجرا کنید:

!gsutil cp ./model.bst $MODEL_BUCKET

برای تأیید کپی شدن فایل، به مرورگر ذخیره سازی در کنسول Cloud خود بروید:

مرحله 3: مدل را ایجاد کنید و در یک نقطه پایانی مستقر کنید

ما تقریباً آماده استقرار مدل در فضای ابری هستیم! در Vertex AI یک مدل می تواند چندین نقطه پایانی داشته باشد. ابتدا یک مدل ایجاد می کنیم، سپس یک نقطه پایانی در آن مدل ایجاد می کنیم و آن را مستقر می کنیم.

ابتدا از gcloud CLI برای ایجاد مدل خود استفاده کنید:

!gcloud beta ai models upload \
--display-name=$MODEL_NAME \
--artifact-uri=$MODEL_BUCKET \
--container-image-uri=us-docker.pkg.dev/cloud-aiplatform/prediction/xgboost-cpu.1-2:latest \
--region=us-central1

پارامتر artifact-uri به محل ذخیره سازی که مدل XGBoost خود را در آن ذخیره کرده اید اشاره می کند. پارامتر container-image-uri به Vertex AI می گوید که از کدام ظرف از پیش ساخته شده برای سرو استفاده کنید. پس از تکمیل این دستور، به بخش مدل‌های کنسول Vertex خود بروید تا شناسه مدل جدید خود را دریافت کنید. می توانید آن را در اینجا پیدا کنید:

شناسه مدل را از کنسول دریافت کنید

آن شناسه را کپی کرده و در یک متغیر ذخیره کنید:

MODEL_ID = "your_model_id"

اکنون زمان ایجاد یک نقطه پایانی در این مدل است. ما می توانیم این کار را با دستور gcloud انجام دهیم:

!gcloud beta ai endpoints create \
--display-name=xgb_mortgage_v1 \
--region=us-central1

هنگامی که این کار تکمیل شد، باید مکان نقطه پایانی خود را که در خروجی نوت بوک ما ثبت شده است ببینید. به دنبال خطی بگردید که می گوید نقطه پایانی با مسیری شبیه به زیر ایجاد شده است: projects/project_ID/locations/us-central1/endpoints/endpoint_ID. سپس مقادیر زیر را با شناسه های نقطه پایانی ایجاد شده در بالا جایگزین کنید:

ENDPOINT_ID = "your_endpoint_id"

برای استقرار نقطه پایانی خود، دستور gcloud زیر را اجرا کنید:

!gcloud beta ai endpoints deploy-model $ENDPOINT_ID \
--region=us-central1 \
--model=$MODEL_ID \
--display-name=xgb_mortgage_v1 \
--machine-type=n1-standard-2 \
--traffic-split=0=100

تکمیل استقرار نقطه پایانی 10-5 دقیقه طول خواهد کشید. در حالی که نقطه پایانی شما در حال گسترش است، به بخش مدل‌های کنسول خود بروید. روی مدل خود کلیک کنید و endpiont خود را در حال استقرار ببینید:

هنگامی که استقرار با موفقیت کامل شد، علامت تیک سبز رنگی را می بینید که اسپینر بارگیری در آن قرار دارد.

مرحله 4: مدل مستقر شده را آزمایش کنید

برای اینکه مطمئن شوید مدل مستقر شما کار می‌کند، آن را با استفاده از gcloud آزمایش کنید تا پیش‌بینی کنید. ابتدا یک فایل JSON را با یک مثال از مجموعه آزمایشی ما ذخیره کنید:

%%writefile predictions.json
{
  "instances": [
    [2016.0, 1.0, 346.0, 27.0, 211.0, 4530.0, 86700.0, 132.13, 1289.0, 1408.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0]
  ]
}

مدل خود را با اجرای این دستور gcloud تست کنید:

!gcloud beta ai endpoints predict $ENDPOINT_ID \
--json-request=predictions.json \
--region=us-central1

شما باید پیش بینی مدل خود را در خروجی ببینید. این مثال خاص تأیید شد، بنابراین باید مقداری نزدیک به 1 ببینید.

9. پاکسازی

اگر می خواهید به استفاده از این نوت بوک ادامه دهید، توصیه می شود در صورت عدم استفاده آن را خاموش کنید. از رابط کاربری Notebooks در Cloud Console خود، نوت بوک را انتخاب کنید و سپس Stop را انتخاب کنید:

اگر می‌خواهید همه منابعی را که در این آزمایشگاه ایجاد کرده‌اید حذف کنید، به‌جای توقف، نمونه نوت‌بوک را به سادگی حذف کنید.

برای حذف نقطه پایانی که مستقر کرده اید، به بخش Endpoints کنسول Vertex خود بروید و روی نماد حذف کلیک کنید:

برای حذف Storage Bucket، با استفاده از منوی Navigation در Cloud Console خود، به Storage بروید، سطل خود را انتخاب کنید و روی Delete کلیک کنید: