コンセプト解説

MLOps(機械学習の運用)

ノートブックの中ではうまく動いたモデルも、本番のサービスに出したとたん、まったく別の問題にぶつかります。同じモデルを正確に作り直せること、新しいバージョンに安全に入れ替えられること、世の中が変わって性能が落ちたら気づけること。こうした「モデルを作って動かし続ける仕事」をひとつの仕組みにまとめたのがMLOpsです。機械学習のライフサイクルから、LLMサービスの運用まで順に見ていきましょう。

01

モデルはデプロイして終わりではない

機械学習のモデルは、一度作ったら終わりのソフトウェアではありません。データを集めて学習し、評価してデプロイしたあとも、性能を見守り、新しいデータで学習し直すことを何度も繰り返します。下の図はそのループです。段階を選んでみましょう。

段階
デプロイ
モデルを本番のサービスに載せる

機械学習のライフサイクル — 最後の再学習が、またデータ準備へとつながるループ

デプロイ:モデルを本番のサービスに載せる。水色の段階(デプロイ・モニタリング・再学習)が、MLOpsが特に力を入れる部分です。

ふつうのソフトウェアなら、コードが変わらなければ動きも変わりません。ここが引っかかりやすいところですが、機械学習のモデルは、コードがまったく同じでも、入ってくるデータが変われば性能が変わります。だからコードだけでなく、データとモデルもバージョン管理して見守る必要があります。ソフトウェアの開発と運用をつなぐDevOpsの考え方を、機械学習に合わせて広げたものがMLOpsです。

実際の機械学習システムを調べた研究によると、モデルを学習させるコードは全体のほんの一部にすぎません。データの収集と検証、特徴量の作成、デプロイ、モニタリングといった周りの仕事のほうがずっと大きいのです。MLOpsはこの周りの仕事を自動化して記録し、人の手作業から生まれるミスを減らします。

成熟度どんな状態か
手作業ノートブックで手作業で学習し、モデルファイルを手渡しする。作り直すのが難しい
パイプラインの自動化データから登録までパイプラインが動き、新しいデータが届くと自動で再学習する
CI/CDの自動化パイプライン自体のコードのテストとデプロイも自動化されている

問題文にこんな表現があれば → これを選ぶ

  • “データ → 学習 → 評価 → デプロイ → モニタリング → 再学習の繰り返し”機械学習のライフサイクル
  • “MLモデルの開発と運用を自動化・標準化する”MLOps
  • “コードが変わらなければ、モデルの性能も変わらない”誤り — データが変われば性能は変わる
  • “コード・データ・モデルのバージョンをまとめて管理する”MLOpsにおける再現性

最初の一歩は、人が手作業でやっていた仕事を、決まった順番で動くパイプラインに置き換えることです。

02

パイプラインと再現性

学習パイプラインは、データ検証、特徴量の作成、学習、評価、モデル登録を、決まった順番で自動的に実行する流れです。新しいデータがたまったときや、決まったスケジュールで動き出します。評価のステップには品質の基準(品質ゲート)があり、基準に届かないモデルは次へ進めません。下の図で、このモデルを基準に届かないようにしてみましょう。

データ検証
通過
特徴量作成
通過
学習
通過
評価
通過
モデル登録
通過

新しいデータが届くたびに自動で動く学習パイプライン

すべてのステップを自動で通過し、新しいモデルがレジストリに登録されました。人の手を介さないので毎回同じ手順が同じ順番で動き、あとからまったく同じモデルを作り直せます。

実験管理

学習のたびに、使ったデータ、コードのバージョン、ハイパーパラメータ、結果の指標を記録し、実行どうしを比べられるようにします。

メタデータとリネージ

あるモデルが、どのデータとどのステップから生まれたのかを最初から最後までたどれるようにします。

モデルレジストリ

モデルのバージョン、評価結果、承認状態(ステージング・本番)を1か所で管理し、前のバージョンに戻せるようにします。

データ検証

欠損値、範囲外の値、形式が変わった列などを、学習が始まる前に自動で見つけます。

