Amazon Web Services ブログ

Category: Apache MXNet on AWS

新機能 – Amazon SageMaker Neo – トレーニングしたモデルをどこでも実行

機械学習(Machine Learning: ML)は、トレーニングと推論という2つの異なるフェーズに分かれています。 トレーニングは、モデルを構築すること、すなわち、意味のあるパターンを識別するためにデータセット上で ML アルゴリズムを実行することを扱います。これには大量のストレージとコンピューティングパワーが必要なことが多く、クラウドは Amazon SageMaker や AWS Deep Learning AMI などのサービスで ML ジョブをトレーニングするためのうってつけな場所になります。 推論は、モデルの使用、すなわちモデルが一度も見たことがないデータサンプルの結果を予測することを扱います。ここでは、要件が異なります。開発者は通常、待ち時間(1回の予測でどれくらい時間がかかるか)とスループット(並列で実行できる予測の数)を最適化することに関心があります。 もちろん、リソースが制約されているデバイスを扱う場合は、予測環境のハードウェアアーキテクチャがこのようなメトリックに非常に大きな影響を与えます。Raspberry Pi の愛好家として、私はしばしば、若い仲間が私の推論コードをスピードアップするためにもう少し誘導して欲しいと思っています。 特定のハードウェアアーキテクチャーのモデルをチューニングすることは可能ですが、ツールの欠如が原因でエラーが発生しやすく時間がかかります。ML フレームワークやモデル自体にマイナーな変更を加えると、通常、ユーザーは再び最初からやり直す必要があります。残念なことに、ほとんどの ML 開発者は、基礎となるハードウェアにかかわらずどこでも同じモデルを展開する必要があり、パフォーマンスは大幅に向上しません。

Read More

Amazon Elastic Inference — GPUを利用した深層学習推論の高速化

近年の AI や深層学習の発展には、Graphics Processing Units (GPU) の素晴らしい処理能力が重要な役割を果たしてきました。 10年程前、研究者は機械学習や High Performance Computing (HPC) に対して、大規模なハードウェア並列演算能力を活用する方法を編み出しました。興味のある方は、2009年にスタンフォード大から発表され大きな影響を与えた、この論文 (PDF) をご覧ください。 現在では、GPU のおかげで開発者やデータサイエンティストは複雑なモデルを医療画像分析や自動運転の大量のデータで学習できています。例えば、Amazon EC2 P3 ファミリーを利用すると1インスタンスあたり最大8枚の NVIDIA V100 GPU、つまり混合精度演算で最大 1PFLOPS を利用できます。これが10年前の最速のスーパーコンピューターと同じパフォーマンスだなんて信じられるでしょうか?

Read More

Amazon EC2でのDeep Learningのためのダイナミックトレーニングの紹介

本日(2018/11/27)、Deep Learningモデルのためのダイナミックトレーニング(Dynamic Training: DT)を発表することに興奮しています。DTを使用すると、Deep Learningの実務者は、クラウドの弾力性と規模の経済性を活用して、モデルトレーニングのコストと時間を削減できます。DTの最初のリファレンス実装は、Apache MXNetに基づいており、オープンソースで Dynamic Training with Apache MXNet に公開されています。このブログ記事は、DTの概念、実現したトレーニングの結果やトレーニングへの活用方法を紹介します。

Read More

Pixm が、AWS で Apache MXNet を使用して、深層学習でフィッシング攻撃に対処

