تفعيل Model Garden على نقطة نهاية PSC

1. مقدمة

استفِد من Private Service Connect لإنشاء وصول آمن وخاص إلى النماذج التي تم نشرها من Vertex AI Model Garden. بدلاً من عرض نقطة نهاية عامة، تتيح لك هذه الطريقة نشر نموذجك إلى نقطة نهاية خاصة في Vertex AI لا يمكن الوصول إليها إلا من خلال السحابة الافتراضية الخاصة (VPC).

تنشئ خدمة Private Service Connect نقطة نهاية باستخدام عنوان IP داخلي في شبكتك VPC، وتربطها مباشرةً بخدمة Vertex AI التي تديرها Google وتستضيف نموذجك. يتيح ذلك للتطبيقات في بيئات السحابة الإلكترونية الخاصة الافتراضية (VPC) والبيئات المحلية (عبر Cloud VPN أو Interconnect) إرسال طلبات الاستنتاج باستخدام عناوين IP خاصة. تبقى جميع زيارات الشبكة على شبكة Google، ما يعزّز الأمان ويقلّل من وقت الاستجابة ويعزل نقطة نهاية عرض النموذج تمامًا عن الإنترنت العام.

4a78228d4197997c.png

ما ستنشئه

في هذا البرنامج التعليمي، ستنزّل Gemma 3 من Model Garden، المستضاف في Vertex AI Online Inference كنقطة نهاية خاصة يمكن الوصول إليها من خلال Private Service Connect. ستتضمّن عملية الإعداد الكاملة ما يلي:

  1. نموذج Model Garden: يمكنك اختيار Gemma 3 من Vertex AI Model Garden وتفعيله في نقطة نهاية Private Service Connect.
  2. ‫Private Service Connect: عليك ضبط نقطة نهاية المستهلك في شبكتك الخاصة الافتراضية (VPC) التي تتضمّن عنوان IP داخليًا ضمن شبكتك.
  3. الاتصال الآمن بخدمة Vertex AI: ستستهدف نقطة نهاية PSC "ملف ربط الخدمة" الذي يتم إنشاؤه تلقائيًا بواسطة Vertex AI لتفعيل النموذج الخاص. يؤدي ذلك إلى إنشاء اتصال خاص، ما يضمن عدم انتقال حركة البيانات بين شبكة VPC ونقطة نهاية عرض النموذج عبر الإنترنت المتاح للجميع.
  4. إعدادات العميل داخل شبكة VPC: عليك إعداد عميل (مثل (جهاز Compute Engine الظاهري) ضِمن شبكة VPC لإرسال طلبات الاستنتاج إلى النموذج الذي تم نشره باستخدام عنوان IP الداخلي لنقطة نهاية PSC.

في النهاية، سيتوفّر لديك مثال عملي لنموذج Model Garden يتم عرضه بشكل خاص، ولا يمكن الوصول إليه إلا من داخل شبكة VPC المحدّدة.

أهداف الدورة التعليمية

في هذا البرنامج التعليمي، ستتعرّف على كيفية نشر نموذج من Vertex AI Model Garden وإتاحة الوصول إليه بشكل آمن من شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC) باستخدام Private Service Connect (PSC). تتيح هذه الطريقة لتطبيقاتك ضِمن شبكة VPC (المستهلك) الاتصال بشكل خاص بنقطة نهاية نموذج Vertex AI (الخدمة المنتِجة) بدون المرور عبر الإنترنت المتاح للجميع.

