1. Giới thiệu
Hướng dẫn này sẽ hướng dẫn bạn cách tạo và đánh giá các chỉ số Dự đoán trực tuyến của Cloud Monitoring khi thực hiện kiểm thử đường cơ sở trên us-central1 và us-west1 cho một điểm cuối Dự đoán được triển khai trong us-central1 bằng công cụ hiệu suất web HEY.
Sản phẩm bạn sẽ tạo ra
Bạn sẽ thiết lập một mạng VPC có tên là aiml-vpc, bao gồm các mạng con và phiên bản trong us-west1 và us-central1. Mạng này sẽ được dùng để tạo lưu lượng truy cập bằng cách sử dụng HEY nhắm đến một Mô hình dự đoán trực tuyến được triển khai trong us-central1.
Private Service Connect và DNS riêng tư cũng được tích hợp trong hướng dẫn để minh hoạ cách môi trường tại chỗ và nhiều đám mây có thể tận dụng PSC để truy cập vào googleapis.
Cloud Monitoring và Network Intelligence sẽ được dùng trong hướng dẫn để xác thực lưu lượng truy cập được tạo từ HEY đến Online Prediction. Mặc dù các bước được nêu trong hướng dẫn này được triển khai trong một VPC, nhưng bạn có thể tận dụng các bước này để triển khai và lấy đường cơ sở của Vertex API từ môi trường tại chỗ hoặc môi trường đa đám mây. Cấu trúc mạng bao gồm các thành phần dưới đây:

Dưới đây là thông tin chi tiết về trường hợp sử dụng:
- Truy cập vào tính năng Dự đoán trực tuyến trong us-central1 từ các phiên bản GCE trong us-west1 bằng HEY
- Xác minh rằng PSC đang được dùng để truy cập vào Vertex API
- Thực hiện curl bằng HEY trong 5 phút
- Xác thực độ trễ bằng Cloud Monitoring
- Xác thực độ trễ giữa các khu vực bằng Network Intelligence
- Truy cập vào tính năng Dự đoán trực tuyến trong us-central1 từ một phiên bản GCE trong us-central1 bằng HEY
- Xác minh rằng PSC đang được dùng để truy cập vào Vertex API
- Thực hiện curl bằng HEY trong 5 phút
- Xác thực độ trễ bằng Cloud Monitoring
- Xác thực độ trễ trong khu vực bằng Network Intelligence
Kiến thức bạn sẽ học được
- Cách thiết lập một điểm cuối Private Service Connect
- Cách tạo tải cho tính năng Dự đoán trực tuyến bằng HEY
- Cách tạo chỉ số Vertex AI bằng Cloud Monitoring
- Cách sử dụng Network Intelligence để xác thực độ trễ trong và giữa các khu vực
Bạn cần có
- Dự án trên Google Cloud
Quyền IAM
2. Trước khi bắt đầu
Cập nhật dự án để hỗ trợ hướng dẫn
Hướng dẫn này sử dụng $variables để hỗ trợ việc triển khai cấu hình gcloud trong Cloud Shell.
Trong Cloud Shell, hãy thực hiện các bước sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Thiết lập aiml-vpc
Tạo aiml-vpc
gcloud services enable networkmanagement.googleapis.com
Trong Cloud Shell, hãy thực hiện các bước sau:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Trong Cloud Shell, hãy bật API quản lý mạng cho Network Intelligence
gcloud services enable networkmanagement.googleapis.com
Tạo mạng con sổ tay do người dùng quản lý
Trong Cloud Shell, hãy tạo 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
Trong Cloud Shell, hãy tạo 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
Trong Cloud Shell, hãy tạo 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
Cấu hình Cloud Router và NAT
Cloud NAT được dùng trong hướng dẫn để tải các gói phần mềm xuống vì phiên bản GCE không có địa chỉ IP ngoài. Cloud NAT cung cấp các chức năng NAT xuất cảnh, tức là các máy chủ lưu trữ trên Internet không được phép bắt đầu giao tiếp với một sổ tay do người dùng quản lý, giúp tăng cường tính bảo mật.
Trong Cloud Shell, hãy tạo bộ định tuyến đám mây theo khu vực, us-west1.
gcloud compute routers create cloud-router-us-west1-aiml-nat --network aiml-vpc --region us-west1
Trong Cloud Shell, hãy tạo cổng NAT đám mây theo khu vực, 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
Trong Cloud Shell, hãy tạo bộ định tuyến đám mây theo khu vực, us-central1.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
Trong Cloud Shell, hãy tạo cổng NAT đám mây theo khu vực, 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. Tạo điểm cuối Private Service Connect
Trong phần sau, bạn sẽ tạo một điểm cuối Private Service Connect (PSC) để truy cập vào Vertex API từ aiml-vpc.
Từ Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Lưu trữ "pscendpointip" trong thời gian diễn ra phòng thí nghiệm
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")
echo $pscendpointip
Tạo điểm cuối PSC
Từ Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Liệt kê các điểm cuối Private Service Connect đã định cấu hình
Từ Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Mô tả các điểm cuối Private Service Connect đã định cấu hình
Từ Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
5. Tạo tài khoản dịch vụ cho các phiên bản GCE
Để cung cấp mức độ kiểm soát chi tiết cho Vertex API, bạn cần có một tài khoản dịch vụ do người dùng quản lý. Tài khoản này sẽ được áp dụng cho các thực thể ở miền tây và miền trung. Sau khi được tạo, bạn có thể sửa đổi các quyền của tài khoản dịch vụ dựa trên yêu cầu của doanh nghiệp. Trong hướng dẫn này, tài khoản dịch vụ do người dùng quản lý (vertex-sa) sẽ được áp dụng các vai trò sau:
Bạn phải Service Account API trước khi tiếp tục.
Trong Cloud Shell, hãy tạo tài khoản dịch vụ.
gcloud iam service-accounts create vertex-gce-sa \
--description="service account for vertex" \
--display-name="vertex-sa"
Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò quản trị viên phiên bản điện toán
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Người dùng Vertex AI
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
6. Tạo tài khoản dịch vụ do người dùng quản lý (Sổ tay)
Trong phần sau, bạn sẽ tạo một tài khoản dịch vụ do người dùng quản lý và được liên kết với Vertex Workbench (Notebook) dùng trong hướng dẫn.
Trong hướng dẫn này, tài khoản dịch vụ sẽ áp dụng các quy tắc sau:
Trong Cloud Shell, hãy tạo tài khoản dịch vụ.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Quản trị viên bộ nhớ.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Người dùng Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Trong Cloud Shell, hãy cập nhật tài khoản dịch vụ bằng vai trò Quản trị viên Artifact Registry.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
Trong Cloud Shell, hãy liệt kê tài khoản dịch vụ và ghi lại địa chỉ email sẽ được dùng khi tạo sổ tay do người dùng quản lý.
gcloud iam service-accounts list
7. Tạo các phiên bản kiểm thử
Trong phần sau, bạn sẽ tạo các thực thể kiểm thử để thực hiện kiểm thử đường cơ sở từ us-west1 và us-central1.
Trong Cloud Shell, hãy tạo 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"
Tạo central-client trong Cloud Shell.
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"
Để cho phép IAP kết nối với các phiên bản máy ảo, hãy tạo một quy tắc tường lửa có:
- Áp dụng cho tất cả các phiên bản máy ảo mà bạn muốn có thể truy cập bằng IAP.
- Cho phép lưu lượng truy cập vào từ dải IP 35.235.240.0/20. Dải này chứa tất cả địa chỉ IP mà IAP sử dụng để chuyển tiếp TCP.
Trong Cloud Shell, hãy tạo quy tắc tường lửa IAP.
gcloud compute firewall-rules create ssh-iap-vpc \
--network aiml-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
8. Tạo sổ tay do người dùng quản lý
Trong phần sau, hãy tạo một sổ tay do người dùng quản lý kết hợp với tài khoản dịch vụ đã tạo trước đó, user-managed-notebook-sa.
Tạo thực thể ứng dụng khách riêng tư trong Cloud Shell.
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
Chuyển đến Vertex AI → Workbench để xem sổ tay đã triển khai.

