All Products
Search
Document Center

Platform For AI:Menyebarkan layanan model menggunakan gambar TensorFlow Serving

Last Updated:Mar 07, 2026

TensorFlow Serving adalah mesin layanan inferensi untuk model pembelajaran mendalam. Layanan ini menyebarkan model dalam format standar TensorFlow SavedModel sebagai layanan online dan mendukung fitur seperti pembaruan bergulir (rolling updates) serta manajemen versi model. Topik ini menjelaskan cara menyebarkan layanan model TensorFlow Serving menggunakan gambar.

Prasyarat

File model

Untuk men-deploy layanan menggunakan image TensorFlow Serving, Anda harus menyimpan file model di dalam bucket OSS. Direktori penyimpanan tersebut harus memenuhi persyaratan berikut:

  • Direktori versi model: Setiap model harus memiliki setidaknya satu direktori versi model. Direktori tersebut harus diberi nama berupa angka yang berfungsi sebagai nomor versi. Angka yang lebih besar menunjukkan versi yang lebih baru.

  • File model: Direktori versi model berisi file model yang diekspor dalam format SavedModel. Layanan secara otomatis memuat file model dari direktori dengan nomor versi tertinggi.

Ikuti langkah-langkah berikut:

  1. Buat direktori penyimpanan model di dalam bucket OSS, misalnya oss://examplebucket/models/tf_serving/. Untuk informasi selengkapnya, lihat Mengelola direktori.

  2. Unggah file model ke direktori yang telah Anda buat pada Langkah 1. Anda dapat mengunduh dan menggunakan file model TensorFlow Serving contoh untuk topik ini. Direktori penyimpanan model memiliki format 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

Gunakan file konfigurasi untuk menjalankan beberapa model dalam satu layanan. Jika Anda hanya perlu menerapkan layanan single-model, lewati bagian ini.

Buat file konfigurasi seperti yang dijelaskan di bawah ini dan unggah ke OSS. File contoh yang tersedia di bagian File model sudah berisi file konfigurasi model bernama model_config.pbtxt. Anda dapat menggunakannya langsung atau memodifikasinya sesuai kebutuhan. Dalam contoh ini, file konfigurasi model diunggah ke direktori oss://examplebucket/models/tf_serving/.

Contoh berikut menunjukkan isi file konfigurasi model model_config.pbtxt:

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
        }
    }
  }
}

Parameter utama dijelaskan sebagai berikut:

Parameter

Wajib

Deskripsi

name

Tidak

Nama kustom untuk model. Konfigurasikan parameter ini. Jika Anda tidak menentukan nama model, model_name akan kosong, dan Anda tidak dapat memanggil layanan model.

base_path

Ya

Jalur direktori penyimpanan model dalam instans. Jalur ini digunakan untuk membaca file model selama penerapan layanan. 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 pemuatan versi model.

  • Jika Anda tidak mengonfigurasi parameter ini, versi terbaru model akan dimuat secara default.

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

  • latest{}: Dalam contoh ini, modelC dikonfigurasi dengan num_versions: 2, yang berarti dua versi terbaru, yaitu 2 dan 3, dimuat.

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

version_labels

Tidak

Mengonfigurasi tag kustom untuk versi model. Jika Anda tidak mengonfigurasi version_labels, Anda hanya dapat membedakan versi model berdasarkan nomor versinya. URI permintaan adalah /v1/models/<model name>/versions/<version number>:predict.

Jika Anda menetapkan version_labels, Anda dapat menggunakan label versi dalam permintaan untuk mengarah ke nomor versi tertentu: /v1/models/<model name>/labels/<version label>:predict.

Catatan

Secara default, label hanya dapat ditetapkan untuk versi model yang telah berhasil dimuat dan dijalankan sebagai layanan. Untuk menetapkan label pada versi model yang belum dimuat, Anda harus mengatur parameter startup --allow_version_labels_for_unavailable_models=true dalam konfigurasi Command to Run. Saat ini, penerapan model berbasis skenario tidak mendukung konfigurasi Command to Run. Pilih penerapan model kustom sebagai gantinya.

