【これからプログラミング&クラウドを始める人向け】AWS Cloud9 を利用して Ruby の開発環境を作ってみる① - AWSアカウント準備編

はじめに

前置き

プログラミングを勉強しよう!と思ったときに躓くポイントでもある開発環境の構築
今回は AWS を利用してクラウド上に開発環境を作っていく手法を紹介していきます
勉強をスタートしたタイミングで同時にクラウドを触ることでモダンな開発環境も理解していきましょう

 

AWS Cloud9 とは

  • Cloud9 というブラウザで利用できる IDE (統合開発環境)をAWSが買収
  • AWS の各種サービスと連携しやすいサービスとして2017年末にリリース
  • クラウド最大手からクラウド上での開発サービスを提供し、開発環境もクラウド上で持つトレンドが出来つつある

利用にあたって必要なもの

  • AWS 登録のために以下の登録が必要です
    • メールアドレス
    • クレジットカード(課金が発生しない無料利用も可能)
    • ユーザー認証用の電話番号
    • ブラウザの設定
    • 広告ブロック用のアドオンを導入している場合はオフ

AWS Cloud9 の利用料金の話

  • 課金の仕様
    • AWS Cloud9 の利用そのものは課金対象外(=無料)
    • AWS Cloud9 の実行環境であるサーバ料金(EC2)は課金対象(=有料)
      • ただし無料利用枠内であれば無料
    • 新規アカウント作成から12ヶ月の期間、月間750時間まで無料利用枠で利用可能
      • 1ヶ月間1日24時間利用したとしても無料利用枠内で使用可能
  • 無料利用枠についての参考情報 (公式)

AWS アカウントの準備

ここからは AWS のアカウントが作成できていることを前提に進めていきます

AWS を利用する際に使うアカウントについて

  • ルートアカウント (初回登録で作成されたアカウント)
    • 請求に関連する操作も含め権限範囲が非常に広く、日常利用をしないことが推奨されます
  • IAM ユーザー (このあとに作成するアカウント)
    • 開発など日常的に使用するアカウント
    • IAM ( Identity and Access Management ) という機能を利用して権限の制御が可能

今回作成する IAM ユーザーについて

  • AWS の管理者ユーザー を作成
    • AWS 初学者が一人で利用することが前提
    • 今回作成するユーザーで権限のない操作はルートアカウントで操作を行う

IAM ユーザーの作成

  • ログイン後に検索窓から「IAM」と入力

image.png

 

  • IAM の管理画面遷移後に左側のユーザーを選択し、「ユーザーを追加」をクリック

image.png

 

  • ユーザー名を入力
  • AWS マネジメントコンソールへのアクセスを選択
  • パスワードのリセットが必要を選択

image.png

 

  • グループの作成をクリック

image.png

 

  • グループ名を入力し、ポリシー(今回は「AdoministratorAccess」を選択)

image.png

 

  • 作成したグループを選択し、次のステップに進みます

image.png

 

  • 今回はタグの項目は空欄で進めます

image.png

 

  • 内容を確認して「ユーザーの作成」をクリックします

image.png

 

  • これでユーザーの作成が完了します。.csv のダウンロードでアカウント情報をDLできます

image.png

 

  • .csv ファイルはこのようになっています。今回はプログラムによるアクセスを想定していないいので一部空欄となっています

image.png

 

  • 該当情報でアクセスできることを確認しましょう。(初回のパスワード修正が要求されます)

image.png

 

  • IAM ユーザーのアクセスは右上にユーザー名が表示されます

image.png

 

利用料アラートの設定 (無料利用枠内のため)

 

目的

  • 想定外の請求を防ぐために設定を推奨します (特に個人利用の場合)
  • 無料利用枠範囲内でのアラートを受信
    • メールをチェックしないと意味がなくなるので要注意

 

設定方法

  • ルートアカウントでサインインをして「マイ請求ダッシュボードをクリック」

image.png

 

  • ダッシュボードから「Biling の設定」をクリック

image.png

 

  • 設定項目で各種チェック項目にチェック並びにメールアドレスを入力し「設定の保存」をクリック

image.png

 

まとめ

この記事では開発環境構築のために AWS のアカウント作成と無料で使い切るための設定を紹介していきました。
入門者には手間に感じる部分かもしれませんがクラウド上の開発環境を利用する AWS Cloud9 は非常に強力なサービスなので、ぜひ試してみてください!
次回以降の記事から AWS Cloud9 の構築を進めていきます。お楽しみに!

続き→ 【これからプログラミング&クラウドを始める人向け】AWS Cloud9 を利用して Ruby の開発環境を作ってみる② - AWS Cloud9 の環境構築


本日はクリスマス・イブということであのお菓子の分類をML初心者がAmazon Rekognition Custom Labelsを使って挑戦してみた

はじめに

今回は、先日公開がされたこちらの記事https://qiita.com/KC_NN/items/d265eddcbdc8a47ed88c
をML初心者の私が見ながらでもできるものなのかを試してみた記事になります。その為新技術などの情報はないですが、そこはご容赦ください。

今回の背景

今日(投稿日)がクリスマス・イブということで、せっかくだからクリスマスにちなんだ記事にしようと思いました。そこで、クリスマスのお菓子で定番のあのお菓子を画像分類してみようと思いました。
images (1).jpg

