全部产品
Search
文档中心

Platform For AI:Gunakan citra TensorFlow Serving untuk menerapkan layanan model

更新时间:Aug 20, 2025

TensorFlow Serving adalah mesin inferensi untuk model pembelajaran mendalam. TensorFlow Serving memungkinkan Anda menerapkan model TensorFlow dalam format SavedModel sebagai layanan online. TensorFlow Serving juga mendukung fitur seperti pembaruan bergulir dan manajemen versi model. Topik ini menjelaskan cara menerapkan layanan model menggunakan gambar TensorFlow Serving.

Sebelum Anda mulai

File model

Untuk menerapkan layanan model dengan gambar TensorFlow Serving, pastikan file model disimpan di Bucket Object Storage Service (OSS) dengan struktur berikut:

  • Sub-direktori versi: Setiap direktori harus memiliki setidaknya satu sub-direktori versi. Nama sub-direktori versi harus berupa angka yang menunjukkan versi model. Angka yang lebih besar menunjukkan versi model yang lebih baru.

  • File model: File model disimpan dalam format SavedModel di dalam sub-direktori versi. Layanan model secara otomatis memuat file model dari sub-direktori yang sesuai dengan versi terbaru.

Ikuti langkah-langkah berikut:

  1. Buat direktori penyimpanan model di bucket OSS (contoh: oss://contohbucket/models/tf_serving/). Untuk informasi lebih lanjut, lihat Kelola direktori.

  2. Unggah file model ke direktori yang dibuat pada langkah sebelumnya (Anda dapat menggunakan tf_serving.zip sebagai contoh). Format direktori penyimpanan model adalah sebagai berikut:

    tf_serving 
    ├── modelA
    │   └── 1
    │       ├── saved_model.pb
    │       └── variables
    │           ├── variables.data-00000-of-00001
    │           └── variables.index
    │
    ├── modelB
    │   ├── 1
    │   │   └── ...
    │   └── 2
    │       └── ...
    │
    └── modelC
        ├── 1
        │   └── ...
        ├── 2
        │   └── ...
        └── 3
            └── ...

File konfigurasi model

File konfigurasi memungkinkan Anda menjalankan beberapa model dalam satu layanan. Jika Anda hanya perlu menerapkan layanan model tunggal, lewati langkah ini.

Buat file konfigurasi mengikuti petunjuk di bawah ini dan unggah ke OSS (contoh yang diberikan dalam bagian File model mencakup file konfigurasi model bernama model_config.pbtxt, yang dapat Anda gunakan atau modifikasi sesuai kebutuhan). Dalam contoh ini, file konfigurasi model diunggah ke oss://contohbucket/models/tf_serving/.

File konfigurasi model, model_config.pbtxt, harus berisi hal berikut:

model_config_list {
  config {
    name: 'modelA'
    base_path: '/models/modelA/'
    model_platform: 'tensorflow'
    model_version_policy{
        all: {}
    }
  }
  config {
    name: 'modelB'
    base_path: '/models/modelB/'
    model_platform: 'tensorflow'
    model_version_policy{
        specific {
            versions: 1
            versions: 2
        }
    }
    version_labels {
      	key: 'stable'
      	value: 1
    }
    version_labels {
      	key: 'canary'
      	value: 2
    }
  }
  config {
    name: 'modelC'
    base_path: '/models/modelC/'
    model_platform: 'tensorflow'
    model_version_policy{
        latest {
            num_versions: 2
        }
    }
  }
}

Tabel berikut menjelaskan parameter utama:

Parameter

Diperlukan

Deskripsi

name

Tidak

Nama model. Kami sarankan Anda menentukan parameter ini. Jika tidak, Anda tidak akan dapat memanggil layanan nanti.

base_path

Ya

Jalur ke direktori model dalam instance layanan, digunakan untuk membaca file model di langkah selanjutnya. Misalnya, jika direktori mount adalah /models dan direktori model yang akan dimuat adalah /models/modelA, atur parameter ini menjadi /models/modelA.

model_version_policy

Tidak

Kebijakan untuk memuat versi model.

  • Jika parameter ini dihilangkan, versi terbaru dimuat secara default.

  • all{}: Memuat semua versi model. Dalam contoh, modelA memuat semua versi.

  • latest{}: Dalam contoh, modelC diatur dengan num_versions: 2, yang memuat dua versi terbaru, versi 2 dan 3.

  • specific{}: Memuat versi tertentu. Dalam contoh, modelB memuat versi 1 dan 2.

version_labels

Tidak

Label kustom untuk mengidentifikasi versi model. Tanpa version_labels, versi model hanya dapat dibedakan oleh nomor mereka. Jalur permintaan adalah: /v1/models/<nama model>/versions/<nomor versi>:predict.

Jika version_labels diatur, Anda dapat meminta label versi untuk menunjuk ke nomor versi tertentu: /v1/models/<nama model>/labels/<label versi>:predict.

Catatan

Label hanya dapat ditetapkan ke versi model yang telah dimuat dan dijalankan sebagai layanan secara default. Untuk menetapkan label ke versi model yang belum dimuat, atur Command to Run menjadi --allow_version_labels_for_unavailable_models=true. Penyebaran berbasis skenario tidak mendukung Command to Run. Pilih penyebaran kustom sebagai gantinya.

Terapkan layanan

Anda dapat menggunakan salah satu metode berikut untuk menerapkan layanan model TensorFlow Serving.

  • Penyebaran berbasis skenario: Cocok untuk skenario penyebaran dasar. Anda hanya perlu mengonfigurasi beberapa parameter untuk menerapkan layanan model TensorFlow Serving.

  • Penyebaran kustom: Mendukung konfigurasi fleksibel. Misalnya, Anda dapat memodifikasi port atau menentukan periode polling file model.

Penting

Layanan model TensorFlow Serving mendukung port 8501 dan 8500:

  • 8501: Meluncurkan server HTTP atau REST pada port 8501 untuk menerima permintaan HTTP.

  • 8500: Meluncurkan server Google Remote Procedure Call (gRPC) pada port 8500 untuk menerima permintaan gRPC.

Secara default, penyebaran berbasis skenario menggunakan port 8501 dan tidak dapat diubah. Untuk menggunakan port 8500, Anda harus memilih penyebaran kustom.

Penyebaran berbasis skenario

Lakukan langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah dan ruang kerja, lalu klik Enter Elastic Algorithm Service (EAS).

  2. Di halaman Elastic Algorithm Service (EAS), klik Deploy Service. Di bagian Scenario-based Model Deployment dari halaman yang muncul, klik TensorFlow Serving Deployment.

  3. Di halaman TFServing deployment, konfigurasikan parameter utama yang dijelaskan dalam tabel berikut. Untuk informasi tentang parameter lainnya, lihat Parameter untuk penyebaran kustom di konsol.

    Parameter

    Deskripsi

    Deployment Method

    Metode penyebaran yang didukung meliputi:

    • Standard Model Deployment: Metode ini digunakan untuk menerapkan layanan yang menggunakan model tunggal.

    • Configuration File Deployment: Pendekatan ini digunakan untuk menerapkan layanan yang menggabungkan beberapa model.

    Model Settings

    Ketika Anda memilih Standard Model Deployment sebagai Deployment Method, tentukan jalur OSS yang berisi file model.

    Ketika Anda memilih Configuration File Deployment sebagai Deployment Method, konfigurasikan parameter berikut:

    • OSS: Pilih jalur OSS tempat file model disimpan.

    • Mount Path: Menentukan jalur tujuan dalam instance layanan untuk mengakses file model.

    • Configuration File: Pilih jalur OSS untuk file konfigurasi model.

    Konfigurasi contoh:

    Parameter

    Contoh model tunggal (terapkan modelA)

    Contoh multi-model

    Service Name

    modela_scene

    multi_scene

    Deployment Method

    Pilih Standard Model Deployment.

    Pilih Configuration File Deployment.

    Model Settings

    OSS: oss://contohbucket/models/tf_serving/modelA/.

    • OSS:oss://contohbucket/models/tf_serving/.

    • Mount Path: /models

    • Configuration File: oss://contohbucket/models/tf_serving/model_config.pbtxt

  4. Klik Deploy.

Penyebaran kustom

Lakukan langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah dan ruang kerja, lalu klik Enter Elastic Algorithm Service (EAS).

  2. Di halaman Elastic Algorithm Service (EAS), klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.

  3. Di halaman Custom Deployment, konfigurasikan parameter utama yang dijelaskan dalam tabel berikut. Untuk informasi tentang parameter lainnya, lihat Parameter untuk penyebaran kustom di konsol.

    Parameter

    Deskripsi

    Image Configuration

    Pilih versi tensorflow-serving dari Alibaba Cloud Image. Kami sarankan Anda menggunakan versi terbaru.

    Catatan

    Jika layanan model memerlukan sumber daya GPU, versi gambar harus dalam format x.xx.x-gpu.

    Model Settings

    Anda dapat mengonfigurasi file model menggunakan beberapa metode. Contoh ini menggunakan OSS.

    • Uri: Pilih jalur OSS tempat file model disimpan.

    • Mount Path: Jalur dalam instance layanan untuk membaca file model.

    Run Command

    Parameter startup untuk tensorflow-serving. Saat memilih gambar tensorflow-serving, perintah /usr/bin/tf_serving_entrypoint.sh dimuat sebelumnya. Konfigurasikan parameter berikut:

    Parameter startup untuk penyebaran model tunggal:

    • --model_name: Nama model, digunakan dalam URL permintaan layanan. Nilai default: model.

    • --model_base_path: Jalur ke direktori model dalam instance layanan. Nilai default: /models/model.

    Parameter startup untuk penyebaran multi-model:

    • --model_config_file: Diperlukan. Jalur ke file konfigurasi model.

    • --model_config_file_poll_wait_seconds: Opsional. Interval untuk memeriksa pembaruan file konfigurasi model, dalam detik. Misalnya, --model_config_file_poll_wait_seconds=30 berarti layanan memeriksa file setiap 30 detik.

      Catatan

      Ketika file konfigurasi baru terdeteksi, hanya perubahan dalam file baru yang diterapkan. Misalnya, jika Model A dihapus dari file baru dan Model B ditambahkan, layanan akan membongkar Model A dan memuat Model B.

    • --allow_version_labels_for_unavailable_models: Opsional. Nilai default: false. Atur ke true untuk menetapkan label kustom ke versi model yang belum dimuat. Misalnya, --allow_version_labels_for_unavailable_models=true.

    Konfigurasi contoh:

    Parameter

    Contoh model tunggal (terapkan modelA)

    Contoh multi-model

    Deployment Method

    Pilih Image-based Deployment.

    Image Configuration

    Pilih Alibaba Cloud Image: tensorflow-serving:2.14.1.

    Model Settings

    Pilih OSS.

    • Uri: oss://examplebucket/models/tf_serving/.

    • Mount Path: /models.

    Run Command

    /usr/bin/tf_serving_entrypoint.sh --model_name=modelA --model_base_path=/models/modelA

    /usr/bin/tf_serving_entrypoint.sh --model_config_file=/models/model_config.pbtxt --model_config_file_poll_wait_seconds=30 --allow_version_labels_for_unavailable_models=true

    Nomor port default adalah 8501. Layanan model meluncurkan server HTTP atau REST pada port 8501 untuk menerima permintaan HTTP. Jika Anda ingin layanan mendukung permintaan gRPC, lakukan operasi berikut:

    • Di Environment Information, ubah Port Number menjadi 8500.

    • Di Environment Information, aktifkan Enable gRPC.

    • Di Edit Service Configuration, tambahkan konfigurasi berikut:

      "networking": {
          "path": "/"
      }
  4. Pilih Deploy.

Panggil layanan model

Anda dapat mengirim permintaan HTTP atau gRPC ke layanan model berdasarkan nomor port yang dikonfigurasi saat menerapkan layanan model. Contoh di bawah ini mengirim permintaan ke modelA.

  1. Siapkan Data Uji

    ModelA adalah model klasifikasi gambar yang menggunakan dataset pelatihan Fashion-MNIST, terdiri dari gambar grayscale 28x28. Model ini memprediksi kemungkinan sampel termasuk dalam salah satu dari sepuluh kategori. Untuk pengujian, data uji untuk permintaan layanan modelA direpresentasikan oleh [[[[1.0]] * 28] * 28].

  2. Lihat contoh permintaan.

    Permintaan HTTP

    Layanan dikonfigurasikan untuk mendengarkan port 8501 untuk permintaan HTTP. Berikut adalah ringkasan jalur permintaan HTTP untuk penyebaran model tunggal dan multi-model:

    Model Tunggal

    Multi-Model

    Format jalur: <service_url>/v1/models/<model_name>:predict

    Dimana:

    • Untuk penyebaran berbasis skenario, <model_name> telah ditentukan sebelumnya sebagai model.

    • Untuk penyebaran kustom, <model_name> sesuai dengan nama model yang ditetapkan di Command to Run. Nilai default: model.

    Layanan menampung permintaan dengan atau tanpa versi model yang ditentukan. Format jalur masing-masing adalah:

    • Untuk permintaan tanpa versi (secara otomatis memuat versi terbaru):

      <service_url>/v1/models/<model_name>:predict

    • Untuk permintaan yang menentukan versi model:

      <service_url>/v1/models/<model_name>/versions/<version_num>:predict

    • Jika label versi dikonfigurasikan:

      <service_url>/v1/models/<model_name>/labels/<version label>:predict

    Disini, <model_name> merujuk pada nama yang ditetapkan dalam file konfigurasi model.

    <service_url> adalah titik akhir layanan Anda. Untuk melihatnya, buka halaman Elastic Algorithm Service (EAS), klik Invocation Method di kolom Service Type dari layanan yang diinginkan. URL ini sudah diisi sebelumnya saat menggunakan konsol untuk debugging online.

    Sebagai contoh, jalur permintaan HTTP untuk penyebaran model tunggal berbasis skenario dari modelA adalah: <service_url>/v1/models/model:predict.

    Berikut adalah contoh cara melakukan debugging online di konsol dan mengirim permintaan layanan menggunakan kode Python:

    Lakukan debugging online

    Setelah layanan diterapkan, pilih Online Debugging di kolom Actions. <service_url> disertakan dalam Request Parameter Online Tuning. Tambahkan jalur /v1/models/model:predict ke URL dan masukkan data permintaan di Body:

    {"signature_name": "serving_default", "instances": [[[[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]], [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]]]}

    Setelah menyetel parameter, klik Send Request. Contoh hasil:

    image

    Kirim permintaan HTTP menggunakan kode Python

    Contoh kode Python:

    from urllib import request
    import json
    
    # Silakan ganti dengan endpoint layanan dan token Anda.
    # Anda dapat melihat token di tab Panggilan Alamat Publik dengan mengklik Informasi Panggilan di kolom Metode Layanan daftar layanan inferensi.
    service_url = '<service_url>'
    token = '<test-token>'
    # Untuk penyebaran model tunggal berbasis skenario, gunakan model. Untuk kasus lain, lihat tabel deskripsi jalur di atas.
    model_name = "model"
    url = "{}/v1/models/{}:predict".format(service_url, model_name)
    
    # Buat permintaan HTTP.
    req = request.Request(url, method="POST")
    req.add_header('authorization', token)
    data = {
        'signature_name': 'serving_default',
        'instances': [[[[1.0]] * 28] * 28]
    }
    
    # Kirim permintaan.
    response = request.urlopen(req, data=json.dumps(data).encode('utf-8')).read()
    
    # Lihat respons.
    response = json.loads(response)
    print(response)

    Permintaan gRPC

    Untuk permintaan gRPC, konfigurasikan layanan untuk menggunakan port 8500 dan tambahkan pengaturan yang diperlukan. Berikut adalah contoh kode Python untuk mengirim permintaan gRPC:

    import grpc
    import tensorflow as tf
    from tensorflow_serving.apis import predict_pb2
    from tensorflow_serving.apis import prediction_service_pb2_grpc
    from tensorflow.core.framework import tensor_shape_pb2
    
    # Titik akhir layanan. Untuk informasi lebih lanjut, lihat deskripsi parameter host di bawah ini.
    host = "tf-serving-multi-grpc-test.166233998075****.cn-hangzhou.pai-eas.aliyuncs.com:80"
    # Ganti <test-token> dengan token layanan. Anda dapat melihat token di tab Panggilan Alamat Publik.
    token = "<test-token>"
    
    # Nama model. Untuk informasi lebih lanjut, lihat deskripsi parameter name di bawah ini.
    name = "<model_name>"
    signature_name = "serving_default"
    # Tetapkan nilai ke versi model yang ingin Anda gunakan. Anda hanya dapat menentukan satu versi model dalam permintaan.
    version = "<version_num>"
    
    # Buat permintaan gRPC.
    request = predict_pb2.PredictRequest()
    request.model_spec.name = name
    request.model_spec.signature_name = signature_name
    request.model_spec.version.value = version
    request.inputs["keras_tensor"].CopyFrom(tf.make_tensor_proto([[[[1.0]] * 28] * 28]))
    
    # Kirim permintaan.
    channel = grpc.insecure_channel(host)
    stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)
    metadata = (("authorization", token),)
    response, _ = stub.Predict.with_call(request, metadata=metadata)
    
    print(response)
    

    Tabel berikut menjelaskan parameter utama:

    Parameter

    Deskripsi

    host

    Titik akhir layanan model tanpa awalan http:// dan dengan akhiran :80. Untuk mendapatkan titik akhir, lakukan langkah-langkah berikut: Buka halaman Elastic Algorithm Service (EAS), temukan layanan model, lalu klik Invocation Method di kolom Service Type.

    name

    • Untuk permintaan gRPC model tunggal:

      • Dalam penyebaran berbasis skenario, atur name menjadi model.

      • Dalam penyebaran kustom, atur name menjadi nama model yang ditentukan di Command to Run. Jika tidak diatur, secara default menjadi model.

    • Untuk permintaan gRPC multi-model:

      Atur name menjadi nama model yang diuraikan dalam file konfigurasi model.

    version

    Versi model yang ingin Anda gunakan. Anda hanya dapat menentukan satu versi model dalam permintaan.

    metadata

    Token layanan model. Anda dapat mengklik Invocation Method untuk melihatnya.

Referensi