機械学習の全体地図(6)運用と責任あるAI
モデルを作ったあとに必要な再現性の確保、本番への載せ方、安全な切り替え、監視と、公平性・説明可能性・プライバシーなど責任あるAIの観点、応用例との対応をまとめます。
連載 機械学習の全体地図 第6回/全8回
運用(MLOps):モデルを使い続ける
モデルは、実際の業務で使い始めてからが本番です。データも業務も変わっていくので、作り直せる仕組みと、劣化に気づく仕組みが必要です。
再現できるようにする
| 対象 | やること | 道具の例 |
|---|---|---|
| コード | バージョン管理する | Git |
| データ | どのデータで学習したかを記録し、バージョン管理する | DVC、データのスナップショット |
| 実験 | 設定・指標・モデルを記録し、後から比べられるようにする | MLflow |
| 環境 | ライブラリのバージョンを固定する | requirements.txt、Docker |
| 乱数 | 乱数のシード(乱数の出方を決める初期値)を固定する | random_state |
本番への載せ方
| 方式 | 内容 | 例 |
|---|---|---|
| バッチ推論 | 夜間などにまとめて予測し、結果を保存しておく | 翌日の解約リスク一覧 |
| リアルタイム推論 | 依頼が来るたびに即座に予測する。他のシステムから呼び出せる窓口(API)にする | 決済の不正判定(FastAPIなどでAPI化) |
| エッジ推論 | スマホや機器の中で予測する | カメラでの物体検出(モデルをさまざまな環境で動かせる共通形式ONNXなどを使う) |
学習時と本番で前処理が食い違う問題(Training-serving skew)を防ぐため、前処理ごとモデルを保存します(チュートリアルの手順10)。
安全に切り替える
| シャドーデプロイ | 新モデルの予測を本番では使わず、記録だけして旧モデルと比べる |
|---|---|
| カナリアリリース | 一部の利用者だけに新モデルを出し、問題がなければ範囲を広げる |
| A/Bテスト | 利用者を無作為に分け、売上や解約率などの業務指標で比べる |
| ロールバック | 問題が起きたらすぐ旧モデルに戻せるようにしておく |
監視する
| データドリフト Data drift | 入力データの分布が学習時から変わる(例:値上げで料金の分布が変わる)。2つのデータの分布が同じかを調べるKS検定などで検知できる(チュートリアルの手順11) |
|---|---|
| コンセプトドリフト Concept drift | 入力と答えの関係自体が変わる(例:競合の登場で解約の理由が変わる)。正解が分かってから精度を測って検知する |
| 予測の分布 | 陽性と判定する割合などの急な変化 |
| 精度 | 正解が後から分かるなら実績で測る。正解が分かるまで時間がかかる(ラベルの遅延)ことが多い |
| システム | 応答時間、エラー率、計算資源の使用量 |
再学習は、定期的に行う方法と、ドリフトの検知を合図に行う方法があります。再学習したモデルも旧モデルと同じ方法で評価し、良くなった場合だけ切り替えます。
責任あるAI
精度が高くても、人を不当に扱ったり、情報を漏らしたりするモデルは使えません。技術だけでは決められないことも多いので、関係者と基準を話し合って決めることが大切です。
公平性 Fairness
学習データに過去の偏った判断が含まれていると、モデルはそれを学んで再現します。性別などの項目を除いても、郵便番号や購買履歴などが代わりの手がかり(代理変数)になり、偏りが残ることがあります。
対策の第一歩は、全体の精度だけでなく、グループ別に指標(再現率、誤報の率など)を比べることです。ただし公平性の定義は複数あり(例:陽性と判定する割合をグループ間でそろえる、誤りの率をそろえる)、一般にすべてを同時には満たせないため、用途に応じてどれを重視するかを決める必要があります。
説明可能性 Explainability
まず、誰に何を説明するかを決めます。開発者の不具合調査、業務担当者の納得、判断を受ける本人への説明では、必要な説明が違います。手法は、全体としてどの特徴量が効いているか(特徴量重要度)と、1件ごとの予測の理由(SHAPなど)に分かれます。これらは「モデルが何を手がかりにしたか」を示すもので、現実の因果関係を示すものではない点に注意が必要です。
プライバシーとデータの扱い
- データは、集めたときの利用目的の範囲で使う。個人情報の扱いは法令と社内規程を確認する
- 名前を消しても、ほかの項目の組み合わせで個人が特定されること(再識別)がある
- モデルが学習データを記憶し、出力で再現してしまうことがある(特に大規模なモデル)
- 保護のための技術に、差分プライバシー(統計的な雑音で個人の影響を隠す)や連合学習(データを集めずに学習する)がある
安全性と悪用への備え
- 誤りの影響が大きい判断では、人が最終確認する仕組み(Human-in-the-loop)にする
- LLMを使うシステムでは、プロンプトインジェクションや不適切な出力への対策をする
- 入力にわずかな細工をしてモデルを誤らせる「敵対的サンプル」という攻撃もある
権利と規制
学習データや生成物の著作権の扱いは、国や利用方法によって異なります。日本には、情報解析のための著作物の利用を原則として認める規定(著作権法30条の4)がありますが例外もあり、生成物が既存の作品に似ている場合は別の問題になります。また、EUのAI法のように、用途のリスクに応じて義務を課す規制も始まっています。具体的な判断では最新の公的な情報を確認し、必要に応じて専門家に相談してください。
公開前のチェックリスト
- 学習データの出どころと、使ってよいことを確認したか
- グループ別の精度を確認したか
- 予測が誤ったときの影響と、その対応手順を決めたか
- 予測の根拠を、必要な相手に説明できるか
- 出力に個人情報や機密情報が含まれないか
- 監視の仕組みと、旧モデルに戻す手順があるか
理解度チェック
応用例との対応
身近な応用を①②③の組み合わせで読み解きます。
| 応用 | ① 学び方 | ② タスク | ③ よく使うモデル |
|---|---|---|---|
| 迷惑メール判定 | 教師あり | 二値分類 | ロジスティック回帰、ナイーブベイズ、Transformer |
| 需要・売上予測 | 教師あり | 回帰(時系列) | 勾配ブースティング、ARIMAなどの時系列モデル、NN |
| 与信・解約予測 | 教師あり | 二値分類 | 勾配ブースティング、ロジスティック回帰 |
| 画像の物体検出 | 教師あり | 構造化予測 | CNN、Transformer |
| 商品の推薦 | 教師あり | ランキング | 協調フィルタリング(似た人が好んだものを薦める。行列分解など)、勾配ブースティング、NN |
| 顧客セグメント分け | 教師なし | クラスタリング | k-means、混合ガウス |
| 不正・故障の検知 | 教師なしまたは教師あり | 異常検知/不均衡な分類 | Isolation Forest、オートエンコーダ、勾配ブースティング |
| 医療画像の診断補助 | 教師あり(ラベルが少なければ半教師ありや転移学習) | 分類・セグメンテーション | CNN、Transformer |
| 対話AI(LLM) | 自己教師あり→教師あり→強化学習 | 生成 | Transformer(事前学習→指示チューニング→好みに合わせる調整) |
| 画像生成 | 教師なし(生成モデル。説明文から作る場合は画像と説明文の組で学ぶ) | 生成 | 拡散モデル |
| 囲碁・将棋などのゲームAI | 強化学習(教師ありを併用することも多い) | 方策の学習 | NN+探索(AlphaZero型は自己対局で学習) |
Spark