← M09 MLOps 與部署 M09 MLOps 與部署

M09.07|模型重訓練策略:讓 AI 系統跟上世界的腳步

不是訓練一次就永遠好用 — 聰明的重訓練策略才是長期競爭力

L2-系統部署-模型維運監控 L2-AI技術應用-模型訓練優化
模型重訓練 觸發條件 排程重訓 持續學習 線上學習 增量學習 訓練流程自動化 模型版本管理
📋

本講學習重點

什麼情況下應該觸發模型重訓練?
排程重訓和漂移觸發重訓各有什麼優缺點?
持續學習(Continual Learning)和定期重訓的核心差別是什麼?
什麼是災難性遺忘?如何緩解?
自動化重訓練流水線需要哪些關鍵組件?

三種重訓練觸發方式:效能觸發(指標低於閾值)、漂移觸發(PSI > 0.2)、排程觸發(定期,如每週)

排程重訓優點:可預期、可規劃運算資源;缺點:未必在最需要時重訓,可能浪費資源

持續學習:模型持續接收新資料更新;全量重訓練:定期用全部(或近期)資料從頭訓練

災難性遺忘(Catastrophic Forgetting):增量學習時,新資料的更新覆蓋舊知識,是持續學習最大的挑戰

緩解災難性遺忘:回放緩衝區(Replay Buffer)、正則化(EWC)、資料混合(新資料 + 部分舊資料)

資料飛輪(Data Flywheel):模型部署 → 產生用戶互動 → 互動成為新訓練資料 → 重訓後模型更好 → 產生更多互動

重訓練後必須自動執行評估和回滾測試,確保新模型不比舊模型差才能上線

📌 模型重訓練策略是 MLOps 的核心能力之一,核心在於「何時重訓、用什麼資料、如何自動化」三個問題。觸發方式分為排程觸發、效能觸發、漂移觸發三類,各有適用情境。持續學習雖然能最即時地追上世界變化,但需要解決災難性遺忘的問題;定期全量重訓練更穩定,但反應速度較慢。自動化重訓練流水線是生產環境的必備能力,必須包含資料驗證、自動評估、自動上線和回滾保護。
模型重訓練策略:讓 AI 系統跟上世界的腳步

🎙️ Podcast(中文)

0:00 / 0:00

一句話搞懂

模型重訓練策略就是替你的 AI 制定一個「持續學習計劃」——因為模型訓練完之後世界不會停下來等它,好的重訓練策略能讓你的 AI 在對的時機、以最低的成本、用最乾淨的資料更新自己,而壞的策略要麼讓模型快速過時(太少重訓)、要麼浪費大量運算資源(太頻繁地不必要重訓),或者更糟糕的是——重訓後反而讓模型變得更差。


白話解說

不重訓練的代價

先從最根本的問題開始:如果部署後完全不重訓練會怎樣?

答案取決於你的應用場景。有些模型「老化」得很慢——判斷 X 光片是否有腫瘤的模型,依賴的是人類解剖學知識,這個知識幾乎不隨時間改變。只要訓練資料本身的品質夠好,這類模型可以幾年不重訓練。但另一些模型「老化」得極快——新聞熱度預測模型的知識在幾天內就過時了;詐欺偵測模型面對的詐欺手法每週都在演化;電商推薦模型的用戶興趣隨著季節、流行趨勢、外部事件快速改變。

業界的一個常見研究結論是:在動態環境中,不重訓練的模型平均每 3–6 個月就會出現可量化的效能退化;在快速變化的場景(如金融市場、社群媒體)甚至更短。Netflix 的研究顯示,他們的推薦系統如果停止重訓練,一個月後用戶點擊率就會開始可測量地下降。

三種觸發重訓練的時機

決定「什麼時候重訓練」是重訓練策略最核心的問題。業界有三種主要的觸發機制,各有適用情境:

時間排程觸發(Schedule-Based Retraining):最簡單的方式——設定一個固定的頻率,例如每週日凌晨 2 點重訓練一次,不管模型表現好不好都照做。優點是可預期、工程上容易實作,運算資源可以提前規劃。缺點是「對齊得不夠好」:如果模型在週三就已嚴重退化,你得等到下個週日才重訓;反之,如果模型還表現很好,每週的重訓練就是浪費資源。

排程觸發適合資料變化速度相對穩定、業務對延遲不那麼敏感的場景,例如企業內部的月報分析模型(每月重訓一次足夠)、年度預算預測模型(每季更新訓練資料)。