再現性とは「前回のモデルを、まったく同じように作り直せるか?」ということです。同じデータのバージョン、同じコード、同じ設定を記録しておけば、何かが壊れたときに原因を探せますし、元に戻すこともできます。

問題文にこんな表現があれば → これを選ぶ

  • “学習・評価・デプロイのステップを順に自動実行する”MLパイプライン(オーケストレーション)
  • “実行ごとのハイパーパラメータと指標を記録して比べる”実験管理
  • “モデルがどのデータから作られたかをたどる”メタデータとリネージ
  • “モデルのバージョンと承認状態を管理し、ロールバックする”モデルレジストリ
  • “基準に届かないモデルが自動でデプロイされるのを止める”評価ステップの品質ゲート

登録したモデルを、いよいよ本番のサービスに出します。その出し方はひとつではありません。

広告

03

デプロイ:いつ予測するか、どうモデルを入れ替えるか

まず、予測をいつ行うかによって、出し方は2つに分かれます。バッチ推論は、決まった時間に大量のデータをまとめて予測し、結果を保存しておく方法です。リアルタイム(オンライン)推論は、リクエストが来た瞬間に予測して、すぐに答えを返す方法です。ほかに、端末の上で直接予測するエッジ推論もあります。

種類向いている場面特徴
バッチ推論毎晩、全顧客の解約リスクを計算する安くて単純。次の実行まで結果は変わらない
リアルタイム推論決済時の不正検知、検索のレコメンド速い応答が必要。エンドポイントを常に動かし、負荷に応じて増減させる
エッジ推論スマートフォンのカメラ、工場の機械ネットワークなしで速い。モデルは小さくする必要がある

新しいモデルに切り替えるときは、一度に全部を切り替えるのではなく、リスクを分けて進めるのが一般的です。下の図で、それぞれの出し方を試してみましょう。

方式
v2 が答えたリクエスト
2 / 20
切り戻し
影響は10%だけ。割合を0に戻せばよい

新しいモデル v2 を本番に出す方法 — 黄緑 = v2 が答えたリクエスト

リクエストの10%だけを v2 に送って様子を見て、問題がなければ割合を少しずつ増やします。何か起きても、影響を受けるのは一部のユーザーだけです。

どの方法でも、新しいモデルが本当に前のモデルより良いかを、実際の指標で確かめます。そのやり方が評価指標の解説にあるA/Bテストです。また、前のバージョンをレジストリに残しておき、いつでもロールバックできるようにしておきます。

問題文にこんな表現があれば → これを選ぶ

  • “決まった時間に大量のデータをまとめて予測する”バッチ推論
  • “リクエストごとに低レイテンシですぐ予測する”リアルタイム(オンライン)推論、エンドポイント
  • “トラフィックの一部を新しいモデルに送り、少しずつ増やす”カナリアリリース
  • “新しいモデルはリクエストのコピーで予測するだけで、ユーザーには結果を見せない”シャドーデプロイ
  • “2つの環境を用意し、一度に切り替え、すぐに戻せる”ブルー/グリーンデプロイ

デプロイしたら安心、とはいきません。モデルが見ている世の中は、変わり続けるからです。

Pro限定

ここまでは無料で読めます

残りの5章はPro会員向けです。各章に3D図解と「問題文にこんな表現があれば」の整理が続き、最後の章では実際に解いて確かめられます。

  1. 04モニタリングとドリフト
  2. 05再学習の戦略
  3. 06学習・サービング スキューと特徴量ストア
  4. 07LLMサービスの運用(LLMOps)
  5. 08状況に合った方法

PasslyExam

概念をつかんだら、次は試験形式の問題で確かめましょう

PasslyExamは、各資格の出題範囲に合わせて作成したオリジナルの練習問題・解説・本番形式の模擬試験を提供しています。正解の選択肢がなぜ正しく、似た選択肢がなぜ誤りなのかまで解説します。登録すると毎日無料で練習問題に取り組めます。