Pemanasan Model Tersimpan

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

pengantar

Waktu proses TensorFlow memiliki komponen yang diinisialisasi dengan lambat, yang dapat menyebabkan latensi tinggi untuk permintaan pertama yang dikirim ke model setelah dimuat. Latensi ini bisa beberapa kali lipat lebih tinggi daripada permintaan inferensi tunggal.

Untuk mengurangi dampak inisialisasi lambat pada latensi permintaan, inisialisasi subsistem dan komponen dapat dipicu pada waktu muat model dengan menyediakan kumpulan contoh permintaan inferensi bersama dengan SavedModel. Proses ini dikenal sebagai "pemanasan" model.

Penggunaan

SavedModel Warmup didukung untuk Regress, Classify, MultiInference, dan Predict. Untuk memicu pemanasan model pada waktu buka, lampirkan file data pemanasan di bawah subfolder assets.extra dari direktori SavedModel.

Persyaratan untuk pemanasan model agar berfungsi dengan benar:

  • Nama file pemanasan: 'tf_serving_warmup_requests'
  • Lokasi file: assets.extra/
  • Format file: TFRecord dengan setiap record sebagai PredictionLog .
  • Jumlah catatan pemanasan <= 1000.
  • Data pemanasan harus mewakili permintaan inferensi yang digunakan saat penyajian.

Contoh cuplikan kode yang menghasilkan data pemanasan:

import tensorflow as tf
from tensorflow_serving.apis import classification_pb2
from tensorflow_serving.apis import inference_pb2
from tensorflow_serving.apis import model_pb2
from tensorflow_serving.apis import predict_pb2
from tensorflow_serving.apis import prediction_log_pb2
from tensorflow_serving.apis import regression_pb2

def main():
    with tf.io.TFRecordWriter("tf_serving_warmup_requests") as writer:
        # replace <request> with one of:
        # predict_pb2.PredictRequest(..)
        # classification_pb2.ClassificationRequest(..)
        # regression_pb2.RegressionRequest(..)
        # inference_pb2.MultiInferenceRequest(..)
        log = prediction_log_pb2.PredictionLog(
            predict_log=prediction_log_pb2.PredictLog(request=<request>))
        writer.write(log.SerializeToString())

if __name__ == "__main__":
    main()