1. نظرة عامة
في هذا التمرين العملي، ستتعرّف على كيفية إنشاء نظام متكامل من البيانات إلى الذكاء الاصطناعي للكشف عن الاحتيال في الوقت الفعلي على 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. من البيانات الأولية إلى الذكاء الاصطناعي باستخدام Vertex AI وBigQuery
يغطّي هذا المختبر أحدث منتجات تحليل البيانات والذكاء الاصطناعي المتوفّرة على Google Cloud، مثل Vertex AI وBigQuery ML. تسهّل Vertex AI وBigQuery الانتقال من البيانات الأولية إلى الذكاء الاصطناعي، وتوفّران تجربة تطوير سلسة لمساعدتك في زيادة إنتاجيتك عند طرح نماذجك في مرحلة الإنتاج. إذا كنت بحاجة إلى أي دعم، يُرجى الاطّلاع على صفحة الدعم.
تتضمّن Vertex AI العديد من المنتجات المختلفة لدعم مهام سير العمل الشاملة من البيانات إلى الذكاء الاصطناعي. في ما يلي نظرة عامة على جميع إمكانات Vertex AI:

3- حالة استخدام FraudFinder والبيانات
FraudFinder هي سلسلة من دفاتر الملاحظات التي تعلّم كيفية الاستفادة من البيانات الشاملة في رحلة الذكاء الاصطناعي على Google Cloud، وذلك من خلال حالة استخدام ميزة "رصد الاحتيال في الوقت الفعلي". خلال دفاتر الملاحظات، ستتعلّم كيفية قراءة بيانات معاملات الدفع السابقة المخزَّنة في مستودع بيانات، والقراءة من بث مباشر للمعاملات الجديدة، وإجراء تحليل استكشافي للبيانات (EDA)، وإجراء هندسة الخصائص، واستيعاب الميزات في مستودع الميزات، وتدريب نموذج باستخدام مستودع الميزات، وتسجيل النموذج في سجلّ النماذج، وتقييم النموذج، ونشر النموذج في نقطة نهاية، وإجراء استنتاج في الوقت الفعلي على النموذج باستخدام مستودع الميزات، ورصد النموذج.
يشمل الكشف عن الاحتيال التصنيف والكشف عن الحالات الشاذة، وهما مجالان واسعان في التعلّم الآلي. وهذا يجعل من عملية الكشف عن الاحتيال حالة استخدام جيدة لقصة واقعية يسهل فهمها، كما أنّها طريقة رائعة لعرض البيانات المتكاملة لبنية الذكاء الاصطناعي على Google Cloud. ليس من الضروري أن تكون خبيرًا في مكافحة الاحتيال لفهم بنية النظام المتكاملة. يمكن تطبيق نمط البنية على حالات استخدام أخرى.
في ما يلي نظرة عامة على بنية FraudFinder:

