Amazon Web Services ブログ

Category: Apache MXNet on AWS

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

NNPACK ライブラリを使用した Apache MXNet の高速化

Apache MXNet は、ディープラーニングネットワークをビルドし、トレーニングし、再利用するために開発者が利用できるオープンソースライブラリです。このブログ投稿では、NNPACK ライブラリを使用して推論を高速化する方法を説明します。確かに、GPU 推論が利用できない場合、NNPACK を Apache MXNet に追加することは、インスタンスからより大きなパフォーマンスを引き出すための簡単なオプションかもしれません。常にそうですが、「かかる労力は異なる場合があり」、常に自分自身でテストを実行する必要があります。 開始する前に、トレーニングと推論の基礎の一部を確認していきましょう。 トレーニング トレーニングとは、ニューラルネットワークがデータセット内の各サンプルに対して正しいラベルを正しく予測する方法を学習するステップです。1 回に 1 個のバッチ (通常 32〜256 サンプル) ずつ、データセットがネットワークに送出され、バックプロパゲーションアルゴリズムを利用して、重みづけを調整することにより、エラー数の合計が最小限に抑えられます。 完全なデータセットを調べることをエポックと呼びます。大規模ネットワークは、可能な限り高い精度を達成するために、何百ものエポックに対してトレーニングする場合があります。これには数日から数週間かかることもあります。強力な並列処理能力を備えた GPU を使用することで、最も強力な CPU に比べてさえも、トレーニング時間を大幅に短縮することができます。 推論 推論とは、実際にトレーニングされたネットワークを使用して新しいデータサンプルを予測するステップです。Amazon Rekognition のように単一の画像内のオブジェクトを識別しようとする場合など、一度に 1 つのサンプルを予測することや複数のユーザーからの要求を処理するときに、複数のサンプルを同時に予測することなどが可能です。 もちろん、GPU は推論でも同様に効率的です。しかし、多くのシステムは、コスト、消費電力、またはフォームファクタの制約のために GPU に対応できません。したがって、CPU ベースの推論では、高速で実行できることが依然として重要なトピックになっています。ここでは NNPACK ライブラリが Apache MXNet で CPU 推論を高速化するのに役立つため、NNPACK ライブラリが、が採用されます。 NNPACK ライブラリ NNPACK は、GitHub で利用できるオープンソースライブラリです。どのように役立つのでしょうか?コンボリューションニュートラルネットワークについてお読みいただいていることでしょう。これらのネットワークは、コンボリューションとプーリングを適用して入力画像内の機能を検出する複数のレイヤーからビルドされています。 この投稿では実際の理論には触れませんが、NNPACK が高度に最適化される方法でこれらのオペレーション (および行列の乗算のような他のオペレーション) を実施しているとだけ申しておきましょう。基礎理論にご興味があるようでしたら、この Reddit の投稿で著者が述べた研究論文を参照してください。 NNPACK […]

Read More

Apache MXNet 用のモデルサーバーのご紹介

今週初めに、AWS はディープラーニングモデルを提供する Apache MXNet の上に構築されるオープンソースのコンポーネントである、Apache MXNet 用のモデルサーバーの提供開始を発表しました。Apache MXNet は、機械学習のための使いやすく簡潔な API を備えた、高速でスケーラブルなトレーニングおよび推論フレームワークです。Apache MXNet 用のモデルサーバーにより、エンジニアは MXNet モデルを簡単、迅速、大規模に提供することができます。 Apache MXNet 用のモデルサーバーとは Apache MXNet (MMS) 用のモデルサーバーは、推論のディープラーニングモデルを大規模なデプロイするタスクを簡略化するために設計された、オープンソースのコンポーネントです。推論のモデルをデプロイすることは、ささいなタスクではありません。さまざまなモデルアーティファクトの収集、提供スタックのセットアップ、ディープラーニングフレームワークの初期化と設定、エンドポイントの公開、リアルタイムメトリクスの出力、カスタム前処理および後処理コードの実行をはじめ、数多くのエンジニアリングタスクがあります。各タスクが必要以上に複雑にならないこともありますが、モデルのデプロイに関連する全体的な労力は、デプロイプロセスが時間のかかる面倒なものとなる要因として十分です。 MMS により、AWS はディープラーニングモデルのデプロイプロセスを大幅に簡略化する、Apache MXNet 用のオープンソースのエンジニアリングツールセットを提供します。モデルのデプロイに MMS を使用することにより得られる主要な機能を以下に示します。 MXNet モデルを提供するために必要なすべてをカプセル化する単一の「モデルアーカイブ」にすべてのモデルアーティファクトをパッケージ化し、エクスポートするためのツール。 HTTP 推論エンドポイント、MXNet ベースのエンジンを含むサービススタックの自動セットアップ。このすべては、ホストする特定のモデルに対して自動的に設定されます。 スケーラブルなモデルの提供用に NGINX、MXNet、および MMS で設定された、事前設定済みの Docker イメージ。 モデルの初期化から、前処理と推論を経てモデルの出力の後処理に至る、推論実行パイプラインの各ステップをカスタマイズする機能。 レイテンシー、リソース使用率、エラーを含む、推論サービスとエンドポイントをモニタリングするリアルタイムのオペレーションメトリクス。 Java、JavaScript、C# など一般的なスタックのクライアントコードの簡単な統合と自動生成を可能にする、OpenAPI 仕様のサポート。 MMS は PyPi パッケージを通じて、またはモデルサーバーの GitHub レポジトリから直接利用でき、Mac および Linux で実行されます。スケーラブルな本稼働のユースケースでは、MMS GitHub […]

Read More

ONNX 1.0 の提供開始を発表

アマゾン ウェブ サービス (AWS)、Facebook、Microsoft は Open Neural Network Exchange (ONNX) 形式が本稼働環境で使用できるようになったことを発表しました。 ディープラーニングモデルのオープンスタンダード形式である ONNX は、Apache MXNet、Caffe2、Microsoft Cognitive Toolkit、PyTorch といったディープラーニングフレームワーク間での相互運用を可能にします。ONNX 1.0 は、ユーザーがフレームワーク間でディープラーニングモデルを移動できるようにし、本番稼働環境に取り入れやすくします。たとえば、開発者は PyTorch のようなフレームワークを使用して洗練されたコンピュータビジョンモデルを構築し、Microsoft Cognitive Toolkit または Apache MXNet を使用し推論で実行することができます。 ONNX の初回リリースは 9 月だったので、我々はこの成長とコミュニティサポートの勢いやその関与をたのもしく思いながら観察しています。Qualcomm、Huawei、Intel などを含む数々のハードウェアパートナーが各社のハードウェアプラットフォームで ONNX 形式をサポートしていることを発表しており、ユーザーが異なるハードウェアプラットフォームでモデルを実行しやすくしています。新機能のコードやサポートに貢献して下さったコミュニティの皆さんに、この場を借りて感謝申し上げます。 開発者が最新のリサーチにアクセスし最先端モデルを本稼働アプリケーションと統合できるようにするため、今後も ONNX の進化において ONNX パートナーやコミュニティと協力していきます。 関連の発表 Facebook – ONNX V1 をリリース Microsoft – ONNX 1.0 – AI のオープンエコシステムを発表 今回のブログの投稿者について Sukwon […]

Read More