وظيفة السحابة الإلكترونية لتلخيص المحتوى باستخدام PaLM Vertex AI API وGoogle Cloud Storage

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، يمكنك العثور على خطوات إجراء تلخيص للمحتوى الذي تم تحميله في Google Cloud Storage باستخدام النموذج اللغوي الكبير المستند إلى Vertex AI لإنشاء النصوص ( text-bison) كدالة سحابة في Python. في ما يلي قائمة الخدمات المستخدَمة:

  • واجهة برمجة تطبيقات Vertex AI PaLM: واجهة برمجة تطبيقات لنموذج لغوي كبير (LLM) تتيح الوصول إلى نموذج PaLM Text Bison من تكنولوجيات الذكاء الاصطناعي من Google.
  • Cloud Functions: منصة لا تستخدِم الخوادم لتشغيل الدوالّ بدون الحاجة إلى إدارة الخوادم
  • Cloud Storage: خدمة مُدارة لتخزين البيانات غير المنظَّمة
  • Cloud Logging: خدمة مُدارة بالكامل تتيح لك تخزين بيانات التسجيل والبحث فيها وتحليلها ومراقبتها وإرسال تنبيهات بشأنها

ما ستُنشئه

ستنشئ تطبيقًا يتم نشره كإحدى وظائف Python Cloud لتلخيص النصوص باستخدام Palm API.

2. المتطلبات

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

3- قبل البدء

  1. في Google Cloud Console، في صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشِئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (Cloud Storage API وVertex AI API وCloud Function API وCloud Logging).
  4. ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud. راجِع المستندات لمعرفة أوامر gcloud وكيفية استخدامها.
  5. من Cloud Console، انقر على Activate Cloud Shell (تفعيل Cloud Shell) في أعلى يسار الصفحة:

51622c00acec2fa.png

إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:

gcloud config set project <YOUR_PROJECT_ID>
  1. تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة من خلال تنفيذ الأمر التالي من وحدة تحكّم Cloud Shell الطرفية:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. أنشئ متغيّرات بيئة لكلّ من REGION وPROJECT_ID من خلال تنفيذ الأمر التالي من وحدة تحكّم Cloud Shell الطرفية:
export PROJECT_ID=<your project id>

export REGION=us-central1

4. دالة Cloud لتشغيل واجهة برمجة التطبيقات Vertex AI API

سننشئ دالة Python Cloud Function ونستدعي واجهة برمجة التطبيقات Vertex AI API في هذه الدالة.

إنشاء حساب خدمة جديد

أنشئ حساب خدمة جديدًا من خلال تنفيذ الأمر التالي في وحدة تحكّم Cloud Shell.

gcloud iam service-accounts create vertex-service-acc

لمنح إذن الوصول إلى مشروعك ومواردك، امنح دورًا لحساب الخدمة.

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com" --role=roles/ml.developer

لمنح حسابك على Google دورًا يتيح لك استخدام أدوار حساب الخدمة وإرفاق حساب الخدمة بموارد أخرى، نفِّذ الأمر أدناه. استبدِل USER_EMAIL بمعرّف البريد الإلكتروني لحسابك على Google.

gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

إنشاء دالة Python

إنّ واجهة برمجة التطبيقات PaLM API للنص مثالية للمهام التي يمكن إكمالها من خلال ردّ واحد من واجهة برمجة التطبيقات، بدون الحاجة إلى محادثة مستمرة. لننشئ دالة Cloud الآن.

نفِّذ الأوامر التالية في Cloud Shell لنسخ المستودع والانتقال إلى المشروع (استخدِم وحدة التحكّم الطرفية نفسها التي تم فتحها في القسم السابق):

git clone https://github.com/rominirani/genai-apptemplates-googlecloud

cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction

المجلد الذي يهمّنا هنا في هذا المشروع هو: summarization-gcs-cloudfunction.

افتح محرِّر Cloud Shell من وحدة التحكّم الطرفية وتحقّق من محتوى مجلد المشروع الذي تمّت نسخه للتو من GitHub إلى جهاز Cloud Shell.

يحتوي هذا المجلد على ملفين:

  1. يحدِّد ملف Python main.py دالة Cloud HTTP بسيطة تستخدِم نموذج إنشاء النصوص في Vertex AI لإنشاء ملخصات قصيرة للإدخالات النصية. تأخذ الدالة إدخال نصيًا كمَعلمة وتُرجع ملخّصًا موجزًا للإدخال. تستخدِم الدالة مجموعة متنوعة من المَعلمات للتحكّم في عملية الإنشاء، مثل الإبداع والتنوع والطلاقة في النص الذي يتم إنشاؤه. تقبل دالة HTTP Cloud عنصر طلب وتُرجع ملخّص النموذج كاستجابة.
  2. يتضمّن ملف requirements.txt تبعيات الحِزم:
  • functions-framework==3.: يضمن استخدام الدالة لأحدث الميزات وإصلاحات الأخطاء في إطار عمل Functions.
  • google-cloud-aiplatform: مطلوب لاستخدام نموذج إنشاء النصوص في Vertex AI.
  • google-cloud-storage: مطلوب لإنشاء حِزم تخزين في Google Cloud Storage.
  • google-cloud-logging: مطلوب لإنشاء السجلات.

