FraudFinder: از داده های خام تا هوش مصنوعی با Vertex AI و BigQuery.

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

در این آزمایشگاه، نحوه ایجاد یک داده سرتاسری برای سیستم هوش مصنوعی برای تشخیص تقلب در زمان واقعی در Google Cloud را خواهید آموخت. هدف این است که بفهمیم چگونه از داده‌های خام به یک خط لوله ML آماده برای تولید بر روی Google Cloud برویم. این آزمایشگاه از محصولات Google Cloud زیر استفاده می کند:

چه چیزی یاد خواهید گرفت؟

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

  • بهترین روش‌ها برای ساخت داده‌ها در سیستم‌های هوش مصنوعی در Google Cloud را بیاموزید.
  • بیاموزید که چگونه مهندسی ویژگی را با BigQuery با استفاده از SQL (برای پردازش دسته ای) و Apache Beam با استفاده از Dataflow (پردازش بیدرنگ) انجام دهید و از فروشگاه ویژگی Vertex AI استفاده کنید.
  • نحوه تجزیه و تحلیل داده ها با استفاده از کتابخانه های BigQuery و Python مانند Pandas و Plotly.
  • نحوه آموزش یک مدل ML با BigQuery ML از طریق SQL.
  • چگونه از Vertex AI برای ذخیره، استقرار و نظارت بر مدل خود استفاده کنید.
  • نحوه استفاده از Vertex AI Pipelines برای رسمی کردن داده های خود در گردش کار AI.

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

2. از داده های خام گرفته تا هوش مصنوعی با Vertex AI و BigQuery

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

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

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

3. FraudFinder مورد استفاده و داده ها

FraudFinder مجموعه‌ای از نوت‌بوک‌ها است که داده‌های جامع به سفر هوش مصنوعی در Google Cloud را از طریق استفاده از تشخیص تقلب در زمان واقعی آموزش می‌دهد. در سرتاسر نوت‌بوک‌ها، یاد می‌گیرید که چگونه داده‌های تراکنش‌های پرداخت تاریخی ذخیره شده در انبار داده را بخوانید، از جریان مستقیم تراکنش‌های جدید بخوانید، تجزیه و تحلیل داده‌های اکتشافی (EDA) انجام دهید، مهندسی ویژگی‌ها را انجام دهید، ویژگی‌ها را وارد یک فروشگاه ویژگی کنید، آموزش دهید مدل خود را با استفاده از ویژگی ذخیره کنید، مدل خود را در یک رجیستری مدل ثبت کنید، مدل خود را ارزیابی کنید، مدل خود را در نقطه پایانی مستقر کنید، مدل خود را در زمان واقعی استنتاج کنید و مدل خود را نظارت کنید.

تشخیص تقلب طبقه بندی و تشخیص ناهنجاری را پوشش می دهد، که مسلماً دامنه های گسترده ای در یادگیری ماشین وجود دارد. این امر تشخیص تقلب را به یک مورد استفاده خوب برای یک داستان واقعی تبدیل می‌کند که درک آن آسان است و راهی عالی برای نمایش داده‌ها و داده‌های سرتاسر معماری هوش مصنوعی در Google Cloud. برای درک معماری انتها به انتها لازم نیست متخصص کلاهبرداری باشید. الگوی معماری را می توان در موارد دیگر استفاده کرد.

در زیر یک نمای کلی از معماری FraudFinder را خواهید دید:

معماری FraudFinder

مجموعه داده

