ติดตั้งใช้งาน Model Garden ในปลายทาง PSC

1. บทนำ

ใช้ประโยชน์จาก Private Service Connect เพื่อสร้างการเข้าถึงแบบส่วนตัวที่ปลอดภัยสำหรับโมเดลที่ติดตั้งใช้งานจาก Vertex AI Model Garden วิธีนี้ช่วยให้คุณติดตั้งใช้งานโมเดลไปยังปลายทาง Vertex AI ส่วนตัวที่เข้าถึงได้ภายใน Virtual Private Cloud (VPC) เท่านั้น แทนที่จะเปิดเผยปลายทางสาธารณะ

Private Service Connect จะสร้างปลายทางที่มีที่อยู่ IP ภายในใน VPC ซึ่งเชื่อมต่อโดยตรงกับบริการ Vertex AI ที่ Google จัดการซึ่งโฮสต์โมเดลของคุณ ซึ่งจะช่วยให้แอปพลิเคชันใน VPC และสภาพแวดล้อมภายในองค์กร (ผ่าน Cloud VPN หรือ Interconnect) ส่งคำขออนุมานโดยใช้ IP ส่วนตัวได้ การจราจรของข้อมูลในเครือข่ายทั้งหมดจะยังคงอยู่ในเครือข่ายของ Google ซึ่งจะช่วยเพิ่มความปลอดภัย ลดเวลาในการตอบสนอง และแยกปลายทางการแสดงโมเดลออกจากอินเทอร์เน็ตสาธารณะโดยสมบูรณ์

4a78228d4197997c.png

สิ่งที่คุณจะสร้าง

ในบทแนะนำนี้ คุณจะได้ดาวน์โหลด Gemma 3 จาก Model Garden ซึ่งโฮสต์ในการอนุมานออนไลน์ของ Vertex AI เป็นปลายทางส่วนตัวที่เข้าถึงได้ผ่าน Private Service Connect การตั้งค่าแบบครบวงจรจะมีขั้นตอนต่อไปนี้

  1. โมเดล Model Garden: คุณจะเลือก Gemma 3 จาก Vertex AI Model Garden และทำให้ใช้งานได้ไปยังปลายทาง Private Service Connect
  2. Private Service Connect: คุณจะกำหนดค่าอุปกรณ์ปลายทางของผู้ใช้ใน Virtual Private Cloud (VPC) ซึ่งประกอบด้วยที่อยู่ IP ภายในเครือข่ายของคุณเอง
  3. การเชื่อมต่อที่ปลอดภัยกับ Vertex AI: ปลายทาง PSC จะกำหนดเป้าหมายไปยัง Service Attachment ที่ Vertex AI สร้างขึ้นโดยอัตโนมัติสำหรับการติดตั้งใช้งานโมเดลส่วนตัว ซึ่งจะสร้างการเชื่อมต่อส่วนตัวเพื่อให้มั่นใจว่าการรับส่งข้อมูลระหว่าง VPC กับปลายทางการแสดงโมเดลจะไม่ผ่านอินเทอร์เน็ตสาธารณะ
  4. การกำหนดค่าไคลเอ็นต์ภายใน VPC: คุณจะตั้งค่าไคลเอ็นต์ (เช่น VM ของ Compute Engine) ภายใน VPC เพื่อส่งคำขอการอนุมานไปยังโมเดลที่ทำให้ใช้งานได้โดยใช้ที่อยู่ IP ภายในของปลายทาง PSC

เมื่อสิ้นสุดแล้ว คุณจะมีตัวอย่างการทำงานของโมเดล Model Garden ที่ให้บริการแบบส่วนตัว ซึ่งเข้าถึงได้จากภายในเครือข่าย VPC ที่กำหนดเท่านั้น

สิ่งที่คุณจะได้เรียนรู้

ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีทำให้โมเดลจาก Vertex AI Model Garden ใช้งานได้ และทำให้เข้าถึงได้อย่างปลอดภัยจาก Virtual Private Cloud (VPC) โดยใช้ Private Service Connect (PSC) วิธีนี้ช่วยให้แอปพลิเคชันภายใน VPC (ผู้ใช้) เชื่อมต่อกับปลายทางโมเดล Vertex AI (บริการผู้ผลิต) แบบส่วนตัวได้โดยไม่ต้องผ่านอินเทอร์เน็ตสาธารณะ

