---
title: "影子模式（Shadow Mode）"
slug: shadow-mode
language: zh-TW
source: https://aiterms.tw/learning/what-is-shadow-mode
updated_at: 2026-07-04
tags: [模型部署, MLOps, AI應用, source:ipas]
ipas_term: true
type: deep-dive
---

# 影子模式 是什麼？

> 影子模式是指將新模型部署於生產環境，接收真實流量並進行預測，但預測結果不影響實際業務決策的評估策略。

## 核心概念

影子模式在機器學習與軟體工程領域中，是一個極具價值的部署策略。其核心思想在於讓新開發的模型或系統直接接觸生產環境的真實資料，同時將其輸出的影響力完全隔離。這樣做的主要目的是為了在不承擔任何業務風險的情況下，對模型進行最真實的壓力測試與效能評估。

在傳統的模型開發流程中，我們通常依賴離線資料集進行訓練與驗證。無論測試資料集切割得如何精細，或是交叉驗證的方法多麼嚴謹，離線環境始終無法完美重現生產環境的複雜度。生產環境中的資料分佈可能會隨著時間推移產生偏移，這被稱為資料飄移或概念飄移。此外，真實世界的流量可能包含邊角案例、異常值或是格式損壞的輸入。影子模式透過直接引入即時流量，讓資料科學家與機器學習工程師能夠在模型正式上線前，觀察它應對這些不可預期狀況的能力。

透過影子模式，新模型在後台靜默運行，並將預測結果寫入日誌系統或監控儀表板。工程團隊隨後可以將這些預測結果與現有線上模型或是規則基礎系統的輸出進行比對。如果新系統的表現不如預期，工程師可以隨時將其下線進行修改，而一般使用者完全不會察覺到這個過程。這種風險隔離機制使得團隊能夠更頻繁且更大膽地進行模型迭代，加速人工智慧應用的落地。

此外，影子模式也能夠作為資料標註的輔助機制。透過記錄新模型的預測與主模型的差異，資料工程團隊可以針對這些分歧點進行人工抽查。這種主動學習的思路有助於快速發掘模型容易出錯的資料分佈區域，進而針對性地收集並標註更多相似資料，用以強化後續的模型訓練版本。從長期營運的角度來看，這種持續性的背景監控機制，是確保機器學習系統穩定性不可或缺的一環。

## 運作原理

實作影子模式需要健全的基礎架構支援，特別是需要一套能夠靈活控制流量轉發的系統。一般而言，運作流程可以分為流量複製、平行推論、結果隔離與非同步分析四個主要階段。

在流量複製階段，系統架構通常會利用 API 閘道器或是服務網格層級的配置，將進入系統的請求複製一份。原始請求會按照既有路徑發送給當前正在提供服務的主模型，而複製出來的請求則會被發送給處於影子模式的新模型。這個過程必須保證對主流程的影響降到最低，避免因為複製請求或是網路延遲而拖慢使用者的回應時間。因此，流量複製通常採用非同步的方式進行，並且具備在負載過高時自動丟棄複製請求的降級機制。

進入平行推論階段後，新模型會對接收到的請求進行計算。此時，新模型與主模型共享相同的輸入資料，這確保了後續比較基準的一致性。新模型需要具備處理生產環境真實吞吐量的能力，因此這也是測試模型運算效能與資源消耗的絕佳時機。工程團隊可以監控新模型的推論延遲、記憶體使用量與運算單元負載，及早發現潛在的效能瓶頸。在這個階段，特徵工程管道也需要支援雙軌運行，確保新模型所需的特徵能夠即時被計算並提供，這對特徵儲存系統的讀取能力是一大考驗。

結果隔離是影子模式的關鍵所在。主模型產生的預測結果會被封裝在標準的回應中回傳給客戶端，並驅動後續的業務邏輯。相對地，新模型產生的預測結果則會被捨棄或是導向專門的儲存系統，例如資料湖泊或時間序列資料庫。系統會嚴格禁止這些影子結果影響任何下游服務或改變資料庫狀態。同時，系統也必須攔截新模型可能發起的任何外部 API 呼叫，防止其對其他微服務造成不可逆的操作或狀態變更。

在最後的非同步分析階段，工程系統會定期收集主模型與影子模型的輸出，並結合實際發生的真實標籤進行整體評估。如果任務是預測使用者是否會點擊廣告，系統會在使用者實際行為發生後，同時檢視兩個模型的預測機率。透過大規模的資料比對，分析師可以精確計算出新模型在準確率、召回率等各項指標上的提升幅度，並產出詳細的比較報告供決策參考。資料團隊通常會建立自動化的儀表板，即時視覺化這兩個模型的預測分佈與殘差指標，讓任何異常變化都能夠在第一時間被察覺。

## 實際應用

影子模式在各個高度依賴資料驅動決策的產業中都有廣泛的應用，特別是在那些錯誤成本極高的場景中，它幾乎是模型上線前的必經流程。