Menyebar layanan

Anda dapat menyebar gambar TensorFlow Serving dengan salah satu dari dua cara berikut.

  • Penerapan model berbasis skenario: Cocok untuk skenario penerapan dasar. Anda cukup mengonfigurasi beberapa parameter untuk menyebar layanan model TensorFlow Serving dengan sekali klik.

  • Penerapan model kustom: Opsi ini memungkinkan Anda menyesuaikan lebih banyak opsi konfigurasi, seperti mengubah port atau mengatur periode polling untuk file model.

Penting

Layanan model TensorFlow Serving mendukung dua port: 8501 dan 8500.

  • 8501: Mendukung permintaan HTTP. Layanan HTTP atau REST dijalankan pada port 8501.

  • 8500: Mendukung permintaan gRPC. Layanan gRPC dijalankan pada port 8500.

Penerapan model berbasis skenario menggunakan port 8501 secara default dan tidak dapat diubah. Untuk menggunakan port 8500, pilih penerapan model kustom.

Penerapan model berbasis skenario

Ikuti langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Lalu, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Pada halaman Elastic Algorithm Service (EAS), klik Deploy Service. Kemudian, di bagian Scenario-based Model Deployment, klik Tensorflow Serving Deployment.

  3. Pada halaman Tensorflow Serving Deployment, konfigurasikan parameter. Berikut penjelasan parameter utama. Untuk informasi tentang mengonfigurasi parameter lainnya, lihat Custom Deployment.

    Parameter

    Deskripsi

    Deployment Method

    Dua metode penerapan didukung:

    • Standard Model Deployment: Menyebar layanan model tunggal.

    • Configuration File Deployment: Menyebar layanan multi-model.

    Model Settings

    Saat Deployment Method diatur ke Standard Model Deployment, Anda harus mengonfigurasi jalur OSS tempat file model disimpan.

    Saat Deployment Method diatur ke Configuration File Deployment, Anda perlu mengonfigurasi parameter berikut:

    • OSS: Pilih jalur OSS tempat file model disimpan.

    • Mount Path: Jalur tujuan dalam instans layanan untuk memasang (mount). Jalur ini digunakan untuk membaca file model.

    • Configuration File: Pilih jalur OSS tempat file konfigurasi model disimpan.

    Contoh konfigurasi parameter:

    Parameter

    Contoh model tunggal (deployment modelA)

    Contoh multi-model

    Service Name

    modela_scene

    multi_scene

    Deployment Method

    Pilih Standard Model Deployment.

    Pilih Configuration File Deployment.

    Model Settings

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

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

    • Mount Path: /models

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

  4. Setelah mengonfigurasi parameter, klik Deploy.

Penerapan model kustom

