FraudFinder: بدءًا من البيانات الأولية إلى الذكاء الاصطناعي (AI) باستخدام Vertex AI وBigQuery

1. نظرة عامة

ستتعلّم في هذا التمرين المعملي كيفية إنشاء بيانات شاملة للذكاء الاصطناعي (AI) لرصد عمليات الاحتيال في الوقت الفعلي على Google Cloud. والهدف من ذلك هو فهم كيفية الانتقال من البيانات الأولية إلى استخدام مسار تعلُّم الآلة الجاهز للإنتاج على Google Cloud. يستخدم هذا التمرين المعملي منتجات Google Cloud التالية:

ما الذي ستتعلمه؟

قد يكون إنشاء مسار شامل لتعلُّم الآلة قد يكون صعبًا. ستتعلّم في هذا التمرين المعملي كيفية إنشاء مسار تعلُّم الآلة المتكامل وتوسيع نطاقه باستخدام خدمات Google Cloud، مثل BigQuery وVertex AI. سنصطحبك في رحلة حول كيفية الانتقال من استخدام البيانات الأولية إلى استخدام الذكاء الاصطناعي في مرحلة الإنتاج. هدف التعلم عالي المستوى لهذا التمرين هو:

  • تعرَّف على أفضل الممارسات لإنشاء البيانات لأنظمة الذكاء الاصطناعي على Google Cloud.
  • يمكنك التعرّف على طريقة تنفيذ هندسة الميزات من خلال BigQuery باستخدام SQL (للمعالجة على دفعات) وApache Beam باستخدام Dataflow (المعالجة في الوقت الفعلي) واستخدام Vertex AI Feature Store.
  • كيفية تحليل البيانات باستخدام مكتبات BigQuery وPython مثل Pandas وPlotly
  • كيفية تدريب نموذج تعلُّم الآلة باستخدام BigQuery ML من خلال SQL.
  • كيفية الاستفادة من Vertex AI لتخزين نموذجك ونشره ومراقبته
  • طريقة استخدام Vertex AI Pipelines لإضفاء الطابع الرسمي على بياناتك في سير عمل الذكاء الاصطناعي

مهم: تبلغ تكلفة تشغيل هذا التمرين على Google Cloud حوالي 100 دولار أمريكي.

2. بدءًا من البيانات الأولية وحتى الذكاء الاصطناعي (AI) من خلال 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:

بنية FaudFinder

مجموعة البيانات

ويتم توليف مجموعة البيانات باستخدام الرمز من مشروع التعلم الآلي لاكتشاف الاحتيال في بطاقات الائتمان - الكتيب العملي من Kaggle. تختلف بنية اكتشاف الاحتيال في الوقت الفعلي عن كشف الاحتيال المستند إلى عمليّات الاحتيال، وتتّسم بالآتي:

  • تردّد مرتفع (على سبيل المثال، 1000 في الثانية) من طلبات التنبؤ
  • وقت الاستجابة البطيء (على سبيل المثال أقل من ثانية واحدة) لطلب البحث المتوقع ← الاستجابة
  • عادةً ما يكون التوقع لكل عينة واحدة لكل طلب توقع أو يمكن أن يكون "على دفعات صغيرة" (مثال: 1,000 معاملة تم إرسالها كدُفعة للاستنتاج في الوقت الفعلي تقريبًا)
  • يجب أن تكون هندسة الميزات للعرض محسوبة مسبقًا أو محسوبة في الوقت الفعلي

مجموعة البيانات السابقة لـ 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، توفّر مواضيع نشر/اشتراك عامة تشمل معاملات دفع عبر البث المباشر، ويمكن للمستخدمين اختبار نقاط نهاية النماذج وميزات البث بسهولة. النشر/الاشتراك هي خدمة مراسلة غير متزامنة وقابلة للتوسع. ستستخدم هذه المواضيع لبثّ ميزات البث المباشر والاستنتاج على الإنترنت. يمكن للمستخدمين أيضًا التبديل بين المواضيع التي لها معدلات احتيال أساسية أو أعلى من حيث معدّلات الاحتيال لعرض ميزة مراقبة النماذج. تتوفّر مواضيع النشر/الاشتراك العلنية التالية:

  • ff-tx
  • ff-txlabels

