Pengujian dasar pengukuran prediksi online Vertex AI dengan HEY

1. Pengantar

Tutorial ini akan menunjukkan cara membuat dan menilai metrik Prediksi Online Cloud Monitoring saat melakukan pengujian dasar pengukuran di us-central1 dan us-west1 ke endpoint Prediction yang di-deploy di us-central1 menggunakan alat performa web HEY.

Yang akan Anda build

Anda akan menyiapkan jaringan VPC bernama bertujuanl-vpc yang terdiri dari subnet dan instance di us-west1 dan us-central1 yang akan digunakan untuk menghasilkan traffic menggunakan HEY yang menargetkan Prediksi Online dan model yang di-deploy di us-central1.

Private Service Connect dan Private DNS juga disertakan dalam tutorial untuk menunjukkan bagaimana lingkungan lokal dan multi-cloud dapat memanfaatkan PSC untuk mengakses googleapis.

Cloud Monitoring dan Network Intelligence akan digunakan dalam tutorial untuk memvalidasi traffic yang dihasilkan dari HEY ke Prediksi Online. Meskipun langkah-langkah yang diuraikan dalam tutorial di-deploy di VPC, Anda dapat memanfaatkan langkah-langkah tersebut untuk men-deploy dan mendapatkan dasar pengukuran Vertex APIS dari lingkungan lokal atau multi-cloud. Arsitektur jaringan terdiri dari komponen di bawah ini:

dd5c102ce1ab0150.png

Di bawah ini adalah detail kasus penggunaannya:

  1. Mengakses Prediksi Online di us-central1 dari instance GCE di us-west1 menggunakan HEY
  2. Memastikan bahwa PSC digunakan untuk mengakses Vertex API
  3. Lakukan curl menggunakan HEY selama 5 menit
  4. Memvalidasi latensi menggunakan Cloud Monitoring
  5. Memvalidasi latensi antar-region menggunakan Network Intelligence
  6. Mengakses Prediksi Online di us-central1 dari instance GCE di us-central1 menggunakan HEY
  7. Memastikan bahwa PSC digunakan untuk mengakses Vertex API
  8. Lakukan curl menggunakan HEY selama 5 menit
  9. Memvalidasi latensi menggunakan Cloud Monitoring
  10. Memvalidasi latensi intra-region menggunakan Network Intelligence

Yang akan Anda pelajari

  • Cara membuat Endpoint Private Service Connect
  • Cara menghasilkan beban ke Prediksi Online menggunakan HEY
  • Cara membuat metrik Vertex AI menggunakan Cloud Monitoring
  • Cara menggunakan Network Intelligence untuk memvalidasi latensi antar-regional

Yang Anda butuhkan

  • Project Google Cloud

Izin IAM

Admin Jaringan Compute

Admin Jaringan Compute

Editor Direktori Layanan

Administrator DNS

Viewer Pengelolaan Jaringan

2. Sebelum memulai

Mengupdate project untuk mendukung tutorial

Tutorial ini menggunakan $variables untuk membantu implementasi konfigurasi gcloud di Cloud Shell.

Di dalam Cloud Shell, lakukan hal berikut:

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

3. Penyiapan destinationl-vpc

Membuat destinationl-vpc

gcloud services enable networkmanagement.googleapis.com

Di dalam Cloud Shell, lakukan hal berikut:

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

Di dalam Cloud Shell, aktifkan API pengelolaan jaringan untuk Network Intelligence

gcloud services enable networkmanagement.googleapis.com

Membuat subnet notebook yang dikelola pengguna

Di dalam Cloud Shell, buat workbench-subnet.

gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access

Di dalam Cloud Shell, buat us-west1-subnet.

gcloud compute networks subnets create us-west1-subnet --project=$projectid --range=192.168.10.0/28 --network=aiml-vpc --region=us-west1

Di dalam Cloud Shell, buat us-central1-subnet.

gcloud compute networks subnets create us-central1-subnet --project=$projectid --range=192.168.20.0/28 --network=aiml-vpc --region=us-central1