在自動駕駛領域，這項技術被發揮得淋漓盡致。車輛製造商會將最新版本的視覺感知網路或路徑規劃演算法透過空中下載技術部署到用戶的車輛上，並設定為影子模式。當用戶在實際道路上駕駛時，這套新演算法會持續接收車載攝影機與雷達的感測資料，並產生虛擬的轉向與煞車指令。這些指令不會干涉車輛的實際控制系統，但會被記錄下來與人類駕駛員的實際操作進行對比。如果新系統在某個路口決定緊急煞車，而人類駕駛員選擇平穩通過，工程師就可以將這個片段提取出來進行詳細分析，找出演算法的判斷盲點。這種分散式的資料收集與測試網路，讓自駕車公司得以在不危及乘客安全的前提下，累積大量的測試里程。

金融產業的詐欺偵測系統也是影子模式的重要應用場景。銀行與支付平台每天需要處理海量交易，詐欺集團的手法又日新月異。當資料科學團隊開發出能夠捕捉新型態詐欺模式的機器學習模型時，直接替換舊有系統可能會導致誤判率上升，進而凍結大量正常用戶的帳戶，引發嚴重的客訴。透過將新模型置於影子模式下運行數週，銀行可以精確評估其誤報率與漏報率，並調整決策閾值。只有在確認新模型能有效提升攔截率且不影響正常交易體驗後，才會正式切換。此外，信用評分模型的更新也極度依賴此技術，銀行會平行計算新舊模型的信用額度，觀察新模型對整體資產組合風險的影響。

在電子商務與內容平台的推薦系統中，影子模式同樣扮演著關鍵角色。推薦演算法的微小改變都可能牽動數百萬使用者的點擊與購買行為。團隊會將包含新嵌入層或是注意力機制的模型以影子模式上線，計算其針對每位使用者生成的推薦列表，並分析這些列表與使用者實際互動項目之間的關聯性。這種離線與線上相結合的評估方式，能夠在實際進行 A/B 測試之前，先過濾掉表現不佳的模型架構，節省寶貴的測試資源。搜尋引擎的排序演算法也常利用此機制，將新演算法的排序結果與使用者實際點擊的搜尋結果進行對比，以衡量相關性的改善程度。

在醫療影像輔助診斷領域，影子模式也有著無可取代的地位。將新的病灶偵測模型部署於醫院內部網路時，系統會默默讀取放射科設備傳輸的影像進行分析，並將結果儲存於獨立資料庫中，而不會顯示在醫師的看診螢幕上。研究人員隨後會比對模型預測與醫師最終的診斷報告，以此驗證模型在真實醫療場景下的敏感度與特異度。這種做法完全規避了醫療失誤的風險，並幫助開發團隊更精確地掌握模型在不同機台與患者群體間的泛化能力。

## 常見誤區

儘管影子模式優勢顯著，但在實際操作中仍存在一些常見的誤區，可能導致評估結果失真或是造成系統資源浪費。

首先是忽略基礎架構的負擔。有些團隊在引入影子模式時，沒有充分考慮到流量倍增對網路頻寬與運算資源的衝擊。複製一份流量意味著基礎架構需要處理兩倍的請求量，如果影子模型部署在與主模型相同的硬體叢集上，可能會引發資源競爭，導致主模型的回應時間變長，甚至引發服務中斷。正確的做法是將影子模型部署在獨立的環境中，並設定嚴格的資源配額與超時機制，確保生產系統的穩定性。此外，資料儲存的成本也不容忽視，大量無效的影子預測日誌若未經妥善管理與定期清理，會迅速消耗儲存空間。

其次是過度依賴影子模式的指標而忽略業務邏輯的連鎖反應。影子模式只能評估模型單次預測的準確性，但無法模擬預測結果對整個系統生態的長期影響。在推薦系統中，如果一個新模型傾向於推薦熱門商品，它在影子模式下的點擊率預測可能非常準確。然而，如果將其正式上線，可能會導致流量過度集中於少數商品，產生馬太效應，反而損害了平台長期的內容多樣性。這類系統性的影響無法單純透過比對預測結果來發現，仍需要依賴後續的線上實驗來驗證。影子模式只能證明新模型具備上線的潛力，不能直接保證最終業務目標的達成。

另外一個常見的問題是資料記錄與對齊的困難。在分散式系統中，要確保主模型與影子模型接收到的特徵完全一致是一項挑戰。有時因為網路延遲或是快取更新時間差，兩個模型讀取到的使用者歷史行為資料可能存在微小差異。如果不對這種特徵不一致進行過濾，比較結果的可靠性就會大打折扣。團隊需要建立嚴謹的日誌追蹤機制，使用唯一的請求識別碼來關聯兩者的輸入與輸出，並定期校驗資料對齊的正確性。

最後，忽略模型對外部服務依賴的副作用也是一個致命的錯誤。如果模型在推論過程中需要查詢外部資料庫或是呼叫第三方服務，這些操作在影子模式下必須被嚴格攔截或轉向唯讀備份。若開發者疏忽了這點，影子模型可能會發送真實的簡訊通知、寫入交易紀錄或是消耗第三方 API 的計費額度，這會對業務營運造成實質性的干擾。

