實際工作環境機器學習系統:靜態與動態訓練

一般來說,您可以透過下列兩種方式訓練模型:

  • 靜態訓練 (也稱為離線訓練) 是指您只訓練一次模型。然後提供同一個經過訓練的模型一段時間。
  • 動態訓練 (也稱為線上訓練) 是指持續或至少經常訓練模型。您通常會提供最近訓練的模型。
圖 2:原料麵團可製作三個相同的麵包。
圖 2. 靜態訓練。訓練一次,多次提供相同的已建構模型。(圖片來源:Pexels 和 fancycrave1)。

 

圖 3. 每次使用生麵團製作麵包時,麵包的形狀都會有些微差異。
圖 3. 動態訓練。經常重新訓練,提供最近建構的模型。(圖片來源:Pexels 和 Couleur)

 

表 1. 主要優缺點。

靜態訓練 動態訓練
優點 更簡單。您只需要開發及測試模型一次。 更具彈性模型會持續追蹤特徵和標籤之間的關係變化。
缺點 有時會較為過時。如果特徵和標籤之間的關係隨時間變化,模型的預測結果就會變差。 工作量增加。您必須持續建構、測試及發布新產品。

如果資料集確實不會隨時間變化,請選擇靜態訓練,因為建立和維護靜態訓練的成本比動態訓練低。不過,資料集通常會隨時間變化,即使是您認為恆定不變的資料集 (例如海平面) 也是如此。結論:即使使用靜態訓練,您仍必須監控輸入資料是否有變動。

舉例來說,假設您訓練的模型要預測使用者購買花束的機率。由於時間緊迫,因此模型只使用 7 月和 8 月的花卉購買行為資料集訓練一次。這個模型在幾個月內運作良好,但在情人節期間,由於使用者行為出現大幅變化,因此預測結果不準確。

如要進一步瞭解靜態和動態訓練,請參閱管理機器學習專案課程。

練習:測試您的理解程度

下列哪兩項關於靜態 (離線) 訓練的敘述正確無誤?
模型會在收到新資料時保持最新狀態。
事實上,如果您在離線狀態下訓練模型,模型就無法在收到新資料時加以納入。如果您嘗試從中學習的分布隨著時間而變化,這可能會導致模型失效。
您可以在正式工作環境中套用模型前先驗證模型。
是的,離線訓練可讓您在將模型導入實際工作環境前,充分驗證模型成效。
相較於線上訓練,離線訓練對訓練工作的監控需求較低。
一般來說,離線訓練的監控需求較為簡單,因此您不必考量許多實際工作環境的考量。不過,訓練模型的頻率越高,您就需要投入越多的監控資源。您也應定期進行驗證,確保程式碼 (及其依附元件) 的變更不會對模型品質造成負面影響。
在推論期間,您只需監控少量輸入資料。
雖然這似乎違反直覺,但您確實需要在供應時監控輸入資料。如果輸入資料分布有所變動,模型的預測結果可能就會變得不可靠。舉例來說,假設模型只訓練夏季服飾資料,卻突然用於預測冬季的服飾購買行為。
以下哪個敘述與動態 (線上) 訓練相關?
模型會在收到新資料時保持最新狀態。
這是線上訓練的主要優點;您可以讓模型在收到新資料時進行訓練,藉此避免許多過時問題。
您只需監控訓練工作,
事實上,您必須持續監控訓練工作,確保訓練工作處於正常狀態並正常運作。您還需要支援基礎架構,例如在訓練過程中發生錯誤 (例如工作有錯誤或輸入資料損毀) 時,能夠將模型回溯至先前的快照。
在推論期間,您只需監控少量輸入資料。
就像靜態離線模型一樣,監控動態更新模型的輸入內容也相當重要。您可能不會受到季節性影響,但輸入資料 (例如上游資料來源的異常) 突然大幅變動,仍可能導致預測結果不準確。