Konfigurasi Cloud Router dan NAT

Cloud NAT digunakan dalam tutorial untuk mendownload paket software karena instance GCE tidak memiliki alamat IP eksternal. Cloud NAT memberikan kemampuan NAT keluar, yang berarti host internet tidak diizinkan untuk memulai komunikasi dengan notebook yang dikelola pengguna, sehingga menjadikannya lebih aman.

Di dalam Cloud Shell, buat router cloud regional, us-west1.

gcloud compute routers create cloud-router-us-west1-aiml-nat --network aiml-vpc --region us-west1

Di dalam Cloud Shell, buat gateway cloud nat regional, us-west1.

gcloud compute routers nats create cloud-nat-us-west1 --router=cloud-router-us-west1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1

Di dalam Cloud Shell, buat router cloud regional, us-central1.

gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1

Di dalam Cloud Shell, buat gateway cloud nat regional, us-central1.

gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1

4. Membuat endpoint Private Service Connect

Di bagian berikut, Anda akan membuat endpoint Private Service Connect (PSC) yang akan digunakan untuk mengakses Vertex API dari destinationl-vpc.

Dari Cloud Shell

gcloud compute addresses create psc-ip \
    --global \
    --purpose=PRIVATE_SERVICE_CONNECT \
    --addresses=100.100.10.10 \
    --network=aiml-vpc

Simpan 'pscendpointip' selama durasi lab

pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")

echo $pscendpointip

Membuat Endpoint PSC

Dari Cloud Shell

gcloud compute forwarding-rules create pscvertex \
    --global \
    --network=aiml-vpc \
    --address=psc-ip \
    --target-google-apis-bundle=all-apis

Mencantumkan endpoint Private Service Connect yang dikonfigurasi

Dari Cloud Shell

gcloud compute forwarding-rules list  \
--filter target="(all-apis OR vpc-sc)" --global

Menjelaskan endpoint Private Service Connect yang dikonfigurasi

Dari Cloud Shell

gcloud compute forwarding-rules describe \
    pscvertex --global

5. Buat akun layanan untuk Instance GCE

Untuk memberikan tingkat kontrol yang baik ke Vertex API, diperlukan akun layanan yang dikelola pengguna, yang akan diterapkan ke instance barat dan sentral. Setelah dibuat, izin akun layanan dapat diubah berdasarkan persyaratan bisnis. Dalam tutorial, akun layanan yang dikelola pengguna, verteks-sa, akan menerapkan peran berikut:

Anda harus Service Account API sebelum melanjutkan.

Di dalam Cloud Shell, buat akun layanan.

gcloud iam service-accounts create vertex-gce-sa \
    --description="service account for vertex" \
    --display-name="vertex-sa"

Di dalam Cloud Shell, perbarui akun layanan dengan peran admin instance compute

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"

Di dalam Cloud Shell, perbarui akun layanan dengan peran Vertex AI User

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

6. Membuat akun layanan terkelola pengguna (Notebook)

Di bagian berikut, Anda akan membuat akun layanan terkelola pengguna yang akan dikaitkan dengan Vertex Workbench (Notebook) yang digunakan dalam tutorial.

Dalam tutorial, akun layanan akan menerapkan aturan berikut:

Di dalam Cloud Shell, buat akun layanan.

gcloud iam service-accounts create user-managed-notebook-sa \
    --display-name="user-managed-notebook-sa"

Di dalam Cloud Shell, perbarui akun layanan dengan peran Storage Admin.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"

Di dalam Cloud Shell, perbarui akun layanan dengan peran Vertex AI User.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"

Di dalam Cloud Shell, perbarui akun layanan dengan peran Artifact Registry Admin.

gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"

Di dalam Cloud Shell, cantumkan akun layanan dan catat alamat email yang akan digunakan saat membuat notebook yang dikelola pengguna.

gcloud iam service-accounts list

7. Membuat instance pengujian

