Category: Artificial Intelligence*


Amazon Rekognition がリアルタイム顔認識、イメージ内のテキスト認識のサポート、および機能強化された顔検出を発表

Amazon Rekognition に、3 つの新しい機能として、イメージ内のテキストの検出と認識、数千万の顔からのリアルタイム顔認識、および密集写真からの最大 100 個の顔検出が追加されました。顔の検証と識別に Amazon Rekognition をすでにご利用の場合は、ほとんどのケースで精度が最大 10% 向上します。

イメージ内のテキスト

Amazon Rekognition でイメージ内のオブジェクトや顔を検出しているお客様方から、イメージに埋め込まれたテキストを認識できないかとのご要望があります。たとえば、交通監視カメラで捉えた道路標識や車のナンバープレート、TV 画面のニュースや字幕、携帯に取り込まれた家族写真の図案化された文字などです。本日より、Rekognition の「イメージ内のテキスト」を使用して、イメージからテキストコンテンツを認識して抽出できるようになりました。「イメージ内のテキスト」は、ドキュメントのイメージよりも実際のイメージで特に効果を発揮するように構築されています。多種多様なレイアウト、フォント、スタイルで埋め込まれたほとんどのラテン文字や数字のテキストがサポートされます。また、バナーやポスターなどの背景のオブジェクトに様々な向きで重ねられたテキストもサポートされます。

「ビジュアル駆動型のプラットフォームである Pinterest では、イメージの速度と画質が極めて重要ですが、これらのイメージに付随するテキストも同じように重要です。テキストは、当社の 2 億を超えるアクティブユーザーに実際に Pin するための背景情報を提供します。Amazon Rekognition の『イメージ内のテキスト』を使うことで、大量のイメージに取り込まれたリッチテキストが抽出しやすくなり、Amazon S3 に保存された何百万という Pin のレイテンシーを低く抑えることができます。これからも AWS とのパートナーシップを深め、Pinner に高品質で高速なサービスを提供し、Pinterest のビジネスを成長させていくつもりです。」– Vanja Josifovski、CTO、Pinterest

「プロの写真家が SmugMug を使用して共有したり販売したりする写真に、マラソン大会のゼッケン番号などの数字が含まれていることがあります。Amazon Rekognition の『イメージ内のテキスト』を使用すると、大量のゼッケン番号をプログラムで抽出できるため、これらの大会で写真家が撮った写真をすばやく簡単に共有したり収益化したりできるようになります。」 – Don MacAskill、Co-founder、CEO & Chief Geek at SmugMug

リアルタイムの顔認識

何千万という顔のコレクションに対してリアルタイムの顔検索ができるようになりました。これにより、検索のレイテンシーが以前よりも 5〜10 分の 1 に短縮されると共に、コレクションに保存できる顔の数が 10〜20 倍に増えます。セキュリティと公共安全のアプリケーションでは、今回の更新により、何百万という顔のコレクションから目当ての人物をリアルタイムで識別できます。これは、迅速なレスポンスが要求されるユースケースに役立ちます。

ワシントン郡保安官オフィスは、オレゴン市民からの 911 番緊急通報に対するファーストレスポンダーです。このオフィスでは、全国の市警に対して犯罪防止のサポートも提供しています。昨年から Amazon Rekognition を使い始め、通報された容疑者の識別所要時間を 2〜3 日から数分に短縮し、新しいシステムを使用して最初の容疑者を 1 週間以内に逮捕しました。

「この改善により、現場の警察官はほぼリアルタイムで検索の結果を得られます。必要な情報を取得してすばやく対応できます。現場では、数秒の差が人命救助の分かれ目になることがあります。」– Chris Adzima、上級インフォメーションシステムアナリスト、ワシントン郡保安官オフィス

人混みモードの顔検出

本日より、1 つのイメージに含まれている多数の顔から最大 100 (以前は 15) までを検出、分析、インデックスできるようになりました。この機能強化により、グループ写真、混雑したイベントや公共の場所 (空港やデパートなど) の写真で、すべての顔の人口統計データを正確にキャプチャしてセンチメントを分析できます。

