整合模型
您應該規劃 如何整合模型,因為它會影響如何定型模型或您使用的定型數據。 若要整合模型,您必須將模型部署到 端點。 您可以將模型部署到端點,以進行 即時或批次預測。
將模型部署到端點
當您訓練模型時,目標通常是將模型整合到應用程式中。
若要輕鬆地將模型整合到應用程式,您可以使用 端點。 簡單地說,端點可以是應用程式能呼叫以傳回訊息的網址。
當您將模型部署至端點時,有兩個選項:
- 取得 實時 預測
- 取得批次預測
取得即時預測
如果您想要模型在任何新資料傳入時為其評分,則需要即時預測。
當行動應用程式或網站等應用程式使用模型時,通常需要即時預測。
假設您有一個包含產品類別目錄的網站:
- 客戶在您的網站上選取產品,例如襯衫。
- 根據客戶的選擇,模型會立即建議來自產品類別目錄的其他項目。 網站會顯示模型的推薦。
客戶可以隨時在網路商店中選取產品。 您希望模型幾乎立即找到推薦。 網頁載入和顯示襯衫詳細資料所花費的時間,就是取得推薦或預測所需的時間。 然後,當顯示襯衫時,也可以顯示推薦。
取得批次預測
如果您想要模型以批次評分新資料,並將結果另存為檔案或儲存在資料庫中,則需要批次預測。
例如,您可以訓練模型,以預測未來一週的柳橙汁銷售額。 藉由預測柳橙汁銷售額,您可以確保供應量足以符合預期的需求。
假設您正在將報告中的所有歷史銷售資料視覺化。 您想要在相同的報告中包含預測的銷售量。
雖然柳橙汁會全天銷售,但您只想要每週計算一次預測。 您可以收集整個星期的銷售資料,並且只在您有整週的銷售資料時才呼叫模型。 資料點的集合稱為批次。
決定要採用即時或批次部署
若要決定要設計即時或批次部署解決方案,您需要考慮下列問題:
- 產生預測的頻率為何?
- 多快需要結果?
- 預測應該個別或批次產生?
- 執行模型需要多少計算能力?
識別評分的必要頻率
常見的案例是您使用模型來為新資料評分。 您必須先收集新資料,才能即時或批次取得預測。
有各種方式可以產生或收集資料。 您也可以在不同的時間間隔收集新資料。
例如,您可以每分鐘從物聯網 (IoT) 裝置收集溫度資料。 每次客戶從您的網路商店購買產品時,您都可以取得交易資料。 或者,您可以每隔三個月從資料庫擷取財務資料。
一般而言,有兩種類型的使用案例:
- 您需要模型,才能在新資料傳入時立即評分。
- 您可以排程或觸發模型,為經過一段時間收集的新資料評分。
您要即時或批次預測 不一定取決於收集新數據的頻率。 而是取決於您需要產生預測的頻率和速度。
如果您需要在收集新資料時立即產生模型的預測,則需要即時預測。 如果模型預測只會在特定時間取用,您需要批次預測。
決定預測數目
要問自己的另一個重要問題是您需要個別或批次產生預測。
說明個別和批次預測之間差異的簡單方式是想像資料表。 假設您有客戶資料的資料表,其中每個資料列都代表客戶。 對於每個客戶,您有一些人口統計資料和行為資料,例如他們從您的網路商店購買的產品數量,以及上次購買的時間。
根據此資料,您可以預測客戶流失:客戶是否會再次從您的網路商店購買。
定型模型之後,您可以決定是否要產生預測:
- 個別:模型會收到 單一數據列, 並傳回個別客戶是否會再次購買。
- 批次:模型會在一個資料表中接收多個資料列,並傳回每個客戶是否會再次購買。 結果會在包含所有預測的資料表中自動分頁。
您也可以在使用檔案時產生個別或批次預測。 例如,使用電腦視覺模型時,您可能需要個別評分單一影像,或一個批次中的影像集合。
考慮計算成本
除了在定型模型時使用計算,您也需要在部署模型時計算。 根據您將模型部署至即時或批次端點,您將會使用不同類型的計算。 若要決定要將模型部署到即時或批次端點,您必須考慮每種計算類型的成本。
如果您需要 即時預測,您需要隨時可用的計算,而且能夠立即傳回結果。。 Azure 容器實例 (ACI) 和 Azure Kubernetes Service (AKS) 等容器技術非常適合用於這類案例,因為它們會為您的部署模型提供輕量型基礎結構。
不過,當您將模型部署到即時端點並使用這類容器技術時,計算會一律開啟。 部署模型之後,您會持續支付無法暫停的計算費用,若停止計算,模型又必須一律可供立即預測使用。
或者,如果您需要 批次預測,則需要可處理大型工作負載的計算。 在理想情況下,您會使用計算 叢集 ,其可以使用多個節點,以 平行 批次評分數據。
使用可平行批次處理資料的計算叢集時,如果觸發批次評分,工作區會佈建計算,並在沒有要處理的新資料時縮小為 0 個節點。 藉由讓工作區縮小閒置計算叢集,您可以節省大量成本。