SavedModel Warmup

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

معرفی

زمان اجرا TensorFlow دارای مؤلفه هایی است که به طرز تنبلی مقداردهی اولیه می شوند، که می تواند باعث تأخیر بالایی برای اولین درخواست/های ارسال شده به یک مدل پس از بارگیری آن شود. این تاخیر می تواند چندین مرتبه بزرگتر از یک درخواست استنتاج منفرد باشد.

برای کاهش تأثیر اولیه سازی تنبل بر تأخیر درخواست، می توان با ارائه یک مجموعه نمونه از درخواست های استنتاج همراه با SavedModel، راه اندازی اولیه زیرسیستم ها و مؤلفه ها را در زمان بارگذاری مدل آغاز کرد. این فرآیند به عنوان "گرم کردن" مدل شناخته می شود.

استفاده

SavedModel Warmup برای Regress، Classify، MultiInference و Predict پشتیبانی می شود. برای شروع گرم کردن مدل در زمان بارگذاری، یک فایل داده گرمایش را در زیر پوشه assets.extra دایرکتوری SavedModel پیوست کنید.

شرایط لازم برای گرم کردن مدل برای عملکرد صحیح:

  • نام فایل Warmup: 'tf_serving_warmup_requests'
  • محل فایل: assets.extra/
  • فرمت فایل: TFRecord با هر رکورد به عنوان یک PredictionLog .
  • تعداد رکوردهای گرم کردن <= 1000.
  • داده های گرم کردن باید نماینده درخواست های استنتاج استفاده شده در ارائه باشد.

قطعه کد نمونه ای که داده های گرم کردن را تولید می کند:

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