效能觸發(Performance-Based Retraining):當監控系統偵測到模型效能(或代理指標)跌破某個閾值時,自動觸發重訓練。例如「若推薦系統的點擊率 7 日移動平均下降超過 10%,自動啟動重訓練流程」。優點是「按需重訓」,模型真的需要時才用,不浪費資源。缺點是效能指標通常有延遲(如前一講提到的標籤延遲),等到效能指標跌破閾值時,問題可能已經存在一段時間了。

漂移觸發(Drift-Based Retraining):當資料漂移監控偵測到輸入分佈或概念漂移的程度超過閾值時,主動觸發重訓練,而不等到效能指標明顯下滑。優點是比效能觸發更早一步,能在模型效能下滑「之前」就採取行動——因為資料漂移往往在效能退化之前就已可偵測。缺點是「漂移不一定代表效能退化」:有些漂移是無害的(如用戶年齡分佈稍微偏移,但行為模式不變),誤觸發重訓練是浪費。

實務最佳做法:混合使用三種機制——以排程觸發作為兜底保障(最長不超過 N 週不重訓),以漂移觸發作為早期預警(提前準備),以效能觸發作為緊急觸發(效能已明顯下滑時加急處理)。

全量重訓練 vs 增量學習

確定要重訓練之後,下一個問題是「怎麼訓練」?主要有兩種方式:

全量重訓練(Full Retraining):用所有可用的歷史資料(或近期 N 個月的資料,稱為「滑動窗口(Sliding Window)」)從頭訓練一個全新的模型。優點是穩健、可重現、容易除錯(訓練過程和原始訓練完全一樣,只是資料更新了);缺點是運算成本高(每次都要從零開始)、速度慢。

全量重訓練是大多數生產場景的首選,特別是當訓練一次需要幾個小時但不是幾天的時候。一個常用的資料策略是滑動窗口(Sliding Window):只使用最近 6 個月的資料,丟棄太舊的資料。理由是:在快速變化的環境中,3 年前的資料可能已不代表當前的模式,甚至可能誤導模型。窗口大小需要根據應用場景調整——對於每日變化的廣告點擊率預測,窗口可能只有 30 天;對於年度採購預測,窗口可能需要 3–5 年(含完整的季節週期)。

增量學習(Incremental Learning)/ 線上學習(Online Learning):只用新資料更新現有模型,不從頭開始。這就像一個人「不用回學校重讀四年大學,只需要參加幾場進修課程」。優點是速度快、運算成本低,理論上能做到近即時的模型更新(如每小時更新一次)。

增量學習面臨一個嚴峻的技術挑戰:災難性遺忘(Catastrophic Forgetting)。當模型用新資料更新時,神經網路的權重被調整以擬合新資料,但這個調整會「覆蓋」舊知識——模型在舊資料上學到的規律被新資料「忘掉了」。這在神經網路上特別嚴重,在傳統機器學習(如梯度提升樹)上相對輕微。

緩解災難性遺忘的策略

既然要做增量學習,就必須應對災難性遺忘。業界有幾種主要的緩解方法:

回放緩衝區(Replay Buffer / Experience Replay):在訓練新資料時,同時混入一部分舊資料(從歷史資料中隨機抽樣)。例如每次增量更新時,80% 的訓練批次是新資料,20% 是從過去 6 個月隨機抽取的舊資料。這讓模型在更新新知識的同時,不忘記重要的舊知識。

彈性權重鞏固(Elastic Weight Consolidation, EWC):這個方法來自深度學習研究,通過在損失函數中加入正則化項,懲罰對「舊任務重要的權重」的大幅改動,從而在學習新知識時保護舊知識。實作複雜度較高,但在任務連續性很重要的場景(如對話 AI 既要學習新話題又要保留語言能力)效果很好。

知識蒸餾(Knowledge Distillation):用舊模型作為「教師」,讓更新後的模型不只學習新資料的標籤,也要學習舊模型的輸出(軟標籤)。這相當於讓更新後的模型繼承舊模型的知識,同時學習新的模式。

實務上,對於大多數場景,最簡單有效的方案是「資料混合」——增量更新時每批次都混入一定比例的歷史資料。純增量學習(完全不用舊資料)在生產環境中非常罕見,因為風險太高。

資料飛輪:讓重訓練越來越值錢

