第3回 Amazon SageMaker 事例祭り + 体験ハンズオン に参加した

  • 投稿者:
  • 投稿カテゴリー:event

第3回 Amazon SageMaker 事例祭り + 体験ハンズオンに参加した。
その時のメモ。

SageMakerはセージメーカーと呼ばれていた
初めてAmazon Japanの新オフィスはとても綺麗だった

Amazon SageMakerとは何か アマゾン ウェブサービス ジャパン株式会社 ソリューションアーキテクト 鮫島 正樹 氏

今までの機械学習開発の欠点とSageMakerについて

・モデル作成にあたり、開発と学習を同じ1台のインスタンスで実施することが多い
・環境構築、運用が死ぬほど大変(複数ライブラリやGPUのドライバー、分散学習や学習結果の管理など)
・推論用のAPIなどを準備することも大変
⇒これらの問題点をすべて解決したのがSageMaker

SageMakerの特徴

・数分で開発環境が起動でき、学習、推論環境は柔軟にスケールする
 ・特徴的なのはSDKやコンテナがほぼオープンソースであること
 ・開発と学習環境は完全に分離されている。開発はJupyter Notebook(機械学習のコードを開発、実行可能なノートブックインスタンス)で行う
・実運用における必要な機械学習パイプラインもサポートしており、本番環境へのデプロイもスムーズに実現可能
・開発、学習、推論、いずれかをAWSで対応することが可能
 開発、学習をAWSで実施し、モデルをオンプレミスの環境に適用するということもできる
 またDockerが動く環境であればSageMakerの学習、推論ジョブを実行することが可能(例えば手元のMACでも)

SageMaker構成

・機械学習に必要なものは、学習データ、機械学習のコード、実行環境の3つ
 ・学習データはS3におく
 ・実行環境はECRにコンテナイメージをおく(TensorFlow,mxnetなど)
  ・これらの3つを結びつけるのがSageMaker
・学習が完了すると、モデルと学習コードはS3に保存されて、学習用インスタンスは自動的に削除される
・できたモデルをもとに、推論を実施する

機械学習パイプライン全体を支援する仕組みが用意されている

・現画像の容量が大きすぎる、欠落データが存在するといった場合は、自動的に前処理(Pandasを利用)することが可能
・S3からのファイル転送方法は2種類ある

・17種類のアルゴリズムを用意している(ビルトインアルゴリズム)
 このアルゴリズムについては自分たちで書くよりも、こちらを利用することをオススメする


・分散学習については、プログラムにtrain_instance_count=2 などで実装することが可能
・SageMaker Ground Truth
 Amazon Mechanical Turkは、Amazonのチームにてアノテーションされる

・CloudWatchにて精度が上がらない場合は停止するようなことも可能

・モデル変換(SageMaker Neo)とはモデルの高速化を実現する。モデルコンパイラと呼ばれるもの

ユースケース

・Dely:レシピ動画のリコメンデーションを機械学習で実装(90日で機械学習モデルを構築し、本番環境にデプロイ)
・SmartNews:ニュース記事の分類に利用し、関連性が高い記事を提供することに成功
・GE Healthcare:レントゲン写真から病気が疑われる部分を自動診断する

Amazon SageMaker 事例紹介「SageMaker Neoの可能性について」 株式会社ディー・エヌ・エー 加藤 倫弘 氏

DeNA × AI

DeNA × AIにてAIに対しての取り組みを紹介している
・交通事故低減に向けたDeepLearning
 ドライバーの顔・環境モニタリング・センサ解析・地図から危険運転かどうか判定する

エッジデバイスでのDeepLearningについて

・エッジデバイスでDeepLearningする場合、動かないことやGPU前提のため動いても遅いことが多い
 エッジ側のフレームワークは非サポートOperatorがサーバ側より多く、モデル設計の上に制約が生じる
⇒それを解決したのがSageMaker Neo
 任意のモデルを任意の環境(例えばRaspberry Pi)で動作できるようにコンパイルする

Amazon SageMaker 事例紹介「1人でも使えるSageMaker」 クックパッド株式会社 染谷悠一郎 氏

クックパッドと機械学習

・300万品以上のレシピデータ(分量や作り方など、多少構造があるデータ)を活用したいという想いが以前からあり
 2016年7月より研究開発部が発足した。初期は3名、現在10-15名体制で機械学習に取り組んでいる
・料理きろくという機能で機械学習を利用している
 スマホの写真のうち、料理写真を自動的に収集し、カレンダーと結びつける機能(27万人以上のユーザが利用している)
・現状の学習機能はGPUインスタンスのオンデマンド利用しているが、常にGPUを利用している作業をしているわけでなく
 GPUインスタンスは高価であるため、学習前後のロスタイムが大きく、SageMakerに切り替えるメリットはあるとのこと

babysage – 近日公開予定

・独自モデルの学習は覚えることが多い(コンテナなど)ため、それを軽減するために作成したツール
・SageMaker(特にTraning job)を利用する際の補助となる

質疑応答

jupyterでの複数開発が難しい

⇒1人1リポジトリで集中管理がベストプラクティス

ハンズオン

Jupyter Notebook インスタンスを起動し、開発、学習、推論を実施した
ポイントはGitリポジトリで以下のURLを指定すること
https://github.com/aws-samples/amazon-sagemaker-examples-jp