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

۱. مرور کلی

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

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

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

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

مهم : هزینه اجرای این آزمایشگاه در گوگل کلود حدود ۱۰۰ دلار است.

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

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

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

بررسی اجمالی محصولات ورتکس

۳. مورد استفاده و داده‌های FraudFinder

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

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

در زیر می‌توانید نمای کلی از معماری FraudFinder را مشاهده کنید:

معماری FraudFinder

مجموعه داده‌ها

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

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

مجموعه داده‌های تاریخی 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

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

برای اجرای این آزمایش به یک پروژه Google Cloud Platform با قابلیت پرداخت نیاز دارید. برای ایجاد یک پروژه، دستورالعمل‌ها را دنبال کنید.

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

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

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

ابتدا، به پروژه‌ای که ایجاد کرده‌اید بروید و یک پوسته ابری (cloud shell ) باز کنید. این مرحله ممکن است چند دقیقه طول بکشد زیرا اگر قبلاً یک پوسته ابری (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 در کنسول ابری خود بروید. سپس به Workbench بروید:

منوی هوش مصنوعی ورتکس

اگر API مربوط به Vertex AI Workbench (notebook API) فعال نیست، آن را فعال کنید.

نوت‌بوک_آپی

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

رابط کاربری نوت‌بوک‌ها

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

نوت بوک_جدید

برای دفترچه یادداشت خود یک نام انتخاب کنید، مثلاً fraudfinder ، سپس روی تنظیمات پیشرفته (Advanced Settings) کلیک کنید.

ایجاد_نوت_بوک

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

حساب کاربری خدمات

مهم : در قسمت امنیت، اگر «فعال کردن ترمینال» فعال نیست، آن را انتخاب کنید.

enable_terminal

می‌توانید تمام تنظیمات پیشرفته دیگر را همانطور که هست، رها کنید.

سپس، روی ایجاد (Create) کلیک کنید. آماده‌سازی نمونه (instance) چند دقیقه طول خواهد کشید.

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

open_jupyterlab

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

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

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

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

نقش‌های iam.png

مرحله ۴: کپی کردن مخزن گیت‌هاب

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

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

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

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

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

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

۵. تنظیمات محیطی

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

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

لطفا با دفترچه یادداشت زیر ادامه دهید و دستورالعمل‌ها را گام به گام دنبال کنید:

  • 00_environment_setup.ipynb

۶. تحلیل اکتشافی داده‌ها

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

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

لطفا با دفترچه یادداشت بعدی ادامه دهید و دستورالعمل‌ها را گام به گام دنبال کنید:

  • 01_exploratory_data_analysis.ipynb

۷. مهندسی ویژگی‌ها به صورت دسته‌ای و جریانی

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

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

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

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

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

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

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

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

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

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

۹. پاکسازی

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

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