跳轉到

第 8 題:故障類型診斷

< 返回目錄 | < 上一題:二元常態與相關性 | 下一題:延遲與 Token 聯合分析 >


場景:告警響了,然後呢?

凌晨四點,你的告警系統響了——失敗率異常升高。

「知道了,系統出問題。」你揉揉眼睛,「但問題是:到底是哪裡出問題?

失敗有很多種:

  • GPU 記憶體不足(OOM)
  • 推論超時
  • 模型載入錯誤
  • 其他錯誤

不同的故障原因,需要不同的處理方式。 如果是 OOM,要檢查 batch size;如果是超時,要檢查負載;如果是載入錯誤,要檢查模型伺服器。

你的問題:如何從失敗類型的「分布」中找線索?


(a) 失敗類型分布

3 分大三

第一個問題:正常情況下,不同類型的失敗各佔多少比例?

你需要知道:多種類別的機率模型

歷史數據顯示,正常狀態下的失敗類型分布為:

類型 機率
GPU OOM \(p_1 = 0.40\)
超時 \(p_2 = 0.35\)
載入錯誤 \(p_3 = 0.15\)
其他 \(p_4 = 0.10\)

題目

  1. 若觀察 \(n = 100\) 次失敗,令 \((X_1, X_2, X_3, X_4)\) 為各類型的計數。寫出聯合 PMF
  2. 計算 \(E[X_1]\)\(\text{Var}(X_1)\)
  3. 證明 \(\text{Cov}(X_i, X_j) = -n p_i p_j\)\(i \neq j\)
解答
  1. 聯合 PMF(多項分布):

    \[P(X_1=x_1, \ldots, X_4=x_4) = \frac{n!}{x_1! x_2! x_3! x_4!} p_1^{x_1} p_2^{x_2} p_3^{x_3} p_4^{x_4}\]

    其中 \(x_1 + x_2 + x_3 + x_4 = n\)

  2. \(E[X_1] = np_1 = 100 \times 0.4 = 40\)

    \(\text{Var}(X_1) = np_1(1-p_1) = 100 \times 0.4 \times 0.6 = 24\)

  3. \(\text{Cov}(X_i, X_j) = E[X_i X_j] - E[X_i]E[X_j]\)

    由於 \(X_i + X_j \leq n\),增加 \(X_i\) 會減少 \(X_j\) 的「空間」,所以:

    \(\text{Cov}(X_i, X_j) = -n p_i p_j < 0\)(負相關)

這個計算有什麼用?

建立基準線:正常時 OOM 約 40 次、超時約 35 次...

理解約束:各類別計數是負相關的——一種變多,其他種必然變少。

數學小結:你剛才發現了 Multinomial 分布

Multinomial 分布 是 Binomial 的多類別推廣。

性質 公式
PMF \(\frac{n!}{\prod x_i!} \prod p_i^{x_i}\)
邊際分布 \(X_i \sim B(n, p_i)\)
期望 \(E[X_i] = np_i\)
變異數 \(\text{Var}(X_i) = np_i(1-p_i)\)
共變異數 \(\text{Cov}(X_i, X_j) = -np_i p_j\)\(i \neq j\)

(b) 分布變化檢定

4 分大三

新的問題:現在觀察到 \(n = 100\) 次失敗,分布為 \((55, 25, 12, 8)\)

這跟歷史分布 \((40, 35, 15, 10)\) 不一樣——但這是正常波動還是真的變了

你需要知道:如何判斷觀察值與期望值的差異是否「顯著」

題目

  1. 計算卡方統計量 \(\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}\)
  2. \(\alpha = 0.05\) 下,判斷分布是否顯著改變
  3. 說明卡方檢定的適用條件
解答
  1. 計算各類別的貢獻:

    類型 期望 \(E_i\) 觀測 \(O_i\) \((O-E)^2/E\)
    OOM 40 55 \(15^2/40 = 5.63\)
    超時 35 25 \(10^2/35 = 2.86\)
    載入 15 12 \(3^2/15 = 0.60\)
    其他 10 8 \(2^2/10 = 0.40\)

    \(\chi^2 = 5.63 + 2.86 + 0.60 + 0.40 = 9.49\)

  2. \(df = k - 1 = 4 - 1 = 3\)

    臨界值 \(\chi^2_{0.05,3} = 7.81\)

    \(9.49 > 7.81\)拒絕 \(H_0\):分布顯著改變(p < 0.05)

  3. 適用條件:所有 \(E_i \geq 5\)(本例滿足)

這個計算有什麼用?

統計顯著性:不是「看起來不一樣」,而是「統計上顯著不一樣」。

結論:失敗類型的分布確實改變了,不是隨機波動。

數學小結:卡方適合度檢定

卡方檢定 用於比較觀測分布與期望分布。

概念 說明
虛無假設 \(H_0\): 觀測來自期望分布
統計量 \(\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}\)
自由度 \(df = k - 1\)\(k\) 是類別數)
拒絕域 \(\chi^2 > \chi^2_{\alpha, df}\)

