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

1. مقدمة

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

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

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

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

البدء بالتوقّع باستخدام ML API:

  1. وظائف Java Cloud لبدء طلب نقطة نهاية نموذج AutoML المنشور الذي يتلقّى تفاصيل الفيلم كطلب من واجهة المستخدم، ويعرض النتيجة المتوقّعة للفيلم

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

5ae50607c0f2db20.png

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

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

ما ستُنشئه

ستنشئ

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

2. المتطلبات

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

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

إنشاء مشروعك

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

تفعيل Cloud Shell

  1. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومزوّدة مسبقًا بـ bq: من Cloud Console، انقر على Activate Cloud Shell (تفعيل 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 لتنفيذ طلبات البحث. تظهر "مساحة عمل 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

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

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

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

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 Functions، سنستخدم pom.xml لمعالجة التبعيات. نستخدم مكتبة google-cloud-aiplatform للاستفادة من واجهة برمجة التطبيقات لنقطة نهاية Vertex AI AutoML.

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

a68272022df062f2.png

  1. في الصفحة التالية، اختَر Runtime (Java 11) وSource Code (Inline or upload) (الرمز المصدر (مضمّن أو تم تحميله)) وابدأ التعديل.

13df616369ca5951.png

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

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

7- تَنظيم

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

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

8. تهانينا

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