## 與相關技術的比較

在模型部署與持續整合的領域中，影子模式通常會與 A/B 測試、金絲雀發佈以及藍綠部署等策略一起被討論。了解它們之間的差異，有助於工程團隊在不同的情境下選擇最適當的工具。

影子模式與 A/B 測試最大的差異在於對使用者體驗的影響。A/B 測試是將真實流量依照比例分配給不同的模型，使用者會實際看到並接收到新模型的預測結果。這種方法能夠收集到最真實的使用者行為回饋，例如點擊、轉化或停留時間。然而，A/B 測試具有業務風險，如果新模型表現不佳，被分配到實驗組的使用者體驗就會受損。相對地，影子模式完全零風險，但它無法收集到使用者與新模型互動後的真實行為改變，因此通常被定位在 A/B 測試的前置步驟，用於排除存在明顯缺陷的模型版本。

金絲雀發佈則是另一種控制風險的部署策略。它將新版本模型先暴露給極小比例的真實流量，觀察其系統穩定性與業務指標。如果一切正常，再逐步擴大流量比例，直到完全取代舊版本。金絲雀發佈與影子模式一樣注重風險控管，但金絲雀發佈中的預測結果會真實影響業務流程。對於那些需要累積大量歷史資料才能看出差異的複雜模型，金絲雀發佈早期的小流量可能不足以產生具有統計意義的評估結果，此時讓新模型在影子模式下接收全量流量進行平行運算，往往能更快地累積足夠的統計樣本，加速決策過程。

藍綠部署主要關注的是系統層面的無縫切換與災難復原。它會準備兩套完全一致的生產環境，一套運行當前版本，另一套部署新版本。當新版本準備就緒時，系統會在一瞬間將流量切換過去。如果發生問題，也能立刻切換回來。藍綠部署本身不包含模型效能評估的語意，它更像是一種發佈機制的底層支援。許多企業會將這幾種技術結合使用，例如先將新模型部署在綠色環境中進行影子測試，確認各項離線指標無誤後，再透過金絲雀策略逐步將流量引導至綠色環境，最終完成藍綠切換。

離線回放測試與影子模式也常被混淆。離線回放是指讀取過去收集的日誌資料，輸入給新模型進行推論。這雖然也能達到不影響線上業務的目的，但離線回放無法測試新模型在應對即時突發流量時的系統穩定性，且過時的資料可能無法反映當下生產環境的真實狀態。影子模式處理的是當下即時的流量，能提供更貼近真實營運狀況的系統效能評估與模型準確度驗證。

## iPAS 考試出題分析

屬於未分類考範圍。

## 常見問題

### 什麼時候應該選擇影子模式而非直接進行 A/B 測試？

影子模式適合用於高風險、高錯誤成本或是新舊模型架構差異極大的情境。當你對新模型的線上穩定性與邊界案例處理能力缺乏信心，或是模型錯誤預測可能導致財務損失、客訴與安全性問題時，應該優先採用影子模式。由於它能做到完全的風險隔離，團隊可以利用全量流量進行壓力測試與效能驗證。只有在影子模式下確認新模型的離線指標如準確率、召回率與推論延遲皆符合預期，且系統資源消耗在合理範圍內後，才適合將其推進至 A/B 測試階段，以收集真實使用者的互動回饋。

### 實作影子模式時，如何處理新模型呼叫外部 API 的副作用？

在設計影子模式架構時，防止新模型對外部系統造成實質變更是系統設計的關鍵。如果新模型的推論邏輯中包含對外部 API 的呼叫或資料庫寫入操作，必須在架構層面上進行攔截。工程實務上通常採用依賴注入與介面抽像的方式，為處於影子模式的模型提供一套專屬的模擬環境或是虛擬服務。這些虛擬服務會回傳預先配置好的靜態回應，或是讀取唯讀備份資料庫，確保任何狀態變更的請求都會被丟棄或記錄而不實際執行。透過嚴格的網路出口策略配置，可以防止影子模型意外觸發簡訊發送或交易扣款等不可逆行為。

### 影子模式是否會對生產環境的效能造成負面影響？

如果不進行妥善的架構規劃，影子模式確實可能拖慢生產環境。複製流量與平行推論會顯著增加系統整體的運算與網路負擔。為了避免干擾主流程，流量複製必須設計為非同步操作，主線程不應該等待影子模型的回應。此外，強烈建議將影子模型部署在實體隔離的運算叢集中，避免它與負責處理真實請求的主模型競爭 CPU、記憶體或網路頻寬。同時，必須在系統層級實作斷路器與流量控制機制，當生產環境遭遇流量尖峰或硬體負載過高時，應主動丟棄送往影子模型的請求，確保主動路徑的服務等級協定不受影響。

---

深度解說頁：https://aiterms.tw/learning/what-is-shadow-mode
快查頁：https://aiterms.tw/terms/shadow-mode
最後更新：2026/07/04