Menggunakan endpoint pribadi untuk prediksi online

Penggunaan endpoint pribadi untuk melayani prediksi online dengan Vertex AI memberikan koneksi aman dan berlatensi rendah ke layanan prediksi online Vertex AI. Panduan ini menunjukkan cara mengonfigurasi endpoint pribadi di Vertex AI menggunakan Peering Jaringan VPC untuk melakukan peering jaringan dengan layanan prediksi online Vertex AI.

Ringkasan

Sebelum menyajikan prediksi online dengan endpoint pribadi, Anda harus mengonfigurasi akses layanan pribadi untuk membuat koneksi peering antara jaringan Anda dan Vertex AI. Jika sudah mengaturnya, Anda dapat menggunakan koneksi peering yang ada.

Panduan ini mencakup tugas-tugas berikut:

  • Memverifikasi status koneksi peering yang ada.
  • Memverifikasi API yang diperlukan telah diaktifkan.
  • Membuat endpoint pribadi.
  • Men-deploy model ke endpoint pribadi.
    • Hanya mendukung satu model per endpoint pribadi. Hal ini berbeda dengan endpoint Vertex AI publik tempat Anda dapat membagi traffic di beberapa model yang di-deploy ke satu endpoint.
    • Endpoint pribadi mendukung model tabular dan model terlatih kustom AutoML.
  • Mengirim prediksi ke endpoint pribadi.
  • Membersihkan resource

Memeriksa status koneksi peering yang ada

Jika sudah memiliki koneksi peering yang digunakan dengan Vertex AI, Anda dapat mencantumkannya untuk memeriksa status:

gcloud compute networks peerings list --network NETWORK_NAME

Anda akan melihat status koneksi peering ACTIVE. Pelajari lebih lanjut koneksi peering aktif.

Mengaktifkan API yang diperlukan

gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com

Membuat endpoint pribadi

Untuk membuat endpoint pribadi, tambahkan flag --network saat Anda membuat endpoint menggunakan Google Cloud CLI:

gcloud beta ai endpoints create \
  --display-name=ENDPOINT_DISPLAY_NAME \
  --network=FULLY_QUALIFIED_NETWORK_NAME \
  --region=REGION

Ganti NETWORK_NAME dengan nama jaringan yang sepenuhnya memenuhi syarat:

projects/PROJECT_NUMBER/global/networks/NETWORK_NAME

Jika membuat endpoint tanpa menentukan jaringan, berarti Anda harus membuat endpoint publik.

Batasan endpoint pribadi

Perhatikan batasan berikut untuk endpoint pribadi:

  • Endpoint pribadi saat ini tidak mendukung pemisahan traffic. Sebagai solusinya, Anda dapat membuat pemisahan traffic secara manual dengan men-deploy model ke beberapa endpoint pribadi, dan membagi traffic di antara URL prediksi yang dihasilkan untuk setiap endpoint pribadi.
  • Endpoint pribadi tidak mendukung SSL/TLS.
  • Untuk mengaktifkan logging akses di endpoint pribadi, hubungi vertex-ai-feedback@google.com.
  • Anda hanya dapat menggunakan satu jaringan untuk semua endpoint pribadi di project Google Cloud. Jika Anda ingin beralih ke jaringan lain, hubungi vertex-ai-feedback@google.com.
  • Percobaan ulang sisi klien pada error yang dapat dipulihkan sangat direkomendasikan. Error ini dapat mencakup error berikut:
    • Respons kosong (kode error HTTP 0), mungkin karena koneksi terputus sementara.
    • Kode error HTTP 5xx yang menunjukkan bahwa layanan mungkin tidak tersedia untuk sementara.
  • Untuk kode error HTTP 429 yang menunjukkan bahwa sistem saat ini kelebihan beban, pertimbangkan memperlambat traffic untuk mengurangi masalah ini, bukan mencoba ulang.
  • Permintaan prediksi dari PredictionServiceClient di library klien Vertex AI Python tidak didukung.

Memantau endpoint pribadi

Anda dapat menggunakan dasbor metrik untuk memeriksa ketersediaan dan latensi traffic yang dikirim ke endpoint pribadi.

Untuk menyesuaikan pemantauan, buat kueri untuk dua metrik berikut di Cloud Monitoring:

  • aiplatform.googleapis.com/prediction/online/private/response_count

    Jumlah respons prediksi. Anda dapat memfilter metrik ini menurut kode respons deployed_model_id atau HTTP.

  • aiplatform.googleapis.com/prediction/online/private/prediction_latencies

    Latensi permintaan prediksi dalam milidetik. Anda dapat memfilter metrik ini menurut deployed_model_id, hanya untuk permintaan yang berhasil.

Pelajari cara memilih, membuat kueri, dan menampilkan metrik ini di Metrics Explorer.

Men-deploy model