5- نشر الدالة

  1. أنشئ حزمتَين على Cloud Storage:
  • الحزمة الأولى: سيتم استخدام الحزمة $BUCKET_NAME لتحميل الملفات المطلوب تلخيصها. أنشئ متغيّر البيئة لتخزين اسم الحزمة على النحو التالي:
export BUCKET_NAME='Your Bucket Name'
  • الحزمة الثانية: سيتم استخدام الحزمة $BUCKET_NAME-summaries لتخزين الملف الملخّص.
  • سنستخدم الأمر gsutil لإنشاء الحِزم:
  • gsutil هو تطبيق Python يتيح لك الوصول إلى Cloud Storage من سطر الأوامر. يمكنك استخدام gsutil لتنفيذ مجموعة كبيرة من مهام إدارة الحِزم والعناصر.
  • تشير mb إلى "إنشاء حزمة".
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. في هذه المرحلة، نحن جاهزون لنشر الدالة. ولكن قبل ذلك، تأكَّد من أنّ حساب الخدمة لحزمة Cloud Storage يتضمّن دور "ناشر Pub/Sub".
  2. انتقِل إلى Google Cloud Storage، وفي اللوحة اليمنى، انقر على "الإعدادات".

8ce34eb05153abf2.png

  1. انسخ "حساب الخدمة" من الإعدادات واسجِّله.
  2. افتح "إدارة الهوية وإمكانية الوصول" و"المشرف" من قائمة التنقّل في "وحدة تحكّم Google Cloud".

c5a7103e90689684.png

  1. في علامة التبويب "الأذونات"، انقر على "منح الإذن بالوصول" وأدخِل رقم تعريف حساب الخدمة الذي سجّلته في قسم "المشرفون الجدد"، واختَر الدور "ناشر Pub/Sub" وانقر على "حفظ".

11c2df774fa740a9.png

  1. يمكنك نشر هذا المصدر في Cloud Functions. شغِّل الأمر التالي من وحدة تحكّم Cloud Shell:
  2. تأكَّد من أنّك في المجلد summarization-gcs-cloudfunction في هذا المشروع.
  3. نفِّذ الأمر التالي:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
  1. في Google Cloud Console، انتقِل إلى Cloud Functions:

سيؤدي ذلك إلى إدراج دالة Cloud Function vertex-ai-function التي أنشأناها للتو مع عنوان URL العلني. سنستخدم هذه الدالة لإنشاء عامل تشغيل في GCS.

6- استدعاء الدالة

عند تحميل ملف في حزمة $BUCKET_NAME، يُشغِّل عامل تشغيل GCS الدالة. تتضمّن حزمة $BUCKET_NAME"-summaries الملف الملخّص بالاسم نفسه.

قبل البدء، احفظ ملف النموذج story.md من مجلد summarization-gcs-cloudfunction على جهازك.

  1. في وحدة تحكّم Google Cloud، انتقِل إلى Cloud Storage.
  2. افتح حزمة $BUCKET_NAME من قائمة الحِزم.
  3. انقر على "تحميل الملفات" واختَر ملف story.md.

يتم تنشيط الدالة summarizeArticles وتبدأ في تلخيص محتوى الملف.

  1. في مساحة الروابط على يمين الصفحة، انقر على "الحزم".
  2. افتح حزمة $BUCKET_NAME"-summaries.

يتضمّن ملف story.md ملخّصًا لمحتويات الملف.

7- تَنظيم

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

  1. في وحدة تحكّم Google Cloud، انتقِل إلى صفحة إدارة الموارد.
  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
  3. في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على "إيقاف" لحذف المشروع.
  4. إذا كنت تريد الاحتفاظ بالمشروع وحذف بعض الموارد فقط، انتقِل إلى وحدة تحكّم Cloud Storage، وانقر على "الحِزم"، ثم ضَع علامة في المربّع بجانب الحِزم التي تريد حذفها وانقر على "حذف".
  5. يمكنك أيضًا حذف دالة Cloud من خلال الانتقال إلى "دوالّ Cloud"، ثم وضع علامة في المربّع بجانب الدالة التي تريد حذفها والنقر على "حذف" من قائمة الدوال.

8. تهانينا

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