โดยเฉพาะอย่างยิ่ง คุณจะได้เรียนรู้สิ่งต่อไปนี้

  1. ทำความเข้าใจ PSC สำหรับ Vertex AI: วิธีที่ PSC ช่วยให้การเชื่อมต่อจากผู้บริโภคไปยังผู้ผลิตเป็นแบบส่วนตัวและปลอดภัย VPC สามารถเข้าถึงโมเดล Model Garden ที่ติดตั้งใช้งานได้โดยใช้ที่อยู่ IP ภายใน
  2. การติดตั้งใช้งานโมเดลที่มีการเข้าถึงแบบส่วนตัว: วิธีกำหนดค่าปลายทาง Vertex AI สำหรับโมเดล Model Garden เพื่อใช้ PSC ซึ่งจะทำให้เป็นปลายทางส่วนตัว
  3. บทบาทของ Service Attachment: เมื่อคุณทำให้ใช้งานได้โมเดลไปยังปลายทาง Vertex AI ส่วนตัว Google Cloud จะสร้าง Service Attachment ในโปรเจ็กต์ผู้เช่าที่ Google จัดการโดยอัตโนมัติ การเชื่อมต่อบริการนี้จะแสดงบริการการแสดงโมเดลต่อเครือข่ายของผู้บริโภค
  4. การสร้างปลายทาง PSC ใน VPC
  • วิธีรับ URI ของการเชื่อมต่อบริการที่ไม่ซ้ำจากรายละเอียดของปลายทาง Vertex AI ที่ทำให้ใช้งานได้
  • วิธีจองที่อยู่ IP ภายในภายในซับเน็ตที่เลือกใน VPC
  • วิธีสร้างกฎการส่งต่อใน VPC ที่ทำหน้าที่เป็นอุปกรณ์ปลายทาง PSC โดยกำหนดเป้าหมายเป็นไฟล์แนบบริการ Vertex AI โดยปลายทางนี้จะทำให้เข้าถึงโมเดลได้ผ่าน IP ภายในที่สงวนไว้
  1. การสร้างการเชื่อมต่อส่วนตัว: วิธีที่อุปกรณ์ปลายทาง PSC ใน VPC เชื่อมต่อกับไฟล์แนบบริการ ซึ่งเชื่อมต่อเครือข่ายของคุณกับบริการ Vertex AI อย่างปลอดภัย
  2. การส่งคำขออนุมานแบบส่วนตัว: วิธีส่งคำขอการคาดการณ์จากทรัพยากร (เช่น VM ของ Compute Engine) ภายใน VPC ไปยังที่อยู่ IP ภายในของปลายทาง PSC
  3. การตรวจสอบ: ขั้นตอนในการทดสอบและยืนยันว่าคุณส่งคำขออนุมานจาก VPC ไปยังโมเดล Model Garden ที่ทำให้ใช้งานได้ผ่านการเชื่อมต่อส่วนตัวได้สำเร็จ

เมื่อดำเนินการนี้เสร็จแล้ว คุณจะโฮสต์โมเดลจาก Model Garden ที่เข้าถึงได้จากโครงสร้างพื้นฐานเครือข่ายส่วนตัวเท่านั้น

สิ่งที่คุณต้องมี

โปรเจ็กต์ Google Cloud

สิทธิ์ IAM

2. ก่อนเริ่มต้น

อัปเดตโปรเจ็กต์เพื่อให้รองรับบทแนะนำ

บทแนะนำนี้ใช้ $variables เพื่อช่วยในการติดตั้งใช้งานการกำหนดค่า gcloud ใน Cloud Shell

ใน Cloud Shell ให้ทำดังนี้

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

การเปิดใช้ API

ใน 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 ให้ไปที่ Model Garden แล้วค้นหาและเลือก Gemma 3

10c7ce35cfc571dc.png

คลิกตัวเลือกการทำให้ใช้งานได้ แล้วเลือก Vertex AI

ed9280fcc5f4c3fa.png

ในแผง "Deploy on Vertex AI" ให้เลือก "Advanced" ระบบจะเลือกภูมิภาคและข้อกำหนดของเครื่องที่ป้อนข้อมูลไว้ล่วงหน้าตามความจุที่พร้อมใช้งาน คุณเปลี่ยนค่าเหล่านี้ได้ แต่ Codelab นี้ปรับแต่งมาสำหรับ 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 สตริง URI นี้ใช้โดยผู้ใช้เมื่อทำให้ปลายทางผู้ใช้ 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

