Amazon Web Services ブログ

[AWS Black Belt Online Seminar] Amazon SageMaker Basic Session 資料及び QA 公開

先日 (2019/2/6) 開催しました AWS Black Belt Online Seminar「Amazon SageMaker Basic Session」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。

20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session

AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます)

Q. バッチ推論とは何ですか?

A. バッチ推論とは、大量の推論対象データに対して、一括で推論処理を行うことを指します。Amazon SageMaker においては、推論用のインスタンスを立ち上げて、S3 から対象データを読み込んで推論を行い、結果を S3 に書き出す形で実現しています。

Q. SageMakerの各コンポーネントで、モデル変換とありましたが、このモデル変換後出てくるモデルの形式は何になりますでしょうか(例:Keras⇒Chainer等)

A. モデル変換は、Neo-AI プロジェクトとして OSS で公開されておりますコンパイラによって実施されます。出力形式は、Neo の独自フォーマットとなり、Neo Runtime にて動作いたします。Neo-AI プロジェクトの詳細については、こちらのブロク記事も参照ください。

Q. SDKの基本コード3行目のchainer_estimator.fitはestimator.fitの間違いでしょうか?chainer_estimatorという変数が宣言されていないように思えます。

A. ご指摘の通りです。こちらの資料間違いでご迷惑をおかけして申し訳ありません。公開バージョンの資料では、こちらの間違いは修正いたしました。

Q. SageMakerのハイパーパラメータチューニングについて、通常のGridSearchやベイズ最適化をPythonで組んで実行するのと何か違いはありますか?例えばGridSearchの範囲を指定しなくても最適なものを選んでくれるとか。

A. SageMaker のハイパーパラメタチューニングは、ベイズ最適のみをサポートしています。通常の最適化ライブラリとの違いは、SageMaker 上の機能を用いると、複数の学習ジョブを並列で実行し,それを複数サイクル繰り返す形で最適化処理を行うことが可能です。1 サイクルの中で複数ジョブを並列実行することにより、最適値にたどり着くまでの時間を短縮することができます。

Q. https://github.com/aws-samples/amazon-sagemaker-script-mode にサンプルがある「SageMaker’s Script Mode」とは一体何ですか?

A. こちらは,Tensorflow および MXNet については,SageMaker で実行する際のスクリプトの記述方法が 2 種類ございます.そのうち昨年末に新たに加わったものが script mode と呼ばれる記述方法で,Pytthon スクリプトの main guard の中に,Tensorflow や MXNet のデータロード,ネットワーク記述,学習処理やモデルのセーブ処理などをベタ書きする形のものになります。これに対して従来のものは legacy mode と呼ばれ、SageMaker 独特のインターフェースを使ってモデル記述を行なっていただく必要がございます。script mode の記述法についてはこちら、また legacy mode についてはこちらをご参照ください。

Q. 無料でSageMakerを試すことはできますか?

A. はい、SageMaker には無料利用枠がございます。詳しくはこちらをご覧ください。

Q. SageMakerの各コンポーネントで、推論とありますが、生成されるエンドポイントのプロトコルは何になりますでしょうか。

A. https プロトコルに対応しております。

Q. TensorFlowやChainerなどのフレームワークはどのように選定すれば良いでしょうか?サンプルの有り無しなどで決まるのでしょうか?もしくは、それぞれのメリット・デメリットなど教えていただけないでしょうか?

A. 例えば Tensorflow であれば広く使われているため、サンプル実装を容易に探すことができたり、Tensorflow Hub のようなモデルリポジトリがあるといった利点がございます。また Chainer であれば、define by run という思想で書かれているため,効率的な学習処理を実現することが可能です。各フレームワークごとに、さまざまな利点があるため、ご自身のやられたいことにマッチするフレームワークをご選択いただければと思います。

Q. SageMakerSDKの基本コードのページで、デプロをestimatorインスタンスから呼び出しているが、実際に機械学習のモデルだと前処理を実施したあとmodel呼び出しを行うことが多いが、前処理はどこで処理されるのでしょうか?

