ソリューションアーキテクトに学ぶFiNC AWS勉強会 ~SageMakerを使った機械学習編~
こんにちは。FiNC TechnologiesでSREをしている中村です。先日社内で開催した機械学習の勉強会についてご紹介します。
背景
FiNC Technologiesは、”Personal AI for everyone’s wellness”をミッションにヘルスケアプラットフォームを構築している会社です。そのため、FiNCアプリには機械学習を利用した食事解析・姿勢分析機能があったり、データ分析にも積極的に機械学習を活用しています。また、機械学習を専門としないチームのエンジニアでも当たり前のように機械学習を扱えるエンジニアであることを組織として目指しています。
ただ、機械学習を全く扱ったことがないエンジニアにとっては何から始めたら良いのか分からず何かきっかけが欲しかったりするのではないでしょうか。そこでAWSのSAの方にご協力いただき社内で機械学習を普段扱っていないエンジニア向けに勉強会を開催しました。
内容
以下のような内容で勉強会を開催したのですが、この前段に機械学習?ニューラルネットワークとは?機械学習はどうやって学習するのか?DeepLearningの実装の課題などを説明していただき本題に入りました。
- AWSの機械学習サービススタック
- 機械学習システムの一般的な流れ
- 機械学習システムの課題
- ハンズオン
機械学習システムの一般的な流れ
開発
ローカルやweb上のJupyterNotebook、pythonなどで開発
学習
学習用のデータから特徴を抽出し、推論を行う為のモデルを作る。データサイエンティストが担当
推論
学習で作成した推論モデルを使用し結果を導き出す。サーバサイドの開発者が担当
機械学習システムの課題
開発
学習時に合わせたハイスペックインスタンスで開発する場合、コスト効率が悪い
学習
学習用の分散学習環境を構築するのは手間が掛かって大変
推論
推論用のエンドポイントを作るコストが高く、機械学習とは違うAPI開発などが必要
ハンズオン
ハンズオンの内容は協調フィルタリングをテーマにSageMakerで機械学習について一連の流れを行いました。
s3バケットの作成
推論モデルの格納場所を作っておきます
開発環境の作成
SageMakerの画面から『ノートブックインスタンスの作成』を押して、適当なインスタンスを選択したら2〜3分ぐらいで環境が上がります
SageMakerはExamplesというサンプルが置いてあるという、経験の浅い人にとって優しいタブがあります。今回は『factorization_machines_mnist.ipynb』というexampleを使います。
- exampleからコピーしたコードを実行していきます
factorization_machines_mnist(example)の大まかな流れはこんな感じです。
- 環境セットアップ(使用するIAMロールなどの設定)
- サンプルデータをdeeplearning.netからダウンロード
- トレーニングデータをs3にアップロード
- s3のデータを元に学習 ->推論モデルをs3に吐く
- 作成した推論モデルを読み込みエンドポイントを作成
- 検証
- 最後は作成したエンドポイントを削除
開催風景
座学1時間、ハンズオン1時間、ディスカッション1時間という時間割で開催したのですが、内容が濃く非常に有意義な時間となりました。
SageMakerを使ってみた感想
とにかく開発を始められるまでが早い!そして開発からエンドポイント作成(デプロイ)も早くこんな簡単に作成出来るのかと感動しました!
AWSの機械学習サービススタック
また、今回はSageMakerに触れましたが、他にも面白そうなサービスが色々あります。
- Amazon Rekognition Image(深層学習に基づいた画像解析サービス)
- Amazon Rekognition Video(深層学習に基づく動画分析サービス)
- Amazon Lex(ユーザーと対話するチャットボット)
- Amazon Comprehend(テキスト内でインサイトや関係性を検出)
- AWS DeepLens(深層学習が有効なビデオカメラ)
- Amazon Polly(テキストを自然な音声に変換)
- Amazon Transcribe(自動音声認識)
- Amazon Translate(テキストを自然に翻訳)
- Amazon SageMaker
まとめ
機械学習は普段の業務で扱っていないと知るきっかけや触るきっかけが中々ありませんが、このように初心者でも分かるようにしたハンズオンを行うことで機械学習への敷居が低くなりました。また、今回触れたSageMakerはノートブックと言われる開発環境に色々なSageMaker examplesというサンプルがたくさん配置されているので、どのようなものがあり、どんな事が出来るのかを見てみるのも面白いのではないかと思います。
これをきっかけに普段業務で機械学習を扱っていないエンジニアがSageMakerで実際に開発を初めているのを見て、改めて非常に良い勉強会だったと満足しています!
改めてAWSの皆様、ありがとうございました!
資料
上記に記載している内容はAWSさんの了承を得て以下の資料から引用させていただいております。
機械学習を使いたいエンジニア募集!
株式会社FiNC Technologiesでは、エンジニアを募集しています。機械学習専門チーム以外でも積極的に機械学習を学習/利用できる環境を整えていますので、ご興味ある方がお気軽に遊びに来てください。