こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。目次 Toggle機械学習モデル→システムタクシー配車アプリMOV(DeNAの事例)大きな問題解決:Kubeflow Pipelineの導入Kubeflowの良い点Kubeflowの課題タクシー配車アプリの概要の復習機械学習パイプラインKubeflow Pipelineの利用アーティファクトとメタデータまとめ感想こんにちは。クラウドエース編集部です。8/1 17:20~18:00@東京プリンスホテル Speaker : 春日瑛(DeNA)、内田誠(Google Cloud)機械学習モデル→システム機械学習モデルは作っただけではだめで、周りの運用環境も整えることが必要となる。 運用環境が悪いとモデルの性能が出なかったりする。学習データの齟齬、変化、劣化プロダクション環境で学習が想定通り進まない原因としては、 分布(データの偏り)、前処理、フォーマット、特徴量の変化 が挙げられる。モデルのバイアス、劣化プロダクションで想定通りのモデルの性能が出ない。 特定のデータに対する高い誤差 予測精度のなだらかな劣化 これらを改善するためにモデルを継続的に学習、デプロイする仕組みをローンチする必要がある。タクシー配車アプリMOV(DeNAの事例)実は日本での歯医者は99%が流し、つまり路上でお客さんを捕まえる。 これは運転手の経験や運によるところが大きい。 →タクシー探客(お客さんを探す)を行うAIを使うことでより効率的にする。現在位置から探客がうまくいくルートへの誘導を目的とした。大まかな流れ1.BigQueryによりタクシーのプローブ情報を収集 2.流し需要の分析 3.機械学習によるリアルタイム需要供給予測 4.Cloud Composerで定期的に最新データの読み込み、推論ジョブを5分単位で実行※プローブ情報:実際に自動車が走行した位置や車速などの情報を用いて生成された道路交通情報大きな問題依存関係の複雑さ担当者がデータ処理の流れを手動で実行しているためヒューマンエラーが起きやすい。更新頻度の高さ季節、天候、イベント、施設の閉館などタクシー需要動向に合わせる必要がある。 そのために最新データを常に使用する必要がある。実験管理問題実験段階で様々な学習を回している時 – 前回の実行パラメータは? – YAMLを確認しよう – あれ?なんか違う – 参照するYAML間違えた? といったようなミスがファイル管理(YAML)だと起きてしまう。解決:Kubeflow Pipelineの導入依存関係の定義各種統計量、前処理、コンテナビルド、評価、デプロイ をそれぞれ定義する。 それぞれのチェックをパスした場合、Cloud Composerにデプロイされる。定期自動デプロイスケジュール登録し、毎日実行する。 精度に問題があればデプロされない。実験管理機能各実験の選択・比較が可能パラメータ差分の確認が容易Kubeflowの良い点パラメータ管理実行時に任意のパラメータを実行できる。 モデルのハッシュ、イメージのハッシュを次のモデルに渡すことができる。コンテナドリブンもともとDockerベースで開発しており、親和性が非常に高い。 これはDeNAの事例の場合だからと考えられる。ログ確認コンテナジョブのログを確認でき、効率的なデバッグが可能となる。Kubeflowの課題失敗時の途中再実行ができないサービスアカウントでの制限をかけられないタクシー配車アプリの概要の復習モデルの構築プロトタイプ→プロダクションに利用 – パッケージ、実行環境 – CPU、GPU、リソース管理 – コンテナ – GKE+Kubeflow、AI Platformデータ検証TensorFlow Data Validation(TFDV) – CSV,JSON,TFRecordなど – TBスケールのデータセットに対応 – 学習前にデータを検査モデル検証TensorFlow Model Analysis(TFMA) – TensowFlowモデル – TBスケールのテストデータセットに対応 – デプロイ前にバイアスを検証機械学習パイプライン各々の要素タスクを統合プロダクション運用のためのセキュリティ・モニタリング・アラート (参考)TensorFlow ExtendedKubeflow Pipelineの利用フレームワーク非依存 TnsorFlow,XGBoost,Pytorchインフラ非依存 GKE,GKE On-PremGCPインテグレーション Dataflow,Dataproc,AI Platformエクスペリメンテーションからプロダクションへの移行再現性組み合わせ再利用 以上のようなことが実現できた。アーティファクトとメタデータアーティファクト 機械学習システムのオントロジ データ、モデル、統計量、特徴量メタデータ バージョン、系統依存関係、タスク実行ログ機械学習パイプラインはメタデータによるアーティファクト駆動 転移学習、追学習、クロスバリデーション、Next-dayモデル検証、Training-Servicing Skew検知これらを変化させることができるために、モデルの運用も容易になる。まとめCloud AI Platformの機械学習システム開発 AI Platformによってデータサイエンティストによるモデルの構築と、プロダクション環境での運用とのギャップを解決モデルのローンチ→モデルをデプロイするパイプラインをローンチ手動によるモデルの管理→パイプラインによって継続的にモデルをデプロイ学習データの齟齬→メタデータ管理によって学習前にデータを検証モデルのバイアス・劣化→メタデータ管理によってデプロイ前にモデルを検証以上のように改善することができる。感想最近社内でも(MLのチーム内)話題になっているMLシステムの事例の参考として聞きに行きました。 MLモデルを運用するのに必要なマインドなどが非常によくまとめられていたと思います。Kubeflow Pipelineをしっかり説明する発表を聞いたのは初めてだったのでとても新鮮でした。