مجموعة البيانات
تم إنشاء مجموعة البيانات باستخدام الرمز البرمجي من مشروع "تعلُّم الآلة لرصد الاحتيال في بطاقات الائتمان" - دليل عملي من Kaggle. يختلف اكتشاف الاحتيال في الوقت الفعلي من الناحية الهندسية عن اكتشاف الاحتيال المستند إلى الدفعات، ويتميّز بما يلي:
- عدد كبير من طلبات التوقّع (مثل 1,000 طلب في الثانية)
- وقت استجابة منخفض (مثل أقل من ثانية واحدة) لطلب التوقّع → الرد
- عادةً ما يتم إجراء التوقّع لكل عيّنة في طلب التوقّع أو يمكن أن يكون في "دُفعات صغيرة" (مثل 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، تتوفّر مواضيع Pub/Sub عامة تتضمّن معاملات دفع للبث المباشر، ويمكن للمستخدمين اختبار نقاط نهاية النماذج وميزات البث بسهولة. Pub/Sub هي خدمة مراسلة غير متزامنة وقابلة للتوسّع. ستستخدم هذه المواضيع لبث الميزات وإجراء استنتاج حي. يمكن للمستخدمين أيضًا التبديل بين المواضيع التي تتضمّن معدّلات أساسية ومعدّلات أعلى للاحتيال لعرض عملية مراقبة النموذج. تتوفّر مواضيع Pub/Sub العامة التالية:
ff-txff-txlabels
4. إعداد مشروعك ومثيل دفتر الملاحظات
يجب أن يكون لديك مشروع على Google Cloud Platform مع تفعيل الفوترة لتتمكّن من إجراء هذا التمرين العملي. لإنشاء مشروع، اتّبِع التعليمات.
ملاحظة مهمة: ننصحك بتشغيل هذا المختبر في مشروع جديد. يغطّي هذا الدرس التطبيقي العديد من المنتجات المختلفة، ويكون من الأسهل حذف المشروع بأكمله بعد الانتهاء من الدرس.
عندما يكون لديك مشروع، يُرجى مواصلة اتّباع الخطوات التالية. يمكنك أيضًا العثور على الخطوات التالية في ملف README.md في المستودع.
الخطوة 1: تفعيل واجهات برمجة التطبيقات
أولاً، انتقِل إلى المشروع الذي أنشأته للتو وافتح Cloud Shell. قد تستغرق هذه الخطوة بضع دقائق لأنّها ستوفّر Cloud Shell جديدًا إذا لم يسبق لك تفعيله.

بعد ذلك، نفِّذ الرمز التالي في Cloud Shell من خلال نسخه ولصقه. سيتيح النص البرمجي واجهات برمجة التطبيقات اللازمة وينشئ اشتراكات 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 Workbench (notebook API) إذا لم تكن مفعّلة.

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

بعد ذلك، انقر على دفتر ملاحظات جديد. يمكنك اختيار Python 3.

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

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

ملاحظة مهمة: ضمن الأمان، انقر على "تفعيل الجهاز" إذا لم يكن مفعّلاً.

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

الخطوة 3: ضبط أدوار إدارة الهوية وإمكانية الوصول
لتبسيط الأمر، لنفترض أنّك ستستخدم حساب الخدمة التلقائي في Compute Engine. هذه ليست أفضل ممارسة لأحمال العمل في مرحلة الإنتاج. من أفضل الممارسات إنشاء حسابات خدمة مخصّصة لكل تطبيق، وتجنُّب استخدام حسابات الخدمة التلقائية. يمكنك الاطّلاع على مزيد من المعلومات حول أفضل ممارسات حسابات الخدمة في المستندات. سيبدو حساب خدمة الحوسبة التلقائي على النحو التالي: 123456789123-compute@developer.gserviceaccount.com. انتقِل إلى مشرف إدارة الهوية وإمكانية الوصول، ثم انقر على ADD. في طريقة العرض، ابحث عن حساب الخدمة التلقائي في Compute Engine واختَره، ثمّ خصِّص الأدوار التالية:
BigQuery AdminStorage AdminStorage Object AdminVertex AI AdministratorPub/Sub Admin
يجب أن يبدو على النحو التالي. لا تنسَ حفظ الإعدادات الجديدة.

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

انسخ الأمر التالي وألصقه ونفِّذه في وحدة طرفية لدفتر الملاحظات:
git clone https://github.com/GoogleCloudPlatform/fraudfinder.git
سيؤدي تنفيذ هذا الأمر إلى استنساخ مستودع FraudFinder في مثيل دفتر الملاحظات. بعد تشغيل git clone، ستجد مجلد fraudfinder في مثيل دفتر الملاحظات الخاص بك على اليمين. انتقِل الآن إلى المجلد fraudfinder. ستجد هنا دفاتر الملاحظات اللازمة للدرس التطبيقي.
من الأقسام التالية فصاعدًا، يُتوقّع منك اتّباع التعليمات الواردة في دفاتر الملاحظات. يُرجى مواصلة عملية إعداد البيئة.
5- إعداد البيئة
سنتناول في هذا القسم الخطوات التي تساعدك في إعداد بيئة مشروعك. في هذا القسم، سنتناول أهداف التعلّم التالية:
- إعداد البيئة، بما في ذلك الحِزم
- حمِّل البيانات إلى BigQuery.
- قراءة البيانات من مواضيع Pub/Sub العامة
يُرجى مواصلة استخدام دفتر الملاحظات التالي واتّباع التعليمات خطوة بخطوة:
00_environment_setup.ipynb
6. تحليل البيانات الاستكشافية
سيعلّمك هذا القسم كيفية إجراء تحليل استكشافي للبيانات من أجل فهم بيانات الاحتيال بشكل أفضل. في هذا القسم، سنتناول أهداف التعلّم التالية:
- استخراج البيانات واستكشافها من BigQuery باستخدام لغة SQL
- رسم بيانات المعاملات باستخدام BigQuery وPlotly
- تطبيق عمليات تجميع البيانات وإنشاء رسم بياني بالنقاط المبعثرة
يُرجى الانتقال إلى دفتر الملاحظات التالي واتّباع التعليمات خطوة بخطوة:
01_exploratory_data_analysis.ipynb
7. معالجة هندسة الخصائص على دفعات وبث
في هذا القسم، ستعمل على هندسة الميزات لإنشاء ميزات لتدريب النموذج من البيانات الأولية. سنستخدم المعالجة المجمّعة والمعالجة المتدفقة. من المهم تغطية كلتا حالتَي الاستخدام للكشف عن الاحتيال. في هذا القسم، سنتناول أهداف التعلّم التالية:
- كيفية إنشاء ميزات باستخدام BigQuery وSQL
- إنشاء Vertex AI Feature Store وإدراج البيانات
- كيفية التعامل مع بيانات البث وإدخالها إلى Feature Store
يُرجى مواصلة استخدام دفترَي الملاحظات التاليَين بهذا الترتيب واتّباع التعليمات الواردة فيهما:
02_feature_engineering_batch.ipynb03_feature_engineering_streaming.ipynb
8. تدريب النماذج وإجراء التوقّعات وصياغتها ومراقبتها
في هذا القسم، ستدرّب نموذج BigQuery Model الأول وتنشره لرصد حالات الاحتيال المحتملة. ستتعلّم أيضًا كيفية أخذ رمز التدريب والتفعيل وتحويله إلى مسار آلي. ستتعرّف أيضًا على كيفية إجراء توقّعات على الإنترنت ومراقبة نموذجك أثناء الإنتاج. في هذا القسم، سنتناول أهداف التعلّم التالية:
- كيفية تدريب نموذج BigQuery ML وتسجيله في "سجلّ نماذج Vertex AI"
- تفعيل النموذج كنقطة نهاية على Vertex AI
- كيفية استخدام حزمة تطوير البرامج (SDK) في Vertex AI
- كيفية استخدام نموذج BigQuery ML لإنشاء مسار متكامل لتعلُّم الآلة
- كيفية استخدام Vertex AI Model Monitoring
يُرجى مواصلة استخدام دفاتر الملاحظات التالية بهذا الترتيب واتّباع التعليمات الواردة فيها. يمكن العثور على دفاتر الملاحظات في مجلد BQML. اتّبِع الخطوات التالية في دفتر الملاحظات:
04_model_training_and_prediction.ipynb05_model_training_pipeline_formalization.ipynb06_model_monitoring.ipynb07_model_inference.ipynb
🎉 Congratulations! 🎉
لقد تعرّفت على كيفية إنشاء بنية أساسية للبيانات والذكاء الاصطناعي على Google Cloud.
9- تنظيف
ننصحك بتنفيذ هذا الدرس التطبيقي في مشروع جديد. يغطّي هذا الدرس التطبيقي العديد من المنتجات المختلفة، لذا من الأسهل حذف المشروع بأكمله بعد الانتهاء من الدرس. يمكنك العثور على مزيد من المعلومات حول كيفية حذف المشروع في المستندات.
إذا كنت تريد حذف الخدمات بدلاً من ذلك، يُرجى اتّباع التعليمات الواردة في Notebooks أو حذف الموارد التي تم إنشاؤها.