はじめに
Google Cloud資格、Professional Machine Learning Engineerの準備としてMLOpsや機械学習サービスのドキュメントを色々読んだりパイプラインを実行したりしたので、自分なりに整理してみます。
機械学習分野はアップデートがとても速く、用語の定義などクラウドベンダによって解釈が分かれるところもあるかもしれません。今回はGoogle Cloudの公式ドキュメントを拠り所にします。
本記事ではVertex AIを使ったCI/CD/CTパイプライン周りを取り上げます。
1. MLOpsとは?
MLOpsは機械学習(ML)分野において開発者と運用者が連携してリリースサイクルを短縮するアプローチです。DevOpsの考え方がベースになっています。
DevOpsを支える技術にはCI/CDがあります。CIは継続的インテグレーションで、ビルド、テストを自動化する手法です。CDは継続的デリバリーで、テストが完了したアプリケーションを自動でリリースするアプローチです。継続的デリバリーと同じ意味ではありませんが、CDを継続的デプロイメントと言ったりもします。
機械学習モデルでは、入力データの質の変化がパフォーマンスを低下させることがあります。パフォーマンスを維持するためには、入力データの変化を検知し継続的にトレーニングする必要があります。
特徴量やハイパーパラメータを調整したパイプラインのデプロイを自動化すると、トレーニングのサイクルを早めることができます。
また、パイプラインそのものを変えるまではいかなくても、同じパイプラインのまま新しいデータを使ってトレーニングを行う(CT: 継続的トレーニング)こともあります。
パイプラインのイメージを掴むために、実際に機械学習のパイプラインを立ててみましょう。
2. Vertex AIパイプライン構築
手組みは大変なので、用意されているサンプルコードからVertex AIパイプラインを立ててみましょう。
サンプルコードをColabで動かすと、lightweight Python functionでKubeflow PipelinesでVertex AIパイプラインが構築されます。
基本的には全部のセルを実行すればよいのですが、アンコメントが必要なセル、URLを踏んで認証をするセル、プロジェクト名などを手入力するセルがあります。
サンプルコード
おわりに
パイプラインのコンポーネントがどんな動きをしているのか…は今後の課題にしたいと思います。
参考サイト