膨大なサイバーセキュリティに関する努力にもかかわらず、フィッシング攻撃は依然として増加しています。フィッシングとは、加害者が評判の良い企業であるように偽り、個人を騙してパスワードやクレジットカード番号などの個人情報を公表させようとする詐欺の一形態です。最も一般的なソーシャルネットでの不正行為です。  最近の Verizon データ漏えい/侵害調査報告書によると、現在のすべての違反の 93% はフィッシングメールから始まっています。 フィッシング攻撃を阻止する従来のソリューションは、ブラックリスト、IP レピュテーション、迷惑メールフィルタをクラウドにデプロイして、既知のフィッシングサイトを停止します。この報告書によると、報告されているフィッシングキャンペーンは 17% に過ぎないため、未報告または新しいフィッシングサイト (ゼロデイフィッシングとも呼ばれる) からの攻撃は停止されません。そして、攻撃が検出されても、攻撃が検証されてブラックリストデータベースに登録されるまでに数分から数時間かかることがあります。 ニューヨークに本拠を置くスタートアップの Pixm は、コンピュータビジョンを使用して、ますます増大するフィッシングの問題に新たなアプローチを取ります。Pixm の深層学習コンピュータビジョンベースのエンドポイントセキュリティソリューションは、デスクトップまたはラップトップのブラウザ内で、クリックした時点でリアルタイムでフィッシング攻撃を検出します。 「マルウェアに重点が置かれていますが、すべてはフィッシングメールから始まります。ところが、まだフィッシングのセキュリティにそれほど重点が置かれているわけではありません」と、Pixm の共同創設者兼最高製品責任者である Arun K. Buduri 氏は説明します。「フィッシング攻撃を阻止するためのソリューションとしてはブラックリストと IP レピュテーションが好まれていますが、どちらも反応的であり事後的です。」 Pixm が 2016 年の米国での選挙でブロックした攻撃のヒートマップでは、攻撃の 70% 近くが米国の中小企業や大学でホストされていました。 Pixm のソリューションは、デスクトップにウイルス対策ソフトウェアをインストールするのと同じ方法で、エンドポイントのデバイスにデプロイされます。顧客がブラウザでフィッシングリンクを開くと、Pixm のソフトウェアがページを視覚的に分析し、コンピュータビジョンによるオブジェクト検出と空間分析を実行してフィッシング攻撃かどうかを判断し、1 秒以内に終了させます。たとえば、加害者が大手銀行の顧客をターゲットとし、正式な銀行のウェブサイトと同じように見えるフィッシングサイトを作成することがよくあります。 Pixem は、Apache MXNet 深層学習フレームワークで作成した深層学習コンピュータビジョンモデルを使用して、ウェブサイトのスクリーンショットを継続的に分析します。たとえば、Pixm はオブジェクト検出を使用してモデルをブランドのロゴでトレーニングし、銀行のログインページのロゴが本物かどうかを検出します。 Pixm は、Caffe、Caffe2、TensorFlow、Keras などの多数の深層学習フレームワークを評価しましたが、Amazon EC2 コンピューティングインスタンスを使用して複数のオペレーティングシステムと高性能のモデル推論をサポートしていることから、最終的に MXNet を選択しました。また、MXNet は、Amazon EC2 P3 インスタンスで利用できるグラフィック処理ユニット (GPU) を使用して、大量の画像データを素早く大規模でトレーニングすることも可能にしています。 「4 か月間で、顧客のために 800 […]

Read More

【開催報告】Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –

こんにちは。AWS ソリューションアーキテクトの八木達也 ( @ygtxxxx ) です。 7月23日に、「Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –」を開催いたしました。 AWSジャパン主催でデジタル広告業界の方向けのイベントを開催するのは2年ぶりでしたが、定員60人のところ55名の方にお集まりいただき、盛況となりました。             このイベントは「Digital Advertising、AdTech 領域における Machine Learningの実践知」を「互いに学び合う」ことができる場を作ることを目標としていたため、AWSメンバーによるプレゼンテーションだけではなく、お客様プレゼンテーションを中心としたAGENDAを構成しました。機会学習という領域における、テクノロジー視点でのお取組み、組織育成視点でのお取組み、それぞれの視点で最先端な活動をなさる方々よりご登壇を頂きました。 まずは主催者の唐木/八木よりオープニングセッションを行いました。 唐木より全体の説明を行い、八木より「Machine Learning for Digital Advertising」というタイトルでプレゼンテーションを行いました。 Machine Learning for Digital Advertising from Amazon Web Services Japan 次に、アナリティクス スペシャリスト ソリューションアーキテクトの志村より「AWS ML Services Update」というタイトルでプレゼンテーションを行いました。 AWS ML Update from Amazon […]

Read More

複数の GPU に対する深層学習トレーニングをスケーリングするためのハイパーパラメーターの調整の重要性