最好的重訓練策略不只是「追趕已發生的變化」,而是主動建立一個資料飛輪(Data Flywheel)

  1. 模型部署後,收集用戶與模型互動的資料(點擊、購買、評分、投訴)
  2. 這些互動資料成為新的訓練樣本(含有真實的用戶反饋)
  3. 用這批資料重訓練,模型變得更好
  4. 更好的模型吸引更多用戶、產生更多互動資料
  5. 形成正向循環

Google 的搜尋排名、Netflix 的推薦系統、TikTok 的演算法,都是資料飛輪運作的典範。重要的是:這個飛輪需要被刻意設計——資料必須被正確地收集、標記、管理,並與訓練流程整合,才能實現這個正向循環。沒有系統性設計的資料收集,只會產生噪音,而非有效的訓練資料。

自動化重訓練流水線

在生產環境中,重訓練不能是「有人手動跑一個腳本」,必須是全自動化的流水線(Pipeline)。完整的自動化重訓練流水線包含以下關鍵組件:

觸發器(Trigger):監控服務偵測到觸發條件(排程時間到達、漂移超閾值、效能跌破閾值)後,自動啟動流水線。

資料驗證(Data Validation):在開始訓練前,自動檢查新資料的品質——格式是否正確、缺失值比例是否可接受、分佈是否合理。若資料有問題,流水線應停止並告警,而非用壞資料訓練出一個更糟的模型。

特徵工程(Feature Engineering):應用與生產環境完全相同的特徵處理邏輯(這正是 Feature Store 的核心價值所在——確保訓練和推論的特徵計算邏輯一致,避免「訓練-服務偏差」)。

自動評估(Automated Evaluation):訓練完成後,自動在一個保留的測試集(或最近一段時間的資料)上評估新模型,並與當前生產模型比較。若新模型在所有關鍵指標上都優於或不劣於舊模型,才允許上線。

自動部署與回滾保護(Auto Deploy with Rollback):通過評估的新模型自動走金絲雀部署流程,並在部署後持續監控關鍵指標;若指標惡化超過閾值,自動回滾到上一個版本。


應用場景

場景 推薦觸發方式 重訓練頻率 訓練策略 特別注意
電商推薦系統 漂移觸發 + 排程(每週) 每日到每週 滑動窗口(近 90 天) 季節性商品需要在節日前提前重訓
詐欺偵測模型 效能觸發(漏報率升高) 每日 增量 + 回放緩衝 欺詐資料極度不平衡,需要特別的採樣策略
信用評分模型 排程觸發(每季) 每季 全量重訓練 需要監管機構審批,無法頻繁更新
新聞熱度預測 排程觸發(每日) 每小時 線上學習(SGD) 資料飛輪極重要,讀者點擊是最好的標籤
自動駕駛感知模型 排程觸發 + 人工審核 每月 全量重訓練 安全關鍵,新模型需要嚴格的離線和場地測試
NLP 對話模型 漂移觸發(新詞彙湧現) 每週 增量 + EWC 需防止災難性遺忘(不能忘記基礎語言能力)
時序預測(需求預測) 排程觸發(每月) 每月 滑動窗口(2–3 年) 窗口必須含完整季節週期

常見誤區

誤區 1:「重訓練一定讓模型變得更好」

這是最危險的誤解。重訓練是一個有風險的操作——如果拿來重訓練的資料品質有問題,新訓練出來的模型可能比舊模型更差。常見的情況包括:資料收集流水線出現 bug,導致特定用戶群的資料被遺漏(採樣偏差);標籤標記邏輯被更改,但舊資料沒有重新標記,導致訓練資料的標籤不一致;近期資料量太少,用幾百個樣本重訓練一個複雜的模型,導致嚴重的過擬合。

因此,重訓練後必須有完整的評估流程,包括:在一個獨立的測試集上對比新舊模型的表現、在金絲雀流量上觀察業務指標、設置自動回滾機制。任何沒有評估步驟的「重訓練就上線」流程,都是在把生產環境當成測試環境,風險極高。業界的工程最佳實踐是:重訓練流水線的最後一步,永遠是「新模型 vs 舊模型的챔피언挑戰者(Champion-Challenger)測試」,只有挑戰者在所有關鍵指標上達標,才能替換冠軍(當前生產模型)。

誤區 2:「頻率越高越好,每天重訓練肯定比每週好」