Di bagian berikut, Anda akan membuat instance pengujian untuk melakukan pengujian dasar dari us-west1 dan us-central1.

Di dalam Cloud Shell, buat west-client.

gcloud compute instances create west-client \
    --zone=us-west1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=us-west1-subnet \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --shielded-secure-boot --service-account=vertex-gce-sa@$projectid.iam.gserviceaccount.com \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Di dalam Cloud Shell, buat klien pusat.

gcloud compute instances create central-client \
    --zone=us-central1-a \
    --image-family=debian-11 \
    --image-project=debian-cloud \
    --subnet=us-central1-subnet \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --no-address \
    --shielded-secure-boot --service-account=vertex-gce-sa@$projectid.iam.gserviceaccount.com \
    --metadata startup-script="#! /bin/bash
      sudo apt-get update
      sudo apt-get install tcpdump dnsutils -y"

Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:

  • Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan menggunakan IAP.
  • Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.

Di dalam Cloud Shell, buat aturan firewall IAP.

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

8. Membuat notebook yang dikelola pengguna

API notebook

Di bagian berikut, buat notebook yang dikelola pengguna dengan menggabungkan akun layanan yang dibuat sebelumnya, user-managed-notebook-sa.

Di dalam Cloud Shell, buat instance private-client.

gcloud notebooks instances create workbench-tutorial \
      --vm-image-project=deeplearning-platform-release \
      --vm-image-family=common-cpu-notebooks \
      --machine-type=n1-standard-4 \
      --location=us-central1-a \
      --subnet-region=us-central1 \
      --shielded-secure-boot \
      --subnet=workbench-subnet \
      --no-public-ip    --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com

Buka Vertex AI → Workbench untuk melihat notebook Anda yang telah di-deploy.

b02fcb9b07dca06a.png

9. Men-deploy Model dan Prediksi Online

Di bagian berikut, gunakan codelab,Vertex AI:Gunakan rutinitas prediksi kustom dengan Sklearn untuk melakukan prapemrosesan dan memposting data proses untuk prediksi yang akan dimulai dari Bagian 7 karena Anda telah membuat notebook di langkah sebelumnya. Setelah model di-deploy, kembali ke tutorial untuk memulai bagian berikutnya.

ee68b7ba0cfd2746.png

10. Membuat dasbor pemantauan kustom untuk Prediksi Online

Prediksi Online membuat Dasbor Pemantauan default di bagian VERTEX AI → PREDICTION ONLINE → NAMA ENDPOINT (diamonds-cpr_endpoint). Namun, untuk pengujian, kita perlu menentukan waktu mulai dan berhenti sehingga diperlukan Dasbor khusus.

Di bagian berikut, Anda akan membuat Metrik Cloud Monitoring untuk mendapatkan pengukuran latensi berdasarkan akses regional ke Endpoint Prediksi Online untuk memvalidasi berbagai latensi saat mengakses endpoint di us-central1 dari instance GCE yang di-deploy di us-west1 dan us-central.

Untuk tutorial, kita akan menggunakan metrik Predictions_latencies, metrik tambahan tersedia di aiplatform

Metrik

Deskripsi

prediction/online/prediction_latencies

Latensi prediksi online dari model yang di-deploy.

Buat diagram untuk Metrik prediksi_latensi

Dari Konsol Cloud, buka MONITORING → Metrics Explorer

536668ab0b29d77.pngS

Masukkan prediction/online/prediction_latencies Metrik lalu pilih opsi berikut, pilih Terapkan.

c1edd34208cb5ee2.png

Perbarui Grup berdasarkan berdasarkan opsi berikut, pilih Simpan Diagram.

e180a5d8a044b6e1.png

d2ecd6677a3b34e0.png

Pilih Simpan, Anda akan diminta untuk memilih Dasbor. Pilih Dasbor Baru & beri nama.

e29a39dc941c8599.png

Dasbor Kustom Vertex

Di bagian berikut, validasi Vertex Custom Dashboard menampilkan waktu yang benar.