複数の GPU による並列プロセスは、深層モデルのトレーニングのスケーリングを行う上で重要なステップです。トレーニングを繰り返すたびに、一般的に、ミニバッチと呼ばれるデータセットの小さなサブセットがプロセスされます。単一の GPU が使用可能の場合、それぞれのトレーニングの繰り返しにおけるミニバッチの処理は、この GPU により取り扱われます。複数の GPU でトレーニングするとき、ミニバッチはプロセスの負荷を均等に分散するために使用可能な GPU 全体に分割されます。各 GPU を完全に使用するためには、各追加 GPU でミニバッチのサイズを直線的に増大させる必要があります。ミニバッチのサイズは、トレーニング速度に影響を与えるだけではなく、トレーニングされるモデルの質にも影響を与えます。ミニバッチのサイズが大きくなると、他のハイパーパラメーターを微調整して、類似するモデルの質でより高速なトレーニングができるようにすることが重要です。 Gluon によるマルチ GPU と分散トレーニング 最新の真相学習モデルにより必要な広範なデータの量により、複数の GPU と分散マシンにスケーリングすることで、調査と本番稼働のための大幅な時間節約となる可能性があります。Amazon SageMaker や Amazon Elastic Compute Cloud (Amazon EC2) のようなサービスでは、数百 GPU の分散トレーニングをセットアップすることは、痛みのないだけでなく、正確な使用量に対して支払うだけで非常に経済的で、高価で十分に活用されていないハードウェアフリートを維持する必要はありません。 Apache MXNet は、柔軟でより効率的な深層学習プラットフォームです。 これは、複数のホストにわたるマルチ GPU と分散トレーニングに特に適しています。Apache MXNet の Gluon ライブラリは、深層学習のための明確で正確、さらにシンプルな API を提供します。gluon による複数の GPU のトレーニングおよび複数のマシンによる分散トレーニングに関するチュートリアルでは、マルチ GPU と分散トレーニングの容易なセットアップをデモンストレーションします。 トレーニングのハイパーパラメーター トレーニングのハイパーパラメーターは、勾配降下法によっては学習できないが、最終的なモデル品質に影響を与えるすべてのパラメーターを構成します。これらのパラメーターは、学習速度およびモメンタムなどの最適化パラメーター、ランダムなカラーシフト量などの増強パラメーター、および他の学習以外のパラメーターを含みます。 MXNet Gluon API は、すべての […]

Read More

Apache MXNet (Incubating) が Keras 2 のサポートを追加

Keras および Apache MXNet (Incubating) のオープンソースプロジェクトへの参画者のおかげで、Keras-MXNet 深層学習のバックエンドが現在利用可能です。Keras は Python で書かれた高水準なニューラルネットワーク API です。CNN および RNN のプロトタイピングを素早く簡単に作成することで知られています。 Keras の開発者は、現在、畳み込みニューラルネットワーク (CNN) のトレーニングおよび再帰型ニューラルネットワーク (RNN) の分散トレーニング向けのハイパフォーマンスな MXNet 深層学習エンジンを使用することができます。コードを数行更新すると、Keras の開発者は、MXNet のマルチ GPU の分散トレーニング機能を使用して、トレーニングスピードを速めることができます。MXNet モデルを保存できることは、このリリースのもう一つの注目すべき機能です。Keras での設計、Keras-MXNet によるトレーニング、本番環境のインターフェイスの実行が大規模な MXNet で可能です。 Keras 2 および MXNet の分散トレーニング この記事では、Keras-MXNet のインストール方法と CNN および RNN のトレーニング方法の説明をします。以前、他の深層学習エンジンで分散トレーニングを実施したことがある場合は、退屈で難しいかもしれません。それでは、Keras-MXNet について内容を見ていきましょう。 インストールは数ステップだけです。 AWS 深層学習 AMI のデプロイ Keras-MXNet のインストール Keras-MXNet の設定 1. AWS […]

Read More

Apache MXNet で事前にトレーニングを受けたモデルを使用する

このブログ記事では、Apache MXNet で事前トレーニングを受けたモデルの使用方法について解説します。複数モデルを試してみようと思われた理由は? 最高の精度をもったモデルを選ばないのはなぜでしょう? この記事の後半で説明するように、同じデータセット上でこれらのモデルがトレーニングを受け最高の精度を得るために最適化されたとしても、個々のイメージではその動作にわずかながら違いが生じます。また、予測速度も変動する可能性があります。これは多くのアプリケーションにとって重大な要素です。事前にトレーニングされたモデルをいくつか試すことで、自分のビジネス課題を解決するのに最適なモデルを見つけることができます。 まず、Apache の MXNet モデルから、3 つのイメージ分類モデルをダウンロードしてみましょう。 VGG-16 (研究報告)、ImageNet Large Scale Visual Recognition Challenge (ImageNet 大規模ビジュアルリコグニッションチャレンジ) における 2014 年度の分類最優秀モデル。 Inception v3 (研究報告)、GoogleNet の発展、オブジェクト検査での 2014 年度最優秀モデル。 ResNet-152 (研究報告)、複数カテゴリにおける 2015 度最優秀モデル。 各モデルについて次に示す 2 種類のファイルをダウンロードする必要があります。 ニューラルネットワークの JSON 定義を含むシンボルファイル: レイヤー、接続、アクティベーション機能など。 全接続加重、バイアスの値を保存する加重ファイルで別名パラメーター。トレーニングフェーズ中にネットワークにより習得。 # MacOS users can easily install ‘wget’ with Homebrew: ‘brew install wget’ !wget http://data.dmlc.ml/models/imagenet/vgg/vgg16-symbol.json -O […]

