> [!abstract] 概要(arXiv abstract の日本語訳)
> 継続的デプロイの実践は、ソフトウェアをデプロイできる頻度を高めることで、企業がタイムトゥマーケットを短縮することを可能にしてきた。しかし、より頻繁にデプロイすることは、時折欠陥のある変更がリリースされるというリスクを伴う。インターネット企業にとって、これはユーザー体験を劣化させ、ユーザーの離脱を増加させる可能性を持つ。したがって、品質管理ゲートはソフトウェア配信プロセスの重要な構成要素である。これらはリリースや変更の信頼性に対する確信を構築するために用いられる。この目的のために、一般的なアプローチはカナリアテストを実施して本番ワークロード下で新しいソフトウェアを評価することである。欠陥をできる限り早期に検知することは、露出を減らし、開発者に即座のフィードバックを提供するために必要である。我々は、ソフトウェアデプロイメントにおける regression(性能劣化・回帰)を迅速に検知するための統計的フレームワークを提示する。我々のアプローチは、確率的順序(stochastic order)の逐次検定と分布の等価性の逐次検定に基づく。これにより、カナリアテストを継続的にモニタリングすることが可能になり、誤検知確率を全体を通して厳密に制御しながら、regressionを迅速に検知できるようになる。このアプローチの有用性は、Netflixにおける2つのケーススタディに基づいて実証される。
## 論文情報
- タイトル: Rapid Regression Detection in Software Deployments through Sequential Testing
- 著者・所属: Michael Lindon、Chris Sanden、Vaché Shirikian(全員 [[Netflix]], Inc., Los Gatos, CA, USA)
- 媒体: Proceedings of the 28th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD '22), 2022-08-14〜18, Washington, DC, USA. pp. 3336–3346.
- DOI: [10.1145/3534678.3539099](https://doi.org/10.1145/3534678.3539099)
- arXiv: [2205.14762](https://arxiv.org/abs/2205.14762)(初版投稿 2022-05-29、v2 2022-06-22)
## 概要
継続的デプロイ・進歩的デリバリの普及により、ソフトウェアの変更は本番環境に高頻度で投入されるようになった一方、内部テスト環境では捉えられない性能劣化(パフォーマンスregression)が本番ワークロード下で初めて顕在化するリスクが増している。本論文は、Netflixにおけるカナリアテスト(release candidateと現行版を並行稼働させ本番トラフィックの一部で比較する controlled experiment)を、固定サンプルサイズの統計検定ではなく、逐次検定(sequential testing)と anytime-valid な confidence sequenceによって継続的にモニタリングする統計的フレームワークを提案する。平均値の差ではなく分布間の確率的順序・等価性を仮説として定式化することで、平均には現れないが裾(tail)に現れる劣化も検知対象に含める。
## 問題設定
- **入力**: カナリアテストにおいて、対照群(arm A、既存バージョン)と処置群(arm B、release candidate)それぞれから逐次的に到着する観測値の系列。観測値は連続値の測定(例: PlayDelayのミリ秒値)か、イベント発生時刻の系列(count metric、例: Successful Play Start(SPS)イベント)のいずれか。
- **出力**: 「B は A より確率的に劣っている(悪化している)」または「A と B の分布は異なる」という仮説の、型 I エラー確率を厳密に $\alpha$ 以下に保った棄却/承認判定と、その判定の根拠となる分布関数・分位点関数の信頼帯(confidence band)。
- **前提**: 観測は独立同分布(i.i.d.)。判定は開発者が任意の時点・任意の頻度で行える必要がある(継続的モニタリング)。データ到着順序はarm間で厳密に対応している必要はない。
## 提案手法
- **アーキテクチャ**: 固定-$n$検定(fixed-$n$ inference)を出発点に、Darling and Robbins・Howard and Ramdas の time-uniform な経験過程の集中不等式(concentration inequality)を用いて、任意の $n$ について同時に成り立つ信頼帯へと拡張し(confidence sequence)、これを逐次検定・逐次$p$値へと発展させる3段構成。
- **意思決定理論的な regression の定義**: 損失関数 $L$ に基づく期待損失(risk) $r_b - r_a = \mathbb{E}[L(B)] - \mathbb{E}[L(A)]$ で「B が A より望ましい」を定義する。開発者間で $L$ の関数形について合意が取れなくても、$L$ が非減少関数であることさえ合意できれば、$B$ が $A$ に対して確率的に小さい($B \preceq A$、first-order stochastic dominance)ことは、あらゆる非減少損失関数について $r_b \le r_a$ を保証する。これにより、平均の比較では捉えられない「稀だが極端な劣化」(PlayDelayの裾の重さの増加など)を、損失関数の形を厳密に特定せずに検定対象にできる。
- 帰無/対立仮説は方向性が既知の場合 $H_0: F_b(x) \ge F_a(x) \; \forall x$ vs $H_1: F_b(x) < F_a(x)$ for some $x$(式2)、方向性が不明な場合は $H_0: F_a(x) = F_b(x) \; \forall x$ vs $H_1: F_a(x) \ne F_b(x)$ for some $x$(式3)として定式化する。
- **固定-$n$推論(3.2節)**: Dvoretzky–Kiefer–Wolfowitz(DKW)不等式(式4)から、経験分布関数 $F_n$ の一様信頼帯(式5)、経験分位点関数の信頼帯(式7)を導出する。arm A・arm B それぞれの信頼帯にunion boundを適用して差の関数 $d_{a,b} := F_b - F_a$ の信頼帯(式9、Proposition 3.1)を構成し、この信頼帯が0を跨がなければ帰無仮説を $\alpha$-水準で棄却できる(定理3.4)。$p$値は式(11)(A≼Bの検定)・式(14)(A≽Bの検定)の根として定義され、$n_a = n_b = n$ のとき解析的に $p = 2e^{-n\|d_n^+\|_\infty^2/2}$(式12)と計算できる。
- **逐次推論への一般化(3.3節)**: 固定-$n$の信頼帯は「一度だけ」しか有効性が保証されないが、Howard and Ramdas の$\epsilon_n(\alpha)$(式19)を式6の「drop-in replacement」として使うことで、すべての $n \in \mathbb{N}$ について同時に成り立つ time-uniform な信頼帯(confidence sequence、式16)へ拡張できる。これにより開発者は任意の頻度でテストを実施しても型 I エラー確率が保たれる(peekingが許容される)。逐次$p$値は式(20)を満たすように定義され、複数の $(n_a, n_b)$ の組にわたる累積最小値 $q_t = \min(q_{t-1}, p_t)$(式21)として実装することで、任意時点までの「これまでで最も強い証拠」を表す単調非増加な系列になる。
- **相補的停止規則(complementary stopping rule、3.3.2/3.3.3節、表1)**: 逐次検定は帰無仮説が真の場合「開放的(open-ended)」となり、確率 $1-\alpha$ で無限に停止しない恐れがある。本論文は開発者が指定する許容誤差 $\tau$(実務的に無視できる差の大きさ)を導入し、信頼帯の幅が $\tau$ 未満に収束した時点で「近似的に帰無仮説を採択する」停止規則を提案する。これにより、棄却(regressionを検出)・近似採択(有意差なしと結論)のいずれかで有限時間内に必ず停止することが保証され、開発者が事前に必要な最大サンプル数を見積もれる(3.2.7節、式15)。
- **カウントメトリクスへの拡張(3.4節)**: エラー発生やSPSイベントのように、測定値ではなくイベント到着時刻の系列そのものが対象となる指標を扱うため、到着時刻列を更新過程(renewal process、ポアソン過程より弱い仮定)としてモデル化する。到着間隔の差分列に同一の逐次検定手続きを適用することで、測定分布 $F_a, F_b$ と更新分布 $G_a, G_b$ の両方を統一的に検定できる。
## 新規性
既存のカナリアテストシステム([[Kayenta]]・CanaryAdvisor・Google CASなど)は、Mann-Whitney U検定のような固定-$n$統計検定を「厳密に1回だけ」使う設計を前提とする。しかし著者らは、Netflixでの実運用経験から、開発者がregressionを早期に検知しようとして固定-$n$検定を観測データが蓄積するたびに繰り返し適用する「peeking」という誤った実践が常態化していると指摘する(2節)。peekingは型 I エラー確率の制御を破壊し、付録Eのシミュレーションでは100回中64回(Mann-Whitney)・57回(Kolmogorov-Smirnov)もの誤検知を生む一方、本論文の逐次検定では誤検知が一切発生しない。さらに、先行研究([[Kayenta]]、Johari et al. の"Always Valid Inference"、Zhao et al. の staged rollout framework)が平均値の差のみをregressionの定義に用いるのに対し、本論文は確率的順序という部分順序を用いることで、平均は変わらないが分布の裾が悪化するようなケース(PlayDelayの重い裾)まで検知対象を広げる点が新規性である。
## 実験設定
- **環境**: Netflixの実運用パイプライン。提案手法をクライアントアプリケーションのソフトウェア配信パイプラインの品質ゲートとしてデプロイし、regression検知時に開発者へアラートする。
- **データセット**: 2つの実運用カナリアテストのログデータ(4.1節: PlayDelayの劣化事例、4.2節: SPSイベント減少事例)。ケーススタディに加え、付録Eではarm A・arm Bともに Gamma(10, 10)(帰無仮説が真)またはGamma(10,10) vs Gamma(10,11)(対立仮説が真)からのi.i.d.乱数列を用いたシミュレーション(100回試行、各腕最大5000観測)を実施。
- **比較対象**: 固定-$n$の Mann-Whitney U検定、Kolmogorov-Smirnov検定(いずれも継続的モニタリング下での挙動を比較)。
- **評価指標**: 逐次$p$値が $\alpha$(0.01または0.05)を下回るまでの経過時間・サンプル数(検知速度)、シミュレーションにおける経験的な型 I エラー確率(帰無仮説が真の場合に誤って棄却した割合)、対立仮説下での正しい棄却確率(検出力)。
## 実験結果
**PlayDelayの劣化検知(4.1節)**: 帰無仮説 $H_0: F_b \ge F_a$(release candidateのPlayDelayが既存版以下)を検定した結果、逐次$p$値はテスト開始からおよそ65秒で $\alpha=0.01$ を下回った。
**Figure 2: PlayDelayに対する逐次p値の時間推移**
![[_attachments/2026_Unknown_Rapid_Regression_Detection_Software_Deployments/fig02-playdelay-pvalue.png]]
(Figure 2. 逐次$p$値 $q_t$(式21)の推移。50〜70秒付近で階段状に急落し、約65秒で $\alpha=0.01$ の破線を下回る。Ticks omitted for confidentiality. Source: 論文 Figure 2.)
t=100秒時点の0.995信頼帯(Figure 3、本ノードでは非掲載)では、中央値のPlayDelayが少なくとも11ミリ秒、多くとも255ミリ秒増加し、75パーセンタイルは少なくとも51ミリ秒、多くとも635ミリ秒増加したことが0.99信頼区間として得られた(Figure 8)。多くの分位点で信頼帯が交差せず、平均だけでなく分布全体で有意な劣化が確認された。
**Successful Play Startsの減少検知(4.2節)**: SPSイベントの到着間隔分布の等価性($H_0: F_a = F_b$)を検定した結果、逐次$p$値はわずか11.08秒で $\alpha=0.01$ を下回った。
**Figure 4: SPSイベントに対する逐次p値と累積イベント数**
![[_attachments/2026_Unknown_Rapid_Regression_Detection_Software_Deployments/fig04-sps-pvalue-counts.png]]
(Figure 4. 左軸: 逐次$p$値 $q_t$(黒線)。10〜11秒付近で急落し $\alpha=0.01$(赤破線)を下回る。右軸: arm A(赤)・arm B(青)の累積SPSイベント数 $N_a(t), N_b(t)$。arm Bのほうが単位時間あたりのイベント数が少なく、新クライアントで一部ユーザーの再生が失敗するバグを示唆する。Ticks omitted for confidentiality. Source: 論文 Figure 4.)
**シミュレーションによる型 I エラー比較(付録E)**: 帰無仮説が真(両腕ともGamma(10,10))の設定で継続的モニタリング(観測ペアごとに検定)を行うと、Mann-Whitney U検定・Kolmogorov-Smirnov検定はそれぞれ100回中64回・57回の誤検知(false positive)を生んだのに対し、逐次検定(Howard-Ramdas)は誤検知0回だった。対立仮説が真(Gamma(10,10) vs Gamma(10,11))の設定では、逐次検定は固定-$n$検定と比べてより多くの観測数(n)を要してから棄却に至るが、これは型 I エラー確率を全ての $(n_a,n_b)$ について同時に制御する代償である。
**Figure 9: 固定-$n$検定と逐次検定の型 I エラー・検出力の比較**
![[_attachments/2026_Unknown_Rapid_Regression_Detection_Software_Deployments/fig09-simulation-type1-error.png]]
(Figure 9. 100回シミュレーションに基づく停止時刻の経験分布関数。(左)帰無仮説下(両腕Gamma(10,10)): Mann-Whitney(赤)・Kolmogorov-Smirnov(青)はnが増えるにつれ誤検知の累積確率が0.05の水準線(黒破線)を大きく超えて上昇し続けるのに対し、Howard-Ramdas(緑)は誤検知0のまま横軸に張り付く。(右)対立仮説下(Gamma(10,10) vs Gamma(10,11)): 固定-$n$検定はより少ないnで棄却に達するが、逐次検定(緑)もn=5000までにほぼ全て棄却に至る。Source: 論文 Figure 9、付録E。)
## 考察
著者らは、2つの実運用ケーススタディの双方で、提案手法が数十秒〜十数秒という短時間でregressionを検知できた一方、既存の固定-$n$手法ベースのアプローチでは30分以上を要したであろうと述べる(5節)。カウントメトリクスの検定は、時間差分の分布が定常(stationary)であるという仮定に依存するが、これはイベント発生頻度が高くテスト実行時間が短い場合には妥当な仮定である一方、頻度の低いメトリクス(稀にしか使われないデバイスのSPSなど)では長時間のテストにわたり定常性が崩れる可能性があり、著者らはこの場合に型 I エラー保証がどの程度劣化するか明確ではないと認めている。代替案として、時間非均一性下でも有効な逐次多項検定(sequential multinomial test)への言及がある。
## 強み / 弱点・課題
- **強み**: (1) 平均値だけでなく分布全体・確率的順序を対象とすることで、より広いクラスのバグ・性能劣化を検知対象にできる。(2) 型 I エラー確率を継続的モニタリング下でも厳密に保証し、peekingによる誤検知の増加という実務上の既知の問題を根本的に解決する。(3) 相補的停止規則により、有限時間内に棄却または近似的採択のいずれかで必ず終了し、開発者が最大サンプル数を事前に見積もれる。(4) confidence sequenceは時刻に依らず常に有効なため、開発者はいつでも可視化して観察でき、ブラックボックス化を防ぐ。
- **弱点・課題**: (1) カウントメトリクスの定常更新過程仮定は、低頻度メトリクス・長時間テストで崩れうる。(2) 逐次検定は型 I エラー確率をすべての $(n_a,n_b)$ の組について同時に制御するため、対立仮説下での検出に固定-$n$検定より多くの観測を要する場合があり、検知速度と保証の厳密さのトレードオフが存在する。(3) 損失関数 $L$ の非減少性という仮定に依拠する意思決定理論的な正当化は、複数の指標間でトレードオフが生じる場合の統合判断には直接答えていない。