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 سرتاسر است. این آزمایشگاه بر روی محصولاتی که در زیر برجسته شده اند تمرکز خواهد کرد: پیش بینی و نوت بوک.
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 کلیک کنید.
مرحله 3: یک نمونه Notebooks ایجاد کنید
از بخش Vertex در Cloud Console خود، روی Notebooks کلیک کنید:
از آنجا، New Instance را انتخاب کنید. سپس نوع نمونه TensorFlow Enterprise 2.3 را بدون GPU انتخاب کنید:
از گزینه های پیش فرض استفاده کنید و سپس روی ایجاد کلیک کنید. پس از ایجاد نمونه، 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)
توجه داشته باشید که بارگیری تجسم یک دقیقه طول می کشد. هنگام بارگذاری، باید موارد زیر را مشاهده کنید:
محور 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 کلیک کنید: