エクサウィザーズは、ヤマト運輸向けにMLOps(Machine Learning Operations:機械学習オペレーション)を実現する環境を構築し、機械学習モデルの「データ抽出→前処理→学習→予測→評価」などの作成プロセス(以降、機械学習パイプラインと記載)を自動化した。
これにより、ヤマト運輸は月次の機械学習モデルの運用が高速化し、継続的な改善が可能になった。
MLOps環境構築の背景と機械学習パイプライン自動化の効果
ヤマト運輸は約6,500店ある宅急便センターの数ヶ月先の業務量を予測するため、機械学習モデルを毎月作成し、需要に応じた効率的な経営資源の最適配置とコスト適正化を推進している。毎月運用する機械学習モデルは複数あり、作業は多岐に渡る。月次トランザクションデータ/マスタのファイルの準備、設定ファイルの書き換え、プログラムの手動実行などが対象となる。
スピード感をもってPoCに取り組んだ結果、作業負荷が高い状態が続いていた。また、事業部への予測結果報告までの運用スケジュールが短期的なため、機械学習モデルの再作成や予測の再分析が難しい課題も抱えていた。
エクサウィザーズはこれらの課題を解決するため、MLOpsの運用環境を構築し、月次で手動実行していた「データ抽出→前処理→学習→予測→評価」など一連のプロセス(機械学習パイプライン)を自動化。
その結果、月次の機械学習モデルの運用が高速化し、余裕を持ったスケジュールでの運用が可能になり、運用工数が大幅に削減。加えて、機械学習パイプラインの中で動くプログラムのテストも自動化でき、効率的な運用→開発の月次サイクルができた。このサイクルにより、機械学習モデルの運用が安定すると同時に、プログラムの継続的な機能開発及び機械学習モデルの精度改善が可能になった。
機械学習パイプライン自動実行の前提となるソースコードの運用見直し
ヤマト運輸は機械学習モデルのソースコードのバージョン管理を行っている。しかし、バージョン管理ツールへの登録タイミングや手順が属人化していることにより、どのソースコードが最新のものかわかりづらい課題があった。特に複数の開発案件が並走すると、ソースコードの管理が煩雑になり、翌月の運用で使用するソースコードの準備に時間と労力がかかる状態だった。
この課題を解消するため、エクサウィザーズはGit flowという開発手法を参考にソースコードのバージョン管理方法を見直し、属人化していたバージョン管理の運用方法を標準化。また、同社はバージョン管理ツールをGitHubに一本化することにより、複数のベンダーが同じソースコードに対して同時に開発できる、開発・運用環境を整えた。
この取り組みの結果、ソースコードの役割をマスタ(main)、本番運用(release)、開発及び単体テスト(feature)、結合テスト(develop)に整理し、ソースコードの運用プロセスを刷新。新しい運用プロセスは本番環境の月次運用プロセス①、検証環境の機能開発+テストのプロセス②、翌月の運用に向けて本番環境のソースコードを最新化するプロセス③の3つで構成される。このプロセス見直しにより、ソースコードの運用が安定した。
ヤマト運輸株式会社 執行役員 中林紀彦氏は、次のようにコメントしている。
「MLOpsの導入に成功したことで、機械学習モデルの運用が安定すると同時に、継続的なモデル開発および精度改善が可能になりました。このMLOpsのプラットフォームと様々なデジタルサービスを組み合わせて機械学習の価値をビジネスに活かしていきたいと思います」