更頻繁的重訓練不一定帶來更好的效果,還可能帶來更多的問題。每天重訓練意味著:模型每天都在變化,工程師很難追蹤「某個效能下滑是模型版本 N 還是版本 N+1 造成的」;每日重訓練的資料量較少(只有最近幾天的資料),模型可能對短期噪音過度敏感——今天剛好有一場抗議事件導致某地區的交易量異常,這個異常可能被納入訓練而誤導模型;每日重訓練還意味著每日都要花費計算資源,對於大型模型(如 BERT 或 GPT 的微調),成本可能非常可觀。

正確的問題不是「頻率越高越好嗎?」,而是「給定我的應用場景和資料變化速度,多高的頻率是必要且足夠的?」。對多數企業場景,每週一次的全量重訓練加上持續的監控,已經能夠覆蓋絕大多數的退化風險。

誤區 3:「只要資料夠新,模型一定會變好」

訓練資料的「新」不等於「好」,資料品質遠比資料新鮮度更重要。新資料可能存在的問題:選擇偏差(Selection Bias)——如果你只用「被模型接受的案例」作為訓練資料,模型永遠不會學到「被拒絕的案例如果被接受了結果會怎樣」,這在信貸審核和招聘篩選中是經典的「正反饋偏差(Feedback Loop Bias)」問題;標籤噪音(Label Noise)——用戶點擊行為作為訓練標籤時,包含了大量的隨機點擊和誤點,這些噪音標籤如果不加過濾地進入訓練,會降低模型品質;辛普森悖論引起的誤導——近期資料可能恰好捕捉到一個特殊時期(如大型促銷期間的消費行為),這個時期的模式不代表正常情況,訓練出來的模型在普通時期可能表現反而更差。解決之道是在重訓練流水線中加入嚴格的資料驗證和清洗步驟,確保進入訓練的資料符合質量標準。


小練習

練習 1:設計觸發策略

你負責一個叫車平台的「動態司機調度模型」,該模型根據即時的需求、天氣、地理位置,預測未來 15 分鐘各區域的乘客需求,用來引導司機提前移動到需求高峰區域。

模型的輸入特徵包括:即時乘客請求數、當前天氣、時間(小時、星期)、重大事件(演唱會、球賽)、司機位置分佈。

請為這個模型設計一個完整的重訓練觸發策略,回答以下問題:

  1. 這個模型可能遭遇的主要漂移類型是什麼?給出兩個具體例子。
  2. 建議使用哪種觸發方式的組合?理由是什麼?
  3. 建議的重訓練頻率是多少?訓練資料應該用滑動窗口還是全量?窗口大小多大?

練習 2:診斷重訓練問題

你的公司上週執行了推薦系統的月度重訓練(使用過去 90 天的資料),新模型在離線測試集上的 AUC 從 0.81 提升到 0.85,性能看起來更好,因此被自動部署到生產環境。

然而,部署後第三天,業務指標開始惡化:商品點擊率下降 8%,轉換率下降 5%,客訴量增加了 15%。工程師緊急回滾到舊模型,問題消失了。

請診斷可能的問題原因,並提出預防措施:

  1. 為什麼離線 AUC 更高,但線上業務指標反而更差?
  2. 最可能的三個問題原因是什麼?
  3. 你會如何改進重訓練流水線,避免這個問題再次發生?