「過去にユーザーが購入した写真や、ユーザーから当社のプラットフォームにアップロードされた写真の膨大なコレクションがあります。これらのコレクションから特定のユーザーの子供の写真を探す場合があり、そのために Amazon Rekognition を利用しています。多くのグループ写真には何十という小さな顔が収められていて、これまでは 1 つ 1 つの顔を正確に検出するために元のイメージをトリミングして分割していました。新しい人混みの顔検出機能を使用すると、特に複雑な前処理をすることなく、一度ですべての顔を簡単に検出できます。」– Shinji Miyazato、Engineering Department SRE Lead、Sen Corporation

顔検出モデルの精度向上

顔検出アルゴリズムの精度も改善しました。これにより、チェックインカウンターや従業員用の回転式通用口、モバイルの顔ベースの認証で使用される顔検証/識別アプリケーションの精度が最大 10% 向上します。

特に注目に値する点として、さまざまな業界で大規模なイメージ分析ワークロードを本稼働環境で運用するお客様が増えています。代表的なお客様の例をいくつかご紹介します。

Butterfleye – この家庭および小規模企業向けのセキュリティカメラプロバイダーは、Amazon Rekognition を使用して顔/物検出カメラを低コストで迅速に開発し、開発所要時間を 18 か月から 4 か月に短縮して研究開発費を 100 万ドル以上削減しました。

Open Influence – この会社の業務は、エンタープライズ顧客がブランドを販売促進するためのソーシャルメディアインフルエンサーを見つけることです。Amazon Rekognition を自社独自のデータパイプラインと簡単に連携させることで高品質の検索結果を生成し、他の手段では見つけることができなかったインフルエンサーを顧客が発掘できるようにしています。

Marinus Analytics – 人身売買の防止に Amazon Rekognition を役立てています。この会社の主力ソフトウェアは、米国の法執行機関で性目的の人身売買の捜査に採用されています。Amazon Rekognition と Marinus Analytics を連携させた捜査により、何百万という記録から数秒で被害者を見つけ出し、迅速で効果的な対応ができます。

Amazon Rekognition の詳細については、こちらを参照してください。Amazon Rekognition をすぐに使用するには、こちらの開始方法を参照してください。ご質問があればコメント内に記入してください。


Ranju は、Amazon での勤務歴がほぼ 5 年で、Amazon Rekognition チームを率いています。Amazon Rekognition は、ディープラーニングベースのイメージ認識サービスであり、何百万というイメージを検索、検証、整理できます。Ranju は Amazon の前に Barnes & Noble で Nook Cloud エンジニアリングのチームリーダーでした。このチームは、Nook モバイルサービスおよびデジタルアセット管理サービスの戦略、設計、開発、および SaaS 運用を担当していました。

Apache MXNet で ONNX をサポート

AWS は ONNX-MXNet の利用開始を発表しました。これは Open Neural Network Exchange (ONNX) ディープラーニングモデルを Apache MXNet にインポートするためのオープンソース Python パッケージです。MXNet は充実した機能を備えたスケーラブルなディープラーニングフレームワークで、Python、Scala、R といった人気の言語に対し API を提供します。MXNet で ONNX 形式をサポートすることで、開発者は PyTorch、Microsoft Cognitive Toolkit、Caffe2 など、他のフレームワークを使用してモデルを構築したりトレーニングすることができます。また、高度に最適化されたスケーラブルなエンジンの MXNet を使用した推論に対し、こうしたモデルを MXNet にインポートすることもできます。

AWS が ONNX 形式に貢献できることを大変喜ばしく思っています。FacebookMicrosoft、そしてディープラーニングコミュニティと協力し、ディープラーニングのユーザーが利用しやすい便利なものにすべく、ONNX の開発に取り組みます。

ONNX とは

ONNX はディープラーニングモデルをエンコードするためのオープンソース形式です。ONNX はニューラルネットワークの計算グラフ、グラフ内で使用される演算子の広範なリストの形式を定義します。拡大中のフレームワークリスト、ハードウェアベンダー、ディープラーニングの開発を手掛ける開発者などにサポートされている ONNX は、容易にフレームワーク間を移動し、目の前の課題に最適なフレームワークを選別することができます。

クイックスタート

