初版: 2020年11月24日
著者: 橋本恭佑、柿田将幸, 株式会社 日立製作所
はじめに
本連載では、ストリーム型の機械学習システムをサービングする技術について、
Amazon SageMakerとAzure Machine Learningを比較した結果を紹介しています。
後編では、実際にストリーム型の機械学習システムを両クラウドでサービングして、本投稿で紹介した違いが現れること、
また、SEがAmazon SageMakerとAzure Machine Learningのいずれかの利用を、どのような基準で選択するべきかについて議論します。
なお、本連載に記載のAmazon SageMakerまたはAzure MLの情報は2020年9月末日現在のものであり、今後のアップデート等によって内容が変わることがあります。
投稿一覧
- Amazon SageMakerとAzure MLにおける機械学習モデルのサービング技術比較(前編)
- Amazon SageMakerとAzure MLにおける機械学習モデルのサービング技術比較(後編)・・・本投稿
パブリッククラウドにおけるサービング実機検証と検証項目
Amazon SageMakerとAzure MLでランタイムを作成し、前編で示した相違点を実機で比較します。
ランタイムは次の手順で作成されます。
- パブリッククラウドが提供するOSSの入ったコンテナイメージを指定する
- モデル、前処理、後処理コードを呼び出す
- 1と2をコンテナとしてコンテナ基盤上にデプロイする
検証項目は以下の通りです。
- 前処理コードや後処理コードの実装方法の違い
- ランタイム作成時のOSS追加可否
- ランタイム作成時のコンテナ基盤指定有無
検証1: 前処理コードと後処理コードの実装方法の比較
Amazon SageMakerでは前処理や後処理を別の関数で書くため、可読性が高くランタイム作成後のコード変更が容易と考えられます。
一方でAzure MLは前処理と後処理を1つの関数に書くため、モデル訓練時の実装に近く、訓練時のコードを流用しやすいと考えられます。
検証2: ランタイム作成時のOSS追加可否
Azure MLではランタイム作成時にpipやcondaを利用してOSSを追加できます。
モデル訓練には不要だが推論システム作成には必要なOSSがある場合に、それらをすぐに追加できます。
したがって、最初の推論システムを作成するのに要する時間が短いと考えられます。
検証3: ランタイム作成時のコンテナ基盤指定有無
Azure MLではランタイム作成先のコンテナ基盤を別途用意して指定する必要があり、コンテナ基盤(AKS)の知識が必要です。
実機検証を通したAmazon SageMakerとAzure MLの特徴考察
Amazon SageMakerには以下の特徴があり、推論システム作成時に問題が起こりにくいと考えられます。
- 前処理コードや後処理コードの可読性が高く、コードの誤りに気づきやすい
- 用意したコンテナイメージにないOSSはランタイムにインストールできない
- コンテナ基盤を意識せずにランタイムを作成できる
一方でAzure MLにも以下の特徴があります。
- モデル訓練には不要だが推論システム作成には必要なOSSがある場合に、すぐにそれらを追加できるため、
モデル訓練後からランタイム作成までのリードタイムが短く、顧客がすぐに推論システムを利用しやすいと考えられます。 - 訓練時の前処理や後処理コードを推論システムに流用しやすい
- ランタイム作成時に独自にOSSを追加できる
こうしたAmazon SageMakerとAzure MLの特徴をとらえて、いずれのベンダを利用するか検討すべきといえます。
おわりに
本投稿ではAmazon SageMakerとAzure MLにおける機械学習システムのサービング技術を比較しました。
実機検証を通して、Azure MLはモデル訓練後から推論システム構築までのリードタイムを短くしたい場合に有効であること、
それ以外の場合はAmazon SageMakerが有効である可能性が高いことを確認しました。