この記事の目次
AWS MLOpsフレームワークソリューションとは

MLOpsフレームワークに求められるもの

研究・開発フェーズでAWS MLOpsに求められること

ノートブックインスタンス
ノートブックインスタンスでデータの探索や前処理をします。学習モデルやデータはAmazon S3に格納されておりノートブックインスタンスからアクセスします。 ノートブックインスタンスはJupyterを使用でき、Numpy、 Pandasといった機械学習でよく使われるパッケージがあらがじめインストールされています。前処理/後処理インスタンス
データの前処理をするには、前処理/後処理インスタンスを使います。学習・推論コンテナはAmazon ECRに格納されています。ノートブックインスタンスから処理スクリプトを実行させることでデータの前処理をします。 使用したスクリプトと前処理されたデータはAmazon S3に格納されます。前処理/後処理インスタンスは処理が終わると削除されます。このため実際に使用したリソースのみ課金され無駄な支出を抑えます。学習インスタンス
機械学習をするには、学習インスタンスを使います。学習データはAmazon S3に格納されています。学習・推論コンテナはAmazon ECRに格納されています。ノートブックインスタンスから学習コードを実行します。 学習インスタンスはAmazon S3に学習コードと学習済モデルを格納します。学習インスタンスは処理が終わると削除されます。このため実際に使用したリソースのみ課金され無駄な支出を抑えます。推論インスタンス
推論環境を構築するには、推論インスタンスを使います。Amazon S3から学習済モデルを、Amazon ECRから学習・推論コンテナをアップロードすることでエンドポイントを作成します。 開発した機械学習モデルを容易に本番環境にデプロイできます。推論環境を構築(デプロイ)する場合、バッチ推論とリアルタイム推論を選択できます。APIコマンドを実行することで構築できます。 バッチ推論の場合はtransform()を使用します。推論インスタンスは処理が終わると削除されます。このため実際に使用したリソースのみ課金され無駄な支出を抑えます。リアルタイム推論の場合はdeploy()を使用します。バッチ推論と異なり推論環境は残り続け料金がかかり続けるので注意が必要です。運用フェーズでAWS MLOpsに求められること

機械学習のワークフローを自動化
機械学習のワークフローを自動化することによりソースコードの開発から本番環境へのデプロイを効率化します。また標準化された学習・テスト環境を提供することにより誤ったデプロイを防止します。 AWS Step Functions Data Science SDKを使用することで機械学習のワークフローの自動化が行えます。データの前処理、学習、デプロイといったMLワークフローをPythonを用いて記述します。 機械学習ワークフローでのリソース管理は、処理するスクリプトはgit、データやモデルファイルはAmazon S3、処理をした計算環境はAmazon ECR、作成されたジョブやエンドポイントはAmazon SageMaker上で管理します。コード管理をgit、ビルドサービスをAWS CodeBuildサービスを機械学習ワークフローと連携
コード管理をgit、ビルドサービスをAWS CodeBuildサービスを機械学習ワークフローと連携させることでML CI/CD(Continuous Integration/Continuous Delivery)パイプラインを構築します。 例えば、複数のアルゴリズムがあり精度の高かったアルゴリズムをマスタとしたい場合、すべてのアルゴリズムの精度を記録することで精度の高かったアルゴリズムを採用します。また、マスタで学習されたモデルをステージング環境にデプロイしテストを実施し問題がなければ本番環境にデプロイします。 一度提供した機械学習モデルも、データが時々刻々変化していくため、継続的なモデルの監視が必要です。Amazon SageMaker Model Monitorを使うことでデプロイした機械学習モデルのパフォーマンスを管理できます。AWSサービスでMLOpsフレームワークを容易に構築できます