今回は ONNX-MXNet を使用して MXNet に ONNX-MXNet をインポートする方法、そして推論用にインポートしたモデルを使用する方法をご紹介します。これにより、MXNet の最適化した実行エンジンのメリットを活用することができます。

ステップ 1: インストール

まず、ONNX repo の手順に従い、ONNX をインストールします。

次に ONNX-MXNet パッケージをインストールします。

$ pip install onnx-mxnet

ステップ 2: ONNX モデルを準備してインポート

この例では、イメージの空間分解能を高めるように設計されている Super Resolution モデルのインポートを行います。このモデルは PyTorch で構築とトレーニングが行われ、PyTorch の ONNX エクスポート API を使用して ONNX にエクスポートされています。モデル設計の詳細については PyTorch の例をご覧ください。

Super Resolution ONNX モデルを作業ディレクトリにダウンロードします。

$ wget https://s3.amazonaws.com/onnx-mxnet/examples/super_resolution.onnx

ステップ 3: ONNX モデルを MXNet にインポート

ONNX モデルのファイルの準備ができたので、ONNX-MXNet インポート API を使用して MXNet にインポートしてみましょう。Python シェルで次のコードを実行します。

import onnx_mxnet
sym, params = onnx_mxnet.import_model('super_resolution.onnx')

Python ランタイムで 2 つのインスタンスを作成しました。 sym – モデルのシンボリックグラフと params – モデルのウェイトです。これで ONNX モデルのインポートが完了し、標準の MXNet モデルができました。

(more…)

Amazon Polly が 9 つの対象 AWS リージョン、韓国語のサポート、新しいインド英語音声を追加

Amazon Polly は、テキストを生きた話し声に変換する AWS のサービスです。Amazon Polly に 9 つのリージョンが追加され、Polly が利用可能なリージョンの合計数が 14 となったことを発表いたします。さらに、韓国語サポートの開始、テキスト読み上げ機能ポートフォリオへのインド英語音声の追加を発表いたします。新しい韓国語の女性音声 Seoyeon、およびインド英語音声の Aditi をご紹介します。

Amazon Polly は、世界中のお客様に対して最大の安定性と最小のレイテンシーを提供するべく、以下の 14 の AWS リージョンで提供されます: アジアパシフィック (ムンバイ)、アジアパシフィック (ソウル)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、カナダ (中部)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ロンドン)、南米 (サンパウロ)、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (北カリフォルニア)、および米国西部 (オレゴン)。

Amazon Polly は re:Invent 2016 で発表されて以来、最も多いリクエストの 1 つとして、追加言語のサポートがありました。お客様からの最も多くのリクエストがあった言語の 1 つが韓国語です。お客様の需要にお応えして、最初の韓国語音声 Seoyeon を発表いたします。

(more…)

AWS Deep Learning Conda と Base AMI の利用開始について

AWS は AWS Deep Learning AMI に Conda ベースの AMI と Base AMI という 2 つの新しいバージョンを利用可能にしたことを発表しました。このブログでは、新しい AMI を最大限に活用するための手順と追加リソースについてご説明します。

Conda マネージド型環境を取り入れた新しい Deep Learning AMI

Amazon LinuxUbuntu を対象にした新しい Deep Learning AMI には、人気のオープンソースパッケージと環境管理ツールである Conda を使用して作成したディープラーニング用の Python 環境がプリインストールされています。Conda マネージド型 Python 環境は、Apache MXNet、TensorFlow、Caffe2、PyTorch、Keras、CNTK、Theano を含む、人気のディープラーニングフレームワーク用に事前設定されています。また、Python 環境にはそれぞれ Python 2 と Python 3 が含まれています。AWS マネジメントコンソールを使用して AWS EC2 インスタンスにログインすると、Conda 環境すべてを含むリストがコンソールメッセージとして表示されます。

次のコマンドを実行すると、このリストを取得できます。

conda env list

次に、任意のディープラーニングフレームワーク、たとえば MXNet 用の Python 環境をアクティブ化するには、次を実行します。

For Python 2

source activate mxnet_p27

For Python 3

source activate mxnet_p36

Python 環境に入ったら、次のコマンドを実行してインストール済みのパッケージリストを表示することができます。

conda list

(more…)

