简介
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
。