Amazon Web Services ブログ

新規 – AWS Deep Learning コンテナ

深層学習について学び、アプリケーションでそれを使う方法をできるだけ簡単にしたいと考えています。大規模なデータセットを取り込み、既存のモデルをトレーニングし、新しいモデルを構築して推論を実行する方法を知っていれば、将来のための十分な準備が整います。 新しい深層学習コンテナ 今日は、新しい AWS Deep Learning コンテナについて説明します。こうした Docker イメージは、他のフレームワークと共に、TensorFlow または Apache MXNet を使用した深層学習トレーニングや推論に使用する準備ができています。顧客が Amazon EKS や ECS を使用して TensorFlow ワークロードをクラウドにデプロイしていることを説明し、そうしたタスクをできる限り単純かつ簡単にすることを当社に依頼したのを受けて、これらのコンテナを構築しました。その間、トレーニング時間の短縮と推論性能の向上を目的として、AWS で使用するイメージを最適化しました。 イメージは事前設定および検証済みなので、Amazon ECS、Amazon Elastic Container Service for Kubernetes、Amazon Elastic Compute Cloud (EC2) でのカスタム環境とワークフローの設定が数分で可能であり、深層学習に集中できます。 AWS Marketplace や Elastic Container Registry で見つけて、無料で使用することができます。イメージはそのまま使用することもできますし、追加のライブラリーまたはパッケージを使用してカスタマイズすることもできます。 次の要素に基づく名前の複数の深層学習コンテナを使用できます (すべての組み合わせが使用できるわけではありません)。 フレームワーク – TensorFlow または MXNet。 モード – トレーニングまたは推論。単一ノードまたはマルチノードのクラスターでトレーニングをすることができます。 環境 – CPU または GPU。 […]

Read More

Amazon EC2 スポットインスタンスを使って GPU で深層学習モデルをトレーニング

ディープニューラルネットワークのアーキテクチャ向けに設計されたデータセットの収集と、トレーニングルーティンのコード化はすでに済んでいます。いつでも、最強の GPU インスタンスにある複数のエポックに、大規模なデータセットでのトレーニングを実行することが可能です。NVIDIA Tesla V100 GPU を搭載した Amazon EC2 P3 インスタンスが、計算集約型の深層学習トレーニングジョブに最適であることはわかりました。ただし、予算は限られており、トレーニングの費用を減らしたいと考えます。 スポットインスタンスの料金は、数時間から数日を要するトレーニングジョブを実行している深層学習の研究者や開発者のために、高性能 GPU を手頃で利用しやすいものにしています。スポットインスタンスを利用すると、オンデマンドレートよりも大幅に値引きされた価格で、予備の Amazon EC2 コンピューティング性能を利用できます。インスタンスおよびリージョンごとの最新の価格一覧については、スポットインスタンスアドバイザーをご覧ください。スポットインスタンスとオンデマンドインスタンスの主要な相違点の詳細については、Amazon EC2 ユーザーガイドをお読みいただくことをお勧めします。 スポットインスタンスは深層学習のワークフローに最適ですが、オンデマンドインスタンスと比べ、使用上の課題がいくつか存在します。まず、スポットインスタンスはプリエンプションが可能で、2 分前に通知すれば終了できます。これは、トレーニングジョブを実行し完了する際にインスタンスを当てにできない、ということを意味します。したがって、時間的制約のあるワークロードにはお勧めしません。第二に、トレーニングの進行状況が正常に保存されていなかった場合、インスタンスを終了したときにデータが紛失する可能性があります。第三に、スポットインスタンスを作成した後はアプリケーションを中断させないことを決定した場合、スポットインスタンスを停止し、オンデマンドインスタンスまたはリザーブドインスタンスとして再作成する以外に選択肢がなくなります。 これらの課題に対処するために、深層学習のトレーニングワークフロー向けにスポットインスタンスをセットアップし、同時に、スポットの中断が発生した場合にはトレーニングの進行状況の紛失を最小限に抑えることが可能な、ステップバイステップのガイドを用意しました。次の特徴を維持しながらセットアップを実装することが、ここでの目標です。 コンピューティング、ストレージ、コードのアーティファクトを分離し、コンピューティングインスタンスをステートレスに維持する。これにより、インスタンスが終了したときに、復旧とトレーニング状態の復元を簡単に行えるようになります。 データセット、トレーニングの進行状況 (チェックポイント)、ロゴのために、専用のボリュームを使用する。このボリュームは永続的で、インスタンスの終了の影響を受けるようなことがあってはなりません。 バージョン管理システム (例: Git) を使用する。このリポジトリは、トレーニングを開始/再開するためのクローンを作成する必要があります。これにより、トレーサビリティが有効になり、インスタンスが終了したときに変更されたコードが紛失することを防げます。 トレーニングスクリプトのコードの変更を最小限に抑える。これにより、トレーニングスクリプトを個別に開発することが可能になり、バックアップとスナップショットのオペレーションをトレーニングコードの外部で実行できます。 さまざまな自動化終了後の交換用インスタンスの作成、起動時のデータセットとチェックポイントのEBS ボリュームの添付、 アベイラビリティーゾーンを横断したボリュームの移動、インスタンスの状態の復元実行、トレーニングの再開、トレーニング完了後のインスタンスの終了、これらを自動化します。 TensorFlow と AWS 深層学習 AMI を使用したスポットインスタンスの深層学習 この例では、スポットインスタンスと AWS 深層学習 AMI を使って、CIFAR10 データセットで ResNet50 モデルをトレーニングします。 ここでは、AWS 深層学習 AMI バージョン 21 で入手可能な CUDA 9 を使って構成された、TensorFlow […]