مجموعه داده با استفاده از کد یادگیری ماشین برای شناسایی تقلب در کارت اعتباری - پروژه راهنمای عملی Kaggle ترکیب شده است. تشخیص تقلب در زمان واقعی از نظر معماری با تشخیص تقلب دسته ای متفاوت است و با موارد زیر مشخص می شود:

  • فرکانس بالا (مثلاً 1000 در ثانیه) درخواست های پیش بینی
  • تأخیر کم (به عنوان مثال < 1 ثانیه) درخواست پیش بینی → پاسخ
  • پیش‌بینی معمولاً به ازای هر 1 نمونه در هر درخواست پیش‌بینی است یا می‌تواند در «مجموعه‌های خرد» باشد (مثلاً 1000 تراکنش به صورت دسته‌ای برای استنتاج تقریباً هم‌زمان ارسال می‌شود)
  • مهندسی ویژگی برای ارائه خدمات باید از قبل محاسبه شده یا در زمان واقعی محاسبه شود

مجموعه داده تاریخی FraudFinder

جداول عمومی BigQuery با تراکنش‌های پرداخت تاریخی وجود دارد که به کاربران امکان می‌دهد مدل‌های خود را آموزش دهند و مهندسی ویژگی‌ها را با استفاده از داده‌ها در BigQuery انجام دهند.

cymbal-fraudfinder (project)
|-`tx` (dataset)  
  |-`tx` (table: transactions without labels)  
  |-`txlabels` (table: transactions with fraud labels (1 or 0))  
|-demographics  
  |-`customers` (table: profiles of customers)  
  |-`terminals` (table: profiles of terminals)  
  |-`customersterminals` (table: profiles of customers and terminals within their radius)  

چرا بلادرنگ؟

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

FraudFinder زنده، جریان داده

به عنوان بخشی از آزمایشگاه FraudFinder، موضوعات Pub/Sub عمومی با تراکنش‌های پرداخت جریانی زنده وجود دارد که کاربران می‌توانند به راحتی نقاط پایانی مدل و ویژگی‌های جریان را آزمایش کنند. Pub/Sub یک سرویس پیام رسانی ناهمزمان و مقیاس پذیر است. از این موضوعات برای پخش جریانی ویژگی ها و استنتاج آنلاین استفاده خواهید کرد. کاربران همچنین می‌توانند برای نمایش نظارت بر مدل، بین موضوعات با نرخ پایه در مقابل نرخ تقلب بالاتر جابه‌جا شوند. موضوعات Pub/Sub عمومی زیر در دسترس هستند:

  • ff-tx
  • ff-txlabels

4. پروژه و نمونه نوت بوک خود را راه اندازی کنید

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

مهم : ما به شما توصیه می کنیم که این آزمایشگاه را در یک پروژه جدید اجرا کنید. این آزمایشگاه بسیاری از محصولات مختلف را پوشش می‌دهد، و اگر کل پروژه را پس از پایان کار با آزمایشگاه حذف کنید، ساده‌ترین کار است.

وقتی پروژه ای دارید، لطفا مراحل زیر را ادامه دهید. مراحل زیر را می‌توانید در فایل README.md که در مخزن موجود است نیز پیدا کنید.

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

ابتدا به پروژه ای که ایجاد کرده اید بروید و یک پوسته ابری باز کنید. این مرحله ممکن است چند دقیقه طول بکشد زیرا اگر قبلاً آن را فعال نکرده باشید، یک Cloud Shell جدید ارائه می‌کند.

پوسته ابری

سپس کد زیر را با کپی و پیست کردن در Cloud Shell خود اجرا کنید. این اسکریپت API های لازم را فعال می کند و اشتراک های Pub/Sub را برای خواندن تراکنش های جریانی از موضوعات عمومی Pub/Sub ایجاد می کند. لطفا کمی به آن زمان بدهید تا تمام دستورات را اجرا کند.

gcloud services enable notebooks.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable aiplatform.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable run.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable dataflow.googleapis.com
gcloud services enable bigquery.googleapis.com

gcloud pubsub subscriptions create "ff-tx-sub" --topic="ff-tx" --topic-project="cymbal-fraudfinder"
gcloud pubsub subscriptions create "ff-txlabels-sub" --topic="ff-txlabels" --topic-project="cymbal-fraudfinder"

