1. بررسی اجمالی
در این آزمایشگاه، شما یک مدل را با BigQuery Machine Learning آموزش میدهید و سپس آن مدل را به Vertex AI صادر و اجرا میکنید. این جدیدترین محصول هوش مصنوعی ارائه شده در Google Cloud است.
آنچه یاد می گیرید
شما یاد خواهید گرفت که چگونه:
- آموزش یک مدل با BigQuery Machine Learning (BQML)
- مدل BQML خود را به Cloud Storage صادر کنید
- BQML آموزش دیده خود را در Vertex AI مستقر کنید
- پیش بینی های مربوط به مدل مستقر شده خود را دریافت کنید
کل هزینه اجرای این آزمایشگاه در Google Cloud حدود 2 دلار است.
2. مقدمه ای بر Vertex AI
این آزمایشگاه از جدیدترین محصول هوش مصنوعی موجود در Google Cloud استفاده می کند. Vertex AI پیشنهادات ML را در سراسر Google Cloud در یک تجربه توسعه یکپارچه ادغام می کند. پیش از این، مدلهای آموزش دیده با AutoML و مدلهای سفارشی از طریق سرویسهای جداگانه قابل دسترسی بودند. پیشنهاد جدید هر دو را به همراه سایر محصولات جدید در یک API واحد ترکیب می کند. همچنین می توانید پروژه های موجود را به Vertex AI منتقل کنید. اگر بازخوردی دارید، لطفاً صفحه پشتیبانی را ببینید.
Vertex AI شامل بسیاری از محصولات مختلف برای پشتیبانی از گردش کار ML سرتاسر است. این آزمایشگاه بر روی محصولاتی که در زیر برجسته شده اند تمرکز خواهد کرد: پیش بینی و نوت بوک.
3. محیط خود را راه اندازی کنید
برای اجرای این کد لبه به یک پروژه Google Cloud Platform با فعال بودن صورتحساب نیاز دارید. برای ایجاد یک پروژه، دستورالعمل های اینجا را دنبال کنید.
مرحله 1: Compute Engine API را فعال کنید
به Compute Engine بروید و اگر قبلاً فعال نشده است Enable را انتخاب کنید. برای ایجاد نمونه نوت بوک خود به این نیاز دارید.
مرحله ۲: Vertex AI API را فعال کنید
به بخش Vertex AI در Cloud Console خود بروید و روی Enable Vertex AI API کلیک کنید.
مرحله 3: یک نمونه Notebooks ایجاد کنید
پس از استقرار مدل خود، از نوت بوک ها برای دریافت پیش بینی ها استفاده خواهیم کرد. از بخش Vertex AI در Cloud Console خود، روی Notebooks کلیک کنید:
از آنجا، New Instance را انتخاب کنید. سپس نوع نمونه TensorFlow Enterprise 2.3 را بدون GPU انتخاب کنید:
از گزینه های پیش فرض استفاده کنید و سپس روی ایجاد کلیک کنید. پس از ایجاد نمونه، Open JupyterLab را انتخاب کنید:
4. یک مدل BigQuery ML را آموزش دهید
BigQuery ML به شما امکان می دهد مدل های یادگیری ماشینی سفارشی را با استفاده از داده های ذخیره شده در BigQuery آموزش دهید. میتوانید همه مدلها را در SQL آموزش دهید و پیشبینی کنید. برای این آزمایشگاه، ما از یک مجموعه داده در دسترس عموم در BigQuery برای پیشبینی احتمال پیشفرض در پرداخت کارت اعتباری استفاده میکنیم.
مرحله 1: یک مجموعه داده BigQuery در پروژه خود ایجاد کنید
برای آموزش یک مدل در BigQuery ML، باید یک مجموعه داده در پروژه خود ایجاد کنید تا این مدل را ذخیره کنید. روی پروژه خود در نوار منوی سمت چپ کلیک کنید و سپس Create Dataset را انتخاب کنید:
در قسمت Dataset ID ، cc_default
را وارد کنید. بقیه فیلدها را همانطور که هست رها کنید و روی ایجاد مجموعه داده کلیک کنید.
مرحله 2: یک پرس و جو CREATE MODEL را اجرا کنید
در ویرایشگر BigQuery Query ، عبارت CREATE MODEL
زیر را برای ایجاد و آموزش یک مدل BigQuery ML روی مجموعه داده عمومی که استفاده خواهیم کرد، اجرا کنید. مطمئن شوید که your-project
با نام پروژه Cloud خود جایگزین کنید:
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`
این یک مدل رگرسیون لجستیک ایجاد می کند که یک مقدار عددی از 0 تا 1 را خروجی می دهد، که نشان می دهد حدود یک دقیقه طول می کشد تا اجرا شود. وقتی کامل شد، مدل را در زیر مجموعه داده خود خواهید دید:
می توانید روی مدل کلیک کنید تا معیارهای آموزش و ارزیابی آن را مشاهده کنید.
5. مدل BigQuery ML خود را صادر کنید
با یک مدل BQML آموزشدیده، میتوانیم از نحو BQML SQL برای دریافت پیشبینیها استفاده کنیم یا میتوانیم مدل را برای استقرار آن در جای دیگری صادر کنیم. در اینجا ما مدل خود را صادر می کنیم تا بتوانیم آن را در Vertex AI مستقر کنیم تا مدل را به صورت مقیاس پذیر ارائه کنیم و پیش بینی ها را دریافت کنیم.
مرحله 1: یک سطل ذخیره سازی ابری برای مدل خود ایجاد کنید
در جزئیات مدل، روی Export Model کلیک کنید:
این از شما میخواهد که مکان Google Cloud Storage (GCS) را وارد کنید، جایی که میخواهید داراییهای مدل شما صادر شود. اگر هنوز سطل GCS ندارید، نگران نباشید! ما در شرف ایجاد یکی هستیم. ابتدا روی Browse کلیک کنید:
سپس روی نماد + کلیک کنید تا یک سطل جدید ایجاد شود:
یک نام منحصر به فرد به آن بدهید (نام سطل ذخیره سازی باید در سطح جهانی منحصر به فرد باشد). روی Continue کلیک کنید. در مرحله بعد، در قسمت Location type ، Region را انتخاب کنید و هر یک از مناطق را از منوی بازشو انتخاب کنید:
از کلاس ذخیره سازی پیش فرض استفاده کنید و تحت کنترل دسترسی مطمئن شوید که Uniform انتخاب شده است:
روی ادامه کلیک کنید و برای بقیه گزینه ها از پیش فرض ها استفاده کنید. سپس روی Create کلیک کنید.
مرحله 2: مدل BQML را صادر کنید
با ایجاد سطل جدید، model-assets
(یا هر چیزی که میخواهید) را در قسمت Name وارد کنید و سپس روی Select کلیک کنید:
سپس بر روی Export کلیک کنید. این کار در BigQuery ایجاد می کند تا مدل شما را در قالب SavedModel TensorFlow به سطل GCS تازه ایجاد شده ای که مشخص کرده اید صادر کند. این حدود یک دقیقه طول می کشد تا صادر شود.
در حالی که مدل شما صادر می شود، به بخش فضای ذخیره سازی کنسول Cloud خود بروید. وقتی کار شما کامل شد، باید دارایی های مدل خود را به سطلی که به تازگی در زیر شاخه model-assets
ایجاد کرده اید صادر کنید:
6. مدل را به Vertex AI وارد کنید
در این مرحله به مکان ذخیره سازی GCS اشاره می کنیم که در آن دارایی های مدل خود را برای ایجاد و وارد کردن مدل به Vertex AI صادر کردیم.
مرحله 1: مدل را وارد کنید
در کنسول Cloud خود، به بخش Vertex AI Models بروید. از آنجا، Import را انتخاب کنید:
در مرحله اول، نام predict_default
را به مدل خود بدهید. همان منطقه ای را که سطل خود را ایجاد کرده اید (یا us-central1 ، europe-west4 ، یا asia-east1) انتخاب کنید. سپس روی Continue کلیک کنید. در تنظیمات مدل ، "Import model artifacts into a new pre-builed container" را انتخاب کنید.
در منوی کشویی Model Framework ، TensorFlow را انتخاب کنید. سپس 2.3 را به عنوان نسخه فریمورک انتخاب کنید.
در قسمت Model artifact location، روی Browse کلیک کنید، روی سطل GCS که به تازگی ایجاد کرده اید، کلیک کنید و روی پوشه model-assets کلیک کنید:
سپس روی Import کلیک کنید. چند دقیقه طول می کشد تا مدل شما وارد شود. پس از ایجاد، آن را در بخش مدلهای کنسول Cloud خود خواهید دید:
7. مدل را در نقطه پایانی مستقر کنید
اکنون که مدل خود را آپلود کردیم، گام بعدی ایجاد نقطه پایانی در Vertex است. یک منبع Model در Vertex میتواند چندین نقطه پایانی مرتبط با آن داشته باشد و میتوانید ترافیک را بین نقاط پایانی تقسیم کنید.
مرحله 1: ایجاد نقطه پایانی
در صفحه مدل خود، به برگه Deploy and test بروید و روی Deploy to endpoint کلیک کنید:
به نقطه پایانی خود یک نام بدهید، مانند default_pred_v1
، تنظیمات تقسیم ترافیک را همانطور که هست رها کنید، و سپس یک نوع ماشین را برای استقرار مدل خود انتخاب کنید. ما در اینجا از n1-highcpu-2
استفاده کردیم، اما شما می توانید هر نوع ماشینی را که می خواهید انتخاب کنید.
سپس Done را انتخاب کنید و روی Continue کلیک کنید. تنظیمات مکان انتخاب شده را همانطور که هست رها کنید و سپس روی Deploy کلیک کنید. استقرار نقطه پایانی شما چند دقیقه طول می کشد. پس از تکمیل، یک علامت سبز رنگ در کنار آن خواهید دید:
داری نزدیک میشی! اکنون آماده دریافت پیشبینیها در مورد مدل مستقر خود هستید.
8. دریافت پیش بینی در مدل مستقر شده ما
چند گزینه برای دریافت پیش بینی مدل وجود دارد:
- رابط هوش مصنوعی Vertex
- Vertex AI API
در اینجا نحوه دریافت پیش بینی از طریق API را نشان خواهیم داد
مرحله 1: پیش بینی های مدل را با Vertex AI API دریافت کنید
برای اینکه به شما نشان دهیم چگونه پیشبینیهای مدل را در اینجا دریافت کنید، از نمونه Vertex Notebook که در ابتدای این آزمایشگاه ایجاد کردید استفاده میکنیم.
سپس، نمونه نوتبوکی را که ایجاد کردهاید باز کنید و یک نوت بوک پایتون 3 را از لانچر باز کنید:
در نوت بوک خود، موارد زیر را در یک سلول اجرا کنید تا یک نمونه آزمایشی در فایل 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 UI، روی Sample Request برای نقطه پایانی که به تازگی مستقر کرده اید، کلیک کنید:
کد مرحله 4 در تب 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
احتمال هر کلاس را نشان می دهد. برای این مثال، مدل ما پیشبینی میکند که 81 درصد احتمال دارد که این شخص در پرداخت بعدی خود نکول کند. مقدار .819
با کلاس 0
مطابقت دارد (نه پیش فرض).
🎉 تبریک می گویم! 🎉
شما یاد گرفته اید که چگونه:
- آموزش یک مدل در BQML
- مدل BQML خود را به Cloud Storage صادر کنید
- برای پیش بینی مدل BQML را به Vertex AI وارد کنید
- یک مدل Vertex AI ایجاد کنید و مدل را در نقطه پایانی مستقر کنید
- از طریق نوتبوکهای Vertex و پیچشدن، پیشبینیهایی را در نقطه پایانی مستقر شده خود دریافت کنید
برای کسب اطلاعات بیشتر در مورد بخشهای مختلف Vertex AI، مستندات را بررسی کنید.
9. پاکسازی
اگر میخواهید به استفاده از نوتبوکی که در این آزمایشگاه ایجاد کردهاید ادامه دهید، توصیه میشود در صورت عدم استفاده آن را خاموش کنید. از رابط کاربری Notebooks در Cloud Console خود، نوت بوک را انتخاب کنید و سپس Stop را انتخاب کنید:
اگر می خواهید نوت بوک را به طور کامل حذف کنید، به سادگی روی دکمه حذف در بالا سمت راست کلیک کنید.
برای حذف نقطه پایانی که مستقر کرده اید، به بخش Endpoints کنسول Vertex AI خود بروید و روی نماد حذف کلیک کنید:
برای حذف Storage Bucket، با استفاده از منوی Navigation در Cloud Console خود، به Storage بروید، سطل خود را انتخاب کنید و روی Delete کلیک کنید: