本番AIワークフローは、稼働率99.9%、p95レイテンシ200ms未満、インフラアラートゼロを示しながら、リクエストの30%で誤った回答を静かに生成し続けることがある。インフラは健全だ。出力はそうではない。これらは異なる障害モードであり、異なる計器を必要とする。
ほとんどのチームはインフラ層を最初に計装する。そのツールに慣れているからだ。Prometheus、Datadog、PagerDuty — これらはよく理解されている。出力品質の計装は、定義が難しく感じられるため後回しにされる。その先送りこそが、本番AIシステムが静かに劣化していく原因だ。
インフラメトリクスと出力品質メトリクス
インフラ健全性メトリクスが答える問い:システムは動いているか?
- 稼働率 / 可用性
- p50、p95、p99レイテンシ
- エラーレート(HTTP 5xx、タイムアウト数)
- キュー深度とスループット
これらは重要だ。ダウンしているシステムは何も生成しない。しかし、稼働中でありながら誤った出力を生成するシステムは、多くの場合さらに悪い — 外側からは正常に見えながら、信頼を損ない、下流のエラーを引き起こすからだ。
出力品質メトリクスが答える問い:システムは正確で有用な結果を生成しているか?
- 既知のグラウンドトゥルースに対する精度
- 時間経過による出力ドリフト
- 拒否またはフォールバック率
これらは、特定のワークフローにおける「正しい」の定義を必要とする。その定義こそが難しい部分だ。定義さえあれば、計装は単純だ。
初日から追跡すべき3つの出力品質シグナル
1. ラベル付きサンプルに対する精度
正しい出力がわかっている固定の入力セットを選ぶ。50〜100件のサンプルで十分だ。スケジュール(毎日またはデプロイごと)でパイプラインをそのセットに対して実行する。合格率を時系列で追跡する。
本格的な評価フレームワークは不要だ。サンプルを実行し、出力を期待値と比較し、合格/不合格のカウントをログに書き込むスクリプトで十分だ。重要なのは、精巧なものを構築することではなく、一貫して実行する規律だ。
プロンプト変更やモデルバージョン更新後に合格率が94%から81%に下がった場合、本番トラフィックに影響が出る前にそれを知りたい。
2. 出力ドリフト率
ドリフトとは、意図的な変更なしに出力の分布が変化することだ。以前は入力の60%に「高信頼度」を返していた分類器が、モデルやプロンプトの変更なしに85%で返すようになる — そのシフトは上流で何かが変わったシグナルだ:入力データ形式、コンテキスト長、トークン分布など。
出力カテゴリや信頼度帯の単純なヒストグラムを追跡する。毎日ログに記録する。週次で比較する。5%のシフトはノイズだ。2週間で20%のシフトはフラグだ。
基本的なドリフトを検出するためにベクターデータベースや埋め込み比較は不要だ。ログファイルに書き込まれた頻度テーブルをローリングベースラインと比較するだけで、ほとんどのワークフローには十分だ。
3. 拒否とフォールバック率
すべての本番AIパイプラインにはフォールバックパス — ルールベースのデフォルト、人間へのエスカレーショントリガー、またはキャッシュされた安全なレスポンス — が必要だ。システムがそのフォールバックに到達する率は、直接的な品質シグナルだ。
月曜日のフォールバック率が2%で木曜日に14%になっていれば、何かが変わっている。上流のデータソースが不正な入力を送り始めたかもしれない。モデルが以前は処理していたプロンプトのクラスを拒否し始めたかもしれない。フォールバック率はユーザーより先に問題を浮き彫りにする。
すべてのフォールバックイベントを理由コードとともにログに記録する。low_confidence、malformed_input、timeout の3つの理由コードだけでも、トリアージに十分なシグナルが得られる。
本格的なオブザーバビリティプラットフォームを構築せずに計装する方法
これら3つのシグナルを取得するために専用のMLOpsプラットフォームは不要だ。機能する最小限のセットアップを示す:
- 精度: ラベル付きサンプルセットを実行し、JSONラインをログファイルに追記するスケジュールスクリプト(cronまたは簡単なジョブランナー)。フィールド:
timestamp、sample_size、pass_count、fail_count、pass_rate。 - ドリフト: すべてのライブリクエストで出力カテゴリごとにインクリメントするカウンター。毎時間ログまたは軽量な時系列ストアにフラッシュする。7日間のローリング平均と比較する。
- フォールバック率: フォールバックロジックをラップし、トリガーごとに
{timestamp, reason_code, input_hash}をログに記録するラッパー。毎日集計する。
3つすべてを午後一つで実装できる。1日1,000リクエストを処理するワークフローの総ストレージフットプリントは月10MB未満だ。
重要なのは洗練度ではない。これらの数値が確認できる場所に存在し、何かが壊れたときだけでなく、スケジュールに従って確認することだ。
これを機能させる運用習慣
レビューのない計装はただのログノイズだ。週次レビューのサイクルを設定する。3つの数値、5分間:精度合格率、ドリフトデルタ、フォールバック率。3つすべてが安定していれば次に進む。1つがシフトしたら、複合する前に調査する。
これはインフラアラートのレビューと同じ規律だ。出力品質は、特定のワークフロー向けにベンダーが事前設定して提供するものではないため、アラート条件を自分で定義する必要があるだけだ。
本番AIパイプラインを構築または監査していて、測定設定についてセカンドオピニオンが欲しい場合は、会話を始める →