إنشاء نظام بحث بجودة Google باستخدام Vertex AI

1- قبل البدء

في ما يلي بعض النقاط التي يجب أخذها في الاعتبار قبل مواصلة هذا الدرس التطبيقي حول الترميز.

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

  • فهم أساسي للنماذج اللغوية الكبيرة
  • فهم أساسي لأنظمة RAG

المعلومات التي ستطّلع عليها

  • كيفية إنشاء محرك بحث عالي الجودة من Google يمكنه الإجابة عن أسئلتك من البيانات التي تحمّلها
  • طريقة إنشاء مخزن بيانات Vertex AI
  • طريقة إنشاء برامج وكيل Vertex AI
  • كيفية الاستفادة من CloudRun لنشر التطبيق

المتطلبات

  • حساب على Google Cloud
  • مشروع على Google Cloud
  • بيئة تطوير متكاملة (IDE) تضم الوحدة الطرفية

مقدمة

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

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

الفائدة الرئيسية من طريقة RAG هي أنها تسمح للنماذج اللغوية بتجنب الهلوسة. الهلوسة هي مصطلح يُستخدم لوصف إنشاء نص لا يدعمه الأدلة في مجموعة المستندات. ويمكن أن يحدث ذلك عندما لا تتمكّن النماذج اللغوية من التمييز بين المعلومات ذات الصلة وغير الملائمة.

تساعد طريقة RAG في تجنب الهلوسة من خلال التأكد من أن النص الذي تم إنشاؤه يستند دائمًا إلى دليل من مجموعة الوثيقة. وهذا يجعلها مصدر معلومات أكثر موثوقية وموثوقية.

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

فيما يلي بعض الأمثلة على كيفية استخدام RAG عمليًا:

  • تستخدم العديد من أنظمة البحث طريقة RAG لإنشاء نتائج بحث ذات صلة بطلب بحث المستخدم.
  • تستخدم روبوتات الدردشة طريقة RAG لإنشاء ردود على أسئلة المستخدمين تكون غنية بالمعلومات وجذابة.
  • تستخدم أنظمة الإجابة على الأسئلة RAG لإنشاء إجابات دقيقة وشاملة لأسئلة المستخدمين.

طريقة RAG هي تقنية متعددة الاستخدامات يمكن استخدامها لإنشاء نص في مجموعة متنوعة من المجالات والتطبيقات. إنّها أداة قوية تساعد في تعزيز الذكاء الاصطناعي وتزويده بالمعلومات.

في هذا التمرين المعملي، سننشئ نظام RAG الذي يمكن أن يساعد في الإجابة عن أسئلتك باستخدام المجموعة المقدمة كما قمت بتحميلها. تساعدك منصة RAG غير المألوفة المعروفة باسم Vertex AI Search/Agent Builder على تسريع عملية إنشاء أنظمة RAG وبالتالي تجنبك عن طريق الجهد اليدوي لجمع المستندات، والتحليل، والتقسيم، وإنشاء التضمينات، وتوسيع طلب البحث، واسترجاع وترتيب المرشحين. في حين أن نظام RAG غير المبتكر يساعدك على البدء بسرعة، توفر Google Cloud أيضًا واجهات برمجة تطبيقات منفصلة لكل عملية لإنشاء أنظمة DIY RAG الخاصة بك والتي تساعد في ضبط أنظمة RAG الخاصة بك لتناسب متطلبات عملك.

ما الذي ستنشئه

بنهاية هذا التمرين المعملي، سيكون لديك نظام RAG عامل يمكن أن يساعد في الإجابة عن أسئلتك بمعلومات واقعية، مستندة إلى المراجع الصحيحة.

سيكون لديك أيضًا فهم أفضل لكيفية استخدام واجهات برمجة تطبيقات Vertex AI Search لإنشاء بنية RAG هذه على Google Cloud. بالإضافة إلى ذلك، ستتعلم أيضًا كيفية نشر تطبيق بنية RAG هذا (مع الواجهة الأمامية والخلفية) على CloudRun وهو نظام أساسي بلا خادم لنشر التطبيقات كحاويات على Google Cloud.

2d055ded874603a6.png

طريقة عمل التطبيق

  • تحميل بياناتك: يمكن للمستخدمين تحميل مجموعة بياناتك، أي ملف PDF، كإدخال.
  • طرح طلبات البحث في شريط البحث: يمكن للمستخدمين طرح أسئلة في شريط البحث استنادًا إلى مجموعة البيانات التي تم تحميلها.
  • استرداد الإجابات: يمكن للمستخدمين استرداد نتائج البحث/المرشحين والتحقّق من واقعية الإجابة التي يتم استردادها استنادًا إلى مدى صلتها بطلب البحث.

