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 العديد من المنتجات المختلفة لدعم مهام سير العمل الشاملة لتعلُّم الآلة. سيركّز هذا التمرين المعملي على المنتجات الموضّحة أدناه: AutoML للبيانات الجدولية وPrediction وWorkbench.

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

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

يجب أن يكون لديك مشروع على Google Cloud Platform مع تفعيل الفوترة لتتمكّن من تنفيذ هذا الدرس العملي. لإنشاء مشروع، اتّبِع التعليمات هنا.

الخطوة 1: تفعيل Compute Engine API

انتقِل إلى 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: فتح دفتر الملاحظات

بعد إنشاء المثيل، انقر على فتح 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. بعد ذلك، انقر على متابعة:

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

يجب أن يظهر لك ما يلي بعد استيراد مجموعة البيانات:

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

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

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

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

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

في هذا الدرس التطبيقي، سنستخدم AutoML للتدريب.

الخطوة 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 من "مشغّل التطبيقات" (Launcher):

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

في دفتر الملاحظات، نفِّذ ما يلي في خلية لتثبيت حزمة تطوير البرامج (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، وانتقِل إلى "مساحة التخزين"، واختَر الحزمة، ثم انقر على "حذف":

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