そう!あの「ジンジャーマンクッキー」です!
ラベル付けの際にジンジャーマンクッキーに名前を付けて名前による分類ができるんじゃないか。この企画ならいける!と思い、早速ジンジャーマンクッキーを購入しようと思いました。が、みんな見た目一緒じゃないか…

↓私の中のイメージ
images (1).jpg

↓現実
images.jpg

これじゃあ分類ができない!いっそ自分で作るかとも少しだけ思いましたが料理を普段しない私にはできるはずもなく…
そこで、形が違って、クッキーっぽいものはないかと探したところ。このお菓子にたどり着きました!

78660943_624.jpg

これなら要望を満たせる!ということで、たべっ子どうぶつビスケットの画像分類をML初心者の私が、先日公開された記事を見ながらAWSのRekognition Custom Labelsで挑戦してみました。

いざ実践!

まず、記事の手順通りに素材を集めるところからということで素材写真をiphoneで撮影しました。今回は、全体画像の角度を変えたものを7枚ほど撮影しました。

MicrosoftTeams-image (5).png
MicrosoftTeams-image (8).png
MicrosoftTeams-image (9).png

こんな感じで7枚ほど撮影

記事の手順通りに、「プロジェクト名作成、S3バケット作成、画像をS3に保存」を実施していきます。
次に、保存した画像にラベリングをしていきます。
ラベリングは、自分で入力をしていくのですが、この数は結構めんどいなーと思ったので、OCR(Amazon Rekognition text in image)を使って画像内のテキストを抽出し、こんな感じに2画面にし、抽出したテキストをコピペして作業を簡略化してみました。(下記画像の左がCustom labels、右がtext in imageの画面です。)

2019-12-24_10h16_20.png

ラベリング名の登録も済んだので、実際に写真にラベル付けをしていきたいと思います。
ラベル付けも記事の手順通りに、ラベル付けしたい画像を選んで、画像内のオブジェクトに対してラベル名のついたドローイングボックスをただひたすらにこんな感じで囲っていきます。
2019-12-24_10h31_21.png
2019-12-24_10h35_31.png

こうして撮影した全部で7枚の写真にラベルを付けていきます。
ここまでだいたい30分前後で作業は終わりました。(画像のアップロードから数えて)

作業が終わるとダッシュボードがカラフルになります。
記事では、ラベル付けをした後に、「save change」を選択後「Train model」を選択するとありましたが、
実際は、「save change」を選択した後に隣の「Exit」を選択しないと「Train model」のボタンがに切り替わらないので、ご注意を。
2019-12-24_10h48_31.png

ここまで簡単に画像認識のモデルを作れるとは思いませんでした。技術的にあまり詳しくない私でもこんなに簡単にできるとは、AWSはすごいですね!

あとは、推論するだけ。ってここにきてまさかのCLI!

CLIでモデルを使って推論した結果こんな感じになりました。

[crayon-5f35ddbff18b5589830507/]

result test4.png

HORN-OWLを判定しているみたいですが、今回用意したデータセットが少ないせいか信頼スコア(Confidence)がかなり高いように見えます。もう少しデータセットを増やすべきでしたね…
結果を視覚的に見せるのには、結果コードと画像を使ってプログラムを書く必要があるとのことなので、ここだけは社内のメンバーに手伝ってもらいました。

まとめ

トータル的に見て、ほとんど技術を知らない人でも簡単に画像認識の予測モデルができて推論までできてしまうすごいサービスがリリースされたなーと感じずにはいられません。
こんなに簡単にライトにできるのであれば、もっといろんな画像分析を試してみたいと思いました。
最後まで、読んでいただきありがとうございました!メリークリスマス!


AWS re:Invent 2019 – Healthcare and life sciences industry recap 和訳してみた

はじめに

2019年12月19日に、David Niewolny 氏と Kelli Jonakin 氏が掲載した 「AWS re:Invent 2019 – Healthcare and life sciences industry recap」の記事を翻訳し、まとめてみました。

■本記事リンク
AWS re:Invent 2019 – Healthcare and life sciences industry recap
image.png

HCL に関する新情報トップ5

AWS における HCL(Healthcare and life sciences)関連の新情報トップ5を紹介していきたいと思います。

1. Amazon Transcribe Medical

  • 医療スピーチをテキストに翻訳
  • 医師が効率的に臨床文書を作成可能
  • 患者へのフィードバックがより効率的に

2. AWS Data Exchange

  • クラウド内にあるサードパーティのデータ検索や利用が簡単に実現可能
  • 製薬会社、医療提供者、そして健康保険会社は臨床試験の計画や保険制度の構築が簡単に実現可能

3. Amazon SageMaker

Amazon SageMaker では HCLS 関連で以下の3つの情報が発表されました。

  • Amazon SageMaker Studio
    • 機械学習用の完全に統合された開発環境
    • モデルの構築、トレーニング、デバッグ、トラッキングをプログラム化
  • Amazon SageMaker Notebooks
    • 数秒で機会学習ノートブックを立ち上げ可能
    • ワンクリックでノートブックの共有も可能
  • Amazon SageMaker Debugger
    • リアルタイムで機械学習モデルの解析とデバックが可能
    • トレーニングモデルにおける複雑な問題を自動的に判別可能

4. AWS Outposts

  • フルマネージドサービス
  • AWS のインフラストラクチャとサービスをオンプレミスで実行可能なハイブリッドエクスペリエンスを実現
  • オンプレ環境で解析や機械学習 AWS サービスをヘルスマネジメントシステムに利用可能

