コネヒト開発者ブログ

コネヒト開発者ブログ

プロダクション環境ですぐに活かせそうなAWS re:Invent 2018のSageMakerアップデート5選

f:id:tatsushim:20181223233656p:plain

時間のない方向けにざっくり言うと

  • 11月にSageMakerのお話で登壇したけど、12月のAWS re:Invent 2018でたくさんアップデートがあった
  • 既存機能の強化に留まらず、「データの準備」から「モデルの変換」もサポートされるようになり、SageMakerの守備範囲がグッと広がったアップデートだと感じた
  • この投稿はその中でもママリのプロダクションですぐに活用できそうな5つのアップデートについて内容をまとめた

この記事はコネヒトアドベントカレンダーの23日目の記事です。 qiita.com

こんにちは!

CTOの島田(@tatsushim)です。
先月11/1「AWS dev day」に登壇させていただきました。 そのときの資料はこちらです。

現場で用いたSageMakerについて発表させていただいたのですが、私の発表の翌月にre:Inventがあり、SageMakerも大きくアップデートがありました。
今回は、プロダクション環境ですぐに活かせそうなAWS re:Invent 2018のSageMakerアップデートを5つご紹介します。

5つのアップデート

1. データ準備サポートツールの追加( Amazon SageMaker Ground Truth )

  • 「この画像は犬の画像であるか、そうでないか」を分類するタスクがあるとします。これを機械学習によって分類するためには、まずはじめに「この画像は犬ある」というラベルが付いた画像と「この画像は犬ではない」とラベルが付いた画像が必要です。
  • こうした状況で、データ(この例では画像)に対してラベル付けを支援するのがAmazon SageMaker Ground Truthで、利用するメリットは下記の2つです。
    • ①: ラベリングツールがAmazon SageMaker Ground Truthで提供されるため、ラベルをつけるツールの購入・自作・管理が不要
    • ②: S3にラベル付けしたいデータをアップロードして、Amazon SageMaker Ground Truthでラベルをつけると結果がS3にあがるため、データの管理が明確
  • また、一部のデータを人の手でラベル付けした上で、その元データから自動で付与するような機能も存在しています。

2. Gitのインテグレーション

  • SageMaker上でGitリポジトリを登録しておけば、ノートブックインスタンス起動時にリポジトリがgit cloneされるようになりました。
  • 今まではコンソールからGitを利用するか、Jupyter Notebookで書いたコードを手動でGit管理する必要がありましたが、JupyterLabのGit extension設定がデフォルトでされる形になるので、視覚的な管理が可能になりました。

3. 学習・推論用コンテナのアップデート

  • TensorflowコンテナがPython3に対応しました。
    • (日本語処理をしてる側からすると嬉しいアップデート!)
  • scikit-learnのコンテナが追加されました。
    • ただしほとんどのアルゴリズムで分散学習に対応してないため、学習は単一インスタンスで行うことになると思います。

4. 学習ジョブモニタリングのサポート

  • 学習時のモデルの精度をグラフ化できるようになりました。
    • 正規表現でルールを書いて、標準出力から精度を抽出する必要があります。
  • ビルトインアルゴリズムの場合は最初から設定されているので正規表現は不要です。
  • 注意点としては、1分おきのメトリクスになっている点です。現状の仕様ではこれは1分未満はできないそうです。

5. 推論時にGPUの部分的な利用をサポート( Amazon Elastic Inference )

  • GPUリソースをEC2やSageMakerのインスタンスに一部割り当てることができるサービスのようです。
    • (最初何言ってるかわからなかった)
  • イメージとしては、PythonでボトルネックになってるところをCythonで書くみたいな感じで、コードとしてGPUを使用する箇所を明記することで、そこだけGPUを利用してくれるようです。
  • こちらにサンプルコードがありますので、イメージとしてはこちらをご覧になっていただくのが良いかと思います。
  • 画像分類の推論をリアルタイムで処理したいニーズには便利です。

終わりに

他にも強化学習、DeepRacer、AWS Marketplace for Machine Learningなど触れたい部分はたくさんあるのですが、今回は比較的すぐに実応用可能なアップデートに絞って内容を共有させていただきました。
機械学習の分野でますます活用が増えていくであろうSageMakerには今後も注目ですね。
以上、島田(@tatsushim)がお送りしました!
今年も、ここまで1日も切らさずにコネヒトアドベントカレンダーは続いております。ここまで継続してくれているメンバーに感謝です。
明日は富田(@tommykw)さんのターンです!