Ikuti langkah-langkah berikut:

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman. Lalu, pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Klik Deploy Service. Di bagian Custom Model Deployment, klik Custom Deployment.

  3. Pada halaman Custom Deployment, Anda dapat mengonfigurasi parameter. Parameter utama dijelaskan sebagai berikut. Untuk informasi tentang pengaturan parameter lainnya, lihat Custom Deployment.

    Parameter

    Deskripsi

    Image Configuration

    Dalam daftar Alibaba Cloud Image, pilih tensorflow-serving dan nama gambar yang sesuai. Kami menyarankan Anda menggunakan versi terbaru.

    Catatan

    Jika layanan memerlukan GPU, versi gambar harus berupa x.xx.x-gpu.

    Model Settings

    Beberapa metode didukung untuk mengonfigurasi file model. Dalam contoh ini, tipe OSS digunakan.

    • Uri: Pilih jalur OSS tempat file model disimpan.

    • Mount Path: Jalur tujuan dalam instans layanan untuk memasang (mount). Jalur ini digunakan untuk membaca file model.

    Command to Run

    Parameter startup untuk tensorflow-serving. Saat Anda memilih gambar tensorflow-serving, perintah /usr/bin/tf_serving_entrypoint.sh akan dimuat secara otomatis. Parameter tambahan yang perlu Anda atur dijelaskan sebagai berikut.

    Parameter startup untuk penerapan model tunggal:

    • --model_name: Nama model, yang digunakan dalam URL permintaan layanan. Jika Anda tidak mengonfigurasi parameter ini, nama default-nya adalah model.

    • --model_base_path: Menentukan jalur direktori penyimpanan model di instans. Jika Anda tidak mengonfigurasi parameter ini, jalur default-nya adalah /models/model.

    Parameter startup untuk penerapan multi-model:

    • --model_config_file: Wajib. Menentukan file konfigurasi model.

    • --model_config_file_poll_wait_seconds: Opsional. Jika Anda ingin memodifikasi konten file konfigurasi model setelah layanan dijalankan, Anda perlu mengonfigurasi periode polling untuk file model dalam satuan detik. Layanan secara berkala membaca konten file konfigurasi model pada interval yang dikonfigurasi. Misalnya, --model_config_file_poll_wait_seconds=30 berarti layanan membaca file konfigurasi model setiap 30 detik.

      Catatan

      Saat layanan model membaca file konfigurasi model baru, layanan hanya mengeksekusi konten file baru tersebut. Misalnya, jika file konfigurasi lama berisi model A, sedangkan file konfigurasi baru menghapus model A dan menambahkan konfigurasi untuk model B, maka layanan akan menguninstall model A dan memuat model B.

    • --allow_version_labels_for_unavailable_models: Opsional. Nilai default-nya adalah false. Jika Anda ingin menetapkan tag pada versi model yang belum dimuat, atur parameter ini ke true. Misalnya, --allow_version_labels_for_unavailable_models=true.

    Contoh konfigurasi parameter:

    Parameter

    Contoh model tunggal (men-deploy modelA)

    Contoh multi-model

    Deployment Method

    Pilih Image-based Deployment.

    Image Configuration

    Pilih Alibaba Cloud Image: tensorflow-serving > tensorflow-serving:2.14.1.

    Model Settings

    Atur Model Type ke OSS.

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

    • Mount Path: Atur ke /models.

    Command to Run

    /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

    Port default adalah 8501. Layanan menjalankan layanan HTTP atau REST pada port 8501 dan mendukung permintaan HTTP. Jika Anda memerlukan layanan untuk mendukung permintaan gRPC, lakukan operasi berikut:

    • Di bagian Environment Information, ubah Port Number menjadi 8500.

    • Di Environment Information, aktifkan sakelar Enable gRPC.

    • Di Service Configurations, tambahkan konfigurasi berikut.

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

Kirim permintaan layanan