5. Amazon Kendra

  • 非常に正確で簡単に使用できるエンタープライズ
  • 強力な自然言語の検索機能を駆使して、膨大な情報の中から必要な情報を見つけることが可能

HCLS に関連する重要サービスの情報

Amazon EC2 Inf1 Instances

  • 機械学習推論アプリケーションをサポートするために新規に構築された新しいインスタンス
  • Amazon EC2 G4インスタンスよりも、推論あたり最大3倍高いスループットと最大40%低いコストを提供

Amazon Braket

  • フルマネージドサービスで、一箇所にある複数の量子ハードウェアプロバイダをコンピュータを使って実験が可能
  • 将来の計画に向け、量子コンピューティングハードウェアを探索、評価、および実験することで経験をつむことが可能

Amazon Connect & Contact Lens for Connect

  • Amazon Connect は低価格で顧客にサービスを提供することができるオムニチャネルクラウドコンタクトセンター
  • Contact Lens for Amazon Connect は ML 解析機能を統合することでAmazon Connect の機能を拡大

AWS Nitro Enclaves

  • 隔離されたコンピュータ環境を構築可能
  • ヘルスケアやバイオファーマ、ゲノミクスにおける個人を特定できる情報(PII)などのデータをセキュアに保護

AQUA for Amazon Redshift

  • 新しい分散型ハードウェア
  • Redshift を他のクラウドデータウェアハウスよりも最大10倍高速で実行可能

AWS Identity and Access Management Access Analyzer

  • AWSアカウントの外部からアクセスできるリソースを識別可能な包括的な結果を生成
  • 最高レベルのセキュリティ保証と継続的な監視を提供
  • 重要なヘルスケア、およびライフサイエンスデータに不適切にアクセスされないようユーザで権限を調整

関連動画

おわりに

AWS re:Invent 2019 – Healthcare and life sciences industry recap の翻訳まとめは以上となります。
ヘルスケア関連で AWS サービスの利用を考えている方、ぜひこちらの本記事で紹介されているサービスを利用してみて下さい。


AWS DeepComporser について

はじめに

この記事は株式会社ナレッジコミュニケーションが運営する Amazon AI by ナレコム Advent Calendar 2019 の21日目の記事です。

今回の re:Invent で発表された DeepComposer についてご紹介します。

 

AWS 機械学習スキル学習のインターフェイス

機械学習モデルの学習ツールとして、DeepLensDeepRacerDeepComposer の三種がラインナップされたことになります。

左上がDeepLens、右上がDeepRacer
そして下が今回の re:Invent で発表された DeepComposer
image.png

DeepLens

DeepLens は昨今社会実装が進んでいるコンピュータービジョンのモデルを搭載可能なビデオカメラです。

  • 深層学習モデルに対応したビデオカメラ
  • 2017年の AWS re:Invent で発表
  • クラウドで深層学習モデルの学習、ローカルのカメラにモデルを搭載
  • オブジェクトの検出、行動認識、顔認識、頭部姿勢の検出など、撮影した動画の分析や処理が可能
  • 実機の価格は 249 ドル

 

DeepRacer

DeepRacer は誤解を恐れずにいえば強化学習を学ぶための最先端ラジコン。実機の値段もさることながら、モデルの学習にかなりの計算資源を要します。継続的に学習できる方は限られるのではないでしょうか?

  • 強化学習のモデルを搭載できる自走型のレーシングカー
  • 2018年の AWS re:Invent で発表
  • 高度な機械学習テクニックである強化学習モデルのトレーニング方法を楽しみながら学習
  • 世界各地でリーグ開催中。2019年11月には新モデル AWS DeepRacer Evo 発表
  • 実機の価格は 399ドル

DeepComposer

DeepComposer は Generative AI を楽しみながら学べる、機械学習を搭載した世界初のキーボードです。

  • 敵対的生成ネットワーク(GAN)モデルのトレーニングと最適化を通して、オリジナルの音楽を作曲
  • 2019年の AWS re:Invent で発表
  • 物理的なキーボードだけではなく、仮想キーボードを用いて、どこでも作曲・学習可能
  • 実機の価格は 99 ドル

DeepComposer、なにができる?

もう少し DeepComposer について見ていきましょう

 

image.png

 

無料利用枠 (12か月間)でできること

無料枠の範囲内で、事前にトレーニングされたモデルを活用でき、以下が実行可能です。
AWS クラウド上の仮想キーボードであれば、すぐにでも使えます。

  • 音楽のジャンル (ロックやポップなど) のサンプルモデルを用いることで、コード記述不要でモデル構築可能
  • キーボードを使ってメロディを入力すると、AWS DeepComposer はクラウドで機械学習の推論を実行し、4 つのパートの伴奏を生成
  • 音源に対し、ポップ、ロック、ジャズなど編曲が可能

無料トライアル (3か月間) でできること

無料利用枠に加えて、30 日間の AWS DeepComposer 無料試用版を利用できます。

  • 最大 4 つのモデルのトレーニングと、それらのモデルを使用した新しい音楽作品の生成を最大 40 回まで実行
  • Amazon SageMaker を用いて、独自のGANアーキテクチャを構築可能。
  • 手元の DAW (デジタルで音声の編集や編曲などできるシステム)を使用して、楽曲のカスタム可能
  • Amazon.com で AWS DeepComposer キーボードを購入すると、さらに 3 か月間の無料試用期間が追加
  • Generative AI Talent Show (気になりますね!)に提出する楽曲の作成