查看答案 **練習 1:動態司機調度模型重訓練策略** **主要漂移類型**: 這個模型面臨的主要是**資料漂移**和**概念漂移**的混合: - **資料漂移例子 1**:新的大型購物商場開幕,導致某個原本需求低的地區的高峰時間模式改變——週末下午的需求峰值從舊的商業區轉移到新商場周邊,輸入特徵「各區域的基準需求分佈」已發生根本改變。 - **概念漂移例子 2**:台灣政府修改了演唱會散場管制政策,大型活動後用戶行為改變——過去散場後車輛供不應求,現在因出口管制分散疏導,需求峰值被分散到更長的時間窗口。「重大事件」這個特徵和「需求量」之間的關係已改變,屬於概念漂移。 **觸發策略組合建議**: - **排程觸發(每週)作為兜底**:不管有沒有偵測到漂移,每週自動重訓練一次。因為叫車需求受到週期性因素(週末、颱風季、學期開始)影響,每週更新能持續納入最新的時間模式。 - **漂移觸發作為加速機制**:監控「各區域需求分佈」和「時間-需求關聯性」的漂移指標(如 PSI)。若某個區域的需求模式 PSI 超過 0.2,立即觸發該區域的專項重訓練(或全局重訓練,視系統設計)。 - **效能觸發作為緊急機制**:監控代理指標——「司機提前到位率」(模型建議的地點是否真的有乘客出現的比例)。若這個指標下滑超過 10%,立即觸發緊急重訓練。 **訓練資料策略**: - **頻率**:每週全量重訓練,特殊事件後(如新場館開幕、重大交通政策改變)立即額外重訓。 - **滑動窗口**:使用最近 90 天的資料(而非全量歷史)。理由:叫車需求的模式強烈依賴近期狀況,3 年前的資料不能代表當前的城市地理格局(有新商場、新捷運站、新住宅區);90 天足以涵蓋完整的月度週期和大部分季節性變化。 - **特殊資料策略**:重大節日(跨年、颱風期間)的資料應該單獨標記,避免這些極端事件的模式污染正常預測。可以採用「加權採樣」,降低這些異常期間資料的訓練權重,或建立專門的「節日模式模型」。 --- **練習 2:診斷推薦系統重訓練問題** **為什麼離線 AUC 高,但線上效果差?** 這是 MLOps 中最常見的問題之一,稱為「**離線-線上效能差距(Offline-Online Gap)**」。AUC 在離線測試集上提升,說明模型在「靜態的歷史資料」上更好地擬合了過去的用戶行為,但這不等於在真實的、動態的用戶互動中表現更好。幾個可能原因: **最可能的三個問題原因**: 1. **訓練-服務偏差(Training-Serving Skew)重新引入了 bug**:本次重訓練可能更新了特徵工程的程式碼,但生產環境的特徵計算邏輯(Serving 端)沒有同步更新,導致模型的輸入在訓練和服務時不一樣。這是離線 AUC 高、線上效果差的最典型原因——模型在訓練時看到的特徵格式和上線後接收到的特徵格式不一致,導致實際上「喂進去的資料是模型從未見過的」。 2. **過去 90 天的資料存在採樣偏差**:如果過去 90 天恰好包含了某個促銷活動(如雙 11),大量的促銷行為被納入訓練,模型學到的是「促銷期間的用戶行為規律」,但在正常時期推薦了過多的「促銷偏好商品」,導致非促銷期間的相關性下降、轉換率下滑。 3. **評估指標選擇錯誤(AUC 優化的目標和業務目標不一致)**:AUC 衡量的是「模型能否正確區分用戶點擊過和沒有點擊過的商品」——但用戶點擊的行為可能包含了大量的「好奇心點擊」(點擊了但不購買),而非真正有購買意願的點擊。模型優化了 AUC,可能是在推薦更多「引發好奇心但不帶來購買」的商品,而不是「真正讓用戶買單的商品」,導致點擊率沒有轉化為轉換率。 **改進重訓練流水線的建議**: 1. **加入線上 A/B 驗證為強制步驟**:新模型不能直接全量上線,必須先以金絲雀(5–10% 流量)方式部署,觀察至少 3–7 天的真實線上業務指標(轉換率、點擊率、客訴率),確認線上指標不劣於舊模型後,才能逐步擴大流量。 2. **建立「訓練-服務一致性」自動化驗證**:在部署前自動抽取 100–1000 個線上請求的真實特徵,喂給新模型,比較其輸出與舊模型的差異;若差異超過預期,暫停部署並觸發人工審查。 3. **擴展評估指標套件**:除了 AUC,同時評估「購買轉換率相關指標」(如 NDCG@10 基於購買事件,而非點擊事件)和護欄指標(客訴率的預估代理)。 4. **促銷期間資料特別標記和降權**:在重訓練時自動識別促銷期間的資料,並在損失函數中降低其權重(或完全排除),確保模型學到的是正常時期的用戶偏好。

關鍵字自我檢核

✅ 模型重訓練 ✅ Model Retraining ✅ 觸發條件 ✅ Trigger Condition ✅ 排程重訓練 ✅ Scheduled Retraining ✅ 持續學習 ✅ Continual Learning ✅ 線上學習 ✅ Online Learning ✅ 增量學習 ✅ Incremental Learning ✅ 災難性遺忘 ✅ Catastrophic Forgetting ✅ 訓練流程自動化 ✅ Automated Retraining Pipeline ✅ 資料飛輪 ✅ Data Flywheel ✅ 冷啟動問題 ✅ Cold Start Problem ✅ 模型版本管理 ✅ Model Versioning ✅ 主動學習 ✅ Active Learning ✅ 全量重訓練 ✅ Full Retraining