توقُّع تقييم الأفلام باستخدام Vertex AI AutoML

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، سننشئ نموذجًا لتوقّع نتائج الأفلام باستخدام Vertex AI AutoML ونشغِّل نقطة نهاية النموذج المفعّلة من دوال Java Cloud. يتم تدريب النموذج باستخدام البيانات المخزَّنة في BigQuery وتسجيله في Vertex AI. يمكن إنشاء قائمة الخدمات في قسمَين:

  1. إنشاء نموذج تعلُّم الآلة ونشره
  2. التشغيل للتوقّع باستخدام واجهة برمجة تطبيقات تعلُّم الآلة

إنشاء نموذج تعلُّم الآلة:

  1. البيانات الصادرة من CSV إلى BigQuery
  2. دمج بيانات BigQuery في Vertex AI لإنشاء نماذج AutoML
  3. تم نشر النموذج في Vertex AI model Registry لإنشاء واجهة برمجة تطبيقات نقطة النهاية.

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

  1. تؤدي دوال Java Cloud لتشغيل استدعاء نقطة نهاية نموذج AutoML الذي تم نشره والتي تأخذ تفاصيل الفيلم حسب الطلب من واجهة المستخدم، ويتم عرض الفيلم المتنبأ به POINT.

فيما يلي نظرة عامة عالية المستوى حول التصميم المعماري للتطبيق:

5ae50607c0f2db20.png

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

لنطّلِع على خطوات التنفيذ.

ما الذي ستقوم ببنائه

ستقوم بإنشاء

  • مجموعة بيانات BigQuery لتحتوي على مكونات الجدول والنموذج
  • نموذج Vertex AI AutoML (إنشاء ونشر)
  • تشغيل دوال Java Cloud للتنبؤ باستخدام واجهة برمجة تطبيقات تعلّم الآلة

2. المتطلبات

  • متصفح، مثل Chrome أو Firefox
  • مشروع على Google Cloud تم تفعيل الفوترة فيه

في ما يلي المتطلبات الأساسية:

إنشاء مشروعك

  1. في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. انتقِل إلى BigQuery لتفعيل واجهة برمجة التطبيقات. يمكنك أيضًا فتح واجهة مستخدم الويب في BigQuery مباشرةً عن طريق إدخال عنوان URL التالي في متصفّحك: https://console.cloud.google.com/bigquery

تفعيل Cloud Shell

  1. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud وتكون محمَّلة مسبقًا بـ bq: من Cloud Console، انقر على Activate Cloud Shell في أعلى يسار الشاشة: 6757b2fb50ddcc2d.png
  2. بعد الربط بخدمة Cloud Shell، من المفترض أن يظهر لك أنّه قد تمت مصادقتك وأنّ المشروع معيّن سبق أن تم ضبطه على رقم تعريف مشروعك. شغِّل الأمر التالي في Cloud Shell لتأكيد مصادقتك:
gcloud auth list
  1. شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك
gcloud config list project
  1. إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <PROJECT_ID>

يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها.

3- جارٍ إعداد بيانات التدريب

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

4. إنشاء مجموعة البيانات وتحميلها

مجموعة بيانات BigQuery هي مجموعة من الجداول. يتم تخزين جميع الجداول في مجموعة بيانات في موقع البيانات نفسه. يمكنك أيضًا إرفاق عناصر تحكّم مخصّصة في الوصول لفرض قيود على الوصول إلى مجموعة بيانات وجداولها.

  1. في Cloud Shell، استخدِم الأمر bq mk لإنشاء مجموعة بيانات تُسمى "movies".
bq mk --location=<<LOCATION>> movies

اضبط الموقع الجغرافي على منطقة (asia-south1). تذكَّر ضبط المنطقة الخاصة بخطوة VERTEX AI أيضًا (يجب أن تكون كلتا الوجهتَين في المنطقة نفسها).

  1. تأكد من أن ملف البيانات (.csv) جاهز. نفِّذ الأوامر التالية في Cloud Shell لاستنساخ المستودع وانتقِل إلى المشروع:
git clone <<repository link>>

cd movie-score
  1. استخدم أمر bq load لتحميل ملف CSV في جدول BigQuery (يُرجى ملاحظة أنه يمكنك أيضًا التحميل مباشرة من واجهة مستخدم BigQuery):
bq load --source_format=CSV --skip_leading_rows=1 movies.movies_score \
./movies_bq_src.csv \ Id:numeric,name:string,rating:string,genre:string,year:numeric,released:string,score:string,director:string,writer:string,star:string,country:string,budget:numeric,company:string,runtime:numeric,data_cat:string
  1. طلب البحث بإحدى الطرق الثلاث:

يمكننا التفاعل مع BigQuery بثلاث طرق، فسنجرب طريقتين مما يلي: أ. واجهة مستخدم الويب في BigQuery، ب. الأمر bq c. واجهة برمجة التطبيقات

SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

لقد استخدمت BigQuery Web SQL Workspace لتشغيل الاستعلامات. تظهر مساحة عمل SQL على النحو التالي:

109a0b2c7155e9b3.png

استخدام الأمر bq:

bq query --use_legacy_sql=false \
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;

5- استخدام بيانات BigQuery في Vertex AI AutoML

استخدِم بياناتك من BigQuery لإنشاء نموذج AutoML مباشرةً باستخدام Vertex AI. تذكر أنه يمكننا أيضًا تنفيذ AutoML من BigQuery نفسه وتسجيل النموذج باستخدام VertexAI وكشف نقطة النهاية. راجِع مستندات BigQuery AutoML. في هذا المثال، سنستخدم Vertex AI AutoML لإنشاء نموذجنا.

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

