Author: Localization Team


Amazon CloudWatch で GPU 使用率をモニタリング

GPU には何千ものコアがあるため、ディープラーニングには大量のマトリックス乗算と GPU (グラフィックス処理ユニット) により並列化できるベクトルオペレーションが必要です。アマゾン ウェブ サービスでは P2 または P3 インスタンスにサインアップすることが可能です。このようなインスタンスは、大規模なディープニューラルネットワークのデプロイの加速化を強調する MXNet のようなディープラーニングフレームワークの実行に優れています。

データサイエンティストや開発者はネットワークを微調整する場合、適切なバッチサイズを使用できるように GPU 使用率を最適化したいと考えています。今回のブログでは、Amazon CloudWatch メトリクスを使用して GPU とメモリ使用量をモニタリングする方法をご説明します。Amazon マシンイメージ (AMI) では、インスタンスが Amazon Deep Learning AMI を使用することを勧めています。

GPU を有効にしたインスタンスのモニタリングや管理をサポートするために使用されている現在の一般的な方法は、コマンドラインユーティリティの NVIDIA システム管理インターフェイスを利用することです (nvidia-smi)。nvidia-smi の使用により、ユーザーは GPU 使用率、メモリ消費量、ファンの使用量、電力消費量、そして NVIDIA GPU デバイスの温度などの情報をクエリすることができます。

nvidia-smi は NVIDIA 管理ライブラリをベースにしているので (NVML)、C ベースの API ライブラリを使用し、カスタムメトリクスとして Amazon CloudWatch に送信するのと同じデータポイントをキャプチャできます。このライブラリに関する詳細については「リファレンスマニュアル (reference manual)」をご覧ください。このブログではライブラリに Python ラッパーの pyvnml を使用します。

Amazon CloudWatch は、システムやインフラストラクチャのセットアップ、管理、スケールを必要とせずに EC2 インスタンスでワークロードをモニタリングする場合に大変優れています。デフォルトにより、CloudWatch は CPUUtilization、DiskReadOps、DiskWriteOps、NetworkIn、NetworkOut といったメトリクスを提供するようになっています。(インスタンスのメトリクス一覧についてはこちらをご覧ください)

こうしたメトリクスの他にも API、SDK または CLI を使用し Amazon CloudWatch カスタムメトリクス を介して独自のデータポイントをプッシュすることもできます。Python Boto3 SDK を使用します。

(more…)

AWS がエモリー大学とのコラボレーションを通じ、Apache MXNet を活用したクラウドベースの NLP 研究プラットフォームを開発

自然言語処理 (NLP) は、コンピュータプログラムに人間の言語 (自然言語) を理解させるという、人工知能の研究分野のひとつです。NLP についてあまりご存じない方でも、日々の生活の中でこれを使っている可能性は高いでしょう。携帯電話の仮想キーボードで文字入力を行う際、入力内容の分析結果に基づき、次に打ち込むべきであると予測される単語がリスト表示されます。これは言語モデリングと呼ばれ、入力された単語にどの単語が続くかの確率をその内容に基づいて測定する技術であり、NLP の中核的タスクのひとつです。NLP はすでに多くのアプリケーションに採用されており、世の中を大きく変えつつあります。

エモリー大学の NLP 研究グループである Evolution of Language and Information Technology (ELIT) チームは、研究者たちに最先端の NLP と機械学習テクノロジーをもたらす取り組みを行っています。ELIT プロジェクトは、AWS クラウドの豊富なリソースを活用し、ビッグデータ解析に向けたスケーラブルなエンドツーエンドの NLP パイプラインを提供することに主眼を置いています。他の多くの NLP フレームワークとは異なり、ELIT はウェブ API をサポートすることで、プラットフォームに依存しない体制を実現しています。そのお陰で、研究者たちはいつでもどこでも大規模なコンピューティングを利用できます。また、ELIT プロジェクトは、GitHub にも参加しています。これは、エモリー大学の NLP 研究グループが AWS の MXNet チームとの緊密なコラボレーションの下で立ち上げたサービスです。今回のブログ投稿では、ELIT のプラットフォームをご紹介するとともに、そこで活用されているウェブ API や、NLP の可視化についてもご説明します。

ELIT の研究用プラットフォーム

近年、NLP においてディープラーニングが盛んに活用され始めた結果、機械学習に基づく NLP モデルには多大な計算処理能力が要求されるようになり、研究者たちは強力なマシンなしには NLP の最新技術をフル活用できなくなっています。AWS のようなクラウドコンピューティングプラットフォームは、研究者たちがこれらのモデルを実行できるよう、無制限のコンピューティングリソースを提供します。しかしこれは、クラウドにさほど通じていない方々にとっては面倒でもあるでしょう。そこで ELIT プロジェクトが目指すのは、NLP のためのウェブサービスを提供し、インターネット接続さえあれば誰でもリクエストを行えるようにすることです。つまり、ローカルインストールは不要ですし、クラウドコンピューティングに関する予備知識も必要ありません。では、感情分析などの一般的な NLP タスクにおける ELIT プラットフォームの活用例をご紹介しましょう。

感情分析

具体的なデモンストレーションをご覧いただく前に、感情分析に対する当チームのアプローチを簡単にご説明します。感情分析とは、各ドキュメントをネガティブニュートラルポジティブという 3 つの感情に分類することです。ELIT は、感情分析を行うための畳み込みニューラルネットワーク (CNN) モデルを 2 種類提供しており、これを活用することでソーシャルメディアおよび映画のレビューからのデータを分析できます。対象ドキュメント (ツイートまたは映画のレビュー) を指定すると、まずは各単語のベクトル表現がスタッキングされ、インプットとして行列が作成されます。このインプット行列が畳み込みおよびプーリング層に入力され、畳み込みの結果は、対象ドキュメントに含まれる各 n グラム (この例では n = [1、…、5]) の強度を表現するアテンションの行列と一致します。そして、このアテンションのアウトプットがソフトマックス層に入力され、対象データがネガティブニュートラルポジティブの各感情に分類される可能性について予測が行われます (ここで使用した CNN モデルの詳細については、Shin et al., 2017 をご覧ください)。

デモンストレーション

まず、ELIT のデモページ (http://demo.elit.cloud/) のスクリーンショットをご覧ください。

(more…)

Amazon Rekognition とグラフデータベースを使って映画スターのソーシャルネットワークを理解する

Amazon Rekognition は、イメージの分析をアプリケーションに簡単に追加できるようにする AWS サービスです。ディープラーニングを活用したこのコンピュータビジョン向け API に追加された最新機能が、有名人の認識です。この使いやすい機能は、各分野の有名人や著名人を多数検出、認識します。このツールにより、ユーザーは自身の関心に基づいて有名人のデジタルイメージライブラリのインデックスを作成し、検索することができます。

当社のお客様が個人に関するデータの保存に用いる一般的な方法の 1 つが、グラフデータベースです。過去のブログ投稿で詳しく説明したとおり、Facebook や LinkedIn、Twitter といった企業は巨大な関係性ネットワークの管理能力を通じ、社会が相互に関わり合う方法を革新してきました。このブログ投稿の目的は、Rekognition の有名人の認識および顔認識機能をグラフデータベースに保存された関係情報に組み合わせるのがいかに簡単かをご紹介することです。

これらのテクノロジーを組み合わせることで、お客様は 1 枚の写真を通じて、その写真に含まれる人物が他の関心対象である人物とどのように関連しているかを把握できます。さらに、2 枚の写真を送信し、それぞれの写真に含まれる人々の間にどのような相互関係があるかを素早く見極めることも可能です。この関係マッピングを活かしたコミカルな例が、有名な Six Degrees of Kevin Bacon (ケヴィン・ベーコンとの六次の隔たり) ゲームです。しかし、このようなアプリケーションのビジネス価値は実に大きなものです。法執行機関は 2 枚の写真を基に Rekognition を活用して各人物の身元を特定し、グラフデータベースを参照して関心対象である 2 名の人物が知り合いかどうかを突き止めることができます。同様に、ホスピタリティ企業は Rekognition とグラフデータベースを使って敷地内にいる有名人を素早く特定し、その人物の知り合いである他の有名人のうち、近隣に宿泊している人物を把握できます。

このブログ投稿では、グラフデータベース (ここでは Neo4j Community Edition を使用) を採用した Rekognition と、D3.js ライブラリを使用した Jupyter Notebook の併用方法のデモンストレーションをご紹介します。

設定

このテクノロジーの組み合わせの使用を開始するには、まず AWS ラボの Github リポジトリからプロジェクトのコピーを取得します。  プロジェクト構成には 2 つの主なエリアが含まれます。

  • <project root> – ここに、実際の Jupyter Notebook がすべての依存関係とともに保存されています。
  • <project root>/cft – インフラストラクチャを作成するための AWS CloudFormation テンプレートおよびサンプルプロパティ、サンプルコマンド。

ここに新たな/既存の ssh キーを追加する必要があります。AWS CloudFormation テンプレートが Neo4j Community Edition をインストールし、Rekognition を操作するための Python コード例を含む Jupyter Notebook を AWS ラボからダウンロードして、スピーディな利用開始に必要となるその他の Amazon EC2 設定を構成します。また、Cloud Formation テンプレートが Neo4j ブラウザまたは Jupyter Notebook のいずれかのクエリ対象となる一般的なムービーグラフデータベースを自動的にロードします。

(more…)

見逃していませんか? 最近公開された AWS サービスの概要

目を疑うほどの数のリリースやクラウドの最新技術が開発されています。今回のブログでは、この夏から秋の終わりまでにリリースされた優れたサービスや機能の近況報告の概要を紹介します。

今回ご紹介するサービスと機能:

  • RDS MySQL と Amazon Aurora で行うデータベースユーザー認証の AWS IAM
  • Amazon SES 評価ダッシュボード
  • Amazon SES オープンおよびクリックのトラッキングメトリクス
  • ソリューションビルダーチームによるサーバーレスイメージハンドラ
  • ソリューションビルダーチームによる AWS Ops Automator

では、詳しい内容を見てみましょう。

RDS MySQL と Amazon Aurora で行うデータベースユーザー認証の AWS IAM

AWS IAM を使用して、Amazon RDS データベースインスタンスやクラスターへのアクセスを管理したいと思ったことはありませんか?なんと、それを実現できるようになりました。Amazon RDS はユーザーが IAM を使用して MySQL や Amazon Aurora DB の Amazon RDS へのデータベースアクセスを管理できるようにする機能をリリースしました。

このサービス機能の良い所は、使用開始が実に簡単なことです。IAM を使用してデータベースユーザー認証を有効にするには、DB インスタンスまたはクラスターの作成、変更、復元を行う際に [Enable IAM DB Authentication] のチェックボックスをオンにします。RDS コンソール、AWS CLI および (または) Amazon RDS API を使用して IAM アクセスを有効にすることができます。

IAM 認証用のデータベース設定が完了すると、IAM セキュリティトークンサービスが生成した一時的なセキュリティ認証情報が提供され、クライアントアプリケーションがデータベースエンジンで認証します。データベースエンジンにパスワードを提供する代わりに、この認証情報を使用することができます。

IAM を使用してターゲットにした許可や認証を MySQL と Aurora に提供する場合の詳細情報については「Amazon RDS ユーザーガイド (Amazon RDS user guide)」をご覧ください。

Amazon SES 評価ダッシュボード

Amazon Simple Email Service のユーザーがメール送信でベストプラクティスガイドラインを利用するようにサポートするため、評価ダッシュボードをリリースしてメール送信の状態を包括的にまとめたレポートを提供するようになりました。送信したメールを積極的に管理するためのサポートを提供することで、ユーザーは送信メトリクス、コンプライアンスや実行のステータスを送信し、アカウント全体の状態の可視性を高めます。

評価ダッシュボードは次の情報を提供します。

  • Account status: アカウントの状態を示す説明です。
    • Healthy – 現在、アカウントに影響する問題はありません。
    • Probation – アカウントが停止猶予状態になっています。使用停止を避けるには停止猶予状態になっている理由を解決してください。
    • Pending end of probation decision – アカウントが停止猶予状態になっています。Amazon SES チームのメンバーはアクションを行う前にアカウントをレビューしてください。
    • Shutdown – アカウントが停止されました。Amazon SES を使用してメールを送信することはできません。
    • Probation – アカウントが停止猶予状態になっています。停止猶予状態になっている理由が解決されていません。
  • Bounce Rate: バウンスした送信済みメールの割合とバウンス率のステータスメッセージです。
  • Complaint Rate: 受信者がスパムとして報告した送信済みメールの割合と苦情率のステータスメッセージです。
  • Notifications: 別のアカウントの評価問題に関するメッセージです。

Amazon SES オープンおよびクリックのトラッキングメトリクス

Amazon SES に最近追加されたもう 1 つの優れた新機能はメールのオープンおよびクリックのトラッキングメトリクスです。メールのオープンおよびクリックのトラッキングメトリクス機能は、SES ユーザーが送信したメールがいつ開封されたか確認したり、メール内のリンクがいつクリックされたかをトラッキングすることを可能にします。この SES 機能を使うことで、メールキャンペーンのエンゲージメントや、その効率性を今まで以上にトラッキングできるようになります。

動作の仕組み

メール開封トラッキング機能を使用すると、SES はトラッキングの対象にするメールに透過的な小さなイメージを埋め込みます。そのメールが開封されると、メールアプリケーションクライアントは Amazon SES で、オープントラックイベントをトリガーするそのトラッキングを読み込みます。メールクリック (リンク) トラッキング では、メールや (または) メールテンプレートにあるリンクがカスタムリンクと置き換えられます。カスタムリンクがクリックされると、SES でクリックイベントが記録され、カスタムリンクはオリジナルメールのリンク先にメールユーザーをリダイレクトします。

新しい設定セットを作成したり、SES 内の既存の設定セットを変更することで、新しいオープントラッキングとクリックトラッキング機能を利用することができます。オープンおよびクリックメトリクスを取得するために Amazon SNSAmazon CloudWatch または Amazon Kinesis Firehose を AWS サービスとして選び、送信したいメールで新しい設定セットを選択すれば新機能を有効にできます。

AWS ソリューション: サーバーレスイメージハンドラと AWS Ops Automator

AWS ソリューションビルダーチームは、AWS でのアプリケーション構築や実行をサポートするため、アーキテクチャに関したよくある質問の回答を提供できるように努めています。ソリューションについては AWS Answers ページをご覧ください。秋の始めに AWS Answers で公開した新しい 2 つのソリューションはサーバーレスイメージハンドラAWS Ops Automator です。
サーバーレスイメージハンドラは、ユーザーが AWS Cloud で行うイメージ処理を動的に処理、操作、最適化することをサポートするソリューションを提供するために開発されました。このソリューションは、キャッシングに Amazon CloudFront を、そして AWS Lambda でイメージを動的に取得しイメージの変更を行い、Amazon S3 バケットでイメージを保存することを組み合わせています。さらに、サーバーレスイメージハンドラは、イメージ操作、処理、最適化を追加するオープンソースイメージ処理スイートの Thumbor を利用しています。

AWS Ops Automator ソリューションは、時間ベースまたはイベントベースのトリガーを使用して手動タスクを自動化しやすくします。たとえば、自動タスクのフレームワークを提供することでスナップショットスケジューリングを自動化します。また、タスクの追跡記録、ログ記録、リソースの選択、スケーリング、同時実行の処理、タスク完了の処理、API リクエストの再試行などもこれに含まれます。このソリューションには次の AWS サービスが含まれています。

  • AWS CloudFormation: タスク設定を生成するマイクロサービスやソリューションのコアフレームワークを起動するためのテンプレート
  • Amazon DynamoDB: イベントトリガー、リソースを定義するためのタスク設定データの保存とアクションとエラーの結果を保存するテーブル
  • Amazon CloudWatch Logs: 警告やエラーメッセージをトラックするログ記録を提供
  • Amazon SNS: ソリューションからのログ記録情報を受信するように登録済みのメールアドレスにメッセージを送信

さらに理解を深め、コーディングをお楽しみください。

Tara