「推論」是 訓練完訓練的模型 未加上標籤的範例。 從廣義來說,模型可以透過以下其中一種方式推論預測:
- 靜態推論 (也稱為「離線推論」或 批次推論) 意指模型針對多種 常見未加上標籤的範例 然後將預測結果快取到某處
- 動態推論 (也稱為「線上推論」或「即時」 「推論」,意指模型只會按照需求進行預測 例如用戶端要求預測結果時
想使用極端案例時,請想像一個非常複雜的模型 則需要一小時才能推論出預測結果 這可能是靜態推論的理想情況:
![圖 4. 在靜態推論中,模型會產生預測結果
然後儲存在伺服器上](https://developers.google.cn/static/machine-learning/crash-course/images/StaticInference.png?authuser=5&hl=zh-tw)
假設同一個複雜模型誤用動態推論 靜態推論如果許多用戶端同時要求預測 大多數他們在未來幾小時或數天都無法收到這項預測資訊
現在,假設有一個可快速推論的模型,可能在 2 毫秒內 所需的運算資源下限在這種情況下,客戶可以 透過動態推論快速又有效率 如圖 5 所示。
![圖 5. 在動態推論中,模型會根據
需求量。](https://developers.google.cn/static/machine-learning/crash-course/images/DynamicInference.png?authuser=5&hl=zh-tw)
靜態推論
靜態推論具有特定優缺點。
優點
- 不用擔心推論成本。
- 可以先驗證預測結果再推送。
缺點
- 只提供快取預測結果,因此系統可能未 針對不常見的輸入範例提供預測結果
- 更新延遲時間可能以小時或天為單位。
動態推論
動態推論具有特定優缺點。
優點
- 可針對「任何」新項目進行預測, 非常適合用於長尾 (較不常見) 的預測結果
缺點
- 會耗用大量運算資源,且容易受到延遲影響。這個組合可能會限制模型 複雜度;您可能要建構較簡單的模型 推斷出預測的速度比複雜模型
- 監控需求則耗用大量資源。
練習:隨堂測驗
下列四個陳述式中的哪三項是
靜態推論的真相為何?
模型必須針對所有可能的輸入內容建立預測結果。
是,模型必須針對所有可能的輸入內容進行預測
請將這些指令儲存在快取或對照表中。
如果模型預測的特徵組合受到限制
建議您採用靜態推論
不過,如果是任意形式的輸入內容,例如使用者查詢
特殊或稀有物品的尾,則靜態推論無法提供
完整防護。
系統可在提供預測結果前,先驗證推測的預測結果
具體做法是指示 Kubernetes 建立並維護
一或多個代表這些 Pod 的物件
是,這是靜態推論非常實用。
針對輸入的輸入內容,模型可以更快提供預測結果
而非動態推論
是,靜態推論幾乎能更快提供預測結果
而不是動態推論
你可以迅速因應世界上的變化。
否,這是靜態推論的缺點。
下列「其中一個」陳述式為何
動態推論的真相嗎?
您可以針對所有可能的項目提供預測結果。
是的,這是動態推論的力量。任何
獲得分數動態推論處理長尾
分佈情形 (有許多稀有物品),例如
可能的語句
您可以進行後續驗證,再進行預測
使用方式。
一般來說,您無法對所有
因為預測功能
完全按照隨選的方式運作然而,您可能會
「匯總」預測品質,來提供一定程度的
而這些訊號只會發出品質檢查要求
火勢已擴散
執行動態推論時請放心
關於預測延遲時間 (傳回預測的延遲時間)
跟執行靜態推論時一樣重要
預測延遲時間通常是動態推論的真正問題。
很抱歉,您不一定能修正預測延遲問題
增加更多推論伺服器