Buka MONITORING → Dasbor dan pilih Vertex Custom Dashboard diikuti dengan memilih waktu. Pastikan Zona waktu Anda sudah benar.

f43ebed798ce1147.png

Pastikan untuk meluaskan legenda untuk mendapatkan tampilan tabel.

61ffeef22e067ca9.pngS

Contoh tampilan yang diperluas:

9027e8785c023129.pngS

11. Membuat DNS Pribadi untuk Endpoint PSC

Buat Zona DNS Pribadi di destinationl-vpc untuk me-resolve semua googleapis ke Alamat IP endpoint PSC 100.100.10.10.

Dari Cloud Shell, buat Zona DNS pribadi.

gcloud dns --project=$projectid managed-zones create psc-googleapis --description="Private Zone to resolve googleapis to a PSC endpoint" --dns-name="googleapis.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/aiml-vpc"

Dari Cloud Shell, buat kumpulan data A yang mengaitkan *. googleapis.com ke IP PSC.

gcloud dns --project=$projectid record-sets create *.googleapis.com. --zone="psc-googleapis" --type="A" --ttl="300" --rrdatas="100.100.10.10"

12. Hei pengujian variabel

Fitur ini menawarkan kemampuan kepada pengguna akhir untuk menyesuaikan pengujian berdasarkan persyaratan jaringan dan aplikasi. Untuk tujuan tutorial, kami akan menggunakan opsi yang dijelaskan di bawah dengan contoh string eksekusi:

c == 1 pekerja

z == Durasi

m == Metode HTTP POST

D == Isi permintaan HTTP dari file, instances.json

n == Jumlah permintaan yang akan dijalankan. Defaultnya adalah 200.

Contoh string curl dengan HEY (eksekusi tidak diperlukan)

user@us-central$ ./hey_linux_amd64 -c 1 -z 1m -m POST -D instances.json  -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid$}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict

13. Mendapatkan ID Prediksi

Dapatkan ID Endpoint Prediksi Online dari Konsol Cloud yang akan digunakan pada langkah berikutnya.

Buka VERTEX AI → PREDICTION ONLINE

ce4d4a88a3fa2345.png

14. Mendownload dan menjalankan HEY (us-west1)

Di bagian berikut, Anda akan login ke west-client untuk mendownload dan mengeksekusi HEY terhadap Prediksi Online yang terletak di us-central1.

Dari Cloud Shell, login ke west-client dan download HEY

gcloud compute ssh west-client --project=$projectid --zone=us-west1-a --tunnel-through-iap

Dari OS, download HEY dan perbarui izin.

wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64

Dari OS, buat variabel berikut:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Contoh:

ENDPOINT_ID="2706243362607857664"

Di bagian berikut, Anda akan membuat file instances.json menggunakan editor vi atau nano dan menyisipkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.

Dari west-client OS, buat instances.json file dengan string data di bawah ini:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Contoh:

user@west-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@west-client:$

Pra-pengujian

Dari OS, jalankan curl untuk memvalidasi model dan endpoint prediksi berfungsi dengan sukses. Catat IP endpoint PSC di log verbose dan HTTP/2 200 yang menunjukkan keberhasilan.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

Contoh, catat alamat IP PSC yang digunakan untuk mengakses prediksi & hasil yang sukses.