‫2. إعداد البيئة

  1. في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على Google Cloud. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. ستستخدم Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في Google Cloud. وللوصول إليها، انقر على "تفعيل Cloud Shell" في أعلى وحدة تحكُّم Google Cloud.

1829c3759227c19b.png

  1. بعد الربط بخدمة Cloud Shell، يمكنك التحقّق من أنّه تمت مصادقتك من قبل وأنّ المشروع مضبوط على رقم تعريف المشروع باستخدام الأمر التالي:
gcloud auth list
  1. شغّل الأمر التالي في Cloud Shell للتأكد من معرفة الأمر gcloud بمشروعك.
gcloud config list project
  1. إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
  1. تأكَّد من تفعيل واجهات برمجة التطبيقات التالية:
  • Cloud Run
  • Vertex AI
  • تخزين في السحابة الإلكترونية

البديل لاستخدام الأمر gcloud هو الانتقال من خلال وحدة التحكّم باستخدام هذا الرابط. يُرجى الاطّلاع على المستندات حول أوامر gcloud واستخدامها.

3- الخطوة 1: إنشاء حزمة Google Cloud Platform

  • انتقِل إلى وحدة التحكّم، واكتب Cloud Storage في شريط البحث.
  • اختَر خدمة Cloud Storage من النتائج المقترَحة. 21d2bc910e71f7ec.png
  • انقر فوق "Create Bucket" (إنشاء حزمة)

adf5c0382f6c3540.png

  • يجب إدخال اسم فريد عالميًا للحزمة.
  • انقر على "متابعة".
  • في "نوع الموقع الجغرافي"، اختَر "مناطق متعددة".
  • في القائمة المنسدلة، احرص على تحديد الخيار us (multiple regions in United States).

731aead7d8497725.png

  • انقر فوق "Create Bucket" (إنشاء حزمة)

f7ac409ed9c4af21.png

‫4. الخطوة 2: إنشاء مخزن بيانات Vertex AI

  • في شريط البحث ضمن صفحة وحدة التحكّم، اكتب "Vertex AI Agent Builder"
  • اختَر المنتج الأول "Agent Builder".

c4a67b92bb7900e3.png

  • في صفحة "أداة إنشاء الوكلاء"، انقر على "متاجر البيانات" كما هو موضّح في شريط التنقّل الأيمن.

f86f67d344d398fb.png

  • انقر على "إنشاء مخزن بيانات"

e64e771f33543f46.png

  • اختيار Cloud Storage كمخزن للبيانات
  • انقر على "اختيار" أسفل رمز Cloud Storage.

3a8d22888e7eedc2.png

  • في علامة التبويب الموجودة أسفل خيار "المجلد"، انقر على الزر "تصفح"
  • اختَر الحزمة التي أنشأتها في الخطوة 1
  • في الخيارات أدناه، احرص على اختيار "المستندات غير المنظَّمة المرتبطة (JSONL مع بيانات وصفية)"
  • انقر على متابعة

13876b5d12dbe1fb.png

  • في صفحة "الإعدادات"، اختَر "عالمي" كموقع تخزين البيانات.
  • تقديم اسم قابل للتعريف لمخزن البيانات
  • انقر على "إنشاء"

618b7a456fbffad4.png

براوني:

  • يظهر خيار معالجة المستندات فوق الزر "إنشاء" مباشرةً.
  • استمتِع بالتحليلات اللغوية المختلفة، مثل أدوات التحليل الرقمي أو تقنية التعرّف البصري على الأحرف (OCR) أو محلّل التخطيطات
  • يمكنك أيضًا تفعيل التقسيم المتقدّم وتقديم حدودك الخاصة لحجم المجموعة.

38471c1d3411610d.png

5- الخطوة 3: إنشاء وكيل

  • بمجرد إنشاء تخزين البيانات، انقر على التطبيق في شريط التنقل على اليمين واختر "التطبيقات"
  • انقر على الزر "إنشاء تطبيق"
  • اختَر نوع التطبيق ليكون "بحث Google" (يمكنك أيضًا إنشاء وكلاء وبرامج تتبُّع حوارية واقتراحات وما إلى ذلك).