Anda dapat mengimpor model baru, atau men-deploy model yang ada yang telah diupload. Untuk mengupload model baru, gunakan gcloud ai models upload. Untuk mengetahui informasi selengkapnya, lihat Mengimpor model ke Vertex AI.

  1. Untuk men-deploy model ke endpoint pribadi, lihat panduan untuk men-deploy model. Selain pemisahan traffic dan mengaktifkan logging akses secara manual, Anda dapat menggunakan salah satu opsi lain yang tersedia untuk men-deploy model kustom yang dilatih. Lihat batasan endpoint pribadi untuk mempelajari lebih lanjut perbedaannya dengan endpoint publik.

  2. Setelah men-deploy endpoint, Anda bisa mendapatkan URI prediksi dari metadata endpoint pribadi.

    1. Jika Anda memiliki nama tampilan endpoint pribadi, jalankan perintah ini untuk mendapatkan ID endpoint:

      ENDPOINT_ID=$(gcloud ai endpoints list \
                --region=REGION \
                --filter=displayName:ENDPOINT_DISPLAY_NAME \
                --format="value(ENDPOINT_ID.scope())")
      

      Jika tidak, untuk melihat ID endpoint dan nama tampilan semua endpoint Anda, jalankan perintah berikut:

      gcloud ai endpoints list --region=REGION
      
    2. Terakhir, untuk mendapatkan URI prediksi, jalankan perintah berikut:

      gcloud beta ai endpoints describe ENDPOINT_ID \
        --region=REGION \
        --format="value(deployedModels.privateEndpoints.predictHttpUri)"
      

Format URI prediksi pribadi

URI prediksi terlihat berbeda untuk endpoint pribadi dibandingkan dengan endpoint publik Vertex AI:

http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict

Jika Anda memilih untuk membatalkan deployment model saat ini dan men-deploy ulang dengan model baru, nama domain akan digunakan kembali, tetapi jalurnya akan menyertakan ID model lain yang telah di-deploy.

Mengirim prediksi ke endpoint pribadi

  1. Buat instance Compute Engine di jaringan VPC Anda. Pastikan untuk membuat instance di jaringan VPC yang sama dengan yang Anda peering dengan Vertex AI.

  2. Jalankan SSH ke instance Compute Engine Anda, dan instal klien prediksi, jika ada. Jika tidak, Anda dapat menggunakan curl.

  3. Saat memprediksi, gunakan URL prediksi yang diperoleh dari deployment model. Dalam contoh ini, Anda mengirim permintaan dari klien prediksi di instance Compute Engine pada jaringan VPC yang sama:

    curl -X POST -d@PATH_TO_JSON_FILE  http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
    

    Dalam contoh permintaan ini, PATH_TO_JSON_FILE adalah jalur ke permintaan prediksi Anda, yang disimpan sebagai file JSON. Contoh, example-request.json.

Membersihkan resource

Anda dapat membatalkan deployment model dan menghapus endpoint pribadi dengan cara yang sama seperti pada model dan endpoint publik. Anda hanya dapat membuat endpoint pribadi di satu jaringan per project Google Cloud, meskipun menghapus resource ini sendiri setelahnya. Jika Anda perlu beralih ke jaringan lain, hubungi vertex-ai-feedback@google.com.

Contoh: Menguji endpoint pribadi di VPC Bersama

Contoh ini menggunakan dua project Google Cloud dengan jaringan VPC Bersama:

  • Project host menghosting jaringan VPC Bersama.
  • Project klien menghosting instance Compute Engine tempat Anda menjalankan klien prediksi, seperti curl, atau klien REST Anda sendiri di instance Compute Engine, untuk mengirim permintaan prediksi.

Saat Anda membuat instance Compute Engine di project klien, instance tersebut harus berada di dalam subnet kustom di jaringan VPC Bersama project host, dan di region yang sama tempat model di-deploy.

  1. Buat koneksi peering untuk akses layanan pribadi di project host. Jalankan gcloud services vpc-peerings connect:

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=HOST_SHARED_VPC_NAME \
      --ranges=PREDICTION_RESERVED_RANGE_NAME \
      --project=HOST_PROJECT_ID
    
  2. Buat endpoint di project klien, menggunakan nama jaringan project host. Jalankan gcloud beta ai endpoints create:

    gcloud beta ai endpoints create \
      --display-name=ENDPOINT_DISPLAY_NAME \
      --network=HOST_SHARED_VPC_NAME \
      --region=REGION \
      --project=CLIENT_PROJECT_ID
    
  3. Kirim permintaan prediksi, menggunakan klien prediksi dalam project klien.

Contoh: Endpoint pribadi dengan subnet non-RFC 1918

Contoh ini menggunakan alamat non-RFC 1918 untuk membuat endpoint pribadi.

  1. Cadangkan rentang IP untuk node, pod, dan layanan. Rentang IP untuk node harus berasal dari rentang RFC 1918.

  2. Buat koneksi peering untuk akses layanan pribadi menggunakan rentang yang dicadangkan.

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=VPC_NAME \
      --ranges=NODES_RANGE_NAME,PODS_RANGE_NAME,SERVICES_RANGE_NAME \
      --project=PROJECT_ID
    
  3. Buat endpoint, dengan menentukan rentang yang dicadangkan untuk node, pod, dan layanan. RequestIpRangeConfig hanya dapat ditentukan dari REST API.

    # Sample json request for endpoint creation.
    {
      displayName: "my_endpoint",
      network: "projects/<project_num>/global/networks/<network>",
      requestedIpRangeConfig: {
        nodesIpRange: {
          ipAddress: "xxx.xx.x.x",
          ipPrefixLength: 22
        },
        podsIpRange: {
          ipAddress: "yyy.yy.y.y",
          ipPrefixLength: 17
        },
        servicesIpRange: {
          ipAddress: "zzz.zz.z.z",
          ipPrefixLength: 22
        }
      }
    }
    
  4. Kirim permintaan prediksi, menggunakan klien prediksi dalam project klien.