Read More

レイテンシーを考慮した Amazon DynamoDB アプリケーションのための AWS Java SDK HTTP リクエスト設定の調整

Amazon DynamoDB は、大規模に実行されるアプリケーションとサービスに低レイテンシーと高スループットのパフォーマンスを提供するために設計された NoSQL クラウドデータベースサービスです。ユースケースの例には以下が含まれます。 大規模多人数参加型オンラインゲーム (MMOG) バーチャルリアリティとオーグメントリアリティ e コマースでのチェックアウトと注文処理 リアルタイムの株価情報と売買 そのようなシステムをグローバルで運営していると、時折レイテンシースパイクが発生することがあります。これらのスパイクは、一時的なネットワーク中断による再試行、サービス側およびネットワーク側の問題、または過剰な負荷がかかった応答が遅いクライアントが原因で発生する場合があります。 根本的な原因にかかわらず、DynamoDB サービスとやり取りするアプリケーションは、レイテンシースパイクを回避するために役立つ再試行戦略に従うよう調整しておく必要があります。使用している AWS SDK に応じて、基盤となる HTTP クライアントの動作は、HTTP を経由する低レベルのクライアント対サーバー通信がアプリケーションのレイテンシー要件に従うことができるように、デフォルト設定を設定し直すことが可能です。このブログ記事では、レイテンシーを考慮した DynamoDB クライアントのための、HTTP リクエストのタイムアウトと再試行動作の微調整に利用できる AWS Java SDK 設定オプションについて説明します。また、適切な設定のメリットを実証するために、2 つの仮定上のアプリケーションシナリオについても説明します。 DynamoDB クライアントのための AWS Java SDK HTTP 設定 AWS Java SDK は、HTTP クライアントの動作と再試行戦略に対する完全な制御を提供します。標準 HTTP 設定の情報については、「クライアント側の設定」を参照してください。一方で、レイテンシーを考慮した DynamoDB アプリケーションクライアントを構築するために必要なより詳しい設定は、ClientConfiguration (JavaDocs) コード実装にあります。 このブログ記事では、非同期 DynamoDB クライアント を Java でゼロから構築し、AWS SDK からの ClientConfiguration […]

Read More

Amazon SageMaker で Optuna を用いたハイパーパラメータ最適化を実装する

Amazon SageMaker はお客様の機械学習のワークロードにおいて様々な選択肢を提供します。深層学習フレームワークの選択肢として2018年の AWS Summit Tokyo で発表された Chainer 対応はその一つです。Chainer は 株式会社Preferred Networks により開発された深層学習フレームワークで、計算時に動的にグラフを生成する define-by-run の考え方 (imperative な実行とも呼ばれます) を世界に先駆けて取り入れました。株式会社Preferred Networks はこの Chainer とは独立に、同じく define-by-run の思想に基づいたハイパーパラメータの最適化 (HPO) のための Optuna を2018年12月に発表しました。本稿では、AWS が提供する SageMaker 上で Optuna を用いた HPO を行う方法とアーキテクチャについてご紹介します。 導入 SageMaker が提供する HPO の選択肢 Amazon SageMaker は、TensorFlow, Apache MXNet, PyTorch, Chainer, scikit-learn, Horovod, Keras, Gluon などのフレームワーク・インターフェースに対応し、すべての開発者とデータサイエンティストに機械学習モデルの構築・学習・デプロイ手段を提供する AWS のサービスです。SageMaker はマネージド型の […]

