MLOpsとは?
MLOpsは「Machine Learning(機械学習)」と「Operation(運用)」を組み合わせた言葉です。機械学習モデルの開発から運用までのライフサイクル全体に渡ってCI/CDなどのDevOps(※1)のプラクティスを適用し、継続的な改善を可能とする枠組みを提供します。
機械学習やDevOpsは、それぞれビジネスのデジタルトランスフォーメーションを実現する上で重要な技術領域として知られていますが、それらの組み合わせにより実現されるMLOpsは2018年頃から注目され始めた比較的新しい分野です。
図:Googleにおける「MLOps」の検索キーワード数の推移
MLOpsが注目される背景
「令和2年版情報通信白書」(※2)によると、IoTやAI等のシステム・サービスを導入しない理由の上記に「導入コスト・運用コストがかかるから」が位置しており、導入障壁の1つとなっています。(下図の赤枠)
図:IoTやAI等のシステム・サービスを導入しない理由(※2より引用)
MLOpsの意義を考える上で重要な課題ですので、具体的に見ていきたいと思います。
下図は「機械習ワークフロー」と呼ばれ、機械学習モデルの開発から運用までの全体像を示したものです。この図に導入や運用における課題をプロットしてみます。
図:機械学習ワークフローと導入および運用における課題
(1)開発段階でも試行錯誤が必要である。(赤いオブジェクト)
機械学習モデルの開発は、精度がビジネスの要件を満たすまで試行錯誤を繰り返して改善を行う必要があります。十分な精度を得られない原因として例えば、特徴量設計(データの前処理)や機械学習アルゴリズムの選択(モデルの構築)が不適切であることが考えられます。
Amazon SageMakerやKubeflowなどの代表的な機械学習サービスやツールでは、学習や推論にDockerコンテナを利用します。ソースコードを修正してDockerコンテナイメージの再ビルドを行ない、開発環境やステージング環境にデプロイして精度の評価を行います。これを精度の要件を満たすまで何度も繰り返します。
(2)機械学習モデルが高い精度を維持できているか継続的に監視が必要である。(青いオブジェクト)
精度がビジネス要件を満たして本番環境へのリリースを行なった後は、精度に劣化がないか継続的に監視をする必要があります。昨今は、新型コロナウイルス(COVID-19)の感染拡大の影響で人の行動様式が日~週単位で変化する可能性があるため、精度の監視は特に重要であると考えられます。顧客の行動が変化した場合は、データの収集にまで戻ってやり直す必要があります。
上記は数回だけで終わる作業ではなく、ビジネスを展開している期間(数年など)に渡って必要です。手作業ではこれにかかるコストや時間が無視できなくなるばかりか、顧客への価値のデリバリスピードが低下してビジネスの競争力が低下する恐れがあります。
このような課題に対処する枠組みとしてMLOpsが注目されており、DevOpsの実現手法であるCI/CDや監視(モニタリング)の仕組みを導入して効率化を図ります。
下記はAWSの機械学習サービスであるAmazon SageMakerや開発者用ツールなどを用いてMLOpsの仕組みを構成した例です。
図:AWSのサービスを利用してMLOpsを構成した例
NTTデータの取り組み
機械学習エンジニアやデータサイエンティストは機械学習やデータの専門家であり、必ずしもDevOpsの仕組みに詳しいわけではありません。DevOpsの構築経験があっても、これを応用してMLOpsの仕組みをゼロから構築することは容易ではありません。
NTTデータでは、顧客体験の向上を実現するためのサービスデザイン手法やアジャイル開発の方法論をまとめたソリューション群である「Altemista」を提供しています。これにOSSやAWSをはじめとするクラウドサービスで提供される機械学習のツール群を組み込んだMLOpsの導入サービスを提供しています。(※3)
図:MLOpsサービスが提供するツールチェーン(※3より引用)
NTTデータでは、本サービスを通じてお客様のビジネスの価値向上に貢献していきます。