A. 前処理に関しては、いくつかのやり方がございます。アルゴリズムの開発中に、学習データを作成するような場合には、SageMaker のノートブックインスタンス上で、直接 S3 から読み出したデータを pandas 等を用いて処理していただくことが可能です。またデータ量が多い場合には、同じくノートブックインスタンス上から、AWS Glue や Amazon Redshift などを呼び出して前処理を行うことも可能です。本番環境で継続的にモデルの学習を行うような場合には、AWS Step Functions のようなワークフローサービスをご利用いただくことをお勧めします。まず AWS Glue などを呼び出す形で前処理を行なって結果を S3 に書き出し、そのあとに SageMaker の学習ジョブやバッチ推論ジョブを実行する、といった形でワークフローを組んでいただく形になります。

Q. 生成されるエンドポイントのセキュリティはどのように守られているのでしょうか。APIキーが発行される形でしょうか。​

A. エンドポイントにアクセスするためには、AWS のクレデンシャルによる認証が必要となります。基本的には、AWS SDK 経由で invoke_endpoint API を叩くことにより、エンドポイントにアクセスする方法を推奨いたします。

Q. オートスケール等によって通常のEC2上で学習、推論をするより、コストが安くなると思います。学習は自身のオンプレミスで行い、推論のみAWS上でやる場合、EC2に比べてコストメリットはありますか?

A. EC2 上で推論環境を構築する場合、推論用のアプリケーションサーバを構築・運用する必要がございます。SageMaker の推論エンドポイントをご利用いただくことにより、上記アプリケーションの開発および運用にかかる人的コストを削減することが可能となります。金銭面のみならず、そうした開発の手間を削減したり、モデルのデプロイサイクルを高速化するといった観点も併せて、適切なサービスを選択いただければと思います。

Q. DX経由でエンドポイントの利用は可能でしょうか。インターネットに出ない閉鎖された環境から推論の利用が可能かを知りたいです。

A. はい、可能です。SageMaker の全 API はインターフェース型の VPC Endpoint に対応しておりますので,閉域網の中でご利用いただくことが可能です。

Q. エンドポイントオブジェクトの起動停止制御は可能ですか?

A. エンドポイントに停止はございません。エンドポイントを止めるためには,削除していただく必要があります。

Q. modelのfit関数の中で、inputデータのS3を指定している部分があったかと思いますが、S3の指定方法はどういったものでしょうか。バケット名での指定でしょうか。

A. “s3://BUCKET_NAME/PATH/TO/DATA/DIR” のような形で、対象ファイルが置かれているディレクトリへのパスを記述いただく形になります。

Q. 機械学習/深層学習フレームワーク以外に必要なパッケージがあった場合、どのようにインポートするのでしょうか。(例:seaborn等)

A. Chainer などのフレームワークをご利用の場合、Estimator オブジェクトを作成する際に、エントリーポイントとなるスクリプトを entry_pint で指定するだけでなく、依存するスクリプト群を source_dir でさらに指定することが可能です。この source_dir で指定されたローカルディレクトリ内に requirements.txt を記述していただくことで、学習ジョブを実行する際に必要なパッケージが、コンテナの起動時にインストールされます。

今後の AWS Webinar スケジュール

直近で以下のオンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております!

AWS Black Belt Online Seminar 2月分申込先 ≫

Amazon SageMaker Advanced Session
2019 年 2 月 13 日 | 18:00 – 19:00 | IT 知識レベル:★★★☆☆ | AWS 知識レベル:★★★☆☆

Amazon DocumentDB (with MongoDB Compatibility)
2019 年 2 月 19 日 | 12:00 – 13:00 | IT 知識レベル:★★★☆☆ | AWS 知識レベル:★★★☆☆

Amazon S3/Glacier
2019 年 2 月 20 日 | 18:00 – 19:00 | IT 知識レベル:★★☆☆☆ | AWS 知識レベル:★★☆☆☆

Amazon WorkSpacesの概要と設計
2019 年 2 月 26 日 | 12:00 – 13:00 | IT 知識レベル:★★★☆☆ | AWS 知識レベル:★★★☆☆