Machine Learning ユーザー向けの新しい AWS Deep Learning AMI

この度、AWS Deep Learning AMI の新しい 2 つのバージョンの提供を開始しました。人気のオープンソースパッケージと環境ツールの Conda を使用して作成したディープラーニングフレームワーク用に別の Python 環境を使用する Conda ベースの AMI、そして独自のカスタマイズしたディープラーニングモデルをデプロイするための GPU ドライバとライブラリを使用する Base AMI です。

学会と業界の両方に渡り、ディープラーニングテクノロジーはフレームワーク、アルゴリズム、そして新しい方法や理論に渡り、急速に進化しています。そのため、素早く安全にアルゴリズムをテストしたり、フレームワークの特定のバージョンの最適化、テストやベンチマークの実行、新しく始めるプロジェクト開始の共同作業などにおいてツールを必要とする開発者達にとって複雑の原因になっています。そこで、AWS Deep Learning AMI においても、そうした自由と柔軟性を提供するために仮想環境を追加することにしました。また、新たに開発者用リソースもセットアップすることで、これまで以上に AMI の理解を深めたり、プロジェクトに適切な AMI を選択したり、ハンズオンチュートリアルを利用できるようにしています。

Conda ベースの Deep Learning AMI

Conda ベースの AMI は Conda を使用して作成したディープラーニングの Python 環境にプリインストールされています。各 Conda ベースの Python 環境は、人気のディープラーニングフレームワークの公式 pip パッケージと、その依存関係を含むように設定されています。たとえば、ニューラルネットワークモデルをトレーニングするためのディープラーニングコードを実行する準備が整い、完全に仕上がった仮想環境とお考えください。ステップバイステップガイドでは、任意のディープラーニングフレームワークを使用した環境をアクティブ化する方法や、シンプルな 1 行のコマンドを使用して環境を切り替える方法について説明しています。

AMI のメリットは他にもあります。AMI の環境は相互に孤立した自己完結型のサンドボックスとして稼働します。つまり、サンドボックス内でディープラーニングのコードを実行すると、実行時の環境を完全に見通し全体的に管理することができます。AMI の他のディープラーニング環境を中断してしまう心配なく、新しいソフトウェアパッケージをインストールしたり、既存のパッケージのアップグレードや環境変数を変更することができます。実行環境でこのレベルの柔軟性と詳細管理を行えるということは、一貫性のある再生可能な方法でディープラーニングモデルのテスト実行やパフォーマンスのベンチマークが行えることを意味しています。

最後に、AMI は Jupyter ノートブックに直接プラグできるビジュアルインターフェイスを提供するので、Jupyter ノートブックのブラウザからクリック 1 回で環境を切り替えたり、任意の環境でノートブックを起動したり、環境を再設定することができます。ステップバイステップガイドでは、こうした統合と Jupyter ノートブックやチュートリアルについて説明しています。

(more…)

SSML の新しい声道機能を使用して Amazon Polly の声の音色を変更

本日、Amazon Polly チームは、開発者がテキスト読み上げ (TTS) 音声の音色を変更できるようにする、新しい音声合成マークアップ言語 (SSML) 機能のリリースを発表します。これは、Amazon Polly ポートフォリオの既存の音をカスタマイズし、ユースケース用に探している特定のペルソナの音に近づけることを希望するお客様にとって魅力的な機能です。特に、多くの異なる音が関連するシナリオを持つお客様にとって有益です。音色機能により、利用可能な各 Amazon Polly の声から複数の音のペルソナを簡単にカスタマイズできるためです。

音色とは

音色は、ピッチや大きさとは独立した、音の知覚色または品質を表します。これは、よく音楽で金管楽器と弦楽器の違いを指摘したり、ビオラとバイオリンの微妙な区別を表したりする場合などに使用されます。音色は、各楽器が同じボリュームで同じ音符を演奏していても、それぞれを区別する知覚属性です。音声においても同様に、ピッチ (基本周波数) と大きさ (振幅) が同じでも、音色により 1 つの声が別の声から区別されます。