4. إعداد المشروع ومثيل ورقة الملاحظات

ستحتاج إلى مشروع على Google Cloud Platform مع تفعيل الفوترة لتشغيل هذه الميزة الاختبارية. لإنشاء مشروع، اتّبِع التعليمات.

مهم: ننصحك بتشغيل هذا التمرين في مشروع جديد. يتناول هذا التمرين المعملي العديد من المنتجات المختلفة، ويسهل عليك حذف المشروع بالكامل بعد الانتهاء من التمرين.

عندما يكون لديك مشروع، يرجى المتابعة من خلال الخطوات التالية. يمكن أيضًا العثور على الخطوات التالية في ملف README.md في المستودع.

الخطوة 1: تفعيل واجهات برمجة التطبيقات

أولاً، انتقِل إلى المشروع الذي أنشأته وافتح cloud Shell. قد تستغرق هذه الخطوة بضع دقائق لأنها ستؤدي إلى توفير Cloud Shell جديد إذا لم يسبق لك تفعيل إحداها.

Cloud Shell

بعد ذلك، يمكنك تنفيذ الرمز البرمجي التالي في Cloud Shell عن طريق النسخ واللصق. سيفعِّل النص البرمجي واجهات برمجة التطبيقات اللازمة وسينشئ اشتراكات النشر/الاشتراك لقراءة معاملات البث من مواضيع النشر/الاشتراك العلنية. يُرجى الانتظار بعض الوقت لتنفيذ جميع الأوامر.

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 (notebook API) في حال عدم تفعيلها.

Notebook_api

بعد تفعيل هذه الملاحظات، اختَر المفكرات التي يديرها المستخدم:

Notebooks_UI

ثم اختَر مفكرة جديدة. يمكنك اختيار Python 3.

new_notebook

أدخِل اسمًا لدفتر الملاحظات، مثل fraudfinder، ثم انقر على الإعدادات المتقدّمة.

create_notebook

ملاحظة مهمة: تأكَّد من اختيار "Service Account" ضمن "Permissions".

حساب الخدمة

ملاحظة مُهمة: ضمن الأمان، اختَر "تفعيل الوحدة الطرفية". إذا لم يكن مفعّلاً من قبل.

enable_terminal

ويمكنك ترك جميع الإعدادات المتقدّمة الأخرى كما هي.

بعد ذلك، انقر على إنشاء. ستستغرق عملية توفير المثيل بضع دقائق.

بعد إنشاء المثيل، اختَر فتح JupyterLab.

open_jupyterlab

الخطوة 3: ضبط أدوار "إدارة الهوية وإمكانية الوصول"

ولتبسيط الأمر، لنفترض أنّك ستستخدم حساب الخدمة التلقائي في Compute Engine. هذه ليست أفضل ممارسة في ما يتعلّق بأعباء العمل المتعلقة بالإنتاج. وأفضل الممارسات هي إنشاء حسابات خدمة مخصّصة لكل تطبيق وتجنُّب استخدام حسابات الخدمة التلقائية. يمكنك الاطّلاع على مزيد من المعلومات عن أفضل الممارسات المتعلّقة بحساب الخدمة في مستنداتنا. سيبدو حساب خدمة 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: استنساخ مستودع جيت هب

بمجرد إنشاء مثيل دفتر الملاحظات والوصول إليه، يحين وقت إعداد بيئتك. افتح أولاً نافذة المحطة الطرفية.

فتح Terminal

انسخ الأمر التالي والصقه في الوحدة الطرفية لورقة الملاحظات:

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

يؤدي تشغيل هذا الأمر إلى إنشاء نسخة طبق الأصل من مستودع FraudFinder على مثيل ورقة الملاحظات. بعد تشغيل git clone، ستجد مجلّد أداة البحث عن الاحتيال في مثيل دفتر الملاحظات على اليمين. الانتقال الآن إلى: مجلد fraudfinder ستجد هنا دفاتر الملاحظات اللازمة للمختبر.

