Vertex AI: إنشاء نموذج لرصد الاحتيال باستخدام AutoML

1. نظرة عامة

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

المعلومات التي تطّلع عليها

ستتعرّف على كيفية:

  • تحميل مجموعة بيانات مُدارة إلى Vertex AI
  • تدريب نموذج باستخدام AutoML
  • نشر نموذج AutoML المدرَّب في نقطة نهاية واستخدام نقطة النهاية هذه للحصول على توقّعات

تبلغ التكلفة الإجمالية لتنفيذ هذا البرنامج التدريبي على Google Cloud حوالي 22 دولار أمريكي.

2. مقدمة عن Vertex AI

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

تتضمّن Vertex AI العديد من المنتجات المختلفة لدعم سير عمل تعلُّم الآلة من البداية إلى النهاية. سيركّز هذا التمرين المعملي على المنتجات المميّزة أدناه: "الذكاء الاصطناعي التلقائي" للبيانات في شكل جداول، وميزة "التوقّعات"، و"Workbench".

نظرة عامة على منتجات Vertex

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

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

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

انتقِل إلى Compute Engine واختَر تفعيل إذا لم يسبق لك تفعيله. ستحتاج إلى هذا لإنشاء مثيل دفتر الملاحظات.

الخطوة 2: تفعيل واجهة برمجة التطبيقات Vertex AI API

انتقِل إلى قسم Vertex AI في Cloud Console وانقر على تفعيل Vertex AI API.

لوحة بيانات Vertex

الخطوة 3: إنشاء مثيل Vertex AI Workbench

من قسم Vertex AI في Cloud Console، انقر على Workbench:

قائمة Vertex AI

من هناك، ضمن أجهزة الكمبيوتر الدفترية التي يديرها المستخدم، انقر على جهاز كمبيوتر دفتري جديد:

إنشاء دفتر ملاحظات جديد