Layanan mendukung protokol permintaan HTTP dan gRPC, tergantung pada nomor port yang dikonfigurasi dalam perintah run saat penerapan layanan. Bagian berikut memberikan contoh permintaan layanan untuk modelA.

  1. Persiapkan data uji

    modelA adalah model klasifikasi gambar. Set data pelatihan adalah Fashion-MNIST, dan sampelnya berupa gambar grayscale berukuran 28x28. Output model adalah probabilitas bahwa suatu sampel termasuk ke salah satu dari 10 kelas. Untuk tujuan pengujian, kami menggunakan [[[[1.0]] * 28] * 28] sebagai data uji untuk permintaan layanan modelA.

  2. Contoh permintaan

    Permintaan HTTP

    Jika nomor port diatur ke 8501, layanan mendukung permintaan HTTP. Tabel berikut merangkum jalur permintaan HTTP untuk penerapan model tunggal dan multi-model:

    Model tunggal

    Multi-model

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

    Di mana:

    • Penerapan berbasis skenario: <model_name> tidak dapat dikustomisasi dan default-nya adalah model.

    • Penerapan kustom: <model_name> adalah nama model yang dikonfigurasi dalam Command to Run. Jika tidak ada nama model yang dikonfigurasi, default-nya adalah model.

    Permintaan tanpa menentukan versi maupun permintaan yang menentukan versi model didukung. Format jalurnya sebagai berikut:

    • Tidak menentukan versi (memuat versi terbaru secara default):

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

    • Menentukan versi model:

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

    • Jika version_labels diatur:

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

    Dengan, <model_name> adalah nama model yang dikonfigurasi dalam file konfigurasi model.

    Parameter <service_url> adalah titik akhir layanan yang telah Anda sebar. Untuk menemukan titik akhir tersebut, buka halaman Elastic Algorithm Service (EAS) dan klik Invocation Information di kolom Service Type layanan target. Saat Anda melakukan debugging online di konsol, jalur ini akan diisi secara otomatis.

    Ambil contoh penerapan berbasis skenario untuk model tunggal modelA. Jalur permintaan HTTP-nya adalah <service_url>/v1/models/model:predict.

    Contoh berikut menunjukkan cara mengirim permintaan layanan melalui debugging online di konsol dan menggunakan kode Python:

    Debugging daring

    Setelah layanan diterapkan, klik kolom Actions layanan tersebut, lalu klik Online Debugging. Parameter Request Parameter Online Tuning sudah diisi dengan <service_url>. Tambahkan jalur /v1/models/model:predict ke alamat tersebut dan konfigurasikan data permintaan layanan di bagian 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]]]]}

    Setelah mengonfigurasi parameter, klik Send Request untuk mendapatkan output yang mirip dengan berikut.

    image

    Kirim permintaan HTTP menggunakan kode Python

    Berikut ini contoh kode Python:

    from urllib import request
    import json
    
    # Ganti dengan titik akhir layanan dan token Anda.
    # Anda dapat menemukannya di tab Shared Gateway - Internet Endpoint pada halaman Call Info.
    service_url = '<service_url>'
    token = '<token>'
    # Untuk penerapan model tunggal berbasis skenario, nama model adalah '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]
    }
    
    # Panggil layanan.
    response = request.urlopen(req, data=json.dumps(data).encode('utf-8')).read()
    
    # Lihat hasilnya.
    response = json.loads(response)
    print(response)

    Permintaan gRPC

    Jika nomor port diatur ke 8500 dan konfigurasi terkait gRPC ditambahkan, layanan mendukung permintaan gRPC. Berikut ini contoh kode Python:

    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 formatnya, lihat deskripsi parameter host di bawah.
    host = "tf-serving-multi-grpc-test.166233998075****.cn-hangzhou.pai-eas.aliyuncs.com:80"
    # Ganti <token> dengan token layanan. Anda dapat menemukan token di tab Shared Gateway - Internet Endpoint.
    token = "<token>"
    
    # Nama model. Lihat deskripsi parameter name di bawah.
    name = "<model_name>"
    signature_name = "serving_default"
    # Atur ke nomor versi model. Anda hanya dapat mengirim permintaan ke satu versi model dalam satu waktu.
    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]))
    
    # Panggil layanan.
    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)

    Parameter utama dikonfigurasi sebagai berikut:

    Parameter

    Deskripsi

    host

    Anda harus mengonfigurasinya sebagai titik akhir layanan. Titik akhir harus menghilangkan http:// dan diakhiri dengan :80. Anda dapat menemukan titik akhir di halaman Elastic Algorithm Service (EAS) dengan mengklik Invocation Information di kolom Service Type untuk layanan yang ingin Anda panggil.

    name

    • Kirim permintaan gRPC untuk satu model:

      • Penerapan berbasis skenario: Atur ke model.

      • Penerapan kustom: Nama model dikonfigurasi sebagai nama model yang ditentukan dalam konfigurasi Command to Run. Jika tidak ada nama model yang ditentukan dalam Command to Run, default-nya adalah model.

    • Kirim permintaan gRPC untuk beberapa model:

      Atur ke nama model yang dikonfigurasi dalam file konfigurasi model.

    version

    Atur ke nomor versi model. Anda hanya dapat mengirim permintaan ke satu versi model dalam satu waktu.

    metadata

    Token layanan. Anda dapat melihat token di halaman Invocation Information.

Referensi