user@west-client:$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: Jul 31 08:22:19 2023 GMT
*  expire date: Oct 23 08:22:18 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55a9f38b42c0)
> POST /v1/projects/new-test-project-396322/locations/us-central1/endpoints/2706243362607857664:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.c.b0Aaekm1LqrcaOlWFFwuEOWX_tZVXXvJgN_K-u5_hFyEAYXAi3AnBEBwwtHS8dweW_P2QGfdyFfa31nMT_6BaKBI0mC9IsfzfIiUwXc8u2yJt01gTUSJpCmGAFKZKidRMgkPYivVYCnuymzdYbRAWacIe__StkRzI9UeQOGN3jNIeESr80AdH12goaxCFXWaNWxoYRfGVhekEgUcsKs7t1OhOM-937gy4YGkXcXa8sGuHWRqF5bnulYlTqlxqQ2aAxMTrQg2lwUWRGCmGhPrym7rXJq7oim0DkAJSbAarl1qFuz0PPfNXeHGbs13zY2r1giV7u8_w4Umj_Q5M7H9fTkq7EiqnLzqRkOHXismYL368P1jOUBYM__krFQt4M3X9RJa0g01tOw3FnOh27BmUqlFQ1J2h14JZpx215Q3xzRvgfJ5iW5YYSkv67uZRQk4V04naOUXyc0plzWuVOjj4nor3fYvkS_oW0IyxJoBjeXR16Vnvln8c04svWX9dt7eobczFvBOm9nVdh4lVp8qxbp__2WtMvc1QVg6y-2i6lRpbvmyp1oadxVRjxV1e0wiQFSe-qqsinJu3bnnaMbxdU2cu5j26o8o8Xpgo0SF1UM0b1WX84iatbWpdFSphZm1llwmRagMzcFBW0aBk-i35_bXSbzwURgMfY6Qbyb9Rv9y0F-Maf34I0WxiMldv2uc57nej7dVl9OSm_Ohnro-i9zcpq9fxo9soYVB8WjaZOUjauk4znstc2_6y4atcVVsQBkeU674biR567Ri3M74Jfv4MrrF02ObfrJRdB7UJ4MU_9kWW-kYeeJzoci15UqYV0f_yJgReBwQa66Supmebee2Sn2nku6xZkRMu5Mz55mXuva0XWrpIbor7WckSsXwUFbf7rj5ipa4mOOyf2hJe1Rq0x6yeBaariRzXrhfm5bBpFBU73-zd-IekvOji0ZJQSkk0o6gpX_794Jny7j14aQJ8VxezcFpZUztimYhMnRhlO2lqms1h0h48
> content-type: application/json
> content-length: 158
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< x-vertex-ai-internal-prediction-backend: harpoon
< content-type: application/json; charset=UTF-8
< date: Sun, 20 Aug 2023 03:51:54 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "3587550310781943808",
  "model": "projects/884291964428/locations/us-central1/models/6829574694488768512",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

Jalankan HEY

Dari OS, jalankan HEY yang mengaktifkan uji dasar 10 menit.

./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json  -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict

15. Validasi yang terhormat (us-west1)

Setelah Anda menjalankan Hey dari instance komputasi di us-west1, evaluasi hasil dari berikut ini:

  • Hasil HEY
  • Dasbor Kustom Vertex
  • Kecerdasan Jaringan

Hasil HEY

Dari OS, mari kita validasi hasil HEY berdasarkan eksekusi 10 menit,

17,5826 Permintaan per dtk

99% dalam 0.0686 dtk | 68 md

10.550 respons dengan 200 kode status

user@west-client:$ ./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json  -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict

Summary:
  Total:        600.0243 secs
  Slowest:      0.3039 secs
  Fastest:      0.0527 secs
  Average:      0.0569 secs
  Requests/sec: 17.5826
  

Response time histogram:
  0.053 [1]     |
  0.078 [10514] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.103 [16]    |
  0.128 [4]     |
  0.153 [3]     |
  0.178 [1]     |
  0.203 [0]     |
  0.229 [2]     |
  0.254 [1]     |
  0.279 [5]     |
  0.304 [3]     |


Latency distribution:
  10% in 0.0546 secs
  25% in 0.0551 secs
  50% in 0.0559 secs
  75% in 0.0571 secs
  90% in 0.0596 secs
  95% in 0.0613 secs
  99% in 0.0686 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0527 secs, 0.3039 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0116 secs
  req write:    0.0000 secs, 0.0000 secs, 0.0002 secs
  resp wait:    0.0567 secs, 0.0526 secs, 0.3038 secs
  resp read:    0.0001 secs, 0.0001 secs, 0.0696 secs