まとめ

DeepComposer は、DeepLens、DeepRacerに比べて、要する知識レベル・コストともに学習のハードルがかなり下がっている印象を受けました。今が旬の差の Generative AI (また別の記事でご紹介しようと思います) について学習できるのもポイントです。

そもそも音楽はパーソナルなものなので、アウトプットそのものに優劣をつける性質自体が希薄です。個人学習との親和性も高そうですし、モデルの派生系、例えば特定のアーティストの楽曲傾向をシュミレートするモデルや、特定ジャンル(デスメタルとかエレクトロニカとか)のモデルを作る人が出てくると面白そうです。

一刻も早く実機を触ってみたいですね。仮想キーボードであればすぐにでも使用可能なので、休暇中に遊んでみるのも良いのではないでしょうか。


Amazon SageMaker Studio の導入と Autopilot について #2

Amazon SageMaker Studioの導入とAutopilotについて#1の続きです。

前回は、SageMaker Studioの導入とAutopilotによるパイプラインを開始したところまで終わりました。

Amazon SageMaker Autopilot –高品質な機械学習モデルをフルコントロールかつ視覚的に自動生成

 

Amazon SageMaker Studio-Amazon SageMaker AutoPilot(パート2)

part2は、Future Engineeringについての話です。

studio26.PNG

 

「Open data exploration notebook」には、データセットに関する情報が書かれています。

1.どのように特徴量を選択するために分析されたのか
2.データセットからAutoMLパイプラインの修正と改善について

トレーニングデータセットから39128行を読み取ります。データセットには21個の列があり、yという名前の列がターゲット列として使用されます。これはBinaryClassificationの問題として識別されます。ラベルの2つの例を次に示します:['no'、 'yes']。

21項目からなる39128個のトレーニングサンプルがあり、「y」が推論対象。これはyesかnoを推論する二項分類の問題です。

データセットのサンプル

次の表は、トレーニングデータセットの10行のランダムサンプルです。表示を簡単にするために、データセットの21列のうち20列のみを表示しています。

10個のサンプルを表示しています。21項目中20項目のみ表示しています。

カラム分析

AutoMLジョブは21の入力列を分析して、各データタイプを推測し、各トレーニングアルゴリズムの機能処理パイプラインを選択しました。

AutoMLジョブが21項目を分析します。

欠損値の割合

21列のうち1列に欠損値が含まれていることがわかりました。次の表は、欠損値の割合が最も高い1列を示しています。

1項目について欠損値を見つけたようです
。poutcomeが86.33%欠損しているそう。

カウント統計

データがカテゴリカルならone-hot encodingを実施したり、テキストならtf-idfなどを実行するようです。

次の表は、一意のエントリの数でランク付けされた21列のうち21列を示しています。

各項目の独立した値の数を一覧表にしてくれています。

 

studio27.PNG

記述統計

数値データの場合は、正規化、log、quantile、binningなどにより外れ値やスケールを調整してくれます。

 

studio28.PNG

Amazon SageMaker Studio-Amazon SageMaker AutoPilot(パート3)

part3は、Model Tuningの話です。

「Open候補世代ノートブック」には、SageMaker Autopilotジョブの詳細情報(各試行の情報、データ前処理ステップなど)が書かれています。すべてのコードは利用可能な状態で、実験を重ねる際のとっかかりになるらしい。

データセットには21個の列があり、yという名前の列がターゲット列として使用されます。これはBinaryClassificationの問題として扱われています。データセットには2つのクラスもあります。このノートブックは、トレーニングされたモデルの「精度」品質メトリックを最大化するBinaryClassificationモデルを構築します。「ACCURACY」メトリックは、モデルが正しいクラスを予測した回数の割合を提供します。

ACCURACY(正確度)が最大になるように二項分類のモデル作ったそうです。

セージメーカーのセットアップ

SageMakerのセットアップ

  • Jupyter:JupyterLab 1.0.6、jupyter_core 4.5.0およびIPython 6.4.0でテスト済み
  • カーネル:conda_python3
  • 必要な依存関係sagemaker-python-sdk> = v1.43.4

生成された候補のダウンロード

データ変換とAutopilotに関するモジュールをダウンロードします。

SageMaker自動操縦ジョブとAmazon Simple Storage Service(Amazon S3)の構成

Autopilot JobとS3の設定を行います。

 

候補パイプライン

生成された候補

SageMaker Autopilot Jobはデータセットを分析し、2つのアルゴリズムを使用する10の機械学習パイプラインを生成しました。各パイプラインには、一連の機能トランスフォーマーとアルゴリズムが含まれています。

2つのアルゴリズムを用いた10個のパイプラインを生成し、分析したそうです。

dpp0-xgboost:このデータ変換戦略は、まずRobustImputerを使用して「数値」機能を変換し(欠損値をnanに変換)、ThresholdOneHotEncoderを使用して「カテゴリ」機能を変換します。生成されたすべての機能をマージし、RobustStandardScalerを適用します。変換されたデータは、xgboostモデルの調整に使用されます。定義は次のとおりです。

10個がそれぞれどのようなパイプラインかの説明が書いてあります。上記は、内1つの例です。

選択された候補者