انتقِل إلى Vertex AI من Google Cloud Console، وفعِّل واجهة Vertex AI API إذا لم يسبق لك ذلك، ووسِّع البيانات واختَر "مجموعات البيانات"، ثم انقر على "إنشاء مجموعة بيانات"، واختَر نوع البيانات "TABULAR" (الانحدار / التصنيف). وانقر فوق إنشاء:

4104c75c34cbd2d9.png

اختيار مصدر البيانات

في الصفحة التالية، اختَر مصدر بيانات. اختَر "اختيار جدول أو طريقة عرض من BigQuery" وحدد الجدول من BigQuery في الحقل BROWSE مسار BigQuery. انقر على "متابعة".

تذكير: يجب أن تتضمّن مجموعات بيانات BigQuery وVertex AI المنطقة نفسها كي يظهر جدول BigQuery في Vertex AI.

b787ef18dbca4cff.png

عند تحديد جدول/عرض المصدر، من قائمة التصفح، تذكر النقر على زر الاختيار لمتابعة الخطوات أدناه. إذا قمت بالنقر عن طريق الخطأ على اسم الجدول/طريقة العرض، فسيتم نقلك إلى Dataplex. ما عليك سوى الرجوع إلى Vertex AI إذا حدث لك ذلك.

تدريب النموذج

  1. عند إنشاء مجموعة البيانات، يُفترض أن تشاهد صفحة "التحليل" التي تحتوي على خيار تدريب نموذج جديد. انقر على:

bf095263d57106de.png

  1. اترك "الهدف" كتصنيف، واختَر خيار AutoML في الصفحة الأولى، ثم انقر على "متابعة": e50597bc3f29894c.png
  2. أدخِل اسمًا للنموذج واختَر اسم العمود المستهدَف باسم "الدرجة". من القائمة المنسدلة التي تظهر، ثم انقر على "متابعة".
  3. لاحظ أيضًا أنه يمكنك التحقق من "تصدير مجموعة بيانات الاختبار إلى BigQuery" ، والذي يسهل الاطلاع على مجموعة الاختبار بالنتائج في قاعدة البيانات بكفاءة بدون طبقة تكامل إضافية أو الحاجة إلى نقل البيانات بين الخدمات.
  4. في الصفحة التالية، يتوفر لك خيار تحديد أي خيارات تدريب متقدمة تحتاجها والساعات التي تريد ضبط النموذج لتدريبه. يرجى ملاحظة أنك قد ترغب في وضع الأسعار في الاعتبار قبل زيادة عدد ساعات العقدة التي تريد استخدامها للتدريب.

انقر على "بدء التدريب" لبدء تدريب النموذج الجديد.

e72b004a17849bd.png

تقييم النموذج ونشره واختباره

بمجرد اكتمال التدريب، يُفترض أن تكون قادرًا على النقر فوق "التدريب" (ضمن عنوان "تطوير النموذج" في القائمة الجانبية اليسرى) والاطلاع على تدريبك مدرجًا في قسم "مسارات التدريب". انقر فوقها للوصول إلى صفحة "عارض النماذج". من المفترض أن يكون بإمكانك:

  1. عرض نتائج التدريب وتقييمها 4767b4bbd7cf93fa.png
  2. نشر النموذج واختباره باستخدام نقطة نهاية واجهة برمجة التطبيقات

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

95fb4495618174f0.png

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

6- دالة Java Cloud لتشغيل استدعاء تعلُّم الآلة

هل تتذكر كيف لدينا نقطة النهاية والتفاصيل الأخرى من خطوة نشر تعلُّم الآلة؟ سنستخدم ذلك هنا، وبما أنّنا نستخدم دوال Java Cloud، سنستخدم ملف pom.xml للتعامل مع التبعيات. نستخدم مكتبة google-cloud-aiplatform لاستخدام واجهة برمجة تطبيقات نقطة النهاية Vertex AI AutoML.

  1. ابحث عن Cloud Functions في "وحدة تحكُّم Google Cloud" وانقر على "إنشاء دالة".
  2. أدخِل تفاصيل الإعدادات، مثل البيئة، واسم الدالة، والمنطقة، والمشغِّل (في هذه الحالة، HTTPS)، والمصادقة التي تختارها، ثم فعِّل الخيار "طلب HTTPS". وانقر على التالي/حفظ

a68272022df062f2.png

  1. في الصفحة التالية، اختَر "بيئة التشغيل" (Java 11) و"رمز المصدر" (مضمّن أو تحميل) وابدأ التعديل.

13df616369ca5951.png

  1. انسَخ ملفات java وpom.xml من Repo والصِقها في الملفات المعنية في المحرِّر المضمَّن، إذا كنت تستخدم المحرِّر المحلي (يُنصَح بذلك)، ثم استنساخ المصدر من Repo
  2. يمكنك تغيير معرّف المشروع ومعرّف نقطة النهاية والموقع ونقطة النهاية في ملف المصدر java. لهذا المثال، ولكن يُرجى ملاحظة أن أفضل الممارسات هي استخدام المدير السري لتخزين بيانات الاعتماد.
  3. بالنسبة إلى نطاق هذا الدرس التطبيقي، يُرجى التعليق على أجزاء MongoDB في الفئة java. في رمز المصدر المنسوخ.

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

7. تَنظيم

لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المُستخدَمة في هذه المشاركة، يُرجى اتّباع الخطوات التالية:

  1. في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة إدارة الموارد.
  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
  3. في مربّع الحوار، اكتب معرّف المشروع، ثم انقر على "إيقاف التشغيل" لحذف المشروع.

8. تهانينا

تهانينا! لقد أنشأت بنجاح نموذج توقّع نتائج الفيلم في Vertex AI AutoML ونشرته وشغّلت النموذج المنشور من Cloud Functions.