ノートと小型の本番試験装置が並ぶアニメ背景調の機械学習スタジオ
制作ノート

MLOps入門 Part 1:​モデルを​本番環境へ​つなぐ

2023年12月21日

Notebook上の​実験を、​リリース、​監視、​保守が​できる​サービスへつな​ぐ​ための​基礎編。

MLOps機械学習エンジニアリング

この記事は、2021年9月にCode Chrysalisで行ったテックトークの第1部を再構成したものです。出発点は「機械学習モデルを、どの段階で本番化したと言えるのか」という素朴な問いでした。

文章版は2023年12月に公開しました。MLOpsを取り巻くツールやプラットフォームは変化し続けています。ここでは個別製品の手順ではなく、システムの境界と作業の流れに焦点を置きます。

アーカイブの範囲

元のトークはMLOpsの全体像をつかむための入門編でした。特定のクラウドや製品に寄せず、一般的な構成要素を整理しています。技術職以外の方も対象にしていましたが、シリーズ後半では実装寄りの内容も扱います。

登壇当時、私は東京でML Engineering Managerを務め、Retail AIに在籍していました。少人数のチームで、スマートカート向けレコメンドシステムのMLOps基盤を構築していました。同時に、プログラミングを題材にしたアニメシリーズRemote Startup Senpaiも制作していました。

モデルを本番化する

「本番化」の意味は、対象となるサービスによって変わります。Notebook上のモデルを小さなFlask APIで包み、1台のマシンから公開するだけでも、利用者がアクセスできる状態にはなります。社内デモや投資家向けのプレゼンテーションなら、これで目的を果たせる場合もあります。

Jupyter NotebookのモデルをFlask APIで包み、localhostから提供する流れの図
登壇資料で示した最小構成。Notebook、APIラッパー、ローカルエンドポイントの順につなぎます。作図:秋山翔

利用者が増え、再現可能な再学習、安全なデプロイ、複数人での運用が必要になると、この構成は不安定になります。対象はモデルだけではありません。アプリケーション、インフラ、リリース、監視、ログ、そして本番環境から戻るデータまで含まれます。

3つの作業フェーズ

トークでは、大きくなったシステムをML、DEV、PRODの3フェーズに分けました。これは作業を見渡すための整理法であり、3つの専任チームが必須という意味ではありません。

MLOpsの作業をML、DEV、PRODに分け、相互のフィードバックを示した図
モデルの受け渡し、システムテスト、監視、データの還流によって、ML、DEV、PRODは相互につながります。作図:秋山翔

MLフェーズ

リサーチ、データの抽出と変換、実験、学習、モデル実装を扱います。モデルが有用かどうかを確かめるため、短いフィードバックループを保つ段階です。

DEVフェーズ

モデルをプロダクト全体へ組み込みます。簡略化した図では、バックエンド、フロントエンド、モバイル、API、キャッシュ、単体テストと結合テストをこのフェーズに置いています。

PRODフェーズ

デプロイによってサービスを利用者へ届けます。監視とログからシステムの状態を把握し、本番データを次のモデル改善へ戻します。

MLOpsの定義

トークでは、MLOpsを「機械学習の本番パイプラインにおける信頼性と効率を高めるための実践群」と説明しました。リサーチとモデル実装から始まり、アプリケーションとインフラの開発、サービス提供と監視へ進みます。本番環境から得た情報をもとに、再びMLフェーズへ戻る反復的な流れです。

この定義で重視しているのは、連携と再現可能な作業です。モデルレジストリ、CIパイプライン、監視サービスはその流れを支えますが、単体の製品だけでMLOpsが完成するわけではありません。

次の記事

Part 2では、MLOpsが必要になる理由を扱います。実験用の分類モデルが、データセット、モデル版、アプリケーション、利用者を持つサービスへ成長する過程を追います。

2023年12月23日に公開したMediumの原文を再構成しました。