SageMakerのtraining jobとバッチ変換を含む特徴エンジニアリングを行います。

候補パイプラインの実行

データ変換ステップを実行する

データ変換を実施します。

マルチアルゴリズムハイパーパラメーターチューニング

データ変換されたら、Multi-Algo Tuning jobにより最適な推論モデルを探します。

モデルの選択と展開

ジョブ結果の調整の概要

Pandas dataframeを用いて各パイプラインの可視化を行います。

モデル展開

最後にデプロイします。

Amazon SageMaker Studio-Amazon SageMaker AutoPilot(パート4)

part4は、モデルの比較やデプロイまでの話です。

Autopilotが完了すると、さまざまなモデルができています。Trialsタブ
を見ると、トレーニングジョブと精度の一覧が見れます。

studio29.PNG

 

Job Profileでは、学習時間や設定の情報、ベストなモデルの候補が挙げられています。

studio30.PNG

studio31.PNG

トレーニングジョブを右クリックして、トライアルコンポーネントリストをクリックすると、詳細のリストが見れます。
studio33.PNG

 

トレーニングジョブを右クリックして、試用版で開く詳細をクリックすると、ジョブの詳細が見れます。

studio32.PNG

 

デプロイモデルをクリックすると、エンドポイントが作成されます。

studio34.PNG

 

監視を有効にするをクリックすると、

studio35.PNG

 

ノートブックを利用して、モデルの監視ができるみたいです。

studio36.PNG

 

Amazon SageMaker Experiments –機械学習モデルの整理、追跡、比較、評価
Amazon SageMaker Model Monitor –機械学習モデルのためのフルマネージドな自動監視

まとめ

ざっくりとした説明になってしまいましたが、SageMaker Autopilotの続きをやってみました。SageMaker Autopilotにより、モデルを自動で最適でやつを作ってくれます。さらに、どのようなプロセスでモデルを作ったあるのかや、モデルの比較や監視までできるようです。

その他

 

SageMakerの導入ならナレコムにおまかせください。

日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。

ソリューションページはこちら

 

 

 


Amazon SageMaker Studio が起動できなかった時の対処法

はじめに

Amazon SageMaker Studio が AWS re:Invent 2019 でプレビューリリースとなりました。
さあ、早速検証!と思いましたが、SageMaker Studio が開けないエラーが発生しました。
再起動を試そうにも、SageMaker Studio の削除方法がわからず...

実は、現時点(2019/12/18時点)では、コンソール上からSageMaker Studio の作成し直し等はできません。
そのため AWS CLI を利用して、SageMaker Studio を削除する必要があります。
domain の削除にもいくつか手順があったので、今回はその方法をご紹介いたします。

 

SageMaker Studio の削除方法

私の場合は以下の画面から動けなくなり、Restart Now を押しても、起動ができない状況でした。

 

2019-12-17_15h40_54.png

SageMaker Studio のドメインに関連するアプリケーションが存在するか確認し削除

関連するアプリケーションが存在することで、ドメインが削除できない場合があります。
以下のコードでアプリケーションの有無を確認します。

 

[crayon-5f35ddbff238e022431074/]

 

もし、関連するアプリケーションがあった場合は、以下のコードでアプリケーションを削除します。

 

[crayon-5f35ddbff239b815532584/]

SageMaker Studio のドメインに関連するユーザープロファイルが存在するか確認し削除

関連するユーザープロファイルが存在すると、ドメインが削除できません。
以下のコードで ユーザープロファイルの有無を確認します。
※ユーザープロファイルは、コンソールからも確認できます。

 

image.png

[crayon-5f35ddbff23a5252065607/]

 

関連するユーザープロファイルがある場合には、以下のコマンドで削除します。

 

[crayon-5f35ddbff23af478675278/]

SageMaker Studioの削除

これでようやく、Sagemaker Studio 削除ができます。
以下のコマンドを実行し、SageMaker Studio を削除します。

 

[crayon-5f35ddbff23b8544148677/]

最後に

これで、SageMaker Studio を削除することができました。
SageMaker Studio をまた利用したい場合は新たに SageMaker Studio を立ち上げてください。

 

SageMakerの導入ならナレコムにおまかせください。

日本のAPNコンサルティングパートナーとしては国内初である、Machine Learning コンピテンシー認定のナレコムが導入から活用方法までサポートします。お気軽にご相談ください。

ソリューションページはこちら

 

 

 


AWS Compute Optimizer を試してみた

はじめに

この記事は株式会社ナレッジコミュニケーションが運営する Amazon AI by ナレコム Advent Calendar 2019 の18日目の記事になります。
18日目である今日は AWS Compute Optimizer について書いていきます。

 

インスタンスタイプ最適化の難しさ

突然ですが皆さん、サービスを運用するにあたってこんなことに直面したこと、思ったことはありませんか?

  • サービス稼働しているけどなんとなく重い
  • メトリクス見る限りでは全然余裕がありそう。1つ下のスペックに下げてもいいんじゃ?
  • そもそも今利用しているインスタンスってサービスにあった最適なものを選べているのか

インスタンスサイズが小さすぎればアプリケーションのパフォーマンスが低下し、ユーザの顧客満足度を得ることが出来ません。
かといってインスタンスサイズが大きすぎればコストがかかる。
サービス運用者にとっては悩みのタネの一つです。