各個人の声の音は、その人物の生理機能や発声方法を含むさまざまな要素により、独自のものになります。個人の声帯、声道、そして体全体の大きさや形でさえも、その人物の標準的な音声品質を形作るうえで重要な役割を果たします。人の舌の位置、筋肉を緊張または弛緩させる方法、空気圧を加える方法は、声のピッチ、ボリューム、音色を変えるための技法の一部にすぎません。訓練を受けた物まね役者は、自分の声をまるで他人のように変えることができるレベルまで、これらの動きを制御する方法を会得しています。

声道とピッチ

音声の音色に貢献する重要な生理機能として、声道があります。これは声帯上部から唇の端までにおよぶ空気の通り道です。声道を長くしたり短くしたり、または広げたり狭めたりして、その形を変更できるようにするさまざまな筋肉があります。こうした変更の効果によって、音声が増幅または除去されて聞こえます。

ピッチは、音声を高く、または低く聞こえるようにする聴覚属性です。音声生成においては、ピッチは声帯の振動周波数によって決定されます。一般的に、女性の声帯は男性と比較して短く、より多く (1 秒あたり 180~200 回) 振動します。男性の声帯は平均的により長く、より少なく (1 秒あたり 最大 110 回) 振動します。同様に、平均的な声道の長さは、女性が男性よりも短くなっています (最大 14cm 対最大 17cm)。

声帯の長さと声道の長さとの間には自然な相関関係があり、どちらか 1 つが大きければ、もう一方も大きくなる傾向があります。音色機能では、開発者がピッチを制御する機能を維持しながら、声道の大きさを変更することができます。

声道と音声合成

vocal-tract-length SSML タグを使用して話者の声道の長さを変更することで、入力音声の音色を制御できるようになりました。これは話者の体の大きさを変更したかのように聞こえます。 vocal-tract-length を変更すると、話者の音声は体が大きくなったかのように聞こえます。このタグを小さくすると、小さい体のような音になります。このタグは Amazon Polly のテキスト読み上げポートフォリオのいずれの声にも使用できます。

話者の声道の長さを変更する方法は次のとおりです。

  • +n% または -n%: 現在の声で、相対割合 (%) の変更により声道の長さを調整します。たとえば、+4%、-2% などです。
  • n%: 現在の声の絶対割合値 (%) に声道の長さを調整します。たとえば、104%、98% などです。
  • 声道の長さは、最大 +100% まで長くし、最小 -50% まで短くできます。
  • 声道の長さを現在の声のデフォルト値にリセットするには、<amazon:effect vocal-tract-length=“100%”> を使用します。

次の例では、Mizuki の声を使用して、声道の長さを変更する方法を示します。

<speak>
これは変更のない私の元の声です。<amazon:effect vocal-tract-length="+15%"> ここで、私の体がとても大きくなったことを想像してみてください。</amazon:effect> <amazon:effect vocal-tract-length="-15%"> 
または、私がとても小さくなったときの声をお望みですか? </amazon:effect> より細かい調整により、私の
声の音色をさらに制御できます。<amazon:effect vocal-tract-length="+10%"> たとえば、音を少し大きくしてみます。</amazon:effect> <amazon:effect vocal-tract-length="-10%"> または、少しだけ音を小さくします。</amazon:effect> 
</speak> 
聞く

Amazon Polly の声

(more…)

Apache MXNet バージョン 0.12 で Extends Gluon 機能を拡大、最先端の研究をサポート

先週、Apache MXNet コミュニティが MXNet バージョン 0.12 をリリースしました。このバージョンの主な機能は NVIDIA Volta GPU と Sparse Tensor のサポートです。同リリースには Gluon プログラミングインターフェイスの新機能がいくつも含まれています。こうした機能は特にディープラーニングモデルにおける最先端のリサーチを実装しやすくします。

  • 変分ドロップアウトは、オーバーフィッティングをリカレントニューラルネットワーク (RNN) に移行するために使うドロップアウト技術を効率的に適用できるようにします。
  • 畳み込み RNN、Long short-term memory (LSTM)、Gated Recurrent Unit (GRU) セルは、時間ベースのシーケンスと空間ディメンションの両方を示すデータセットのモデリングを可能にします。
  • 7 つの新しい損失関数、エクスポート機能、トレーナー機能の強化