على وجه التحديد، ستتعرّف على ما يلي:

  1. التعرّف على خدمة Private Service Connect في Vertex AI: كيف تتيح خدمة Private Service Connect اتصالات خاصة وآمنة بين المستهلكين والمنتجين؟ يمكن لشبكة VPC الوصول إلى نموذج Model Garden الذي تم نشره باستخدام عناوين IP داخلية.
  2. نشر نموذج باستخدام ميزة الوصول الخاص: كيفية إعداد نقطة نهاية Vertex AI لنموذج Model Garden لاستخدام PSC، ما يجعلها نقطة نهاية خاصة
  3. دور مرفق الخدمة: عند نشر نموذج في نقطة نهاية خاصة في Vertex AI، تنشئ Google Cloud تلقائيًا مرفق خدمة في مشروع مستأجر تديره Google. تعرض "ملحقة الخدمة" هذه خدمة عرض النماذج على شبكات المستهلكين.
  4. إنشاء نقطة نهاية Private Service Connect في شبكة VPC:
  • كيفية الحصول على معرّف الموارد المنتظم الفريد لمرفق الخدمة من تفاصيل نقطة نهاية Vertex AI التي تم نشرها
  • كيفية حجز عنوان IP داخلي ضمن الشبكة الفرعية التي اخترتها في شبكة VPC
  • كيفية إنشاء قاعدة إعادة توجيه في شبكة VPC تعمل كنقطة نهاية PSC، وتستهدف مرفق خدمة Vertex AI تتيح نقطة النهاية هذه الوصول إلى النموذج من خلال عنوان IP الداخلي المحجوز.
  1. إنشاء اتصال خاص: توضّح هذه الخطوة كيف تتصل نقطة نهاية Private Service Connect (PSC) في شبكة السحابة الإلكترونية الخاصة الافتراضية (VPC) بملف ربط الخدمة، ما يربط شبكتك بخدمة Vertex AI بشكل آمن.
  2. إرسال طلبات الاستنتاج بشكل خاص: كيفية إرسال طلبات التوقّع من الموارد (مثل الأجهزة الافتراضية في Compute Engine) ضِمن شبكة VPC إلى عنوان IP الداخلي لنقطة نهاية PSC
  3. التحقّق من الصحة: خطوات لاختبار وتأكيد إمكانية إرسال طلبات الاستنتاج بنجاح من شبكة VPC إلى نموذج Model Garden الذي تم نشره من خلال الاتصال الخاص

بعد إكمال هذه الخطوة، ستتمكّن من استضافة نماذج من "مكتبة النماذج" لا يمكن الوصول إليها إلا من خلال البنية الأساسية لشبكتك الخاصة.

المتطلبات

مشروع Google Cloud

أذونات "إدارة الهوية وإمكانية الوصول"

2. قبل البدء

تعديل المشروع ليتوافق مع البرنامج التعليمي

يستفيد هذا البرنامج التعليمي من $variables للمساعدة في تنفيذ عملية إعداد gcloud في Cloud Shell.

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]
projectid=[YOUR-PROJECT-ID]
echo $projectid

تفعيل واجهات برمجة التطبيقات

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud services enable "compute.googleapis.com"
gcloud services enable "aiplatform.googleapis.com"
gcloud services enable "serviceusage.googleapis.com"

3- نشر النموذج

اتّبِع الخطوات التالية لنشر النموذج من Model Garden.

في Google Cloud Console، انتقِل إلى Model Garden وابحث عن Gemma 3 واختَرها.

10c7ce35cfc571dc.png

انقر على "خيارات النشر" واختَر Vertex AI.

ed9280fcc5f4c3fa.png

في لوحة "النشر على Vertex AI"، انقر على "الإعدادات المتقدّمة". يتم اختيار المنطقة والمواصفات المعبّأة مسبقًا استنادًا إلى السعة المتاحة. يمكنك تغيير هذه القيم، على الرغم من أنّ نموذج البرمجة موجّه إلى us-central1.

3f7e4cefdc06488a.png

في لوحة "النشر على Vertex AI"، تأكَّد من ضبط "الوصول إلى نقطة النهاية" على Private Service Connect، ثم اختَر مشروعك.

d0f0d9bc49205fb3.png

اترك جميع الإعدادات التلقائية للخيارات الأخرى، ثم انقر على "نشر" في أسفل الصفحة وتحقّق من الإشعارات لمعرفة حالة النشر.

9bd3b10256b7b2cc.png

في Model Garden، اختَر المنطقة us-central1 التي توفّر نموذج Gemma 3 ونقطة النهاية. تستغرق عملية نشر النموذج 5 دقائق تقريبًا.

e998ee6288a8a7a.png

في غضون 30 دقيقة، ستتغيّر حالة نقطة النهاية إلى "نشطة" بعد اكتمال العملية.

9dcc7c56dbe0e88a.png

احصل على رقم تعريف نقطة النهاية ودوّنه عن طريق اختيار نقطة النهاية.

6e3e2feef82fadd5.png

افتح Cloud Shell ونفِّذ ما يلي للحصول على معرّف الموارد المنتظم (URI) لـ Private Service Connect Service Attachment. يستخدم المستهلك سلسلة معرّف الموارد المنتظم هذا عند نشر نقطة نهاية المستهلك في PSC.

داخل Cloud Shell، عدِّل معرّف نقطة النهاية، ثم أدخِل الأمر التالي.

gcloud ai endpoints describe [Endpoint ID] --region=us-central1  | grep -i serviceAttachment:

في ما يلي مثال:

user@cloudshell:$ gcloud ai endpoints describe 2124795225560842240 --region=us-central1 | grep -i serviceAttachment:

Using endpoint [https://us-central1-aiplatform.googleapis.com/]
    serviceAttachment: projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

انسخ المحتوى بعد serviceAttachment إلى متغيّر باسم "Service_attachment"، وستحتاج إليه لاحقًا عند إنشاء اتصال PSC.

user@cloudshell:$ Service_attachment=projects/o9457b320a852208e-tp/regions/us-central1/serviceAttachments/gkedpm-52065579567eaf39bfe24f25f7981d

4. إعداد المستهلك

إنشاء شبكة VPC الخاصة بالمستهلك

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks create consumer-vpc --project=$projectid --subnet-mode=custom

إنشاء الشبكة الفرعية للجهاز الظاهري للمستهلك

داخل Cloud Shell، اتّبِع الخطوات التالية:

gcloud compute networks subnets create consumer-vm-subnet --project=$projectid --range=192.168.1.0/24 --network=consumer-vpc --region=us-central1 --enable-private-ip-google-access

إنشاء الشبكة الفرعية لنقطة نهاية PSC

gcloud compute networks subnets create pscendpoint-subnet --project=$projectid --range=10.10.10.0/28 --network=consumer-vpc --region=us-central1

5- تفعيل عمليات الشراء داخل التطبيق

للسماح لميزة "الوصول إلى الأجهزة الافتراضية عبر الإنترنت" بالاتصال بأجهزة VM الافتراضية، أنشئ قاعدة جدار حماية تتضمّن ما يلي:

  • ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد إتاحتها باستخدام IAP.
  • يسمح بحركة البيانات الواردة من نطاق عناوين IP ‏35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها خدمة IAP لإعادة توجيه بروتوكول TCP.

داخل Cloud Shell، أنشئ قاعدة جدار حماية IAP.

gcloud compute firewall-rules create ssh-iap-consumer \
    --network consumer-vpc \
    --allow tcp:22 \
    --source-ranges=35.235.240.0/20

6. إنشاء مثيلات أجهزة افتراضية للمستهلكين

داخل Cloud Shell، أنشئ مثيل الجهاز الافتراضي للمستهلك، consumer-vm.

gcloud compute instances create consumer-vm \
    --project=$projectid \
    --machine-type=e2-micro \
    --image-family debian-11 \
    --no-address \
    --shielded-secure-boot \
    --image-project debian-cloud \
    --zone us-central1-a \
    --subnet=consumer-vm-subnet 

7. نقاط نهاية Private Service Connect

ينشئ المستهلك نقطة نهاية للمستهلك (قاعدة إعادة التوجيه) باستخدام عنوان IP داخلي ضمن شبكة VPC. تستهدف نقطة نهاية PSC هذه مرفق الخدمة الخاص بالمنتج. يمكن للعملاء ضِمن شبكة VPC للمستهلك أو الشبكة المختلطة إرسال الزيارات إلى عنوان IP الداخلي هذا للوصول إلى خدمة مقدّم الخدمة.

احجز عنوان IP لنقطة نهاية المستهلك.

في Cloud Shell، أنشئ قاعدة إعادة التوجيه.

gcloud compute addresses create psc-address \
    --project=$projectid \
    --region=us-central1 \
    --subnet=pscendpoint-subnet \
    --addresses=10.10.10.6

التأكّد من أنّ عنوان IP محجوز

داخل Cloud Shell، أدرِج عنوان IP المحجوز.

gcloud compute addresses list 

من المفترض أن يظهر لك عنوان IP 10.10.10.6 محجوزًا.

edb5661bea25cd14.png

أنشئ نقطة نهاية المستهلك من خلال تحديد معرّف الموارد المنتظم لمرفق الخدمة، target-service-attachment، الذي حصلت عليه في الخطوة السابقة، قسم "نشر النموذج".

داخل Cloud Shell، صف مرفق الشبكة.

 gcloud compute forwarding-rules create psc-consumer-ep \
    --network=consumer-vpc \
    --address=psc-address \
    --region=us-central1 \
    --target-service-attachment=$Service_attachment \
    --project=$projectid

تأكَّد من أنّ مرفق الخدمة يقبل نقطة النهاية

gcloud compute forwarding-rules describe psc-consumer-ep \
    --project=$projectid \
    --region=us-central1 \

في الردّ، تأكَّد من ظهور الحالة "ACCEPTED" في الحقل pscConnectionStatus.

6c66347ede9d4c7d.png

8. الاختبار من الجهاز الافتراضي للمستهلك

في Cloud Shell، اتّبِع الخطوات التالية لمنح الجهاز الظاهري للمستهلك إذن الوصول إلى Vertex Model Garden API:

استخدام بروتوكول النقل الآمن (SSH) في الجهاز الافتراضي للمستهلك

f0984d9e60530cb2.png

أعِد المصادقة باستخدام "بيانات الاعتماد التلقائية للتطبيق" وحدِّد نطاقات Vertex AI.

gcloud auth application-default login
--scopes=https://www.googleapis.com/auth/cloud-platform 

استخدِم الجدول أدناه لإنشاء أمر CURL، وعدِّله حسب بيئتك.

السمة

القيمة

البروتوكول

HTTP

الموقع الجغرافي

us-central1

نقطة نهاية التوقّع على الإنترنت

2133539641536544768

رقم تعريف المشروع

test4-473419

الطراز

gemma-3-12b-it

عنوان IP لنقطة نهاية Private Service Connect

10.10.10.6

الرسائل

[{"role": "user","content": "ما هو الأثقل، رطل من الريش أم رطل من الصخور؟"}]

عدِّل أمر curl ونفِّذه استنادًا إلى تفاصيل بيئاتك:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://[PSC-IP]/v1/projects/[Project-ID]/locations/us-central1/endpoints/[Predictions Endpoint]/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

مثال:

curl -k -v -X POST   -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"   -H "Content-Type: application/json"   http://10.10.10.6/v1/projects/test4-473419/locations/us-central1/endpoints/2133539641536544768/chat/completions   -d '{"model": "google/gemma-3-12b-it", "messages": [{"role": "user","content": "What weighs more 1 pound of feathers or rocks?"}] }'

النتيجة النهائية - نجاح!!!

يجب أن تظهر لك نتيجة التوقّع من Gemma 3 في أسفل الناتج، ما يشير إلى أنّه تمكّنت من الوصول إلى نقطة نهاية واجهة برمجة التطبيقات بشكل خاص من خلال نقطة نهاية PSC.

 Connection #0 to host 10.10.10.6 left intact
{"id":"chatcmpl-9e941821-65b3-44e4-876c-37d81baf62e0","object":"chat.completion","created":1759009221,"model":"google/gemma-3-12b-it","choices":[{"index":0,"message":{"role":"assistant","reasoning_content":null,"content":"This is a classic trick question! They weigh the same. One pound is one pound, regardless of the material. 😊\n\n\n\n","tool_calls":[]},"logprobs":null,"finish_reason":"stop","stop_reason":106}],"usage":{"prompt_tokens":20,"total_tokens":46,"completion_tokens":26,"prompt_tokens_details":null},"prompt_logprobs":null

9- تَنظيم

من Cloud Shell، احذف مكوّنات البرنامج التعليمي.

gcloud ai endpoints undeploy-model ENDPOINT_ID --deployed-model-id=DEPLOYED_MODEL_ID --region=us-central1 --quiet

gcloud ai endpoints delete $ENDPOINT_ID --project=$projectid --region=us-central1 --quiet

gcloud ai models delete $MODEL_ID --project=$projectid --region=us-central1 --quiet

gcloud compute instances delete consumer-vm --zone=us-central1-a --quiet

gcloud compute forwarding-rules delete psc-consumer-ep --region=us-central1 --project=$projectid --quiet

gcloud compute addresses delete psc-address --region=us-central1 --project=$projectid --quiet

gcloud compute networks subnets delete pscendpoint-subnet consumer-vm-subnet --region=us-central1 --quiet

gcloud compute firewall-rules delete ssh-iap-consumer --project=$projectid

gcloud compute networks delete consumer-vpc --project=$projectid --quiet

gcloud projects delete $projectid --quiet

10. تهانينا

تهانينا، لقد نجحت في إعداد والتحقّق من إمكانية الوصول الخاص إلى واجهة برمجة التطبيقات Gemma 3 المستضافة على Vertex AI Prediction باستخدام نقطة نهاية Private Service Connect.

لقد أنشأت البنية الأساسية للمستهلك، بما في ذلك حجز عنوان IP داخلي وإعداد نقطة نهاية Private Service Connect (قاعدة إعادة توجيه) ضِمن شبكتك VPC. تتصل نقطة النهاية هذه بشكل آمن بخدمة Vertex AI من خلال استهداف مرفق الخدمة المرتبط بنموذج Gemma 3 الذي تم نشره. يسمح هذا الإعداد لتطبيقاتك داخل السحابة الخاصة الافتراضية أو الشبكات المرتبطة بالتفاعل مع Gemma 3 API بشكل خاص وآمن، وذلك باستخدام عنوان IP داخلي، بدون الحاجة إلى أن تمر الزيارات عبر الإنترنت العام.

مزيد من المعلومات والفيديوهات

المستندات المرجعية