ومن الأقسام التالية فصاعدًا، يتوقع منك اتباع التعليمات الواردة في دفاتر الملاحظات. يُرجى مواصلة إعداد البيئة.

5- إعداد البيئة

سيستعرض هذا القسم الخطوات للمساعدة في إعداد بيئة مشروعك. في هذا القسم، ستتناول أهداف التعلّم التالية:

  • يمكنك إعداد بيئتك، بما في ذلك الحِزم.
  • تحميل البيانات إلى BigQuery.
  • قراءة البيانات من مواضيع النشر/الاشتراك العلنية

يُرجى المتابعة باستخدام الدفتر التالي واتّباع التعليمات خطوة بخطوة:

  • 00_environment_setup.ipynb

6- تحليل البيانات الاستكشافية

سيعلمك هذا القسم كيفية إجراء تحليل بيانات استكشافي لفهم بيانات الاحتيال بشكل أفضل. في هذا القسم، ستتناول أهداف التعلّم التالية:

  • استخراج البيانات واستكشافها من BigQuery باستخدام SQL
  • رسم بيانات المعاملات باستخدام BigQuery وPlotly
  • تطبيق تجميعات البيانات وإنشاء مخطط مبعثر

يرجى المتابعة مع الدفتر التالي واتباع التعليمات خطوة بخطوة:

  • 01_exploratory_data_analysis.ipynb

7. حزمة هندسة الميزات والبث

سوف تعمل في هذا القسم على هندسة الخصائص لإنشاء ميزات لتدريب النماذج من البيانات الأولية. سنستخدم التجميع والبث. تُعد كلتا حالتي الاستخدام مهمتين لرصد الاحتيال. في هذا القسم، ستتناول أهداف التعلّم التالية:

  • كيفية إنشاء ميزات باستخدام BigQuery وSQL
  • إنشاء متجر ميزات Vertex AI وإدراج البيانات
  • كيفية التعامل مع بيانات البثّ ونقلها إلى "متجر الميزات"

يرجى المتابعة مع المفكرتين التاليين بهذا الترتيب واتباع التعليمات الواردة في المفكرات:

  • 02_feature_engineering_batch.ipynb
  • 03_feature_engineering_streaming.ipynb

8. تدريب النموذج والتنبؤ وإضفاء الطابع الرسمي والمراقبة

في هذا القسم، سيتم تدريب النموذج الأول لنموذج BigQuery ونشره لرصد حالات الاحتيال المحتمَلة. ستتعلم أيضًا كيفية أخذ رمز التدريب والنشر وإضفاء الطابع الرسمي عليه في مسار آلية. ستتعلم أيضًا كيفية وضع تنبؤات عبر الإنترنت ومراقبة نموذجك في الإنتاج. في هذا القسم، ستتناول أهداف التعلُّم التالية:

  • طريقة تدريب نموذج تعلُّم الآلة في BigQuery وتسجيله في سجلّ نماذج Vertex AI
  • نشر النموذج كنقطة نهاية على Vertex AI
  • طريقة استخدام حزمة تطوير البرامج (SDK) لـ Vertex AI
  • كيفية استخدام نموذج تعلُّم الآلة في BigQuery وإنشاء مسار تعلُّم شامل
  • كيفية استخدام ميزة تتبُّع نماذج Vertex AI

يرجى متابعة دفاتر الملاحظات التالية بهذا الترتيب واتباع التعليمات الواردة في المفكرات. يمكن العثور على دفاتر الملاحظات في مجلد 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. تنظيف

ننصحك بتشغيل هذا التمرين في مشروع جديد. يتناول هذا التمرين المعملي العديد من المنتجات المختلفة، لذا من الأسهل لك حذف المشروع بالكامل بعد الانتهاء من التمرين المعملي. في المستندات، يمكنك العثور على مزيد من المعلومات حول كيفية حذف المشروع.

إذا كنت تريد حذف الخدمات بدلاً من ذلك، يرجى اتباع التعليمات الواردة في دفاتر الملاحظات أو حذف الموارد التي تم إنشاؤها.