しかし最適なインスタンスを選ぶのは中々に大変な作業。
平常時とピーク時のリソース利用状況を把握し、インスタンスタイプを選択。そしてまたリソース利用状況を取得し検証。 と繰り返しの作業になり期間を要するためです。

コスト削減のためにインスタンス最適化をしようにも、その結論を出すまでの工数が費用に見合ってなければ本末転倒ですしね。

今回はそんな悩みを解決してくれそうなサービスがAWSから発表されたので使ってみたいと思います。

 

AWS Compute Optimizerとは

AWS Compute Optimizer は AWS re:Invent 2019 の期間中に発表された新サービスです。
AWSアカウント内の Amazon EC2 リソース利用状況に対して機械学習を行い、最適なインスタンスタイプを返してくれるといったサービスになります。

似たようなサービスである Cost Explorer の Resource Optimization Recommendations がありますが、こちらとの違いとして、AWS Compute Optimizer は異なるインスタンスファミリーへのレコメンドをしてくれる点があげられます。

 

対応リージョン/対応言語

今回は AWS コンソールからサービスを利用してみたいと思います。
対応リージョンは下記の5つです。(2019年12月17日時点)

  • 米国東部 (バージニア北部) us-east-1
  • 米国西部 (オレゴン) us-west-2
  • 米国東部 (オハイオ) us-east-2
  • 欧州 (アイルランド) eu-west-1
  • 南米 (サンパウロ) sa-east-1

また現時点では日本語非対応のようで左下の言語選択から「English(US)」を選択する必要があります。

 

AWS Compute Optimizer を使ってみる

それでは早速使ってみましょう!
AWSコンソールへログイン後「AWS Compute Optimizer」と検索し開くと、新サービスを開始する際のお馴染みの画面が表示されるので右上の「ご利用開始」から設定をしていきます。

 

2019-12-16_18h38_36.png

セットアップ

アカウントのセットアップ画面が開くので「オプトイン」を押下します。
画像の下にも記載がありますが、分析対象となるCloudWatchメトリクスは直近2週間のものが対象となるそうです。
またレコメンドには最低30時間分のメトリクスが必要とのこと。

 

2019-12-16_18h39_01.png

ダッシュボード

セットアップが終わったので分析結果を見てみます。
※分析完了までの時間はリソース量によって異なります。

ダッシュボードからは分析の結果、利用中のインスタンスが「スペック不足・最適・過剰スペック」なのかを一覧として確認することが出来ます。
今回のテスト用に立てたサーバは「Optimized」の結果が出ていました。

 

2019-12-17_16h03_46.png

結果画面

先程のダッシュボード画面では「Optimized」と出ていたので特に何もないかなと思ってましたが、詳細を確認すると最新世代のt3シリーズへ切り替えることで費用が抑えられますよ。と勧められているのがわかるかと思います。

2019-12-17_15h56_41.png

比較画面

現在利用しているインスタンスと推奨インスタンスへ変更した際の比較をみることができます。
料金のほかメトリクスについても確認ができるためスペック変更の指標とできそうですね。
ちなみにこのテストサーバには、 CloudWatch Agent が入ってないためメモリのグラフが空白となっていますが、メモリ利用率も分析対象とすることが可能です。

2019-12-17_16h31_09.png

まとめ

インスタンスサイズの最適化にはサーバチューニングなどもありますが、
数クリックで推奨スペックが提示される上にこれが無料でできるというのだから驚きです。
東京リージョン対応が待ち遠しいですね。

 

参考リンク

公式サイト
ユーザガイド


Amazon EC2 Inf1 インスタンスについて

この記事は株式会社ナレッジコミュニケーションが運営するAmazon AI by ナレコム Advent Calendar 2019の17日目にあたる記事になります。

image.png

 

はじめに

AWS re:Invent 2019にてAmazon EC2 Inf1インスタンスが発表されました!
Amazon EC2 Inf1インスタンスは、AWSが設計、開発、をしたハイパフォーマンス機械学習推論チップであるAWS Inferentiaチップを16 基まで利用でき、推論チップを最新のカスタム第2世代インテル® Xeon®スケーラブルプロセッサおよび最大100Gbpsのネットワークと組み合わせることにより、ハイスループットの推論を可能にしました。

簡単にまとめると、AWSで機械学習の推論を実行するのに最適化されたインスタンスです。

 

AWS Inferentiaチップとは

image.png

AWS がカスタマイズした、高パフォーマンスの機械学習推奨チップ

  • 高性能
    AWS Inferentiaの各チップは低電力で最大128TOPS(1秒間に数兆回の操作)のパフォーマンスをサポートしています。また、AWS InferentiaはFP16、BF16、およびINT8データ型をサポートしています。さらにAWS Inferentiaは32ビットのトレーニング済みモデルを取得しており、BFloat16を使用して 16 ビットモデルの速度での実行が可能です。
  • 低レイテンシー
    AWS Inferentiaは、大規模なオンチップメモリを特徴としています。このため、大規模なモデルのキャッシュが可能となり、チップ外に保存する必要はありません。この結果、AWS InferentiaのプロセッシングコアであるNeuronコアがモデルへ高速でアクセスでき、チップのオフチップメモリ帯域幅によって制限されないため、推論レイテンシーの低下に大きく貢献します。
  • 使いやすさ
    AWS Inferentiaには、AWS Neuronソフトウェア開発キット(SDK)が付属しています。これで、複雑なニューラルネットモデルが利用可能となり、AWS InferentiaベースのEC2 Inf1インスタンスを使って実行する一般的なフレームワークで作成およびトレーニングすることができます。Neuronはコンパイラ、ランタイム、プロファイリングツールで構成され、TensorFlow、Pytorch、MXNetなどの一般的な機械学習フレームワークにも統合済みです。このため、EC2 Inf1インスタンスの最適なパフォーマンスが実現します。

 

