MLOpsはじめました
概要
Andpad 黒板というサービスの一つの機能

背景
- 配筋検査において、検査箇所の黒板に配筋リストの豆図を記載する必要がある
- 従来では設計図から豆図に該当する箇所を1つずつ手作業で保存
- マンションやオフィスビルなど大型建築物の施工においてはとても手間がかかるため、 ANDPAD 黒板 の機能として、設計図から該当する豆図を検出する機械学習モデルの開発
考慮すべき点
- 新しい機械学習モデルのたびにコードやシステムを作るのは、開発・運用の観点で大変なので、汎用的に使い回せる
- その仕組みは機械学習モデルの開発で発生する様々な要求項目にも対応できる
- 継続的に学習して品質を保ち続けられる
- 精度が落ちた際に気づける、リリースの際に劣化していないことを確認できるようにモニタリングできる
アーキテクチャ

- 学習ではVertex AI Pipelinesを、推論ではCloud Run + Vertex AI Endpointを利用
- Vertex AI Pipelines/Vertex AI Endpointの便利ポイント
- PoCからVertex AI Endpointのリリースまでを機械学習エンジニアが担当できるようになった
- GPUを指定したインスタンスでもオートスケーリングをやってくれる
- いざ切り戻しをする際にもモデルのバージョン管理ができているので簡単
- カナリアリリースも対応可能
- サービスとVertex AI Endpointの間にCloud Runを挟むことで、汎用的な処理(例えば認証)の共通化や、アプリケーションの統合(例えばCloud Load BalancerとCloud Armor)がとても便利
Human-in-the-Loop
- 機械学習の精度を継続的に改善していくプロセスの中に、人間からのフィードバックを取り入れること
- 今回の豆図AIキャプチャーは、UI的に機械学習の予測結果のフィードバックをユーザーから貰いやすかった
- また予測精度だけでなく、ビジネス上のKPIも決め、モニタリングできるようにログも出力してもらった
まとめ
- 豆図AIキャプチャーを実装するとともに、次に新しい機械学習モデルをプロダクトに組み込む際の工数を大幅に下げることができた
- 継続的に学習するためのデータも溜まり始めた
- 一方で継続的に学習し、安全にリリースする仕組みはまだまだ開発途中