۱. مرور کلی
در این آزمایشگاه، شما یک مدل را با BigQuery Machine Learning آموزش خواهید داد و سپس آن مدل را به Vertex AI صادر و مستقر خواهید کرد. این جدیدترین محصول هوش مصنوعی ارائه شده در Google Cloud است.
آنچه یاد میگیرید
شما یاد خواهید گرفت که چگونه:
- آموزش یک مدل با یادگیری ماشین BigQuery (BQML)
- مدل BQML خود را به فضای ذخیرهسازی ابری (Cloud Storage) منتقل کنید
- BQML آموزشدیده خود را در Vertex AI مستقر کنید
- پیشبینیها را روی مدل مستقر شده خود دریافت کنید
هزینه کل اجرای این آزمایشگاه در گوگل کلود حدود ۲ دلار است.
۲. مقدمهای بر هوش مصنوعی ورتکس
این آزمایشگاه از جدیدترین محصول هوش مصنوعی موجود در Google Cloud استفاده میکند. Vertex AI، محصولات یادگیری ماشین را در Google Cloud ادغام میکند تا یک تجربه توسعه یکپارچه را فراهم کند. پیش از این، مدلهای آموزشدیده با AutoML و مدلهای سفارشی از طریق سرویسهای جداگانه قابل دسترسی بودند. این محصول جدید، هر دو را در یک API واحد، به همراه سایر محصولات جدید، ترکیب میکند. همچنین میتوانید پروژههای موجود را به Vertex AI منتقل کنید. در صورت داشتن هرگونه بازخورد، لطفاً به صفحه پشتیبانی مراجعه کنید.
هوش مصنوعی ورتکس شامل محصولات مختلفی برای پشتیبانی از گردشهای کاری یادگیری ماشینی سرتاسری است. این آزمایشگاه بر روی محصولات برجسته زیر تمرکز خواهد کرد: پیشبینی و دفترچه یادداشت.

۳. محیط خود را راهاندازی کنید
برای اجرای این codelab به یک پروژه Google Cloud Platform با قابلیت پرداخت صورتحساب نیاز دارید. برای ایجاد یک پروژه، دستورالعملهای اینجا را دنبال کنید.
مرحله ۱: فعال کردن رابط برنامهنویسی کاربردی موتور محاسبات
به Compute Engine بروید و اگر از قبل فعال نشده است، آن را فعال کنید . برای ایجاد نمونه نوتبوک خود به این مورد نیاز خواهید داشت.
مرحله 2: فعال کردن API هوش مصنوعی Vertex
به بخش Vertex AI در کنسول ابری خود بروید و روی Enable Vertex AI API کلیک کنید.

مرحله ۳: ایجاد یک نمونه از Notebooks
ما از Notebooks برای دریافت پیشبینیها پس از استقرار مدل خود استفاده خواهیم کرد. از بخش Vertex AI در Cloud Console خود، روی Notebooks کلیک کنید:

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

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

۴. یک مدل BigQuery ML را آموزش دهید
BigQuery ML به شما امکان میدهد مدلهای یادگیری ماشین سفارشی را با استفاده از دادههای ذخیره شده در BigQuery آموزش دهید. میتوانید مدلها را در SQL آموزش داده و از آنها پیشبینی دریافت کنید. برای این آزمایش، از یک مجموعه داده عمومی در BigQuery برای پیشبینی احتمال عدم پرداخت با کارت اعتباری استفاده خواهیم کرد.
مرحله ۱: ایجاد یک مجموعه داده BigQuery در پروژه خود
برای آموزش یک مدل در BigQuery ML، باید یک مجموعه داده در پروژه خود ایجاد کنید تا این مدل را ذخیره کند. روی پروژه خود در نوار منوی سمت چپ کلیک کنید و سپس Create Dataset را انتخاب کنید:

در فیلد Dataset ID ، cc_default را وارد کنید. بقیه فیلدها را بدون تغییر رها کنید و روی Create dataset کلیک کنید.
مرحله ۲: اجرای کوئری CREATE MODEL
در ویرایشگر BigQuery Query ، کوئری CREATE MODEL زیر را اجرا کنید تا یک مدل BigQuery ML روی مجموعه داده عمومی که استفاده خواهیم کرد، ایجاد و آموزش داده شود. حتماً your-project با نام پروژه ابری خود جایگزین کنید:
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`
این یک مدل رگرسیون لجستیک ایجاد میکند که خروجی آن یک مقدار عددی بین ۰ تا ۱ است و نشان میدهد که اجرای آن حدود یک دقیقه طول میکشد. پس از اتمام، مدل را در زیر مجموعه دادههای خود مشاهده خواهید کرد:

شما میتوانید روی مدل کلیک کنید تا معیارهای آموزش و ارزیابی آن را مشاهده کنید.
۵. مدل BigQuery ML خود را صادر کنید
با یک مدل BQML آموزشدیده، میتوانیم از سینتکس SQL BQML برای دریافت پیشبینیها استفاده کنیم یا میتوانیم مدل را برای استقرار در جای دیگر، خروجی بگیریم. در اینجا مدل خود را خروجی میگیریم تا بتوانیم آن را در Vertex AI مستقر کنیم تا به صورت مقیاسپذیر به مدل سرویس دهد و پیشبینیها را دریافت کند.
مرحله ۱: یک فضای ذخیرهسازی ابری برای مدل خود ایجاد کنید
در جزئیات مدل، روی Export Model کلیک کنید:

این از شما میخواهد که محل ذخیرهسازی ابری گوگل (GCS) را که میخواهید دادههای مدل شما از آنجا استخراج شوند، وارد کنید. اگر هنوز یک سطل GCS ندارید، نگران نباشید! ما در شرف ایجاد یکی هستیم. ابتدا، روی مرور کلیک کنید:

سپس برای ایجاد یک سطل جدید، روی آیکون + کلیک کنید:

یک نام منحصر به فرد به آن بدهید (نامهای سطل ذخیرهسازی باید به صورت سراسری منحصر به فرد باشند). روی ادامه کلیک کنید. در مرحله بعد، در قسمت نوع مکان ، منطقه را انتخاب کنید و هر یک از مناطق را از منوی کشویی انتخاب کنید:

از کلاس ذخیرهسازی پیشفرض استفاده کنید و در قسمت کنترل دسترسی، مطمئن شوید که Uniform انتخاب شده است:

روی ادامه کلیک کنید و برای بقیه گزینهها از مقادیر پیشفرض استفاده کنید. سپس روی ایجاد کلیک کنید.
مرحله ۲: مدل BQML را اکسپورت کنید
با ایجاد سطل جدید خود، model-assets (یا هر چیزی که میخواهید) را در فیلد Name وارد کنید و سپس روی Select کلیک کنید:

سپس روی Export کلیک کنید. این کار در BigQuery یک job ایجاد میکند تا مدل شما را در قالب SavedModel تنسورفلو به باکت GCS تازه ایجاد شدهای که مشخص کردهاید، export کند. این export حدود یک دقیقه طول میکشد.
در حالی که مدل شما در حال اکسپورت شدن است، به بخش Storage کنسول Cloud خود بروید. وقتی کار شما تمام شد، باید فایلهای مدل خود را که به باکتی که اخیراً در زیرشاخه model-assets ایجاد کردهاید، اکسپورت شدهاند، ببینید:

۶. مدل را به Vertex AI وارد کنید
در این مرحله، ما به محل ذخیرهسازی GCS که در آن داراییهای مدل خود را صادر کردهایم، ارجاع میدهیم تا مدل را ایجاد و به Vertex AI وارد کنیم.
مرحله ۱: وارد کردن مدل
در کنسول ابری خود، به بخش Vertex AI Models بروید. از آنجا، گزینه Import را انتخاب کنید:

در مرحله اول، نام مدل خود را predict_default بگذارید. همان منطقهای را که سطل خود را در آن ایجاد کردهاید ( us-central1 ، europe-west4 یا asia-east1 ) انتخاب کنید. سپس روی ادامه کلیک کنید. در تنظیمات مدل ، گزینه "Import model artifacts into a new pre-built container" را انتخاب شده نگه دارید.
در منوی کشویی Model framework ، گزینه TensorFlow را انتخاب کنید. سپس نسخه 2.3 را به عنوان نسخه فریم ورک انتخاب کنید.
در فیلد Model artifact location، روی Browse کلیک کنید، روی سطل GCS که تازه ایجاد کردهاید کلیک کنید و روی دایرکتوری model-assets کلیک کنید:

سپس روی «وارد کردن» کلیک کنید. وارد کردن مدل شما چند دقیقه طول میکشد. پس از ایجاد، آن را در بخش مدلهای کنسول ابری خود مشاهده خواهید کرد:

۷. مدل را در یک نقطه پایانی مستقر کنید
حالا که مدل خود را آپلود کردهایم، مرحله بعدی ایجاد یک Endpoint در Vertex است. یک منبع Model در Vertex میتواند چندین Endpoint مرتبط با خود داشته باشد و شما میتوانید ترافیک را بین Endpointها تقسیم کنید.
مرحله ۱: ایجاد یک نقطه پایانی
در صفحه مدل خود، به برگه Deploy and test بروید و روی Deploy to endpoint کلیک کنید:

به نقطه پایانی خود یک نام، مانند default_pred_v1 ، بدهید، تنظیمات تقسیم ترافیک را به همان صورت باقی بگذارید، و سپس یک نوع ماشین برای استقرار مدل خود انتخاب کنید. ما در اینجا از n1-highcpu-2 استفاده کردیم، اما شما میتوانید هر نوع ماشینی را که دوست دارید انتخاب کنید.
سپس گزینه «انجام شد» را انتخاب کرده و روی «ادامه» کلیک کنید. تنظیمات مکان انتخاب شده را به همان صورت رها کنید و سپس روی «استقرار» کلیک کنید. استقرار نقطه پایانی شما چند دقیقه طول خواهد کشید. پس از اتمام، یک علامت تیک سبز در کنار آن مشاهده خواهید کرد:

داری نزدیک میشی! حالا آمادهای که پیشبینیها رو روی مدل پیادهسازیشدهات دریافت کنی.
۸. دریافت پیشبینیها روی مدل مستقر شده
چند گزینه برای دریافت پیشبینیهای مدل وجود دارد:
- رابط کاربری هوش مصنوعی ورتکس
- رابط برنامهنویسی کاربردی هوش مصنوعی ورتکس
در اینجا نحوه دریافت پیشبینیها از طریق API را نشان خواهیم داد.
مرحله ۱: دریافت پیشبینیهای مدل با رابط برنامهنویسی کاربردی هوش مصنوعی ورتکس
برای نشان دادن نحوه دریافت پیشبینیهای مدل در اینجا، از نمونه Vertex Notebook که در ابتدای این تمرین ایجاد کردید، استفاده خواهیم کرد.
سپس، نمونه دفترچه یادداشتی که ایجاد کردهاید را باز کنید و یک دفترچه یادداشت پایتون ۳ را از Launcher باز کنید:

در دفترچه یادداشت خود، دستور زیر را در یک سلول اجرا کنید تا یک مثال آزمایشی در یک فایل JSON با نام default-pred.json نوشته شود. ما این مثال را برای پیشبینی به مدل خود ارسال خواهیم کرد:
%%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"}
]
}
سپس، در رابط کاربری Vertex، روی Sample Request برای نقطه پایانی که اخیراً مستقر کردهاید کلیک کنید:

کد مرحله ۴ در تب REST را در دفترچه یادداشت خود کپی کنید و سلول را اجرا کنید:

سپس یک متغیر برای منطقهای که سطل و مدل خود را در آن ایجاد کردهاید، اضافه کنید. your-region را در رشته زیر جایگزین کنید:
REGION="your-region" # either us-central1, europe-west4, or asia-east1
در نهایت، با کپی کردن کد زیر در دفترچه یادداشت خود، یک درخواست پیشبینی به نقطه پایانی خود با curl ارسال کنید:
!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"
شما باید چیزی شبیه به موارد زیر را ببینید (مقادیر دقیق پیشبینی کمی متفاوت خواهند بود):
{
"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"
}
مقادیر موجود در default_payment_next_month_probs احتمال هر کلاس را نشان میدهند. برای این مثال، مدل ما پیشبینی میکند که ۸۱٪ احتمال وجود دارد که این شخص در پرداخت بعدی خود قصور نکند . مقدار .819 مربوط به کلاس 0 (عدم قصور) است.
🎉 تبریک میگویم! 🎉
شما یاد گرفتهاید که چگونه:
- آموزش یک مدل در BQML
- مدل BQML خود را به فضای ذخیرهسازی ابری (Cloud Storage) منتقل کنید
- مدل BQML را برای پیشبینی به Vertex AI وارد کنید
- یک مدل Vertex AI ایجاد کنید و مدل را در یک نقطه پایانی مستقر کنید
- از طریق Vertex Notebooks و curl پیشبینیهایی در مورد نقطه پایانی مستقر خود دریافت کنید
برای کسب اطلاعات بیشتر در مورد بخشهای مختلف هوش مصنوعی Vertex، مستندات را بررسی کنید.
۹. پاکسازی
اگر میخواهید به استفاده از دفترچه یادداشتی که در این آزمایش ایجاد کردهاید ادامه دهید، توصیه میشود در صورت عدم استفاده آن را خاموش کنید. از رابط کاربری دفترچه یادداشتها در کنسول ابری خود، دفترچه یادداشت را انتخاب کرده و سپس توقف را انتخاب کنید:

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

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