# Run the following command to grant the Compute Engine default service account access to read and write pipeline artifacts in Google Cloud Storage.
PROJECT_ID=$(gcloud config get-value project)
PROJECT_NUM=$(gcloud projects list --filter="$PROJECT_ID" --format="value(PROJECT_NUMBER)")
gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:${PROJECT_NUM}-compute@developer.gserviceaccount.com"\
      --role='roles/storage.admin'

مرحله 2: یک نمونه Vertex AI Workbench ایجاد کنید

سپس به بخش Vertex AI در Cloud Console خود بروید. سپس به Workbench بروید:

منوی Vertex AI

اگر فعال نیست Vertex AI Workbench (API notebook) API را فعال کنید.

Notebook_api

پس از فعال شدن، نوت بوک های مدیریت شده توسط کاربر را انتخاب کنید:

Notebooks_UI

سپس NEW NOTEBOOK را انتخاب کنید. می توانید پایتون 3 را انتخاب کنید.

نوت بوک

برای نوت بوک خود نامی مانند fraudfinder بگذارید، سپس روی تنظیمات پیشرفته کلیک کنید.

create_notebook

مهم : مطمئن شوید که Service Account در قسمت Permissions انتخاب کرده اید.

حساب خدمات

مهم : در قسمت Security ، اگر قبلاً فعال نشده است، «Enable terminal» را انتخاب کنید.

enable_terminal

شما می توانید تمام تنظیمات پیشرفته دیگر را به همین صورت رها کنید.

بعد، روی ایجاد کلیک کنید. ارائه نمونه چند دقیقه طول می کشد.

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

open_jupyterlab

مرحله 3: نقش های IAM را تنظیم کنید

برای سادگی، اجازه دهید فرض کنیم از حساب پیش فرض سرویس Compute Engine استفاده می کنید. این بهترین روش برای حجم کاری تولید نیست. بهترین روش ایجاد حساب های خدمات اختصاصی برای هر برنامه و اجتناب از استفاده از حساب های خدمات پیش فرض است. می‌توانید درباره بهترین شیوه‌های حساب خدمات در اسناد ما بیشتر بخوانید. حساب پیش فرض سرویس محاسباتی چیزی شبیه به این خواهد بود: 123456789123-compute@developer.gserviceaccount.com . به مدیر IAM بروید و روی ADD کلیک کنید. در نما، حساب کاربری خدمات پیش‌فرض Compute Engine را جستجو کرده و انتخاب کنید و سپس نقش‌های زیر را اختصاص دهید:

  • BigQuery Admin
  • Storage Admin
  • Storage Object Admin
  • Vertex AI Administrator
  • Pub/Sub Admin

باید چیزی شبیه به شکل زیر باشد. فراموش نکنید که تنظیمات جدید را ذخیره کنید!

iam-roles.png

مرحله 4: مخزن Github را کلون کنید

هنگامی که نمونه نوت بوک خود را ایجاد کردید و به آن دسترسی پیدا کردید، نوبت به تنظیم محیط خود می رسد. ابتدا یک پنجره ترمینال را باز کنید.

ترمینال را باز کنید

دستور زیر را در ترمینال نوت بوک خود کپی، پیست و اجرا کنید:

git clone https://github.com/GoogleCloudPlatform/fraudfinder.git

اجرای این دستور مخزن FraudFinder را در نمونه نوت بوک شما کلون می کند. پس از اجرای git clone ، پوشه fraudfinder را در نمونه Notebook خود در سمت چپ پیدا خواهید کرد. اکنون به پوشه fraudfinder بروید. در اینجا نوت بوک های مورد نیاز آزمایشگاه را پیدا خواهید کرد.

انتظار می رود از بخش های بعدی به بعد دستورالعمل های موجود در نوت بوک ها را دنبال کنید. لطفاً راه اندازی محیط را ادامه دهید.

5. تنظیم محیط