9. Triển khai Mô hình và Dự đoán trực tuyến
Trong phần sau, hãy sử dụng lớp học lập trìnhđược cung cấp,Vertex AI:Sử dụng các quy trình dự đoán tuỳ chỉnh bằng Sklearn để tiền xử lý và hậu xử lý dữ liệu cho các dự đoán bắt đầu từ Phần 7 vì bạn đã tạo một sổ tay ở bước trước. Sau khi triển khai mô hình, hãy quay lại hướng dẫn để bắt đầu phần tiếp theo.

10. Tạo trang tổng quan giám sát tuỳ chỉnh cho Dự đoán trực tuyến
Tính năng Dự đoán trực tuyến sẽ tạo một Trang tổng quan giám sát mặc định trong VERTEX AI → DỰ ĐOÁN TRỰC TUYẾN → TÊN ĐIỂM CUỐI (diamonds-cpr_endpoint). Tuy nhiên, để kiểm thử, chúng ta cần xác định thời gian bắt đầu và thời gian dừng, do đó, cần có một Trang tổng quan tuỳ chỉnh.
Trong phần sau, bạn sẽ tạo Chỉ số Cloud Monitoring để thu thập các phép đo độ trễ dựa trên quyền truy cập theo khu vực vào Điểm cuối dự đoán trực tuyến nhằm xác thực độ trễ khác nhau khi truy cập vào một điểm cuối trong us-central1 từ các thực thể GCE được triển khai trong us-west1 và us-central.
Trong hướng dẫn này, chúng ta sẽ sử dụng chỉ số prediction_latencies. Bạn có thể xem các chỉ số khác trong aiplatform
Chỉ số | Mô tả |
prediction/online/prediction_latencies | Độ trễ dự đoán trực tuyến của mô hình được triển khai. |
Tạo biểu đồ cho Chỉ số prediction_latencies
Trên Cloud Console, hãy chuyển đến mục GIÁM SÁT → Trình khám phá chỉ số

Chèn Chỉ số prediction/online/prediction_latencies và chọn các lựa chọn sau, sau đó chọn Áp dụng.

Cập nhật bộ lọc nhóm theo dựa trên lựa chọn sau đây, chọn Lưu biểu đồ.


Chọn Lưu, bạn sẽ được nhắc chọn một Trang tổng quan. Chọn Trang tổng quan mới rồi đặt tên.

Trang tổng quan tuỳ chỉnh của Vertex
Trong phần sau, hãy xác thực rằng Trang tổng quan tuỳ chỉnh của Vertex đang hiển thị đúng thời gian.
Chuyển đến mục GIÁM SÁT → Trang tổng quan rồi chọn Trang tổng quan tuỳ chỉnh của Vertex, sau đó chọn thời gian. Đảm bảo bạn chọn đúng múi giờ.

Hãy nhớ mở rộng chú thích để xem chế độ xem bảng.

Ví dụ về chế độ xem mở rộng:

11. Tạo DNS riêng tư cho điểm cuối PSC
Tạo một Vùng DNS riêng tư trong aiml-vpc để phân giải tất cả googleapis thành Địa chỉ IP điểm cuối PSC 100.100.10.10.
Trong Cloud Shell, hãy tạo một vùng DNS riêng tư.
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"
Trong Cloud Shell, hãy tạo bản ghi A liên kết *. googleapis.com với IP PSC.
gcloud dns --project=$projectid record-sets create *.googleapis.com. --zone="psc-googleapis" --type="A" --ttl="300" --rrdatas="100.100.10.10"
12. Biến kiểm thử Hey
Hey cho phép người dùng cuối tuỳ chỉnh hoạt động kiểm thử dựa trên các yêu cầu về mạng và ứng dụng. Trong hướng dẫn này, chúng ta sẽ sử dụng lựa chọn được trình bày chi tiết bên dưới cùng với một chuỗi thực thi mẫu:
c == 1 worker
z == Thời lượng
m == HTTP method POST
D == Nội dung yêu cầu HTTP từ tệp, instances.json
n == Số yêu cầu cần chạy. Giá trị mặc định là 200.
Ví dụ về chuỗi curl có HEY (không bắt buộc phải thực thi)
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. Lấy mã nhận dạng dự đoán
Lấy Mã nhận dạng điểm cuối dự đoán trực tuyến từ Cloud Console để dùng trong các bước tiếp theo.
Chuyển đến VERTEX AI → ONLINE PREDICTION (Vertex AI → Dự đoán trực tuyến)