Read More

【開催報告】第3回 Amazon SageMaker 事例祭り

アマゾン ウェブ サービス ジャパン株式会社 (AWS) 機械学習ソリューションアーキテクトの宇都宮聖子です。AWS 目黒オフィスでは、お客様の事例紹介登壇を交えた Amazon SageMaker のセミナーとして、「Amazon SageMaker 事例祭り」を毎月開催しています。2019年3月12日に開催された第3回 Amzon SageMaker 事例祭りでは、株式会社ディー・エヌ・エーの加藤様、クックパッド株式会社の染谷様をゲストスピーカーにお迎えし、Amazno SageMaker の入門ハンズオンまで、130名を超えるたくさんの方々にご参加いただきました。   Amazon SageMaker 紹介 「Amazon SageMakerとは何か」 アマゾン ウェブ サービス ジャパン株式会社 機械学習ソリューションアーキテクト 鮫島 正樹  [slides] Amazon SageMaker は、開発・トレーニング・デプロイと一連の機械学習のワークフローにおける課題を解消するためのサービスです。AWS ソリューションアーキテクト鮫島より、機械学習のマネージドサービスである Amazon SageMaker について、開発・学習・推論を効率的に実装する各種機能の基本的な使い方、SageMaker を使った機械学習のフローやアーキテクチャ、SageMaker 対応の学習スクリプトや分散学習対応コードの書き方など SageMaker への移行の際に気をつけること、機械学習パイプラインの構築支援機能、実際のユースケースなど、SageMaker を便利にお使いいただくための方法をご紹介しました。 Amazon SageMaker Ground Truth、Amazon Elastic Inference、ノートブックインスタンスの16TBまでのディスク拡張、TensorFlow の script mode 対応、AWS Step Functions […]

Read More

AWS RoboMakerでROSアプリケーションのビルドとバンドルをおこなう