بعد ذلك، اختَر أحدث إصدار من نوع المثيل TensorFlow Enterprise (مع قناة الدعم الطويل الأمد (LTS) بدون وحدات معالجة الرسومات:

مثيل TFE

استخدِم الخيارات التلقائية، ثم انقر على إنشاء.

الخطوة 5: فتح "دفتر ملاحظات Google"

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

فتح دفتر ملاحظات

البيانات التي سنستخدمها لتدريب النموذج هي من مجموعة بيانات رصد عمليات الاحتيال في بطاقات الائتمان هذه. سنستخدم إصدارًا من مجموعة البيانات هذه تمّت إتاحته للجميع في BigQuery.

4. إنشاء مجموعة بيانات مُدارة

في Vertex AI، يمكنك إنشاء مجموعات بيانات مُدارة لمجموعة متنوعة من أنواع البيانات. يمكنك بعد ذلك إنشاء إحصاءات حول مجموعات البيانات هذه واستخدامها لتدريب النماذج باستخدام AutoML أو رمز النموذج المخصّص الخاص بك.

الخطوة 1: إنشاء مجموعة بيانات

في قائمة Vertex في وحدة التحكّم، اختَر مجموعات البيانات:

اختيار مجموعات البيانات

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

من صفحة "مجموعات البيانات"، أدخِل اسمًا لمجموعة البيانات، ثم اختَر تنسيق جدولي والتكرار/التصنيف. بعد ذلك، أنشئ مجموعة البيانات:

إنشاء مجموعة بيانات

هناك بضعة خيارات لاستيراد البيانات إلى "مجموعات البيانات المُدارة" في Vertex:

  • تحميل ملف على الجهاز من الكمبيوتر
  • اختيار ملفات من Cloud Storage
  • اختيار البيانات من BigQuery

سنحمّل هنا البيانات من جدول BigQuery متاح للجميع.

الخطوة 2: استيراد البيانات من BigQuery

اختَر "اختيار جدول أو طريقة عرض من BigQuery" كطريقة الاستيراد، ثم انسخ ما يلي في مربّع جدول BigQuery: bigquery-public-data.ml_datasets.ulb_fraud_detection. بعد ذلك، انقر على متابعة:

استيراد بيانات BQ

يُفترض أن ترى شيئًا مثل ما يلي بعد استيراد مجموعة البيانات الخاصة بك:

البيانات المستورَدة

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

5- تدريب نموذج باستخدام AutoML

بعد تحميل مجموعة بيانات مُدارة، نكون جاهزين لتدريب نموذج باستخدام هذه البيانات. سنُدرِّب نموذج تصنيف للتنبؤ بما إذا كانت معاملة معيّنة احتيالية أم لا. تمنحك Vertex AI خيارَين لتدريب النماذج:

  • AutoML: يمكنك تدريب نماذج عالية الجودة بأقل جهد وبدون الحاجة إلى خبرة في تعلُّم الآلة.
  • التدريب المخصّص: يمكنك تشغيل تطبيقات التدريب المخصّص في السحابة الإلكترونية باستخدام إحدى حاويات Google Cloud المُنشأة مسبقًا أو استخدام حاويتك الخاصة.

في هذا الدرس التطبيقي، سنستخدم ميزة "الذكاء الاصطناعي التلقائي" للتدريب.

الخطوة 1: بدء مهمة التدريب

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

خطوة 1: تدريب النموذج

أدخِل اسمًا لنموذجك، أو يمكنك استخدام الاسم التلقائي. ضمن العمود المستهدَف، اختَر الفئة. هذا عدد صحيح يشير إلى ما إذا كانت معاملة معيّنة احتيالية أم لا (0 لغير الاحتيال، 1 للاحتيال).

بعد ذلك، انقر على متابعة:

خطوة 2: تدريب النموذج

في هذه الخطوة، انتقِل للأسفل وانقر على الخيارات المتقدّمة لتوسيع القائمة. بما أنّ مجموعة البيانات هذه غير متوازنة بشكل كبير (أقل من% 1 من البيانات تحتوي على معاملات احتيالية)، اختَر خيار AUC PRC الذي سيؤدي إلى زيادة دقة الاسترجاع إلى أقصى حدّ للفئة الأقل شيوعًا:

خيارات التدريب المتقدّم

اختَر متابعة ثم تابِع إلى الخطوة الأخيرة (الحوسبة والأسعار). أدخِل هنا 1 كعدد ساعات العُقد لميزانيتك، واترك ميزة الإيقاف المبكر مفعَّلة. عادةً ما يكون تدريب نموذج AutoML لمدة ساعة واحدة من الحساب بداية جيدة لمعرفة ما إذا كانت هناك علاقة بين السمات والعلامة التي اخترتها. بعد ذلك، يمكنك تعديل الميزات وتدريبها لفترة أطول لتحسين أداء النموذج. بعد ذلك، انقر على بدء التدريب.

ستصلك رسالة إلكترونية عند اكتمال مهمة التدريب. سيستغرق التدريب وقتًا أطول قليلاً من ساعة واحدة لمراعاة الوقت اللازم لإنشاء الموارد وإزالتها.

6- استكشاف مقاييس تقييم النماذج

في هذه الخطوة، سنرى مستوى أداء النموذج.

بعد اكتمال مهمة تدريب النموذج، انتقِل إلى علامة التبويب النماذج في Vertex. انقر على النموذج الذي درّبته للتو وألق نظرة على علامة التبويب تقييم. هناك العديد من مقاييس التقييم هنا، وسنركّز على مقياسَين: مصفوفة الالتباس وأهمية الميزة.

الخطوة 1: فهم مصفوفة التشويش

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

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

إذا اطّلعت على علامة التبويب تقييم، من المفترض أن تظهر لك مصفوفة ارتباك تبدو على النحو التالي (قد تختلف النسب المئوية الدقيقة):

مصفوفة نجاح التوقّعات

توضِّح مصفوفة التشويش أنّ النموذج الأوّلي قادر على تصنيف ‎85% من الأمثلة الاحتيالية في مجموعة الاختبار بشكل صحيح. وهذا أمر جيد جدًا، خاصةً بالنظر إلى عدم التوازن الكبير في مجموعة البيانات. بعد ذلك، يمكننا محاولة تدريب النموذج لدينا لعدد أكبر من ساعات الحوسبة لمعرفة ما إذا كان بإمكاننا تحسين هذا المعدّل بنسبة %85.

الخطوة 2: التركيز على أهمية الميزة

أسفل مصفوفة الالتباس، من المفترض أن يظهر لك رسم بياني لأهمية السمات على النحو التالي:

أهمية الميزة

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

سيكون هذا الرسم البياني أكثر إثارة إذا لم يتم حجب معظم الميزات في مجموعة البيانات. على سبيل المثال، قد نلاحظ أنّ نوع المعاملة (التحويل أو الإيداع وما إلى ذلك) هو المؤشر الأكبر على الاحتيال.

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

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

7- نشر النموذج على نقطة نهاية

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

الخطوة 1: إنشاء نقطة نهاية

في صفحة النموذج، انتقِل إلى علامة التبويب النشر والاختبار وانقر على النشر إلى نقطة النهاية:

النشر والاختبار

أدخِل اسمًا لنقطة النهاية، مثل fraud_v1، واترك إعدادات "إمكانية الوصول" على عادي وانقر على متابعة.

اترك إعدادات تقسيم الزيارات ونوع الجهاز على الإعدادات التلقائية، ثم انقر على تم ثم متابعة.

لن نستخدم ميزة "مراقبة النموذج" لنقطة النهاية هذه، لذا يمكنك عدم تحديدها والنقر على نشر. سيستغرق نشر نقطة النهاية بضع دقائق. عند اكتمال العملية، ستظهر علامة اختيار خضراء بجانبها:

نقطة نهاية تم نشرها

أنت على وشك الانتهاء. أنت الآن جاهز للحصول على توقّعات بشأن النموذج الذي تم نشره.

8. الحصول على توقّعات بشأن النموذج الذي تم نشره

هناك بضعة خيارات للحصول على توقّعات النماذج:

  • واجهة مستخدم Vertex AI
  • Vertex AI API

سنعرض كليهما هنا.

الخطوة 1: الحصول على توقّعات النماذج في واجهة المستخدم

في صفحة النموذج التي تظهر فيها نقطة النهاية (حيث توقفنا في الخطوة الأخيرة)، انتقِل للأسفل إلى قسم اختبار النموذج:

نموذج الاختبار

في ما يلي، اختارت Vertex AI قيمًا عشوائية لكل ميزة من ميزات النموذج التي يمكننا استخدامها للحصول على توقّع اختباري. يمكنك تغيير هذه القيم إذا أردت. انتقِل إلى أسفل الصفحة واختَر توقّع.

في قسم نتيجة التوقّع من الصفحة، من المفترض أن تظهر لك النسبة المئوية المتوقّعة لنموذجك لكل فئة. فعلى سبيل المثال، تعني نتيجة الثقة (0.99) للفئة "0" أنّ النموذج الخاص بك يعتقد أنّ هذا المثال غير احتيالي بنسبة% 99.

الخطوة 2: الحصول على توقّعات النماذج باستخدام واجهة برمجة التطبيقات Vertex AI API

يوفّر واجهة المستخدم طريقة رائعة للتأكّد من أنّ نقطة النهاية المنشورة تعمل على النحو المتوقّع، ولكن من المرجّح أن تحتاج إلى الحصول على توقّعات ديناميكية من خلال طلب REST API. لنوضِّح لك كيفية الحصول على توقّعات النموذج هنا، سنستخدم مثيل Vertex Workbench الذي أنشأته في بداية هذا الدرس العملي.

بعد ذلك، افتح مثيل دفتر الملاحظات الذي أنشأته، وافتح دفتر ملاحظات Python 3 من "مشغّل التطبيقات":

فتح ورقة ملاحظات

في دفتر الملاحظات، نفِّذ ما يلي في خلية لتثبيت حزمة تطوير البرامج (SDK) لـ Vertex:

!pip3 install google-cloud-aiplatform --upgrade --user

بعد ذلك، أضِف خلية في دفتر الملاحظات لاستيراد حزمة SDK وإنشاء إشارة إلى نقطة النهاية التي تم نشرها للتو:

from google.cloud import aiplatform

endpoint = aiplatform.Endpoint(
    endpoint_name="projects/YOUR-PROJECT-NUMBER/locations/us-central1/endpoints/YOUR-ENDPOINT-ID"
)

عليك استبدال قيمتَين في سلسلة endpoint_name أعلاه برقم مشروعك ونقطة النهاية. يمكنك العثور على رقم مشروعك من خلال الانتقال إلى لوحة بيانات المشروع والحصول على قيمة رقم المشروع.

يمكنك العثور على معرّف نقطة النهاية في قسم نقاط النهاية في وحدة التحكّم هنا:

العثور على رقم تعريف نقطة النهاية

أخيرًا، قم بتوقع لنقطة النهاية لديك عن طريق نسخ وتشغيل التعليمة البرمجية أدناه في خلية جديدة:

test_instance={
    'Time': 80422,
    'Amount': 17.99,
    'V1': -0.24,
    'V2': -0.027,
    'V3': 0.064,
    'V4': -0.16,
    'V5': -0.152,
    'V6': -0.3,
    'V7': -0.03,
    'V8': -0.01,
    'V9': -0.13,
    'V10': -0.18,
    'V11': -0.16,
    'V12': 0.06,
    'V13': -0.11,
    'V14': 2.1,
    'V15': -0.07,
    'V16': -0.033,
    'V17': -0.14,
    'V18': -0.08,
    'V19': -0.062,
    'V20': -0.08,
    'V21': -0.06,
    'V22': -0.088,
    'V23': -0.03,
    'V24': 0.01,
    'V25': -0.04,
    'V26': -0.99,
    'V27': -0.13,
    'V28': 0.003
}

response = endpoint.predict([test_instance])

print('API response: ', response)

من المفترض أن يظهر لك توقّع يقارب .67 لفئة 0، ما يعني أنّ النموذج يعتقد أنّ هناك احتمالًا بنسبة% 67 بأنّ هذه المعاملة ليست احتيالية.

🎉 تهانينا. 🎉

لقد تعلّمت كيفية استخدام Vertex AI لتنفيذ ما يلي:

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

لمزيد من المعلومات عن الأجزاء المختلفة من Vertex AI، اطّلِع على المستندات.

9. تنظيف

إذا أردت مواصلة استخدام دفتر البيانات الذي أنشأته في هذا الدرس العملي، ننصحك بإيقافه عندما لا يكون قيد الاستخدام. من واجهة مستخدم Workbench في Cloud Console، اختَر ورقة الملاحظات ثم انقر على إيقاف.

إذا أردت حذف دفتر الملاحظات بالكامل، ما عليك سوى النقر على الزر "حذف" في أعلى يسار الصفحة.

لحذف نقطة النهاية التي نشرتها، انتقِل إلى قسم نقاط النهاية في وحدة تحكُّم Vertex AI وإلغاء نشر النموذج من نقطة النهاية:

حذف نقطة النهاية

لحذف حزمة التخزين، استخدِم قائمة التنقّل في Cloud Console للانتقال إلى "مساحة التخزين"، واختَر الحزمة، ثم انقر على "حذف":

حذف مساحة التخزين