Read More

Apache MXNet Model Server が規模に応じたモデルサービングのために最適化されたコンテナイメージを追加

AWS は、本番ユースケースのためのモデルサービングのデプロイメントを効率化する Apache MXNet Model Server (MMS) v0.3 をリリースしました。このリリースには、GPU および CPU 上の深層学習ワークロード用に最適化された事前構築済みのコンテナイメージが含まれています。これによって、エンジニアはスケーラブルなサービングインフラストラクチャをセットアップできるようになります。Apache MXNet Model Server (MMS) と、規模に応じて深層学習モデルを提供する方法の詳細については、この先をお読みください! Apache MXNet Model Server (MMS) とは? MMS は、オープンソースのモデルサービングフレームワークで、規模に応じて深層学習モデルをデプロイするタスクをシンプル化するように設計されています。以下は MMS の主な利点の一部です。 MXNet と ONNX のニューラルネットワークモデルを単一のモデルアーカイブにパッケージ化するためのツール。これは、モデルを提供するために必要なアーティファクトのすべてをカプセル化します。 モデルアーカイブにパッケージ化されたカスタムコードを使用して推論実行パイプラインの各ステップをカスタマイズする機能。これは、初期化、前処理、および後処理の上書きを可能にします。 事前設定されたサービングスタック (REST API エンドポイントを含む) と推論エンジン。 スケーラブルなモデルサービングのために事前構築および最適化されたコンテナイメージ。 サービスとエンドポイントを監視するためのリアルタイムの運用メトリクス。 このブログ記事では、コンテナを使用して MMS を本番環境にデプロイする方法、クラスターを監視する方法、およびターゲットの需要に応じてスケールする方法を見て行きます。 コンテナでの MMS の実行 スケーラブルな本番用スタックのセットアップに進む前に、コンテナで MMS を実行する方法を確認しましょう。これを理解しておくことは、スケーラブルな本番クラスターのより複雑なセットアップについて考察するときに役立ちます。 この新リリースでは、事前構築され、最適化された MMS コンテナイメージが Docker Hub に発行されます。これらのイメージは、CPU ホスト […]

Read More

Model Server for Apache MXNet、ONNX サポートと Amazon CloudWatch の組み込みを開始

AWS は、大規模な予測を行うための深層学習モデルをパッケージ化してサービスを提供するオープンソースライブラリである Model Server for Apache MXNet (MMS) のバージョン 0.2 をリリースしました。それにより、Open Neural Network Exchange (ONNX) 形式でモデルを提供し、ダッシュボードとアラームを作成できる Amazon CloudWatch に直接、運用メトリックを公開できるようになります。 MMS とは? MMS は、大規模の推論のための深層学習モデルの展開を簡素化するオープンソースライブラリです。MMS は、次の機能を備えています。 モデルアーティファクトを単一のモデルアーカイブにパッケージ化するためのツール。アーカーブはモデルを提供するために必要なすべてのアーティファクトをカプセル化します。 モデルアーカイブにパッケージ化されたカスタムコードを使用して、推論の実行パイプラインの各段階をカスタマイズする機能。 REST API エンドポイントと推論エンジンを含む、事前構成されたサービススタック。 スケーラブルなモデルの提供のために、MMS、MXNet、および nginx を含む Docker イメージ。 MMS およびエンドポイントを監視するためのリアルタイム運営メトリックス。 事前構成された Docker イメージである PyPI (Python Package Index) パッケージから、または Model Server GitHub リポジトリから直接、MMS をインストールできます。 ONNX モデルサービスの開始 ONNX は、複数の深層学習フレームワークの間の相互運用性を可能にします。MMS バージョン 0.2 […]

Read More