Status code distribution:
  [200] 10550 responses

Dasbor Kustom Vertex

Buka MONITORING → Dasbor dan pilih Vertex Custom Dashboard. Masukkan 10 m atau tentukan waktu mulai dan berhenti. Pastikan Zona waktu Anda sudah benar.

4102b1d0438c78e3.pngS

Dengan melihat definisi Latensi Prediksi menunjukkan metrik Sisi Server yang mengukur total waktu untuk merespons permintaan klien setelah mendapatkan respons dari model.

  • Total durasi latensi: Total waktu yang dihabiskan permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.

Sebaliknya, HEY adalah metrik sisi klien yang memperhitungkan parameter berikut:

Permintaan klien + Latensi total (termasuk latensi model) + Respons klien

Kecerdasan Jaringan

Sekarang mari kita lihat latensi jaringan antar-region yang dilaporkan oleh Network Intelligence untuk mendapatkan gambaran tentang latensi us-west1 hingga us-central1 yang dilaporkan oleh Google Cloud Platform.

Buka Network Intelligence Cloud Console → Performance Dashboard, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 32-39 milidetik.

aade5f757115721.png

Ringkasan dasar pengukuran us-west1 HEY

Membandingkan laporan latensi Total oleh alat pengujian menghasilkan latensi yang kira-kira sama seperti yang dilaporkan oleh HEY. Latensi antar-region berkontribusi pada sebagian besar latensi. Mari kita lihat bagaimana kinerja klien pusat dalam serangkaian pengujian berikutnya.

Alat Latensi

Durasi

Kecerdasan jaringan: latensi us-west1 ke us-central1

~32 hingga 39 md

Cloud Monitoring: Total latensi prediksi [99%]

34,58 md (99p)

Total latensi yang dilaporkan oleh Google

~ 66,58 hingga 73,58 md

Distribusi latensi sisi klien HEY

68 md (99p)

16. Mendownload dan menjalankan HEY (us-central1)

Di bagian berikut, Anda akan login ke klien pusat untuk mendownload dan mengeksekusi HEY terhadap Prediksi Online yang terletak di us-central1.

Dari Cloud Shell, login ke central-client dan download HEY

gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap

Dari OS, download HEY dan perbarui izin.

wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64

Dari OS, buat variabel berikut:

gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"

Contoh:

ENDPOINT_ID="2706243362607857664"

Di bagian berikut, Anda akan membuat file instances.json menggunakan editor vi atau nano dan menyisipkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.

Dari west-client OS, buat instances.json file dengan string data di bawah ini:

{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

Contoh:

user@west-client:$ more instances.json 
{"instances": [
  [0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
  [0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}

user@west-client:$

Pra-pengujian

Dari OS, jalankan curl untuk memvalidasi model dan endpoint prediksi berfungsi dengan sukses. Catat IP endpoint PSC di log verbose dan HTTP/2 200 yang menunjukkan keberhasilan.

curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json

Contoh, catat alamat IP PSC yang digunakan untuk mengakses prediksi & hasil yang sukses.

user@central-client:~$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=upload.video.google.com
*  start date: Jul 31 08:22:19 2023 GMT
*  expire date: Oct 23 08:22:18 2023 GMT
*  subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
*  issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x559b57adc2c0)
> POST /v1/projects/new-test-project-396322/locations/us-central1/endpoints/2706243362607857664:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.c.b0Aaekm1KWqq-CIXuL6f1cx9d9jHHquQq9tlSV1oVZ1y3TACi82JFFZRwsagVY7MMovycsU4PLkt9MDMkNngxZE5RzXcS-AoaUaQf1tPT9-_JMTlFI6wCcR7Yr9MeRF5AZblr_k52ZZgEZKeYGcrXoGiqGQcAAwFtHiEVAkUhLuyukteXbMoep1JM9E0zFblJj7Z0yOCMJYBH-6XHcIDYnOKpStMVBR2wcTDbnFrCE08HXbvRnQVcENatTBoI9FzSVL1ORwqUiCcdfnTSjpIXcyD-W82d6ZHjGX_RUhfnH7RPfOJqkuU8pOovwoCjq_jvM_wJUfPuQnBKHp5rxbYxPE349DMBql62po2SWFguuFo-a2eoUnb8-FQeBZqan65zgV0lexR73gZlm071y9grlXv3fmJUo7vlj5W-7_-FJXaWWg8iWc6rmjYeO1Wz2h_8qnmojkX9xSUciI6JfmwdgMWwtvwJb63ppSmdwf8oagrYiQlpMzgRI6rekbRzg-1WOBeOf5nRg5vtxUMSc9iRaoarO5XwFX8vt7rxOUBvbXYVWmo3bsdhzsS9VopMwgMlxgcIJg7bq7_F3iapB-nRjfjfhZWpR83cWIkI2Wb9f89inpsxtYjZbbzdWkZvRB8FYSsY8F8tcpiVoWWyQWZiph9z7O59fF9irWY2gtUnbFcJJ_ZcYztjlMQaR45y42ZflkM3Qn668bzge3Y3hmVI1s6ZSmxxq6m27hoMwVn21R07Y613jwljmaFJ5V8MwkR6yvFhYngrh_JrhRUQtSSMh02Rz25wMfv7g8Fiqymr-12viM4btIFjXZBM3XFqzvso_rw1omI1yYWofmbaBYggpegpJBzSeqVUZe791agjVtiMUkyjXFy__9gI0Qk9ZUarI4p25SvS4I1hX4YyBk6ol32Z5zIsVr1Seff__aklm6M2Mlkumd7nurm46hjOIoOhFpfFxrQ6yivnhYapBOJMYirgbZvigvI3dom1fnmt0-ktmRxp69w7Uzzy
> content-type: application/json
> content-length: 158
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200 
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Sun, 20 Aug 2023 22:25:31 GMT
< content-type: application/json; charset=UTF-8
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
< 
{
  "predictions": [
    "$479.0",
    "$586.0"
  ],
  "deployedModelId": "3587550310781943808",
  "model": "projects/884291964428/locations/us-central1/models/6829574694488768512",
  "modelDisplayName": "diamonds-cpr",
  "modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact

Jalankan HEY

Dari OS, jalankan HEY yang mengaktifkan uji dasar 10 menit.

./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json  -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict

17. Validasi Halo (us-central1)

Setelah Anda menjalankan Hey dari instance komputasi di us-central1, evaluasi hasil dari hal berikut:

  • Hasil HEY
  • Dasbor Kustom Vertex
  • Kecerdasan Jaringan

Hasil HEY

Dari OS, mari kita validasi hasil HEY berdasarkan eksekusi 10 menit,

44,9408 Permintaan per dtk

99% dalam 0.0353 dtk | 35 md

Respons 26965 dengan kode status 200

devops_user_1_deepakmichael_alto@central-client:~$ ./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json  -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict

Summary:
  Total:        600.0113 secs
  Slowest:      0.3673 secs
  Fastest:      0.0184 secs
  Average:      0.0222 secs
  Requests/sec: 44.9408
  

Response time histogram:
  0.018 [1]     |
  0.053 [26923] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.088 [25]    |
  0.123 [4]     |
  0.158 [0]     |
  0.193 [1]     |
  0.228 [9]     |
  0.263 [1]     |
  0.298 [0]     |
  0.332 [0]     |
  0.367 [1]     |


Latency distribution:
  10% in 0.0199 secs
  25% in 0.0205 secs
  50% in 0.0213 secs
  75% in 0.0226 secs
  90% in 0.0253 secs
  95% in 0.0273 secs
  99% in 0.0353 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0184 secs, 0.3673 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0079 secs
  req write:    0.0000 secs, 0.0000 secs, 0.0007 secs
  resp wait:    0.0220 secs, 0.0182 secs, 0.3672 secs
  resp read:    0.0002 secs, 0.0001 secs, 0.0046 secs

Status code distribution:
  [200] 26965 responses

Dasbor Kustom Vertex

Buka MONITORING → Dashboard lalu pilih Vertex Custom Dashboard, masukkan 10m. Atau waktu mulai dan berhenti. Pastikan Zona waktu Anda sudah benar.

Latensi Prediksi selama 10m terakhir menghasilkan 30,533 ms.

Dengan melihat definisi Latensi Prediksi menunjukkan metrik Sisi Server yang mengukur total waktu untuk merespons permintaan klien setelah mendapatkan respons dari model.

  • Total durasi latensi: Total waktu yang dihabiskan permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.

Sebaliknya, HEY adalah metrik sisi klien yang memperhitungkan parameter berikut:

Permintaan klien + Latensi total (termasuk latensi model) + Respons klien

Kecerdasan Jaringan

Sekarang mari kita lihat latensi jaringan intra region yang dilaporkan oleh Network Intelligence untuk mendapatkan gambaran tentang latensi us-central1 yang dilaporkan oleh Google Cloud Platform.

Buka Network Intelligence Cloud Console → Performance Dashboard, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 0,2 hingga 0,8 md.

eaa84848c3185fde.png

Ringkasan dasar pengukuran us-central1 HEY

Membandingkan total latensi yang dilaporkan oleh alat pengujian menghasilkan latensi yang lebih rendah daripada west-client karena endpoint komputasi (klien terpusat) dan Vertex (prediksi model dan online) di region yang sama.

Alat Latensi

Durasi

Kecerdasan jaringan: latensi intra region us-central1

~0,2 hingga 0,8 md

Cloud Monitoring: Total latensi prediksi [99%]

30,533 md (99p)

Total latensi yang dilaporkan oleh Google

~30,733 hingga 31,333 md

HEY latensi sisi klien

35 md (99p)

18. Selamat

Selamat, Anda telah berhasil men-deploy dan memvalidasi HEY untuk mendapatkan latensi dasar Prediksi sisi klien menggunakan kombinasi Cloud Monitoring dan Network Intelligence. Berdasarkan pengujian, Anda mengidentifikasi endpoint prediksi di us-central dapat disalurkan antar-region, tetapi latensinya terdeteksi.

Cosmopup menganggap tutorialnya luar biasa!!

e6d3675ca7c6911f.jpeg

19. Pembersihan

Dari Cloud Shell, hapus komponen tutorial.

gcloud compute instances delete central-client --zone=us-central1-a -q

gcloud compute instances delete west-client --zone=us-west1-a -q

gcloud compute instances delete workbench-tutorial --zone=us-central1-a -q

gcloud compute forwarding-rules delete pscvertex --global --quiet 

gcloud compute addresses delete psc-ip --global --quiet

gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet 

gcloud compute networks subnets delete us-west1-subnet --region=us-west1 --quiet

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

gcloud compute routers delete cloud-router-us-west1-aiml-nat --region=us-west1 --quiet

gcloud compute routers delete cloud-router-us-central1-aiml-nat --region=us-central1 --quiet

gcloud compute firewall-rules delete  ssh-iap-vpc --quiet

gcloud dns record-sets delete *.googleapis.com. --zone=psc-googleapis --type=A --quiet

gcloud dns managed-zones delete psc-googleapis --quiet

gcloud compute networks delete aiml-vpc --quiet

gcloud storage rm -r gs://$projectid-cpr-bucket

Berikut ini beberapa hal yang dihapus dari Konsol Cloud:

Folder Artifact Registry

99c17044e2f80919.pngS

Dari Vertex AI Model Registry, batalkan deployment model:

f5b315f089ae6283.png

Dari Vertex AI Online Prediction, hapus endpoint

9b58688a5037de84.pngS

Apa selanjutnya?

Lihat beberapa tutorial ini...

Bacaan lebih lanjut & Video

Dokumen referensi