簡介
TensorFlow 執行階段具有延遲初始化的元件,這可能會導致在模型載入後傳送至模型的第一個或多個請求發生高延遲。此延遲可能比單一推論請求的延遲高出好幾個數量級。
為了減少延遲初始化對請求延遲的影響,可以在模型載入時,透過連同 SavedModel 提供一組推論請求範例來觸發子系統和元件的初始化。此程序稱為「預熱」模型。
用法
SavedModel 預熱支援 Regress、Classify、MultiInference 和 Predict。若要在模型載入時觸發預熱,請在 SavedModel 目錄的 assets.extra 子資料夾下附加預熱資料檔案。
模型預熱正確運作的需求
- 預熱檔案名稱:'tf_serving_warmup_requests'
- 檔案位置:assets.extra/
- 檔案格式:TFRecord,每個記錄都是 PredictionLog。
- 預熱記錄數量 <= 1000。
- 預熱資料必須代表在服務時使用的推論請求。
預熱資料產生
預熱資料可以透過兩種方式新增
- 透過將預熱請求直接填入您匯出的 SavedModel 中。這可以透過建立指令碼來完成,該指令碼會讀取範例推論請求清單、將每個請求轉換為 PredictionLog (如果原始格式不同),並使用 TFRecordWriter 將 PredictionLog 項目寫入
YourSavedModel/assets.extra/tf_serving_warmup_requests
。 - 透過使用 TFX Infra Validator 選項匯出包含預熱的 Saved Model。使用此選項,TFX Infra Validator 將根據透過 RequestSpec 提供的驗證請求,填入
YourSavedModel/assets.extra/tf_serving_warmup_requests
。