สร้างซับเน็ต VM ของผู้ใช้

ใน 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. เปิดใช้ IAP

หากต้องการอนุญาตให้ IAP เชื่อมต่อกับอินสแตนซ์ VM ให้สร้างกฎไฟร์วอลล์ที่มีลักษณะดังนี้

  • มีผลกับอินสแตนซ์ VM ทั้งหมดที่คุณต้องการให้เข้าถึงได้โดยใช้ IAP
  • อนุญาตการรับส่งข้อมูลขาเข้าจากช่วง IP 35.235.240.0/20 ช่วงนี้มีที่อยู่ IP ทั้งหมดที่ IAP ใช้สำหรับการส่งต่อ TCP

สร้างกฎไฟร์วอลล์ IAP ภายใน Cloud Shell

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

6. สร้างอินสแตนซ์ VM สำหรับผู้บริโภค

สร้างอินสแตนซ์ VM ของผู้ใช้ชื่อ consumer-vm ใน Cloud Shell

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 แล้ว

แสดงรายการที่อยู่ IP ที่สงวนไว้ภายใน Cloud Shell

gcloud compute addresses list 

คุณควรเห็นที่อยู่ IP 10.10.10.6 ที่สงวนไว้

edb5661bea25cd14.png

สร้างปลายทางผู้ใช้โดยระบุ URI ของการเชื่อมต่อบริการ 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. ทดสอบจาก VM ของผู้บริโภค

ใน Cloud Shell ให้ทำตามขั้นตอนต่อไปนี้เพื่อให้สิทธิ์เข้าถึง VM ของผู้บริโภคเพื่อเข้าถึง Vertex Model Garden API

SSH เข้าสู่ VM ของผู้บริโภค

f0984d9e60530cb2.png

ตรวจสอบสิทธิ์อีกครั้งด้วยข้อมูลรับรองเริ่มต้นของแอปพลิเคชันและระบุขอบเขต Vertex AI

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

ใช้ตารางด้านล่างเพื่อสร้างคำสั่ง CURLl และปรับตามสภาพแวดล้อมของคุณ

แอตทริบิวต์

ค่า

โปรโตคอล

HTTP

ตำแหน่ง

us-central1

ปลายทางการคาดการณ์ออนไลน์

2133539641536544768

รหัสโปรเจ็กต์

test4-473419

รุ่น

gemma-3-12b-it

IP ของปลายทาง Private Service Connect

10.10.10.6

ข้อความ

[{"role": "user","content": "อะไรหนักกว่ากัน ขนนก 1 ปอนด์หรือหิน 1 ปอนด์"}]

อัปเดตและเรียกใช้คำสั่ง 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 ที่ด้านล่างของเอาต์พุต ซึ่งแสดงให้เห็นว่าคุณสามารถเข้าถึงปลายทาง API แบบส่วนตัวผ่านปลายทาง 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 API ที่โฮสต์ในการคาดการณ์ของ Vertex AI โดยใช้ปลายทาง Private Service Connect เรียบร้อยแล้ว

คุณสร้างโครงสร้างพื้นฐานของผู้บริโภค ซึ่งรวมถึงการจองที่อยู่ IP ภายในและการกำหนดค่าปลายทาง Private Service Connect (กฎการส่งต่อ) ภายใน VPC ปลายทางนี้เชื่อมต่อกับบริการ Vertex AI อย่างปลอดภัยโดยกำหนดเป้าหมายไปยังการเชื่อมต่อบริการที่เชื่อมโยงกับโมเดล Gemma 3 ที่คุณติดตั้งใช้งาน การตั้งค่านี้ช่วยให้แอปพลิเคชันภายใน VPC หรือเครือข่ายที่เชื่อมต่อสามารถโต้ตอบกับ Gemma 3 API แบบส่วนตัวและปลอดภัยโดยใช้ที่อยู่ IP ภายใน โดยไม่ต้องกำหนดให้การรับส่งข้อมูลผ่านอินเทอร์เน็ตสาธารณะ

อ่านเพิ่มเติมและวิดีโอ

เอกสารอ้างอิง