Amazon EC2 Inf1インスタンス仕様

以下、Amazon EC2アップデート – 高性能で費用対効果の高い推論のための AWS Inferentia チップを搭載した Inf1 インスタンスで公開されている仕様になります。

image.png

Amazon EC2 Inf1インスタンス価格

image.png

 

Amazon SageMakerで間もなくAmazon EC2 Inf1インスタンスをサポート

Amazon SageMakerで作成したモデルがAmazon EC2 Inf1インスタンスのAuto Scalingクラスターで複数のアベイラビリティーゾーンに分散してデプロイされ、高いパフォーマンスと可用性が発揮されます。

image.png

 

おわりに

2019/12/17現在、バージニア北部リージョンでEC2インスタンスとしては利用可能です。
Amazon SageMakerで使用可能になったタイミングで改めてご紹介したいと思います。

関連URL


AWS re:Invent 2019で発表【Amazon SageMaker Studio】

2019-AWS-reInvent.png

 

AWS re:Invent 2019で新たなサービスがドドン!と発表されました!
特に機械学習のサービスは豊富なリリースが発表され、大注目されています。

今回は初心者の方向けに分かりやすく「Amazon SageMaker Studio」というAWSの機械学習における幅広いサービスを一つの画面で実行できる環境について、ご紹介させて頂きたいと思います。

 

AWS re:Inventって?

AWSイベント 公式ページより

AWS re:Invent は、AWSやパートナーによって多くの新サービスや新機能が発表と、 1,800 を超えるセッションや最新のテクノロジーの展示やデモンストレーションが行われます。
またテクノロジーを満喫できるパーティ re:Playなどの様々なプログラムがラスベガスのエリアで開催される、AWS最大にして世界規模のカンファレンスです。

Amazon SageMaker Studio

画像は公式サイトより。

2019-12-12_16h13_36.png

 

Machine learning開発に必要なすべてのツールを統合したWebベースの統合開発環境(IDE)。
AWSが機械学習に特化した統合開発環境としては初のサービス。

ぜーんぶまるっと統合した状態で視覚的にわかりやすく、機械学習に必要になるすべての環境が自動的に用意されています。
これにより迅速に変更を加え、結果を観察し、より速く反復することができるので反映する時間を短縮できます。開発の生産性を大幅に向上できそうです!

 

2019-12-12_16h01_02.png

 

Webベースで動作するので、Webブラウザから利用することができ、プロジェクトを作成する段階で自動的にインスタンスの作成やサーバのセットアップも完了しインフラの管理も必要がない仕様になっています。

 

統合されているツール

  • Notebooks
    • notebookをささっと使い始められる
  • Experiments
    • 機械学習の実験を構成・記録・比較できる
  • Debugger
    • リアルタイムに自動アラートでモデルのバグを排除する
  • Model Monitor
    • 稼働中のモデルの監視、検出ができる
  • Autopilot
    • どのような判断によってモデルを構築したかを、詳細に視覚化する。ユーザーのデータから最適なモデルを自動的に作成できます。

 

なぜ統合開発環境が必要か

自前で機械学習を行うすべての実行環境を行おうとすると、本来は複雑な作業をする上、ツールの行き来を手動で行うのでいちいち時間がかかるといった面倒があります。
機械学習を行う手順とそれらを実行するツール間が全て別々になっているからです。

  1. データの収集と前処理
  2. モデリング
  3. 学習
  4. 評価と最適化
  5. アプリケーションへの組み込み

 

たとえば、新しいアルゴリズム(問題を解くための計算方法や手順)を試したりハイパーパラメーター(推論や予測の枠組みの中で決定されないパラメータのこと)を設定する際、数百や数千の実験を行いますが、この実験結果をすべて手動で管理することになります。
これに時間がかかりすぎると、最善のモデルを見つけ出すことや実験の中で得た知見を活用することが非常に難しくなります。

その課題を解決するためにAmazon SageMaker Studioを使用するべきということです。

 

活用法

  • 作業工程、学習、訓練、データの展開や実行するプログラムを作るコードの記述。
  • 実験を追跡、データの視覚化、バグを修正する作業と監視
  • ノートブック、データセット、コード設定、 トレーニングの分析、アラートを管理
  • モデルのチューニング、モニタリング
  • データセットの前処理やパラメータを調節したり、 複製、再生したりできる
  • 手順のすべては環境内で追跡
  • 同じプロジェクトに対して作業している他のユーザーと、プロジェクトやフォルダを共有する機能もありそこでノートブックや成果について議論することができます。

 

12月12日(木)現時点ではオハイオUS Eastリージョンで使用可能です。
早く活用できるようになりたーい!

 

公式サイトリンク


【初心者でも試せる】Amazon lexのサンプルチャットボットに触ってみた

「Amazon lex」とは?

まだ自然言語処理も機械学習も習得してないけど、チャットボットアプリ作ってみたいなぁなんて呟いてたら
Amazonに実現できそうなサービス、ありました!

 

