2021/05/26

AWSの各種サービスを用いて構築するMLOpsフレームワーク

 
  

AWS MLOpsフレームワークソリューションとは

AWS MLOpsフレームワークソリューションは、機械学習 (ML) モデル開発用のアーキテクチャのベストプラクティスを提供します。 このソリューションは、AWS MLサービス(サードパーティのサービスを含む)のMLパイプラインを管理するための標準インターフェースを提供する拡張可能なフレームワークです。 このMLOpsソリューションの利点として、事前に設定された機械学習パイプラインを活用でき、トレーニング済のモデルと推論エンドポイントを自動的にデプロイできる点があげられます。またパイプラインの運用を監視することも可能です。

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

MLOps(Machine Learning Operations)とは、機械学習モデルを研究・開発から運用までを素早く効率的に行うためのフレームワークです。MLOpsが管理すべきものとしては、処理前データ、処理後データ、ソースコード、学習済の機械学習モデル、開発環境、デプロイ先など多岐に渡ります。 また、機械学習モデルはデータの更新に伴い継続的に更新する必要があり、ソースコードだけでなく学習に使用したデータも合わせて管理する必要があります。 研究・開発者と運用者ではMLOpsに求める機能が異なり研究・開発フェーズから運用フェーズまで幅広くサポートする必要があります。

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

研究・開発フェーズでは、機械学習モデルを素早く開発・評価できることがAWS MLOpsに求められます。そのためには開発環境を標準化したりリソースや複数のモデルを管理する必要があります。ここではAWSのAmazon SageMakerを用いた例で説明します。 各研究・開発者がバラバラな開発環境を使用しないように標準化された開発環境を提供する必要があります。 Amazon SageMakerを用いた場合、学習データはAmazon S3に保存されます。APIおよびコンソールからアップロードできます。Amazon S3はオブジェクトストレージです。 実行環境はコンテナイメージをAmazon ECR(Elastic Container Registry)に準備します。Tensorflowなどよく使われるコンテナイメージはあらかじめ用意されています。Amazon ECRはフルマネージド型のコンテナオーケストレーションサービスです。これを使用することで標準化された開発環境を構築できます。 必要な時に必要な分だけコンピューティングリソースを用意します。ここでは、SageMaker Processingを使用した例で説明します。

ノートブックインスタンス

ノートブックインスタンスでデータの探索や前処理をします。学習モデルやデータは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 MLOpsに求められることは、機械学習モデルがビジネスに適用後の安定的な運用および監視です。そのためには、機械学習ワークフローの構築の自動化、出力される生成物の管理、CI/CDパイプラインの構築、機械学習モデルのパフォーマンス管理が必要です。

機械学習のワークフローを自動化

機械学習のワークフローを自動化することによりソースコードの開発から本番環境へのデプロイを効率化します。また標準化された学習・テスト環境を提供することにより誤ったデプロイを防止します。 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フレームワークを容易に構築できます

MLOpsフレームワークはAWSのサービスを組み合わせることで容易に構築できます。 AWS MLOpsフレームワークを使用することで機械学習の研究・開発フェーズから運用フェーズまでを管理できます。 研究・開発フェーズと運用フェーズではMLOpsフレームワークに求められる機能が異なっています。研究・開発フェーズでは、統一された開発環境、必要に応じて割り当てられるコンピュータリソース、容易な本番環境へのデプロイが必要です。 運用フェーズでは、機械学習ワークフローの自動化、各種生成物の管理、CI/CDパイプラインの構築、機械学習モデルのパフォーマンス監視が必要です。 Amazon S3、Amazon ECR、Amazon SageMakerなどのAWSのサービスを利用し構築します。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】