第四部分:成本監控¶
< 返回目錄 | < 上一題:處理時間監控 | 下一題:月度成本預測 >
從延遲到成本¶
Q3 你完成了延遲監控。但某天你發現一個問題:帳單比預期高 5%,而且每月波動很大。
這是另一種異常:成本異常。系統運作正常,但費用失控。
API 是按 token 計費的,但每次請求的 token 數不固定。要設成本告警,你得先知道:
- 正常成本是多少?(期望值)
- 波動從哪裡來?(變異數的來源)
- 為什麼帳單比預估高?(取整損失)
第 4 題:Token 計費模型¶
(a) Token 數量分布¶
3 分 ・ 大二
第一個問題:每次請求產生多少 token?
你需要知道:建模 token 數量的分布
假設每次請求的輸出 token 數 \(T\) 服從指數分布,平均 \(E[T] = 1000\) tokens。
題目:
- 求 \(T\) 的參數 \(\lambda\)
- 計算 \(P(T > 2000)\)(超過 2000 tokens 的機率)
- API 按 100 tokens 為單位向上取整計費,令 \(W = 100 \cdot \lceil T/100 \rceil\)。計算 \(P(W = 100)\)、\(P(W = 200)\)
解答
-
\(E[T] = \frac{1}{\lambda} = 1000 \Rightarrow \lambda = 0.001\)
-
\(P(T > 2000) = e^{-0.001 \times 2000} = e^{-2} \approx 0.135\)
-
\(W = 100\) 當且僅當 \(0 < T \leq 100\):
\[P(W = 100) = P(T \leq 100) = 1 - e^{-0.1} \approx 0.095\]\(W = 200\) 當且僅當 \(100 < T \leq 200\):
\[P(W = 200) = e^{-0.1} - e^{-0.2} \approx 0.086\]
這個計算有什麼用?
理解計費結構:向上取整意味著「實際支付 > 實際使用」,這就是為什麼帳單比預期高。
初步診斷:13.5% 的請求會超過 2000 tokens,這些「長尾請求」會顯著拉高平均成本。
數學小結:你剛才用了 Exponential 分布建模
Token 數量用 Exponential 分布 建模,是因為它的「無記憶性」:
- 已經生成了 500 tokens,「還要再生成多少」的分布跟「從頭開始」一樣
- 這符合 LLM 逐 token 生成的特性(簡化假設)
| 性質 | 公式 |
|---|---|
| \(f(t) = \lambda e^{-\lambda t}\),\(t \geq 0\) | |
| CDF | \(F(t) = 1 - e^{-\lambda t}\) |
| 期望值 | \(E[T] = 1/\lambda\) |
| 變異數 | \(\text{Var}(T) = 1/\lambda^2\) |
| 無記憶性 | \(P(T > s+t \mid T > s) = P(T > t)\) |
(b) 取整損失分析¶
4 分 ・ 大三
關鍵問題:向上取整導致的「額外支出」是多少?
你需要知道:比較 \(E[W]\) 和 \(E[T]\)
題目:
- 證明取整後的計費金額 \(W\) 服從某種離散分布,並推導其 PMF
- 計算 \(E[W]\)
- 計算取整損失率 \(\frac{E[W] - E[T]}{E[T]}\)
提示
令 \(q = e^{-0.1}\),觀察 \(P(W = 100k)\) 的形式。
解答
-
\(P(W = 100k) = P(100(k-1) < T \leq 100k) = e^{-0.1(k-1)} - e^{-0.1k}\)
\(= e^{-0.1(k-1)}(1 - e^{-0.1}) = (1-q) q^{k-1}\),其中 \(q = e^{-0.1} \approx 0.905\)
這是 Geometric 分布(乘以 100)!
-
\(E[W] = 100 \cdot E[\text{Geom}(1-q)] = \frac{100}{1-q} = \frac{100}{1 - e^{-0.1}} \approx 1052\) tokens
-
取整損失率 = \(\frac{1052 - 1000}{1000} = 5.2\%\)
這個計算有什麼用?
解釋帳單差異:這 5.2% 就是「為什麼帳單比預估高」的原因!
談判策略:如果能將計費單位從 100 改為 50,取整損失會減半。
| 計費單位 | 取整損失率 |
|---|---|
| 100 tokens | 5.2% |
| 50 tokens | 2.6% |
| 10 tokens | 0.5% |
數學小結:離散化產生了 Geometric 分布
當連續的 Exponential 分布被「向上取整」時,離散化後的結果服從 Geometric 分布(縮放版)。
這個現象叫做「離散化」:
- 原始分布:\(T \sim \text{Exp}(\lambda)\)(連續)
- 離散化後:\(W/\Delta \sim \text{Geom}(1 - e^{-\lambda\Delta})\)(離散)
| 性質 | 公式 |
|---|---|
| PMF | \(P(W = k\Delta) = (1-q) q^{k-1}\),\(q = e^{-\lambda\Delta}\) |
| 期望值 | \(E[W] = \frac{\Delta}{1-q}\) |
| 取整損失 | \(\frac{E[W] - E[T]}{E[T]} = \frac{\lambda\Delta/2}{1 - e^{-\lambda\Delta}} - \frac{1}{2} \approx \frac{\lambda\Delta}{2}\)(小 \(\Delta\)) |
© 每秒總成本分布¶
4 分 ・ 碩一
整合問題:每秒有 \(N \sim \text{Pois}(200)\) 個請求,每個請求的計費金額 \(W_i\) 獨立同分布。令 \(C = \sum_{i=1}^{N} W_i\) 為每秒總成本。
你需要知道:「隨機數量的隨機金額」加總的分布
題目:
- 說明 \(C\) 服從什麼分布(名稱即可)
- 用全期望公式計算 \(E[C]\)
- 用全變異公式計算 \(\text{Var}(C)\)
解答
-
\(C\) 服從 複合 Poisson 分布(Compound Poisson)
-
全期望:
\[E[C] = E[E[C|N]] = E[N \cdot E[W]] = \lambda \cdot E[W] = 200 \times 1052 = 210400 \text{ tokens/秒}\] -
全變異:
\[\text{Var}(C) = E[\text{Var}(C|N)] + \text{Var}(E[C|N])\]\[= E[N] \cdot \text{Var}(W) + E[W]^2 \cdot \text{Var}(N)\]\[= \lambda \cdot \text{Var}(W) + E[W]^2 \cdot \lambda = \lambda \cdot E[W^2]\](需要計算 \(E[W^2]\),這裡省略細節)
數學小結:複合 Poisson 分布
當「事件數」服從 Poisson、「每次事件的量」獨立同分布時,總量服從 複合 Poisson 分布。
| 性質 | 公式 |
|---|---|
| 全期望 | \(E[C] = \lambda \cdot E[W]\) |
| 全變異 | \(\text{Var}(C) = \lambda \cdot E[W^2]\) |
這在保險、金融、網路流量分析中非常常見。
進階:全變異公式推導¶
3 分 ・ 碩一
你想進一步了解:成本波動是從哪來的?是請求數量不穩定,還是單次金額不穩定?
你需要知道:如何分解總變異數的來源?
題目:推導全變異公式(Law of Total Variance):
並說明每一項的物理意義。
推導
起點:\(\text{Var}(C) = E[C^2] - (E[C])^2\)
Step 1:展開 \(E[C^2]\)
由於 \(E[C^2|N] = \text{Var}(C|N) + (E[C|N])^2\),得:
Step 2:展開 \((E[C])^2\)
Step 3:相減
這個推導有什麼用?
物理意義:
-
第一項 \(E[\text{Var}(C|N)]\):「給定請求數 \(N\),成本的波動」的期望
- 這是單次金額的變異性貢獻
- 對應:\(E[N] \cdot \text{Var}(W)\)
-
第二項 \(\text{Var}(E[C|N])\):「給定請求數 \(N\),成本期望值」的波動
- 這是請求數量的變異性貢獻
- 對應:\(\text{Var}(N) \cdot (E[W])^2\)
實務決策:比較兩項大小,決定優化方向
- 第一項大 → 優化單次金額的穩定性(如:壓縮輸出長度)
- 第二項大 → 優化流量的穩定性(如:流量平滑、限流)
第 4 題小結:你的成本監控工具箱¶
「單次請求成本分布?」
├─► 工具:Exponential → 離散化 → Geometric
│
▼
「取整損失多少?」
├─► 公式:E[W] - E[T] ≈ 5% 的隱藏成本
│
▼
「每秒總成本分布?」
├─► 工具:複合 Poisson 分布
│
▼
「成本波動從哪來?」
└─► 工具:全變異公式(分解變異來源)