KaydedilmişModel Isınma

Tanıtım

TensorFlow çalışma zamanı, yüklendikten sonra bir modele gönderilen ilk istek/istekler için yüksek gecikme süresine neden olabilecek, tembelce başlatılan bileşenlere sahiptir. Bu gecikme, tek bir çıkarım isteğinden birkaç kat daha yüksek olabilir.

Tembel başlatmanın istek gecikmesi üzerindeki etkisini azaltmak için, SavedModel ile birlikte bir örnek çıkarım istekleri seti sağlayarak, model yükleme zamanında alt sistemlerin ve bileşenlerin başlatılmasını tetiklemek mümkündür. Bu işlem, modeli "ısınma" olarak bilinir.

kullanım

SavedModel Isınma, Regresyon, Sınıflandırma, Çoklu Çıkarım ve Tahmin için desteklenir. Modelin yükleme sırasında ısınmasını tetiklemek için SavedModel dizininin entity.extra alt klasörünün altına bir ısınma veri dosyası ekleyin.

Model ısınmasının doğru çalışması için gereksinimler:

  • Isınma dosya adı: 'tf_serving_warmup_requests'
  • Dosya konumu: varlıklar.extra/
  • Dosya formatı: TFRecord bir şekilde her kayıt ile PredictionLog .
  • Isınma kaydı sayısı <= 1000.
  • Isınma verileri, sunum sırasında kullanılan çıkarım isteklerini temsil etmelidir.

Isınma verileri üreten örnek kod parçacığı:

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()