以下Amazon Lexの概要から引用

音声やテキストを使用して、アプリケーションに対話型インターフェイスを構築するサービスです。
音声のテキスト変換には自動音声認識 (ASR)、テキストの認識には自然言語理解 (NLU) という
高度な深層学習機能が使用できるので、リアルな会話を実現するアプリケーションを開発できます。
Amazon Alexa に使われている深層学習技術と同じ技術を利用できるので、自然言語での高度な対話ボット (チャットボット) を短時間で簡単に構築できます。

 

どちらかというと「音声対話アプリケーションをつくる」という点に強みがあるそう。

 

■使いやすい

数分でオリジナルのチャットボットを作成し、会話型インターフェイスをアプリケーションに組み込むプロセスを実行できるように使いやすいコンソールを提供しています。
いくつかのフレーズの例を提供するだけで、 音声やテキストを使用して対話できる優れた自然言語モデルを構築し、質問したり、答えたりすることができます。
深層学習や機械学習の前提知識はいらないとのこと。

 

■AWSと統合できる

Amazon Lex では、AWS Lambda、AWS MobileHub、および Amazon CloudWatch との組み込み統合を提供しています。
また、Amazon Cognito や Amazon DynamoDB など AWS プラットフォームの他の多くのサービスと簡単に統合できます。AWS プラットフォームのセキュリティ、モニタリング、ユーザー認証、ビジネスロジック、ストレージ、モバイルアプリケーション開発を活用できます。

 

■一般的なユースケース

情報ボット – 質問に回答する、顧客サポート用の自動化されたボットを構築する
アプリケーション用ボット – ピザの注文ボットまたは旅行予約ボットを構築する
企業の生産性ボット – 企業のデータに接続するカスタムボットを構築する
デバイス制御ボット – 接続済みの機器に、Amazon Lex を使って制御コマンドを発行

 

サンプルチャットボットでレンタカーの予約

簡単で使いやすい、、そこまで言うなら試しに使うべきですね!

まずAmazon lexのトップページから「Book trip」を選択。Bot Nameは好きな名前で。

2019-12-06_10h52_32.png

ページ下部にテキストまたは音声入力のセンチメント分析をする「Sentiment analysis」の選択が
ありますが今回は使わないでシンプルに試します。
IAMロールは自動で作られるようです。
COPPAは、13歳未満の子供のプライバシーを守る法律のことなので一応成人の筆者はNoを選択して
右下の「Create」ボタンを押して進んで行きます。
2019-12-06_10h54_39.png

 

チャットボットの中身の編集画面が出てくるのでサンプルを試すだけであれば「Build」をクリックして

2019-12-06_14h28_20.png

2019-12-06_14h42_42.png

 

数秒待てばbotが作成されるのでこのまま使うことができます。

「Sample utterances」に予め用意されている、和訳すると「車を予約したい」を投げれば問題なくbotが答えてくれます。

 

2019-12-06_11h03_31.png

 

上にある入力項目に要望の言葉を+ボタンを押して追加することができるようです。
試しに日本語で追加してみました。

2019-12-06_14h41_18.png

 

では右にあるbotにレンタカーの予約をお願いしてみます。

2019-12-06_15h02_42.png

 

ちゃんと返ってきましたね。「どこで車をレンタルしますか?」と聞かれています。
サンプルの5つのスロットの中の「PickUpCity(都市の選択)」に当たります。

 

※スロット(Amazon概要から)

インテントを実現するためにはユーザーからの情報が必要。この情報は "スロット" に取得されます。例えば、予約のインテントに対しては名前と時間を定義します。

2019-12-06_15h57_25.png

 

質問に答えると「何日からレンタルを開始しますか?」「何歳の方が運転されますか?」とサクサク次のスロットの質問が返ってきます。

image.png

 

このようにして5つのスロットのやりとりを手軽に試すことができました!

 

日本語で返答させてみる

promptの応答もSlot typeに合わせて好きな言葉に編集できるみたいです。
image.png
2019-12-11_17h56_20.png

■料金

最初の 1 年間は、1 か月あたり最大で 10,000 回のテキストリクエストと 5,000 回の音声リクエストを無料枠で使うことができます。
無料枠を超えると使用した分のみ料金が発生します。ボットにより処理されたテキストリクエストまたは音声リクエストの数に基づいて課金されます。
音声リクエストは 1 回あたりの料金は 0.004 USD、テキストリクエスト 1 回あたりの料金は 0.00075 USD です。
使用量は「処理されたリクエスト」を単位として測定され、その値を月末に合計してその月の請求額が計算されます。

 

終わりに

サンプルでは必要なかったのですがちゃんとbotを作るときにはLambda関数も書く必要があるようです。
まだ日本語には対応していませんが、AWSの新しいサービスのリリースはとても早いので、東京リージョンで使えるようになるのもそう遠くはないはず。

SDK(Java、JavaScript、Python、CLI、NET、Ruby on Rails、PHP、Go、CPP) を使用すれば、iOS および Android などのモバイル向けの Amazon Lex ボットを開発できます。
AWS Mobile Hub を使用すれば、モバイルプラットフォーム用ボットの構築、テスト、およびモニタリングができ、Amazon Lex ボットをテンプレートから自動的に構築できます。
ぜひお試しください。

 

公式サイトリンクはこちら

Amazon Lex
Amazon Lex よくある質問