Perkenalan
Runtime 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 sampel permintaan inferensi bersama dengan SavedModel. Proses ini dikenal sebagai "pemanasan" model.
Penggunaan
Pemanasan SavedModel didukung untuk Regress, Classify, MultiInference, dan Predict. Untuk memicu pemanasan model pada waktu pemuatan, lampirkan file data pemanasan di bawah subfolder assets.extra dari direktori SavedModel.
Persyaratan agar pemanasan model 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 penayangan.
Cuplikan kode contoh 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()