全4762文字
PR

AIモデルを継続的に育てる手法の1つがMLOpsである。従来はテック企業での活用が主体だったが一般企業にも広がっている。運用の安定化やモデル改善の高速化を実現するためのポイントを解説する。

 MLOps(Machine Learning Operations)とは機械学習(ML)を本番環境で運用(Ops)しながら予測モデルの開発を続けて、予測モデルのビジネス価値を高める手法である。本番環境で保守する価値がある予測モデルに育てることだとも言える。

 MLOpsの基になったのは、ソフトウエアの開発・運用手法の1つであるDevOpsである。従来は個別に扱われがちだったシステムの開発と運用のプロセスをつなげ、1つのワークフローとしてサイクル化していこうという考え方だ。「本番リリースしたシステムは、常に完璧ではない」という前提で、フィードバックを基に改善を続ける。

 この、完璧ではないという前提、フィードバックを基に改善という考え方を機械学習に拡張し、機械学習システムをDevOpsの手法で開発/運用するのがMLOpsだ。ここでの機械学習システムは企業内などで活用するソフトウエアに機械学習を組み込んだシステムを指す。

非IT企業でMLOpsの採用始まる

 MLOpsはECベンチャーを中心に採用が進んできたが、国内の非IT企業でも活用が始まっている。

 例えば年間22億個超の荷物を取り扱うヤマト運輸。同社は約3500拠点の宅配便の営業所を持ち、社員は21万人を超える。ヤマト運輸の営業費用に占める人件費の比率は大きく、社員や車両など経営資源の最適配置とコストの適正化が重要な経営課題である。

 この経営課題に対し、ヤマト運輸は3カ月先の荷物量を営業所ごとに1日単位で需要予測する機械学習モデルを月次で作成している。この予測モデルをMLOpsの仕組みで運用し、自動でモデルを作成。これにより、モデル作成にかかる本番運用の時間を大幅に短縮した。また、ソースコードの月次ライフサイクルを、後述するGit-flowと呼ぶ仕組みで運用することで、月次サイクルの中で継続的にソースコードを修正できるようになった。

 この結果、予測結果を活用する事業部門からの急ぎの依頼やデータ不備に伴う予測結果の再作成などに対して、エンジニアが柔軟に対応できるようになった。加えて、ソースコードを運用している中で、コードに保守性や拡張性を加えた。エンジニアの開発効率の向上が進み、毎月モデルにフィードバックするソースコードの修正量を増やせ、モデルの改善が加速した。

 これらヤマト運輸のシステムと仕組みの開発をエクサウィザーズが支援している。

図 MLOpsを導入したヤマト運輸
図 MLOpsを導入したヤマト運輸
AIアルゴリズムを定期的かつ確実に更新(出所:エクサウィザーズ)
[画像のクリックで拡大表示]

開発と運用が一体となり安定化

 MLOpsの導入効果は大きく2つある。1つは、運用の安定化だ。

 開発チームが優れた機械学習ソースコードを実装し、予測モデルを作成しただけでビジネスに活用できるとは限らない。データは常に変化するため、最新データで予測モデルを再作成し、予測の精度を保つ必要があるからだ。

 運用チームは開発チームからソースコードを引き継ぎ、学習データを用いて機械学習モデルを作成するが、データに異常値やソースコードに不具合があると、モデルの作成途中でエラーになる。このとき、「開発」と「運用」が分断していると、運用チームは開発チームが実装したソースコードの意図や背景が分からず、トラブルシュートが困難になるのだ。

 MLOpsはソースコードのサイクルをつなげ、開発チームと運用チームが一体となりソースコードを共同で管理する。これにより、追加されていく実装や本番適用時の注意事項を共有し、未然にエラーを防ぐことにつながる。

図 Gitを活用したコードのフロー管理の例
図 Gitを活用したコードのフロー管理の例
MLOpsで開発チームと運用チームを連携する(Git-flowを参考にエクサウィザーズ作成)
[画像のクリックで拡大表示]