این بخش مراحلی را طی می کند تا به تنظیم محیط پروژه شما کمک کند. در این بخش، اهداف آموزشی زیر را پوشش خواهید داد:

  • محیط خود را از جمله بسته ها تنظیم کنید.
  • داده ها را در BigQuery بارگیری کنید.
  • خواندن داده‌ها از موضوعات عمومی Pub/Sub.

لطفاً با دفترچه زیر ادامه دهید و دستورالعمل ها را مرحله به مرحله دنبال کنید:

  • 00_environment_setup.ipynb

6. تجزیه و تحلیل داده های اکتشافی

این بخش به شما یاد می دهد که چگونه تجزیه و تحلیل داده های اکتشافی را برای درک بهتر داده های تقلب انجام دهید. در این بخش، اهداف آموزشی زیر را پوشش خواهید داد:

  • استخراج و کاوش داده ها از BigQuery با استفاده از SQL
  • داده های تراکنش را با استفاده از BigQuery و Plotly ترسیم کنید
  • تجمیع داده ها را اعمال کنید و نمودار پراکندگی ایجاد کنید

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

  • 01_exploratory_data_analysis.ipynb

7. دسته ای مهندسی ویژگی و جریان

در این بخش شما بر روی Feature Engineering کار خواهید کرد تا ویژگی هایی را برای آموزش مدل از داده های خام تولید کنید. ما از دسته و جریان استفاده خواهیم کرد. هر دو مورد استفاده برای شناسایی تقلب مهم هستند. در این بخش، اهداف آموزشی زیر را پوشش خواهید داد:

  • نحوه ایجاد ویژگی با استفاده از BigQuery و SQL
  • یک فروشگاه ویژگی Vertex AI ایجاد کنید و داده ها را وارد کنید
  • نحوه برخورد با داده های جریانی و وارد کردن آنها به فروشگاه ویژگی

لطفاً با دو نوت بوک زیر به این ترتیب ادامه دهید و دستورالعمل های موجود در نوت بوک ها را دنبال کنید:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. آموزش مدل، پیش بینی، رسمی سازی و نظارت

در این بخش، اولین مدل BigQuery Model خود را برای شناسایی موارد کلاهبرداری احتمالی آموزش و استقرار خواهید داد. همچنین یاد خواهید گرفت که کد آموزش و استقرار خود را بگیرید و آن را در یک خط لوله خودکار رسمی کنید. شما همچنین یاد خواهید گرفت که چگونه پیش بینی های آنلاین انجام دهید و مدل خود را در تولید نظارت کنید. در این بخش، اهداف آموزشی زیر را پوشش خواهید داد:

  • نحوه آموزش یک مدل BigQuery ML و ثبت آن در Vertex AI Model Registry
  • مدل را به عنوان نقطه پایانی در Vertex AI مستقر کنید
  • نحوه استفاده از Vertex AI SDK
  • چگونه می توانید مدل BigQuery ML را بگیرید و یک خط لوله ML سرتاسر ایجاد کنید
  • نحوه استفاده از Vertex AI Model Monitoring

لطفاً با نوت‌بوک‌های زیر به این ترتیب ادامه دهید و دستورالعمل‌های موجود در نوت‌بوک‌ها را دنبال کنید. نوت بوک ها را می توان در پوشه BQML یافت. گام به گام نوت بوک را دنبال کنید:

  • 04_model_training_and_prediction.ipynb
  • 05_model_training_pipeline_formalization.ipynb
  • 06_model_monitoring.ipynb
  • 07_model_inference.ipynb
🎉 Congratulations! 🎉

شما یاد گرفته اید که چگونه یک داده برای معماری هوش مصنوعی در Google Cloud بسازید!

9. پاکسازی

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

اگر می خواهید به جای آن سرویس ها را حذف کنید، لطفاً دستورالعمل های موجود در نوت بوک ها را دنبال کنید یا منابع ایجاد شده را حذف کنید.