12か月前から、クラウドロボティクスサービスであるAWS RoboMakerの開発を開始しました。 私たちに直面していた最大の疑問の1つは、次のとおりでした。サービス上でROSアプリケーションを簡単に実行できるようにするにはどうすればよいのか。 ロボットアプリケーションは、多数の依存関係を持つさまざまなパッケージが大量に混在しています。 シミュレーションも含まれると、その依存関係のリストがさらに増えます。 多くの検討と研究の結果、私たちはappimage、flatpak、snapcraftに触発され、ローカルのの開発環境でも私たちのサービスでも使える単一のファイルフォーマットを作成しました。 このフォーマットをbundleと呼びます。 パッケージングアーティファクトをどのような設計するかを決定した後、生成を容易にするためのコマンドラインツールを作成したいと思いました。 ツールが既存のROSエコシステム内に収まることが私たちにとって非常に重要でした。 その結果ROSのビルドツールの中で最新かつ最高のものであるcolconの上に構築することにしました。 ColconはROS1とROS2アプリケーションを構築できます。 またそれは非常に拡張性があり、革新的で重要な機能の多くを提供します。 この記事では、既存のROSビルドツールと、なぜcolconがROS2のビルドツールとして選ばれたのかを説明しています。 Colconは私たちの代わりに多くの大変な作業を肩代わりすることにより、私たちは特定の機能に集中することができます。 さらに、colcon buildはcatkin_makeとament_makeを利用してビルドしていたパッケージを変更することなく置き換えます。 つまり、colconの上にツールを構築することで、AWS RoboMakerユーザーは単一のツールをインストールしてフルワークフローを実行し、AWS RoboMakerで使用するためのbundleを生成できます。 この記事では、AWS RoboMakerで使用するbundleを作成するための通常のワークフローと、頻繁に発生する問題に対するいくつかの解決策について説明します。 2番目のセクションでは、最新バージョンの「bundle」ファイルフォーマットについて詳しく説明し、colcon bundleを実行してbundleを作成するときに何が起こるかについて概要を説明します。 なぜbundleなのか ROSシミュレーションワークフローには、ROSおよびその他のアプリケーションのランタイム依存関係がインストールされた環境が必要です。 通常は、さまざまなapt-get installコマンドを実行することによって実現されます。 このインストールは時間がかかり、さらに公開されているパッケージのアップデートはいつでも発生する可能性があるため、同じインストールを確実に再現することはできません。 私たちのサービスでは、シミュレーションを実行するたびにaptを使用して新しい環境をインストールすることの信頼性を心配していたので、さまざまなパッケージ形式を調べました。 ROSアプリケーション全体で最も魅力的で信頼性の高い配布形式はDebianパッケージでした。 それはROSのロボットを動かすのに必要な、boostまたは他の外部ライブラリ、そして実際のアプリケーションコードなど、すべてを含むことができます。 ダウンロード、作成、および更新のための最適化を柔軟に追加できるようにするため、既存のフォーマットを使用しないことにしました。 そこで私たちは「bundle」フォーマットと、それをサポートするための対応するツールを作成しました。 最初のバージョンはうまくいきましたが、以下のようないくつかの制限がありました。 ワークスペースの更新のみでbundleを更新するのは、最初のcolcon bundleの呼び出しと同じくらいの時間がかかりました。 更新されたbundleをロボットにデプロイすることは、ダウンロードとbundleコンテンツの抽出の両方において、期待したほど速くはありませんでした。 これらの制限を軽減または削除するための最適化を含むbundle形式の、バージョン2を発表できることに興奮しています。 フォーマットは現在部分的なダウンロードと部分的な抽出をサポートしています。 これには3つの大きな利点があります。 2G / 3Gといった帯域幅に制約のあるリモートデバイスであるロボットのアップデートで、使用される帯域幅を削減することができました 必要なものだけを抽出するようになりました。bundleの大部分が変更されていない場合は、ダウンロードまたは展開に無駄なコストを負う必要はありません。 ローエンドのデバイスでは、これにより大幅な時間の節約になります(TurtleBotsでは、デプロイにかかる時間が60分から1分に短縮されました) 全体のアーカイブは圧縮されていないので、段階的にbundleすることができます。 これにより、ワークスペースを簡単に更新するための再bundle時間が5分以上から数秒に短縮されます AWS RoboMakerはこの新しいバージョンをサポートしています。 これらの新しい機能を試してみたい場合は、開発環境でsudo pip3 install -U colcon-bundleを実行してください。 このブログの後半では、この新しい形式の実装について詳しく説明します。 […]

Read More

AWS は今年もNAB Show に出展します

アマゾン ウェブ サービスは、来る2019年4月8日から11日の4日間、米ラスベガスで開催される世界最大級の放送機器展示会「NAB Show 2019」に出展します(ブース番号:SU2202)。  メディアコンテンツの取り込みから制作、処理、配信まで、ワンランク上のプレミアム体験を創り上げる、クラウドとオンプレミスを組み合わせた、クラウドベースの様々な動画ソリューションを紹介します。AWSブースでは、コンテンツ制作、配信、メディアサプライチェーン、および AI&MLに関するAWSの進化をお見せします。 (申込サイトは英語です。英語での申し込みをお願い致します。) デモンストレーション コンテンツ制作、コンテンツ配信、そして安定したメディアサプライチェーンへのアクセスをサポートする、高度なクラウドベースのメディアと機械学習サービスについて実演を交えながらご紹介します。 コンテンツ制作に注目 クラウド制作環境 視覚効果、アニメーション、編集ワークロード用に、クラウドへクリエイティブな制作環境をデプロイします。AWS Thinkbox Deadline、Amazon Elastic Cloud Compute (EC2) インスタンス、および Amazon Simple Storage Service (S3)、Amazon FSx など、 AWS クラウドストレージオプションを使用してレンダリング、仮想ワークステーション、データストレージをグローバルに拡張します。 次世代型動画処理 動画エコシステムの進化をご覧いただけます。配給企業から放送局、ポストプロダクション会社の間で採用されているマスターフォーマット「IMF(Interoperable Mastering Format)」パッケージを取り込み、Common Media Application Format (CMAF) 出力を作成することで、動画配信までの作業を大幅に簡素化します。さらに画質クオリティを保ちながら、できる限りビットレートを下げる QVBR (Quality-defined variable bitrate)エンコーディングにより、ストレージと転送コストを削減します。 クラウド DVR サービスで視聴者を惹きつける エンドツーエンドのクラウド DVR ワークフローを作成することで、動画プロバイダーは迅速にクラウドサービスを開始し、キャッチアップやテレビのやり直しなどのタイムシフト機能を簡単に統合できます。 機械学習でライブスポーツの価値を向上する AWS メディアサービスと機械学習ツールを使用することで、プレーヤーの識別やリアルタイムでの行動の追跡、メタデータのタグ付けの合理化、スポーツ中継の対象範囲の拡大を実現できます。 コンテンツ配信のためのソリューション セキュアで信頼性の高い動画転送 IP 上で高品質のライブ動画を確実に転送、かつ安全に共有して、価値の高い放送のためのクラウドに容易に恩恵をもたらします。エンタイトルメントを使用して、アクセスとセキュリティをきめ細かく制御しながら、ライブコンテンツをパートナーにシームレスに配信します。 […]

