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

1. قبل البدء

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

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

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

ما ستتعلمه

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

المتطلبات

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

مقدمة

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

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

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

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

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

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

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

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

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

ما ستنشئه

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

ستفهم أيضًا بشكل أفضل كيفية استخدام واجهات برمجة التطبيقات في Vertex AI Search لإنشاء بنية التوليد المعزّز بالاسترجاع هذه على 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
  • Cloud Storage

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

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

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

adf5c0382f6c3540.png

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

731aead7d8497725.png

  • انقر على "إنشاء حزمة"

f7ac409ed9c4af21.png

4. الخطوة 2: إنشاء Vertex AI Datastore

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

c4a67b92bb7900e3.png

  • في صفحة "أداة إنشاء الوكيل" (Agent Builder)، انقر على "مخازن البيانات" (Data Stores) كما هو موضّح في شريط التنقّل الأيمن.

f86f67d344d398fb.png

  • انقر على "إنشاء مستودع بيانات".

e64e771f33543f46.png

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

3a8d22888e7eedc2.png

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

13876b5d12dbe1fb.png

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

618b7a456fbffad4.png

براونيز:

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

38471c1d3411610d.png

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

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

ae5294e33f63567c.png

  • تأكَّد من اختيار "عام" ضمن "المحتوى". يمكنك أيضًا اختيار "الوسائط" أو "الاقتراحات" استنادًا إلى مستودع البيانات ونوع البيانات والأنظمة التي تريد إنشاءها.
  • تأكَّد من تفعيل كلّ من ميزات Enterprise Edition وLLM المتقدّمة
  • إدخال اسم التطبيق
  • تقديم اسم شركتك

f8a41c9751f7a8d3.png

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

bc77006e0025ae9e.png

6. الخطوة 4: تحويل تطبيقك إلى حزمة Docker

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

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

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

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

  • بنية المجلد
  • الخادم الخلفي: سيحتوي على تنفيذ لواجهة برمجة تطبيقات مستندة إلى Python ستساعد في إنشاء نقاط نهاية RESTful ليتفاعل معها الخادم الأمامي.
  • الواجهة الأمامية: ستتضمّن تطبيقًا مستندًا إلى React وستعرض واجهة المستخدم. سيحتوي هذا الملف أيضًا على طلبات على مستوى التطبيق إلى الخلفية من خلال نقاط نهاية REST.
  • 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). ‫Google Artifact Registry (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

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

592103eb61c16738.png

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

aac35d55d7dd874e.png

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

b8b147265b8d457b.png

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

1dfdb007c52581a1.png

8. كيفية عمل كل ذلك

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

9- تَنظيم

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

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

10. تهانينا

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

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