14. Tải xuống và thực thi HEY (us-west1)
Trong phần sau, bạn sẽ đăng nhập vào west-client để tải xuống và thực thi HEY đối với tính năng Dự đoán trực tuyến nằm ở us-central1.
Từ Cloud Shell, hãy đăng nhập vào west-client và tải HEY xuống
gcloud compute ssh west-client --project=$projectid --zone=us-west1-a --tunnel-through-iap
Tải HEY xuống từ hệ điều hành và cập nhật các quyền.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Từ hệ điều hành, hãy tạo các biến sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Ví dụ:
ENDPOINT_ID="2706243362607857664"
Trong phần sau, bạn sẽ tạo một tệp instances.json bằng trình chỉnh sửa vi hoặc nano và chèn chuỗi dữ liệu dùng để lấy thông tin dự đoán từ mô hình đã triển khai.
Từ hệ điều hành west-client, hãy tạo một tệp instances.json bằng chuỗi dữ liệu bên dưới:
{"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]]}
Ví dụ:
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:$
Kiểm tra trước
Từ hệ điều hành, hãy thực thi một lệnh curl để xác thực rằng mô hình và điểm cuối dự đoán đang hoạt động thành công. Ghi lại IP điểm cuối PSC trong nhật ký chi tiết và HTTP/2 200 cho biết thành công.
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
Ví dụ: lưu ý địa chỉ IP PSC được dùng để truy cập vào kết quả dự đoán và kết quả thành công.
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
Thực thi HEY
Từ hệ điều hành, hãy thực thi HEY để bật kiểm thử cơ sở trong 10 phút.
./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. Hey Validation (us-west1)
Giờ đây, khi bạn đã thực thi lệnh Hey từ một phiên bản điện toán trong us-west1, hãy đánh giá kết quả từ những nội dung sau:
- Kết quả HEY
- Trang tổng quan tuỳ chỉnh của Vertex
- Network Intelligence
Kết quả HEY
Từ hệ điều hành, hãy xác thực kết quả HEY dựa trên thời gian thực thi 10 phút,
17.5826 yêu cầu mỗi giây
99% trong 0,0686 giây | 68 mili giây
10.550 phản hồi có mã trạng thái 200
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
Trang tổng quan tuỳ chỉnh của Vertex
Chuyển đến phần GIÁM SÁT → Trang tổng quan rồi chọn Trang tổng quan tuỳ chỉnh của Vertex. Nhập 10m hoặc chỉ định thời gian bắt đầu và kết thúc. Đảm bảo bạn chọn đúng múi giờ.

Xem xét định nghĩa về Độ trễ dự đoán cho thấy một chỉ số Phía máy chủ đo tổng thời gian phản hồi yêu cầu của máy khách sau khi nhận được phản hồi từ mô hình.
- Tổng thời lượng độ trễ: Tổng thời gian mà một yêu cầu dành cho dịch vụ, là độ trễ của mô hình cộng với độ trễ của hệ thống.
Ngược lại, HEY là một chỉ số phía máy khách có tính đến các tham số sau:
Yêu cầu của ứng dụng + Tổng độ trễ (bao gồm cả độ trễ của mô hình) + Phản hồi của ứng dụng
Thông tin mạng
Bây giờ, hãy xem độ trễ mạng giữa các khu vực do Network Intelligence báo cáo để biết độ trễ từ us-west1 đến us-central1 do Google Cloud Platform báo cáo.
Chuyển đến Cloud Console Network Intelligence → Performance Dashboard (Thông tin chi tiết về mạng trên Cloud Console → Trang tổng quan về hiệu suất) rồi chọn các lựa chọn sau đây (như trong ảnh chụp màn hình bên dưới) cho biết độ trễ từ 32 đến 39 mili giây.

HEY us-west1 baseline summary
Khi so sánh báo cáo Tổng độ trễ theo các công cụ kiểm thử, bạn sẽ thấy độ trễ mà HEY báo cáo là gần như giống nhau. Độ trễ giữa các khu vực chiếm phần lớn độ trễ. Hãy xem hiệu suất của ứng dụng trung tâm trong loạt thử nghiệm tiếp theo.
Công cụ đo độ trễ | Thời lượng |
Thông tin tình báo về mạng: độ trễ từ us-west1 đến us-central1 | ~32 đến 39 mili giây |
Cloud Monitoring: Tổng độ trễ dự đoán [99%] | 34,58 mili giây (99p) |
Tổng độ trễ do Google báo cáo | ~ 66,58 đến 73,58 mili giây |
Phân phối độ trễ phía máy khách HEY | 68 mili giây (99p) |
16. Tải và thực thi HEY (us-central1)
Trong phần sau, bạn sẽ đăng nhập vào central-client để tải xuống và thực thi HEY đối với Dự đoán trực tuyến nằm ở us-central1.
Từ Cloud Shell, hãy đăng nhập vào central-client và tải HEY xuống
gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Tải HEY xuống từ hệ điều hành và cập nhật các quyền.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Từ hệ điều hành, hãy tạo các biến sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Ví dụ:
ENDPOINT_ID="2706243362607857664"
Trong phần sau, bạn sẽ tạo một tệp instances.json bằng trình chỉnh sửa vi hoặc nano và chèn chuỗi dữ liệu dùng để lấy thông tin dự đoán từ mô hình đã triển khai.
Từ hệ điều hành west-client, hãy tạo một tệp instances.json bằng chuỗi dữ liệu bên dưới:
{"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]]}
Ví dụ:
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:$
Kiểm tra trước
Từ hệ điều hành, hãy thực thi một lệnh curl để xác thực rằng mô hình và điểm cuối dự đoán đang hoạt động thành công. Ghi lại IP điểm cuối PSC trong nhật ký chi tiết và HTTP/2 200 cho biết thành công.
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
Ví dụ: lưu ý địa chỉ IP PSC được dùng để truy cập vào kết quả dự đoán và kết quả thành công.
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
Thực hiện lệnh HEY
Từ hệ điều hành, hãy thực thi HEY để bật kiểm thử cơ sở trong 10 phút.
./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. Hey Validation (us-central1)
Giờ đây, khi bạn đã thực thi lệnh Hey từ một phiên bản điện toán trong us-central1, hãy đánh giá kết quả từ những nội dung sau:
- Kết quả HEY
- Trang tổng quan tuỳ chỉnh của Vertex
- Network Intelligence
Kết quả HEY
Từ hệ điều hành, hãy xác thực kết quả HEY dựa trên thời gian thực thi 10 phút,
44,9408 yêu cầu mỗi giây
99% trong 0,0353 giây | 35 mili giây
26965 phản hồi có mã trạng thái 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
Trang tổng quan tuỳ chỉnh của Vertex
Chuyển đến MONITORING (GIÁM SÁT) → Dashboard (Trang tổng quan) rồi chọn Vertex Custom Dashboard (Trang tổng quan tuỳ chỉnh của Vertex), nhập 10m. Hoặc thời gian bắt đầu và kết thúc. Đảm bảo bạn chọn đúng múi giờ.
Độ trễ dự đoán trong 10 phút qua là 30,533 mili giây.
Xem xét định nghĩa về Độ trễ dự đoán cho thấy một chỉ số Phía máy chủ đo tổng thời gian phản hồi yêu cầu của máy khách sau khi nhận được phản hồi từ mô hình.
- Tổng thời lượng độ trễ: Tổng thời gian mà một yêu cầu dành cho dịch vụ, là độ trễ của mô hình cộng với độ trễ của hệ thống.
Ngược lại, HEY là một chỉ số phía máy khách có tính đến các tham số sau:
Yêu cầu của ứng dụng + Tổng độ trễ (bao gồm cả độ trễ của mô hình) + Phản hồi của ứng dụng
Thông tin mạng
Bây giờ, hãy xem độ trễ mạng trong khu vực do Network Intelligence báo cáo để biết độ trễ us-central1 do Google Cloud Platform báo cáo.
Chuyển đến Cloud Console Network Intelligence → Performance Dashboard (Thông tin chi tiết về mạng trên Cloud Console → Trang tổng quan về hiệu suất) rồi chọn các lựa chọn sau đây (như trong ảnh chụp màn hình bên dưới) cho biết độ trễ từ 0,2 đến 0,8 mili giây.

HEY us-central1 baseline summary
Việc so sánh tổng độ trễ do các công cụ kiểm thử báo cáo sẽ cho thấy độ trễ thấp hơn so với west-client do các điểm cuối tính toán (central-client) và Vertex (mô hình và dự đoán trực tuyến) nằm trong cùng một khu vực.
Công cụ đo độ trễ | Thời lượng |
Thông tin tình báo về mạng: độ trễ trong khu vực us-central1 | ~0,2 đến 0,8 mili giây |
Cloud Monitoring: Tổng độ trễ dự đoán [99%] | 30.533 mili giây (99p) |
Tổng độ trễ do Google báo cáo | ~30.733 đến 31.333 mili giây |
Độ trễ phía máy khách HEY | 35 mili giây (phân vị thứ 99) |
18. Xin chúc mừng
Chúc mừng bạn đã triển khai và xác thực thành công HEY để có được độ trễ đường cơ sở Dự đoán phía máy khách bằng cách kết hợp Giám sát trên đám mây và Thông tin chi tiết về mạng. Dựa trên quy trình kiểm thử, bạn phải xác định một điểm cuối dự đoán ở khu vực trung tâm Hoa Kỳ có thể được phân phát giữa các khu vực, tuy nhiên, độ trễ đã được ghi nhận.
Cosmopup cho rằng các hướng dẫn rất hữu ích!!

19. Dọn dẹp
Trong Cloud Shell, hãy xoá các thành phần hướng dẫn.
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
Đã xoá những nội dung sau đây khỏi Cloud Console:
Thư mục Artifact Registry

Trong Vertex AI Model Registry, hãy huỷ triển khai mô hình:

Xoá điểm cuối khỏi Vertex AI Online Prediction

Tiếp theo là gì?
Hãy xem một số hướng dẫn này...
- Private Service Connect cho các API của Google
- Vertex AI tạo một sổ ghi chép do người dùng quản lý và bảo mật
Tài liệu đọc thêm và video
- Tổng quan về Private Service Connect
- Private Service Connect là gì?
- Cách nhận thông tin dự đoán từ một mô hình học máy
- Vertex AI là gì?