1. مقدمة
في هذا الدرس التطبيقي حول الترميز، سننشئ نموذجًا لتوقُّع تقييمات الأفلام باستخدام Vertex AI AutoML، وسنطلب تشغيل نقطة نهاية النموذج المنشور من خلال دوال Java Cloud. يتم تدريب النموذج باستخدام البيانات المخزّنة في BigQuery وتسجيله في Vertex AI. يمكن تقسيم قائمة الخدمات إلى قسمَين:
- إنشاء نماذج تعلُّم الآلة ونشرها
- مشغّل للتوقّع باستخدام واجهة برمجة التطبيقات الخاصة بتعلُّم الآلة
إنشاء نموذج تعلُّم الآلة:
- البيانات المصدر من ملف CSV إلى BigQuery
- دمج بيانات BigQuery في Vertex AI لإنشاء نموذج AutoML
- النموذج الذي تم نشره في "سجلّ نماذج Vertex AI" لإنشاء واجهة برمجة تطبيقات لنقطة النهاية
المشغّل الذي سيتم استخدامه للتوقّع باستخدام واجهة برمجة تطبيقات تعلُّم الآلة:
- دوال Java Cloud لتفعيل استدعاء نقطة نهاية نموذج AutoML الذي تم نشره والذي يتلقّى تفاصيل الأفلام كطلب من واجهة المستخدم، ويعرض النتيجة المتوقّعة للفيلم
في ما يلي نظرة عامة على البنية عالية المستوى للتطبيق:

لا يشمل هذا الدرس التطبيقي حول الترميز تطبيق البنية المذكورة أعلاه، ولكن إذا أردت تطوير تطبيق العميل أيضًا، يُرجى الرجوع إلى المدونة.
لنتعرّف على خطوات التنفيذ.
ما ستنشئه
ستنشئ
- مجموعة بيانات في BigQuery تحتوي على مكوّنات الجدول والنموذج
- نموذج Vertex AI AutoML (إنشاء النموذج وتفعيله)
- مشغّل Java Cloud Functions للتوقّع باستخدام واجهة برمجة تطبيقات تعلُّم الآلة
2. المتطلبات
في ما يلي المتطلبات الأساسية:
إنشاء مشروعك
- في Google Cloud Console، ضمن صفحة اختيار المشروع، اختَر مشروعًا على Google Cloud أو أنشِئه.
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
- انتقِل إلى BigQuery لتفعيل واجهة برمجة التطبيقات. يمكنك أيضًا فتح واجهة مستخدم الويب في BigQuery مباشرةً من خلال إدخال عنوان URL التالي في المتصفح: https://console.cloud.google.com/bigquery
تفعيل Cloud Shell
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud ومحمّلة مسبقًا بأداة bq: من Cloud Console، انقر على "تفعيل Cloud Shell" في أعلى يسار الصفحة:

- بعد الاتصال بـ Cloud Shell، من المفترض أن يظهر لك أنّه تم إثبات هويتك وأنّه تم ضبط المشروع على رقم تعريف مشروعك. نفِّذ الأمر التالي في Cloud Shell للتأكّد من إكمال عملية المصادقة:
gcloud auth list
- نفِّذ الأمر التالي في Cloud Shell للتأكّد من أنّ أمر gcloud يعرف مشروعك
gcloud config list project
- إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <PROJECT_ID>
راجِع المستندات لمعرفة أوامر gcloud وطريقة استخدامها.
3- إعداد بيانات التدريب
هذه خطوة رئيسية في جميع المشاريع والمنتجات والتطبيقات المرتبطة بالبيانات، وتتطلّب الكثير من الخبرة في المجال بالإضافة إلى التكنولوجيا لإعداد مجموعة بيانات مثالية وتجهيزها لمشروع تعلُّم الآلة. لأغراض هذا الدرس التطبيقي حول الترميز، سنفترض أنّ البيانات جاهزة وسنستخدم ملف البيانات الذي تمت معالجته.
4. إنشاء مجموعة البيانات وتحميلها
مجموعة بيانات BigQuery هي مجموعة من الجداول. يتم تخزين جميع الجداول في مجموعة البيانات في الموقع الجغرافي نفسه. يمكنك أيضًا إرفاق عناصر تحكّم مخصّصة في الوصول للحدّ من الوصول إلى مجموعة بيانات وجداولها.
- في Cloud Shell، استخدِم الأمر bq mk لإنشاء مجموعة بيانات باسم "movies".
bq mk --location=<<LOCATION>> movies
اضبط الموقع الجغرافي على منطقة (asia-south1). تذكَّر ضبطها كمنطقة لخطوة VERTEX AI أيضًا (يجب أن تكون كلتا الحالتين في المنطقة نفسها).
- تأكَّد من أنّ ملف البيانات (.csv) جاهز. نفِّذ الأوامر التالية في Cloud Shell لاستنساخ المستودع والانتقال إلى المشروع:
git clone <<repository link>>
cd movie-score
- استخدِم الأمر 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
- يمكنك البحث بإحدى الطرق الثلاث التالية:
يمكننا التفاعل مع BigQuery بثلاث طرق، وسنجرّب اثنتين منها: أ. واجهة مستخدم الويب في BigQuery ب. الأمر bq c. واجهة برمجة التطبيقات
SELECT name, rating, genre, runtime FROM movies.movies_score limit 3;
لقد استخدمتُ مساحة عمل BigQuery Web SQL لتنفيذ طلبات البحث. تبدو "مساحة عمل SQL" على النحو التالي:

باستخدام الأمر 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، وفعِّل واجهة برمجة التطبيقات Vertex AI API إذا لم يسبق لك إجراء ذلك، ثم وسِّع البيانات واختَر "مجموعات البيانات"، وانقر على "إنشاء مجموعة بيانات"، واختَر نوع البيانات "جدولية" والخيار "الانحدار / التصنيف"، ثم انقر على "إنشاء":

اختيار مصدر البيانات
في الصفحة التالية، اختَر مصدر بيانات. اختَر الخيار "اختيار جدول أو طريقة عرض من BigQuery" (Select a table or view from BigQuery) واختَر الجدول من BigQuery في حقل "تصفّح" (BROWSE) لمسار BigQuery. انقر على "متابعة".
ملاحظة: يجب أن تتضمّن كلّ من مثيل BigQuery ومجموعات بيانات Vertex AI المنطقة نفسها لكي يظهر جدول BigQuery في Vertex AI.

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

- اترك الهدف على أنّه تصنيف، وحدِّد خيار AutoML في الصفحة الأولى، ثم انقر على "متابعة":

- أدخِل اسمًا للنموذج واختَر اسم العمود المستهدف "النتيجة" من القائمة المنسدلة التي تظهر، ثم انقر على "متابعة".
- يُرجى أيضًا العِلم أنّه يمكنك وضع علامة في الخيار "تصدير مجموعة بيانات الاختبار إلى BigQuery"، ما يسهّل الاطّلاع على مجموعة الاختبار مع النتائج في قاعدة البيانات بكفاءة بدون طبقة دمج إضافية أو الحاجة إلى نقل البيانات بين الخدمات.
- في الصفحة التالية، يمكنك اختيار أي خيارات تدريب متقدّمة تحتاج إليها والساعات التي تريد ضبط النموذج عليها للتدريب. يُرجى العِلم أنّه عليك الانتباه إلى الأسعار قبل زيادة عدد ساعات العُقد التي تريد استخدامها للتدريب.
انقر على "بدء التدريب" لبدء تدريب النموذج الجديد.

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

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

قبل الانتقال من هذا القسم، تأكَّد من تدوين رقم تعريف نقطة النهاية والموقع الجغرافي والتفاصيل الأخرى للنموذج الذي تم نشره في قسم نقطة النهاية في Vertex AI.
6. دالة Java على Cloud لتفعيل استدعاء تعلُّم الآلة
تذكَّر كيف حصلنا على نقطة النهاية والتفاصيل الأخرى من خطوة نشر تعلُّم الآلة؟ سنستخدم ذلك هنا، وبما أنّنا نستخدم Java Cloud Functions، سنستخدم pom.xml للتعامل مع التبعيات. نستخدم مكتبة google-cloud-aiplatform لاستهلاك واجهة برمجة التطبيقات لنقطة نهاية Vertex AI AutoML.
- ابحث عن Cloud Functions في Google Cloud Console وانقر على "إنشاء دالة".
- أدخِل تفاصيل الإعدادات، مثل البيئة واسم الدالة والمنطقة والمشغّل (في هذه الحالة، HTTPS) والمصادقة التي تختارها، وفعِّل "طلب HTTPS"، ثم انقر على "التالي"/"حفظ".

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

- انسخ ملفَي java وpom.xml من المستودع والصقهما في الملفات المعنية في المحرّر المضمّن، وإذا كنت تستخدم المحرّر المحلي (ننصح بذلك)، استنسِخ المصدر من المستودع.
- غيِّر معرّف المشروع ومعرّف نقطة النهاية والموقع الجغرافي ونقطة النهاية في ملف المصدر .java لهذا المثال، ولكن يُرجى العِلم أنّ أفضل ممارسة هي استخدام Secret Manager لتخزين بيانات الاعتماد.
- في نطاق هذا الدرس التطبيقي حول الترميز، علِّق على أجزاء MongoDB في فئة .java في الرمز المصدر الذي نسخته
يمكنك المتابعة ونشر الدالة بعد اكتمال جميع التغييرات. سيظهر لك عنوان URL لنقطة النهاية التي يمكن استخدامها في تطبيق العميل لإرسال الطلبات إلى Cloud Function هذه وتلقّي نتيجة الفيلم كاستجابة.
7. تَنظيم
لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذه المشاركة، اتّبِع الخطوات التالية:
- في Google Cloud Console، انتقِل إلى صفحة إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على "إيقاف" لحذف المشروع.
8. تهانينا
تهانينا! لقد أنشأت نموذجًا لتوقُّع تقييمات الأفلام ونشرته بنجاح في Vertex AI AutoML، كما فعّلت النموذج الذي تم نشره من Cloud Functions.