1. Giới thiệu
Hướng dẫn này sẽ chỉ cho bạn cách tạo và đánh giá các chỉ số Dự đoán trực tuyến của giải pháp Giám sát trên đám mây khi thực hiện kiểm thử cơ sở trên us-central1 và us-west1 đến một điểm cuối Dự đoán được triển khai trong us-central1 bằng công cụ đo lường 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 đám mây riêng ảo (VPC) có tên là intentl-vpc, bao gồm các mạng con và phiên bản trong us-west1 và us-central1. Các mạng này sẽ được dùng để tạo lưu lượng truy cập bằng cách sử dụng phương thức nhắm mục tiêu HEY cho một Dự đoán trực tuyến và mô hình được triển khai trong us-central1.
Private Service Connect và DNS riêng cũng được kết hợp trong hướng dẫn để minh hoạ cách các môi trường tại cơ sở và môi trường đa đám mây có thể tận dụng PSC để truy cập vào googleapis.
Giải pháp Giám sát đám mây và Thông tin mạng sẽ được dùng trong hướng dẫn để xác thực lưu lượng truy cập do HEY tạo ra cho công cụ Dự đoán trực tuyến. Mặc dù các bước nêu trong hướng dẫn được triển khai trong đám mây riêng ảo (VPC), nhưng bạn có thể tận dụng các bước đó để triển khai và lấy nền tảng của Vertex APIS từ môi trường thực tế hoặc nhiều đá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 này:
- Truy cập Dự đoán trực tuyến trong us-central1 từ các thực thể 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 cuộn tròn bằng HEY trong 5 phút
- Xác thực độ trễ bằng giải pháp Giám sát trên đám mây
- Xác thực độ trễ liên khu vực bằng Network Intelligence
- Truy cập Dự đoán trực tuyến trong us-central1 từ các 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 cuộn tròn bằng HEY trong 5 phút
- Xác thực độ trễ bằng giải pháp Giám sát trên đám mây
- 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 điểm cuối Kết nối dịch vụ riêng tư
- Cách tạo tải cho Dự đoán trực tuyến bằng HEY
- Cách tạo chỉ số Vertex AI bằng giải pháp Giám sát trên đám mây
- Cách sử dụng Network Intelligence để xác thực nội bộ & độ trễ liên khu vực
Bạn cần có
- Dự án trong Google Cloud
Quyền quản lý danh tính và quyền truy cập (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.
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Thiết lập intentl-vpc
Tạo tenl-vpc
các dịch vụ gcloud bật networkmanagement.googleapis.com
Bên trong Cloud Shell, hãy thực hiện như sau:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Inside Cloud Shell, bật API quản lý mạng cho Network Intelligence
gcloud services enable networkmanagement.googleapis.com
Tạo mạng con cho sổ tay do người dùng quản lý
Bên trong Cloud Shell, hãy tạo mạng con Workbench.
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
Bên 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
Bên trong Cloud Shell, hãy tạo mạng con us-central1.
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 gói phần mềm xuống vì phiên bản GCE không có địa chỉ IP bên ngoài. Cloud NAT cung cấp chức năng NAT đầu ra, nghĩa là các máy chủ Internet không được phép bắt đầu giao tiếp với sổ tay do người dùng quản lý, nhờ đó tăng cường bảo mật cho sổ tay đó.
Bên 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
Bên trong Cloud Shell, hãy tạo cổng vào đá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
Bên 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
Bên trong Cloud Shell, hãy tạo cổng vào đá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 của Kết nối dịch vụ riêng tư (PSC) dùng để truy cập vào Vertex API qua{/4}l-vpc.
Của 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 hoạt động của 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
Của 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 của Private Service Connect đã định cấu hình
Của Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Mô tả các điểm cuối của Private Service Connect đã định cấu hình
Của Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
5. Tạo tài khoản dịch vụ cho các thực thể GCE
Để cung cấp mức độ kiểm soát chi tiết cho Vertex API, bạn cần phải có 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 phiên bản miền Tây và Trung tâm. Sau khi tạo, bạn có thể sửa đổi các quyền đối với tài khoản dịch vụ dựa trên yêu cầu kinh doanh. 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ẽ áp dụng các vai trò sau:
Bạn phải API Tài khoản dịch vụ trước khi tiếp tục.
Bên 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"
Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ có vai trò quản trị viên thực thể đ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"
Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với 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ý. Tài khoản này sẽ liên kết với Vertex Workbench (Sổ tay) mà bạn dùng trong phần hướng dẫn.
Trong hướng dẫn, các quy tắc sau sẽ áp dụng cho tài khoản dịch vụ:
Bên 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ụ với 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"
Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với 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"
Bên trong Cloud Shell, hãy cập nhật tài khoản dịch vụ với 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 thực thể 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ử cơ sở từ us-west1 và us-central1.
Bên 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"
Bên trong Cloud Shell, tạo khách hàng trung tâm.
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 của bạn, hãy tạo một quy tắc tường lửa:
- Áp dụng cho tất cả các thực thể máy ảo mà bạn muốn truy cập được bằng cách sử dụ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.
Bên trong Cloud Shell, hãy tạo quy tắc tường lửa cho 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 tài khoản dịch vụ đã tạo trước đó, sổ tay do người dùng quản lý.
Bên trong Cloud Shell, hãy tạo thực thể máy khách riêng tư.
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 bạn đã 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 với Sklearn để xử lý trước và đăng dữ liệu xử lý cho thông tin dự đoán bắt đầu từ Mục 7 vì bạn đã tạo một sổ tay ở bước trước. Sau khi mô hình được triển khai, hãy quay lại phần 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
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 → KHUYẾN CÁO TRỰC TUYẾN → ENDPOINT NAME (kim cương-cpr_endpoint). Tuy nhiên, để thử nghiệm, chúng tôi cần xác định thời gian bắt đầu và thời gian kết thúc, do đó, cần có Trang tổng quan tuỳ chỉnh.
Trong phần sau, bạn sẽ tạo các Chỉ số giám sát trên đám mây để lấy dữ liệu đo lường độ 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 cá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 tại us-west1 và us-central.
Trong hướng dẫn này, chúng tôi sẽ sử dụng chỉ số dự đoán_lat Basics, các chỉ số khác có trong aiplatform
Chỉ số | Mô tả |
prediction/online/prediction_latencies | Độ trễ dự đoán trực tuyến của mô hình đã triển khai. |
Tạo biểu đồ cho projection_latencies Chỉ số
Từ Cloud Console, chuyển đến trang 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, rồi chọn Áp dụng.
Cập nhật nhãn Nhóm theo dựa vào tuỳ chọn sau đây, chọn Lưu biểu đồ.
Chọn Lưu, bạn sẽ được nhắc chọn Trang tổng quan. Chọn Trang tổng quan mới & hãy cung cấp tên.
Trang tổng quan tuỳ chỉnh 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ị thời gian chính xác.
Chuyển đến phần GIÁM SÁT → Trang tổng quan rồi chọn Vertex Custom Dashboard (Trang tổng quan tuỳ chỉnh) rồi chọn thời gian. Đảm bảo Múi giờ của bạn là chính xác.
Nhớ mở rộng chú giải để có chế độ xem theo bảng.
Ví dụ về chế độ xem mở rộng:
11. Tạo DNS riêng cho điểm cuối PSC
Tạo vùng DNS riêng trong{/4}l-vpc để giải quyết tất cả googleapis đến địa chỉ IP điểm cuối PSC 100.100.10.10.
Trên 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 sang 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 thử nghiệm
Ok cho phép người dùng cuối tuỳ chỉnh thử nghiệm 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 tuỳ chọn được nêu chi tiết bên dưới với một chuỗi thực thi mẫu:
c == 1 worker
z == Thời lượng
m == POST của phương thức HTTP
D == Nội dung yêu cầu HTTP từ tệp, hồ sơ.json
n == Số yêu cầu cần chạy. Giá trị mặc định là 200.
Ví dụ về chuỗi curl với 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ã dự đoán
Nhận Mã nhận dạng thiết bị đầu cuối dự đoán trực tuyến từ Cloud Console. Mã này sẽ được dùng trong các bước tiếp theo.
Chuyển đến phần VERTEX AI → HIỂN THỊ 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 dựa trên Dự đoán trực tuyến nằm trong us-central1.
Từ Cloud Shell, đă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
Trong hệ điều hành, hãy tải HEY xuống rồi 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
Trong 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 tệpinstance.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.
Trên hệ điều hành west-client, hãy tạo một 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 thử trước
Từ hệ điều hành, hãy thực thi một curl để xác thực mô hình và điểm cuối dự đoán đang hoạt động thành công. Lưu ý 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ụ: ghi lại địa chỉ IP PSC dùng để truy cập vào thông tin 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
Trên hệ điều hành, hãy thực thi HEY để bật bài kiểm thử cơ sở 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. Xác thực Hey (us-west1)
Bây giờ, bạn đã thực thi Hey từ một thực thể điện toán trong us-west1, hãy đánh giá kết quả từ những điều sau:
- Kết quả của HEY
- Trang tổng quan tuỳ chỉnh của Vertex
- Thông tin mạng
Kết quả của 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 với 200 mã trạng thái
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 Vertex
Chuyển đến mục GIÁM SÁT → Trang tổng quan rồi chọn Trang tổng quan tuỳ chỉnh Vertex. Nhập 10 phút hoặc chỉ định thời gian bắt đầu và thời gian kết thúc. Đảm bảo Múi giờ của bạn là chính xác.
Xem định nghĩa về Thời gian trễ dự đoán cho biết chỉ số Phía máy chủ đo lường tổng thời gian phản hồi yêu cầu của khách hàng sau khi nhận được phản hồi từ mô hình.
- Tổng khoảng thời gian chờ: Tổng thời gian mà một yêu cầu dành ra trong dịch vụ, là độ trễ của mô hình cộng với độ trễ hao tổn.
Ngược lại, HEY là chỉ số phía máy khách có tính đến những thông số sau:
Yêu cầu của ứng dụng + Tổng độ trễ (bao gồm độ trễ của mô hình) + Phản hồi của ứng dụng
Network Intelligence
Bây giờ, hãy cùng tìm hiểu độ trễ của mạng liên khu vực do Network Intelligence báo cáo để nắm được độ trễ us-west1 đến us-central1 do Google Cloud Platform báo cáo.
Chuyển đến Cloud Console Network Intelligence → Trang tổng quan về hiệu suất rồi chọn các lựa chọn sau được nêu chi tiết trong ảnh chụp màn hình ở bên dưới cho thấy độ trễ từ 32 đến 39 mili giây.
Thông tin tóm tắt về đường cơ sở của HEY us-west1
Việc so sánh báo cáo Tổng độ trễ bằng các công cụ kiểm tra sẽ có độ trễ gần tương tự như báo cáo của HEY. Độ trễ giữa các khu vực góp phần lớn vào độ trễ. Hãy xem hiệu suất của khách hàng trung tâm trong loạt thử nghiệm tiếp theo.
Công cụ độ trễ | Thời lượng |
Dữ liệu thông minh mạng: độ trễ từ us-west1 đến us-central1 | ~32 đến 39 mili giây |
Giám sát trên đám mây: 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 ms |
Phân phối độ trễ phía máy khách HEY | 68 mili giây (99p) |
16. Tải xuống 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 dựa trên Dự đoán trực tuyến nằm trong us-central1.
Từ Cloud Shell, đăng nhập vào ứng dụng trung tâm và tải HEY xuống
gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Trong hệ điều hành, hãy tải HEY xuống rồi 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
Trong 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 tệpinstance.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.
Trên hệ điều hành west-client, hãy tạo một 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 thử trước
Từ hệ điều hành, hãy thực thi một curl để xác thực mô hình và điểm cuối dự đoán đang hoạt động thành công. Lưu ý 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ụ: ghi lại địa chỉ IP PSC dùng để truy cập vào thông tin 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 thi HEY
Trên hệ điều hành, hãy thực thi HEY để bật bài kiểm thử cơ sở 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. Xác thực Hey (us-central1)
Bây giờ, bạn đã thực thi Hey từ một thực thể điện toán trong us-central1, hãy đánh giá kết quả từ những nội dung sau:
- Kết quả của HEY
- Trang tổng quan tuỳ chỉnh của Vertex
- Thông tin mạng
Kết quả của 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 trên mỗi giây
99% trong 0,0353 giây | 35 mili giây
26965 phản hồi với 200 mã trạng thái
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 Vertex
Chuyển đến phần GIÁM SÁT → Trang tổng quan rồi chọn Vertex Custom Dashboard (Trang tổng quan tuỳ chỉnh), nhập 10m. Hoặc thời gian bắt đầu và thời gian kết thúc. Đảm bảo Múi giờ của bạn là chính xác.
Thời gian trễ dự đoán cho 10 phút cuối cùng mang lại 30,533 ms.
Xem định nghĩa về Thời gian trễ dự đoán cho biết chỉ số Phía máy chủ đo lường tổng thời gian phản hồi yêu cầu của khách hàng sau khi nhận được phản hồi từ mô hình.
- Tổng khoảng thời gian chờ: Tổng thời gian mà một yêu cầu dành ra trong dịch vụ, là độ trễ của mô hình cộng với độ trễ hao tổn.
Ngược lại, HEY là chỉ số phía máy khách có tính đến những thông số sau:
Yêu cầu của ứng dụng + Tổng độ trễ (bao gồm độ trễ của mô hình) + Phản hồi của ứng dụng
Network Intelligence
Bây giờ, hãy cùng tìm hiểu độ trễ của mạng nội bộ trong khu vực do Network Intelligence báo cáo để nắm được độ trễ us-central1 do Google Cloud Platform báo cáo.
Chuyển đến Cloud Console Network Intelligence → Trang tổng quan về hiệu suất rồi chọn các lựa chọn sau được nêu chi tiết trong ảnh chụp màn hình bên dưới. Độ trễ từ ,2 đến ,8 mili giây.
Thông tin tóm tắt cơ sở về us-central1
Việc so sánh tổng độ trễ do các công cụ kiểm thử báo cáo cho thấy độ trễ thấp hơn so với máy khách phía Tây do các điểm cuối điện toán (máy khách trung tâm) và các điểm cuối Vertex (mô hình và thông tin dự đoán trực tuyến) trong cùng một khu vực.
Công cụ độ trễ | Thời lượng |
Tình báo mạng: độ trễ trong khu vực us-central1 | ~ 0,2 đến 0,8 mili giây |
Giám sát trên đám mây: 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 ms |
Độ trễ phía máy khách HEY | 35 mili giây (99p) |
18. Xin chúc mừng
Xin chúc mừng! Bạn đã triển khai và xác thực thành công HEY để nhận được độ trễ cơ sở của tính năng Dự đoán phía máy khách bằng cách sử dụng kết hợp giải pháp Giám sát trên đám mây và Thông tin mạng. Dựa trên kết quả thử nghiệm, bạn đã xác định một điểm cuối dự đoán tại us-central có thể được phân phát liên khu vực, tuy nhiên chúng tôi vẫn quan sát thấy độ trễ.
Cosmopup cho rằng các video hướng dẫn rất tuyệt vời!!
19. Dọn dẹp
Trên 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
Trong Cloud Console, các dữ liệu sau đây đã bị xoá:
Thư mục Artifact Registry
Trong Vertex AI Model Registry, huỷ triển khai mô hình:
Trên Vertex AI Online Prediction, hãy xoá điểm cuối
Tiếp theo là gì?
Hãy xem một số hướng dẫn trong số này...
- Private Service Connect dành cho API của Google
- Vertex AI tạo một sổ tay bảo mật do người dùng quản lý
Tài liệu đọc thêm & 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ô hình học máy
- Vertex AI là gì?