SavedModel 预热

简介

TensorFlow 运行时具有延迟初始化的组件,这会导致在模型加载后发送到模型的第一个请求的延迟时间很长。此延迟时间可能比单个推理请求的延迟时间高几个数量级。

为了减少延迟初始化对请求延迟的影响,可以通过在模型加载时提供一组推理请求样本以及 SavedModel 来触发子系统和组件的初始化。此过程称为“预热”模型。

用法

SavedModel 预热支持回归、分类、多重推理和预测。若要在加载时触发模型预热,请将预热数据文件附加到 SavedModel 目录的 assets.extra 子文件夹中。

模型预热正常工作的要求

  • 预热文件名:'tf_serving_warmup_requests'
  • 文件位置:assets.extra/
  • 文件格式:TFRecord,每条记录为 PredictionLog
  • 预热记录数 <= 1000。
  • 预热数据必须代表在提供服务时使用的推理请求。

预热数据生成

可以通过两种方式添加预热数据

  • 通过直接将预热请求填充到导出的 Saved Model 中。这可以通过创建读取样本推理请求列表的脚本、将每个请求转换为 PredictionLog(如果它最初采用不同的格式)以及使用 TFRecordWriter 将 PredictionLog 条目写入 YourSavedModel/assets.extra/tf_serving_warmup_requests 来完成。
  • 通过使用 TFX Infra Validator 选项来导出带有预热的 Saved Model。通过此选项,TFX Infa Validator 将根据通过 RequestSpec 提供的验证请求填充 YourSavedModel/assets.extra/tf_serving_warmup_requests