\(H_0\) 為真時,\(\chi^2 \sim \chi^2(df)\)


© 異常類別定位

3 分大三

進一步追問:知道分布變了,但具體是哪個類型異常

你需要知道:逐類別分析卡方統計量的貢獻

題目

  1. 根據 (b) 的結果,找出貢獻最大的類別
  2. 判斷該類別是「變多」還是「變少」
  3. 給出故障診斷建議
解答
  1. 各類別對 \(\chi^2\) 的貢獻:

    • OOM: 5.63(最大!)
    • 超時: 2.86
    • 載入: 0.60
    • 其他: 0.40
  2. OOM:觀測 55 > 期望 40,變多

    超時:觀測 25 < 期望 35,變少

  3. 診斷結論:GPU OOM 異常增多

    行動建議: - 檢查 GPU 記憶體配置 - 是否有 batch size 過大的請求 - 是否有記憶體洩漏

這個計算有什麼用?

定位問題:不只知道「有問題」,還知道「問題在哪」。

優先級:貢獻越大的類別,越需要優先處理。


(d) 序貫分析 SPRT

4 分碩一

新的需求:上面的方法需要等到累積 \(n = 100\) 次觀測才能判斷。

能不能「一邊觀測一邊判斷」,更快發現問題?

你需要知道:序貫機率比檢定 (SPRT)

題目

假設要檢測 OOM 比例是否從 \(p_0 = 0.4\) 升高到 \(p_1 = 0.5\)

  1. 定義對數似然比 \(\Lambda_n = \sum_{i=1}^{n} \log \frac{P(X_i | p_1)}{P(X_i | p_0)}\)
  2. 設定停止邊界 \(A, B\) 使得 \(\alpha \leq 0.05\)\(\beta \leq 0.10\)
  3. 比較 SPRT 與固定樣本檢定的期望樣本量
提示

SPRT 的停止規則:當 \(\Lambda_n \geq A\) 時接受 \(H_1\),當 \(\Lambda_n \leq B\) 時接受 \(H_0\)

解答
  1. 對於 Bernoulli 觀測(OOM = 1,非 OOM = 0):

    \[\Lambda_n = \sum_{i=1}^{n} X_i \log\frac{p_1}{p_0} + (1-X_i)\log\frac{1-p_1}{1-p_0}\]
    \[= S_n \log\frac{0.5}{0.4} + (n - S_n)\log\frac{0.5}{0.6}\]

    其中 \(S_n = \sum_{i=1}^n X_i\) 是 OOM 的累積計數。

  2. Wald 邊界:

    \[A = \log\frac{1-\beta}{\alpha} = \log\frac{0.9}{0.05} \approx 2.89\]
    \[B = \log\frac{\beta}{1-\alpha} = \log\frac{0.1}{0.95} \approx -2.25\]
  3. 期望樣本量:

    \(H_0\) 下(\(p = 0.4\)):\(E_0[N] \approx 45\)

    \(H_1\) 下(\(p = 0.5\)):\(E_1[N] \approx 35\)

    比固定樣本(\(n = 100\))少約 50-65%!

這個計算有什麼用?

更快發現異常

方法 需要觀測數 優點
固定樣本 100 簡單
SPRT ~40 快 60%

實際應用:在高頻監控中,SPRT 可以更早發出告警。

數學小結:序貫機率比檢定 (SPRT)

SPRT(Sequential Probability Ratio Test)是 Wald 在二戰期間發明的,用於品質管制。

概念 說明
核心思想 「邊觀測邊決策」,不用等到固定樣本量
統計量 對數似然比 \(\Lambda_n\)
停止規則 \(\Lambda_n \geq A\) 接受 \(H_1\)\(\Lambda_n \leq B\) 接受 \(H_0\)
優點 期望樣本量比固定樣本少 30-50%
缺點 樣本量是隨機的,可能很長

在 SRE 場景中,SPRT 特別適合**持續監控**——不用等到累積夠多數據才判斷。


第 8 題小結:你的故障診斷工具箱

「告警響了,哪裡出問題?」
    ├─► 問題 1:失敗類型的「正常分布」是什麼?
    │       └─► 工具:Multinomial 分布
「OOM 40%、超時 35%、...」
    ├─► 問題 2:現在的分布是否「異常」?
    │       └─► 工具:卡方適合度檢定
「χ² = 9.49 > 7.81,分布顯著改變!」
    ├─► 問題 3:具體是哪個類型變多了?
    │       └─► 工具:逐類別貢獻分析
「OOM 貢獻最大(5.63)→ 檢查 GPU 記憶體」
    ├─► 問題 4:能不能更快發現問題?
    │       └─► 工具:SPRT 序貫分析
「從 100 次觀測減少到 ~40 次」

< 返回目錄 | < 上一題:二元常態與相關性 | 下一題:延遲與 Token 聯合分析 >