ae5294e33f63567c.png

  • احرص على اختيار "عامة" ضمن "المحتوى". يمكنك أيضًا اختيار "الوسائط" أو "الاقتراحات" استنادًا إلى مخزن البيانات ونوع البيانات والأنظمة التي تريد إنشاءها.
  • التأكُّد من تفعيل كلا الخيارين بشأن "إصدار المؤسسات" و"النموذج اللغوي الكبير" (LLM) المتقدّمين
  • إدخال اسم التطبيق
  • تقديم اسم شركتك

f8a41c9751f7a8d3.png

  • التأكّد من اختيار المنطقة لتكون "عالمية"
  • انقر على "متابعة" ed17b18e094ba59a.png.
  • في الشاشة التالية، اختَر مخزن البيانات الذي أنشأته في الخطوة 2.
  • انقر على "إنشاء"

bc77006e0025ae9e.png

6. الخطوة 4: إرساء تطبيقك

  • فتح الوحدة الطرفية في وحدة تحكُّم Google Cloud
  • استنسِخ المستودع < sample_repository_link> باستخدام الأمر التالي

git clone https://github.com/kkrishnan90/vertex-ai-search-agent-builder-demo

  • غيِّر الدليل وانتقِل إلى المستودع المنسوخ باستخدام الأمر التالي

cd vertex-ai-search-agent-builder-demo

  • بنية المجلد
  • الخلفية: ستوفّر هذه الواجهة تنفيذ واجهة برمجة تطبيقات تستند إلى لغة بايثون، ما سيساعد في إنشاء نقاط نهاية مريحة لكي تتفاعل معها الواجهة الأمامية.
  • الواجهة الأمامية - سيشتمِل هذا على تطبيق قائم على التفاعل وسيعرض واجهة المستخدم. سيحتوي ذلك أيضًا على الاستدعاءات الضرورية على مستوى التطبيق للواجهة الخلفية من خلال نقاط النهاية المتبقية.
  • Dockerfile: سيحتوي هذا الملف على جميع الأوامر ذات الصلة لإنشاء حاوية Docker.
  • في جذر دليل المستودع، شغِّل الأمر التالي الذي سيساعد في إنشاء صورة Docker (ملاحظة: تأكَّد من استخدام علامة - - platform عند إنشاء حاويات Docker في أجهزة Macbook تستخدم شرائح Apple Silicon مثل M1 وM2 وما إلى ذلك. هذه العلامة غير ضرورية في حال إنشاء نسخة باستخدام جهاز يعمل بنظام التشغيل Windows أو إذا كانت بنية وحدة المعالجة المركزية تستند إلى Intel)

docker build --platform linux/amd64 -t your-image-name .

  • بعد اكتمال إنشاء حاوية Docker بنجاح، شغِّل الأمر التالي لوضع علامة على الحاوية بالعلامات الصحيحة للتأكّد من توفير نسخة من صورتك. تذكّر أنّه قد يكون هناك إصدارات متعددة من التطبيق، وبالتالي العديد من الإصدارات كعلامات في حاويات Docker. إنّ ضمان استخدام أحدث إصدار ثابت دائمًا هو أحد الأساليب الجيدة الموصى بها من منظور مطوّري البرامج.