Read More

Amazon Aurora MySQL 互換エディションでグローバルトランザクション ID (GTID) によるレプリケーションがサポートされるようになりました

Amazon Aurora MySQL 互換エディションは、ハイエンドな商用データベースの速さや信頼性と、オープンソースデータベースのシンプルさと高い費用対効果とを組み合わせたリレーショナルデータベースエンジンです。また Amazon Aurora with MySQL compatibility は、標準の MySQL Community Edition に比べ最大 5 倍のスループットを実現します。 本ブログ記事では、オンプレミスまたは Amazon EC2 上でホストされている MySQL DB を、新たにリリースされた GTID べースのレプリケーション機能を使用する Aurora MySQL に移行するのに役立つガイダンスについて解説します。 GTID ベースのレプリケーションとは? グローバルトランザクション ID (GTID) とは、MySQL、または MySQL 互換エンジンを実行するデータベースサーバー上でコミットされた各トランザクションに作成され、関連付けられる固有の識別子です。この ID は元のサーバーと、さらにトランザクションの両方を個別に識別します。 フェイルオーバーやダウンタイム後、データベース管理者にとって最大の課題は、ひとつの変更もスキップされることなく、また、一切の競合が生成されることない方法でレプリケーションを復元することです。ワークロードが動的に、スケーラブルに、また複雑になるに従って、これらの再構成タスクもますます頻度が増えていきます。その結果として、バイナリログファイルの位置を特定するのに必要な管理的オーバーヘッドが増大し、それによって、復旧時間が長引きます。

Read More

MXNet と Amazon Elastic Inference を使用した、深層学習の推論コストの削減

Amazon Elastic Inference (Amazon EI) は、Amazon EC2 および Amazon SageMaker インスタンスに低コストの GPU 駆動のアクセラレーションをアタッチ可能にするサービスです。MXNet は AWS re:Invent 2018 での最初のリリース以来 Amazon EI をサポートしています。 このブログでは、MXNet で Amazon EI を使った場合のコストとパフォーマンスのメリットについて詳しく見ていきます。当初 43ms だった推論のレイテンシーを 1.69 倍改善し、コスト効率が 75% 向上している例をご紹介します。 Amazon Elastic Inference のメリット Amazon Elastic Inference は深層学習推論の実行コストを最大 75% 削減できます。最初に、Elastic Inference とその他の Amazon EC2 のオプションをパフォーマンスとコストの点で比較します。 以下の表は各 EC2 オプションのリソース、キャパシティー、コストを詳しく示したものです。c5.xlarge + eia1.xlarge と p2.xlarge のコンピューティング性能がほぼ同じである点に注目してください […]

Read More

【4回シリーズ/4回目】メディアサービス - リファレンスアーキテクチャとテスト結果

スポーツ中継、ゲーム、ニュース配信、TV番組など、動画配信のニーズは高まっているものの、配信遅延や最適なサービスの選択に困っている方もいらっしゃるのではないでしょうか?メディアサービスを検討する際によくある課題とソリューションについて、以下のように4つのパートに分けて解説します。最終回 四つ目のテーマは「参照アーキテクチャとテスト結果」です。 パート 1:レイテンシーの定義と測定 パート 2:エンコード、パッケージ化、および CDN 配信のおすすめ最適化 パート 3:動画プレイヤーのおすすめ最適化 パート 4:参照アーキテクチャとテスト結果(この記事)

Read More