変分ドロップアウト (VariationalDropoutCell) は最近のリサーチを足掛かりにして、RNN のオーバーフィッティングを移行させる新たなツールを提供しています。これは「リカレントニューラルネットワークのグランデッドアプリケーションの推論 (“A Theoretically Grounded Application of Recurrent Neural Networks”)」と「RNNDrop: ASR における RNN の新しいアプローチ (“RNNDrop: A Novel Approach for RNNs in ASR”)」を基盤にしています。オーバーフィッティングは、モデルがトレーニングデータセットに近すぎた状態でフィットしていることで発生するモデリングエラーです。そのため、新しいデータまたはテストデータセットが表れた場合に予測精度が低下してしまいます。ドロップアウトはランダムにモデルパラメータをゼロにするモデリング技術です。そのため、トレーニング中にモデルが必要以上に 1 つのインプットまたはパラメータに依存することがありません。とはいっても、この技術が RNN で適用されて成功したケースはまだありません。これまでの研究は、RNN のタイムステップ全体に渡りゼロになった完全なランダム性を持って、入力と出力に限りドロップアウトを適用することに集中してきました。変分ドロップアウトは、このタイムステップに渡るランダム性を除外し、同じランダムドロップアウト配列 (またはマスク) を各タイムステップで RNN の入力、出力そして非表示の状態に適用するようになっています。

(more…)

Apache MXNet リリースに追加された新しい NVIDIA Volta GPU と Sparse Tensor のサポート

Apache MXNet バージョン 0.12 が利用可能になりました。MXNet コミュニティに参加している貢献者の方々との協力により、強化点を追加する新機能の提供を実現することができました。今回のリリースでは、MXNet に 2 つの重要な機能が追加されています。

  • NVIDIA Volta GPU のサポートにより、ユーザーはトレーニングやニューラルネットワークモデルの推論に掛かる時間を大幅に削減することができます。
  • Sparse Tensor のサポートにより、ユーザーは保存とコンピューティングを効率的にした方法で Sparse マトリックスを使用しモデルをトレーニングすることができます。

NVIDIA Volta GPU サポートのアーキテクチャ

MXNet v0.12 リリースには NVIDIA Volta V100 GPU サポートが追加されています。これにより、ユーザーは畳み込みニューラルネットワークのトレーニングを Pascal GPU に比べて 3.5 倍も速くすることができます。ニューラルネットワークのトレーニングには、数兆にもなる浮動小数点 (FP) 倍数や追加が関係しています。通常、こうした計算には高精度にするため単精度浮動小数点 (FP32) が使われます。けれども、最近の研究結果によると、ユーザーがトレーニングで浮動小数点を半精度 (FP16) にしたデータタイプを使用しても、FP32 データタイプを使用したトレーニングと同じ精度を実現できることが分かっています。

Volta GPU アーキテクチャが Tensor Core を導入しました。各 Tensor Core は 1 時間ごとに 64 fuse-multiply-add ops を実行することができます。これは 1 時間ごとの各コアにおいて CUDA コア FLOPS を 4 倍速にした状態です。Tensor Core は下記で表示したように、それぞれ D = A x B + C を実行します。この場合、A と B は半精度マトリックスで C と D は半精度または単精度マトリックスであるため、様々な精度のトレーニングを実行していることになります。新しい様々な精度のトレーニングにより、ユーザーはネットワークのほぼすべてのレイヤーで FP16 を使用、そして必要な時だけより高い精度のデータタイプを使用することで、精密性を妥協することなく最適なトレーニングパフォーマンスを実現することができます。

MXNet を使用することで、ユーザーは FP16 を利用してモデルをトレーニングし、Volta Tensor Core を活用できます。たとえば、次のコマンドオプションを train_imagenet.py スクリプトでパスすれば、MXNet で FP16 トレーニングを有効にすることができます。

--dtype float16

先日、AWS Deep Learning AMI の新しいセットをリリースしました。これは、Amazon EC2 P3 インスタンスファミリーの NVIDIA Volta V100 GPU に最適化した MXNet v0.12 を含む様々なディープラーニングフレームワークを備えた状態でプリインストールされています。AWS Marketplace にてクリック 1 回で開始またはステップバイステップガイドを使用して、最初のノートブックを始めることができます。

(more…)

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…)

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…)