docker tag your-image-name REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

  • بعد اكتمال وضع العلامات على صورة حاوية Docker بنجاح، يمكنك الآن إرسال الصورة إلى Google Artifact Registry (GAR). GAR هي منصة مُدارة بالكامل من Google للمساعدة في إدارة حاويات Docker والتحكم في إصداراتها. شغِّل الأمر التالي الذي سينقل الحاوية ذات العلامات أعلاه إلى GAR. لمزيد من المعلومات، يُرجى الرجوع إلى الرابط التالي [ https://cloud.google.com/artifact-registry/docs/docker/pushing-and-pulling]

docker push REGION-docker.pkg.dev/PROJECT-ID/REPOSITORY-NAME/IMAGE-NAME:TAG

7. الخطوة 5: نشر تطبيقك على Cloud Run

  • تصغير نافذة الوحدة الطرفية في شريط البحث في Google Cloud Console، ابحث عن Cloud Run
  • انقر على منتج Cloud Run المقترح

592103eb61c16738.png

  • انقر على "إنشاء خدمة"
  • في الصفحة التالية، تأكَّد من اختيار "نشر نسخة سابقة من صورة حاوية حالية".
  • أدناه، انقر على "تحديد"
  • ستتم مطالبتك الآن من خلال شريط تنقل على اليسار.
  • تأكَّد مما إذا تم اختيار Artifact Registry كعلامة تبويب.
  • التأكد من التحقق مما إذا كان قد تم تحديد المشروع بشكل صحيح
  • انقر على السهم لتوسيع الأكورديون على رابط صورة الحاوية المنشورة
  • اختَر علامة الحاوية ووسِّعها (اختَر دائمًا أحدث العلامات التي تم نشرها، مع تضمين أحدث العلامات الصحيحة، أي: v1 أو v2 أو غير ذلك).
  • انقر على صورة الحاوية التي تظهر أسفل اسم علامة الحاوية.

aac35d55d7dd874e.png

  • في منطقة "الإعداد"
  • قدّم اسم خدمة لتطبيق Cloud Run (سيكون هذا جزءًا من عنوان URL عند نشر التطبيق على Cloud Run)
  • حدد المنطقة المناسبة (في هذه الحالة us-central1 أو أي منطقة من اختيارك)
  • ضمن المصادقة
  • تأكَّد من اختيار "السماح بالاستدعاءات التي لم تتم مصادقتها"
  • ضمن تخصيص وحدة المعالجة المركزية (CPU) وتحديد الأسعار
  • اختَر "يتم تخصيص وحدة المعالجة المركزية أثناء معالجة الطلب فقط".
  • عليك تعديل التدرّج التلقائي للخدمة إلى 1 (لأغراض الإنتاج، يُنصح بتشغيل الحدّ الأدنى من المثيلات للتعامل مع عدد الزيارات اليومية، ويمكنك حتى تركه 0، أي: صفر)
  • اضبط "التحكم في الدخول" على "الكل" للسماح لحركة المرور من الإنترنت بالوصول إلى تطبيقك
  • انقر على "إنشاء"
  • سيؤدي ذلك إلى نشر مثيل Cloud Run ويستغرق توفير الجهاز نفسه بضع دقائق.

b8b147265b8d457b.png

  • بعد النشر، ستتمكّن من الاطّلاع على عنوان URL المتاح للجميع والذي يمكنك الوصول إلى تطبيق الويب منه.

1dfdb007c52581a1.png

8. طريقة العمل

  • بعد الانتقال إلى الصفحة الرئيسية للتطبيق، انقر على الزر "تحميل مستند".
  • تحميل ملف PDF
  • بعد اكتمال عملية التحميل
  • انقر على شريط البحث أعلى صفحة الويب
  • بدء البحث عن طلبات بحث ذات صلة بالمستند الذي حمّلته
  • بعد كتابة طلب البحث والنقر على "بحث"، من المفترض أن يعرض جميع الإجابات ذات الصلة من المستند الذي حمّلته للتو.
  • يمكنك التنقل من خلال النظر في رمز الخلفية وإضافة المزيد من الإعدادات مثل ما يلي
  • إضافة مقتطفات
  • إضافة شرائح استخراج البيانات
  • إضافة إجابات
  • ضبط أهم النتائج لمساعدة النموذج اللغوي الكبير في تلخيص الإجابة (مثل نظرة عامة على الذكاء الاصطناعي على "بحث Google")
  • وكإضافة، يمكنك أيضًا إضافة علامات البيانات الوصفية أثناء تحميل المستند. سيساعد ذلك في إنشاء واجهات وفئات قابلة للفلترة.

9. تَنظيم

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

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

10. تهانينا

تهانينا! لقد نجحت في إنشاء نظام RAG سريع وجاهز باستخدام أحدث النماذج المدعومة من Google وتزويد Google بنتائج عالية الجودة لطلبات البحث الخاصة بك. إنّ هذا الدرس التطبيقي حول الترميز مخصّص لأغراض التوضيح فقط، وبالتالي يجب إنشاء المزيد من إجراءات الأمان وثبات الإجراءات اللازمة في حالات استخدام الإنتاج. يمكنك العثور على رابط إلى المستودع الكامل هنا. من خلال الاستفادة من Google Cloud واتّباع 5 خطوات فقط، يمكننا إنشاء نظام RAG شامل يمكنه أن يقدم لك نتائج عالية الجودة من Google في غضون بضع دقائق. مع تطوّر الذكاء الاصطناعي التوليدي والنماذج اللغوية الكبيرة، يساعدنا إنشاء أنظمة RAG هذه أيضًا على تجنُّب مخاطر الهلوسة والمعلومات التي يتم الكشف عنها بدون ذِكرها.

على الرغم من أنّ هذه ليست سوى نقطة بداية، يمكننا استخدام واجهات برمجة تطبيقات DIY RAG القابلة للتخصيص بالكامل والتي توفّر لك المزيد من الشفافية والفعالية والكفاءة للتعامل مع كل جزء من عملية المعالجة بفعالية.