Amazon Web Services ブログ

Category: SageMaker

Model Server for Apache MXNet を使って、独自の深層学習フレームワークを Amazon SageMaker で使用する

深層学習 (DL) フレームワークを使用すれば、機械学習 (ML) モデルを構築し、トレーニングできます。しかし ML モデルを本番環境でデプロイし、予測 (推論ともいう) をリアルタイムで処理するプロセスは複雑です。そのため ML の実践者は、これらのモデルをホストし推論リクエストを大規模に処理できる、スケーラブルかつパフォーマンスの高いモデルサーバーを構築する必要があります。 この問題に対処しようと、Model Server for Apache MXNet (MMS) が開発されました。MMS は極めてスケーラブルなだけでなく、すぐに使える推論サーバーです。MMS は ML/DL フレームワークに依存しないように設計されているため、どんな ML/DLフレームワークでトレーニングしたモデルでもホストできます。 この記事では MMS を利用して、運用中の ML/DL フレームワークまたはツールキットを使ってトレーニングしたモデルをホストする方法をご紹介します。本番用ホスティングには、Amazon SageMaker を使います。この PaaS ソリューションはインフラストラクチャを構築する数多くの作業を行ってくれるため、自身のユースケースに集中できます。 今回のソリューションでは、「Amazon SageMaker ホスティングサービスでの独自の推論コードの使用」で概説したアプローチを使用します。この記事では、必要とされるすべての依存関係、ライブラリ、フレームワークとその他のコンポーネントとともにモデルを使用する方法について説明します。それらを 1 つのカスタム Docker コンテナにコンパイルしてから、Amazon SageMaker でホストします。 MMS が ML/DL フレームワークに依存しないアーキテクチャーであることをお見せするため、PaddlePaddle フレームワークでトレーニングしたモデルを本番で投入することにしました。MMS 持ち込み (BYO) コンテナを使って、ML/DL フレームワークでトレーニングしたモデルを Amazon SageMaker で使用する手順を次の図に示しました。 この図が示すように、MMS BYO […]

Read More

Amazon SageMaker のバッチ変換を使用して予測結果を入力データに関連付ける

大規模なデータセットに対して予測を実行するときは、実行前にいくつかの入力属性を削除することをお勧めします。これは、これらの属性が信号を伝達しない、または機械学習 (ML) モデルのトレーニングに使用するデータセットの一部ではなかったという理由からです。ジョブの完了後、予測結果をすべてまたは一部の入力データに分析用としてマッピングすることにも役立ちます。 たとえば、ID 属性を持つデータセットを考えてみましょう。一般に、観測 ID は特定の ML 問題に対する信号を伝送しないランダムに生成した番号か連続番号です。このため通常、観測 ID はトレーニングデータ属性の一部ではありません。しかし、バッチ予測を行う場合は、出力に観測 ID と予測結果の両方を 1 つのレコードとして含めることもできます。 バッチ変換機能は Amazon SageMakerで、Amazon S3 に格納されているデータセットに対して予測を実行します。以前はバッチ変換ジョブの作成前に入力データをフィルター処理し、ジョブの完了後に予測結果を目的の入力フィールドに結合する必要がありました。Amazon SageMaker のバッチ変換を使えば、予測を実行する前に属性を除外できるようになりました。CSV、テキスト、JSON 形式のデータを使用すると、予測結果を部分的または全体の入力データ属性と結合することもできます。このため、追加の前処理や後処理が不要となり、ML プロセス全体が高速化します。 この投稿では、この新しい機能を使用して Amazon SageMaker のバッチ変換ジョブの入力データをフィルター処理し、予測結果を入力データセットの属性と結合する方法を説明します。 背景 Amazon SageMaker は ML のワークフロー全体を対象にした完全マネージド型サービスです。このサービスは、データにラベルを付けてデータを準備し、アルゴリズムを選択して、モデルのトレーニングを行い、デプロイ用にモデルを調整および最適化を行い、予測を行い、実行します。 Amazon SageMaker はバッチ変換ジョブの開始時に、リソースのプロビジョニングを管理します。ジョブが完了するとリソースを解放するので、ジョブの実行中に使用したリソースに対してのみ支払うことになります。ジョブが完了すると、Amazon SageMaker は指定された S3 バケットに予測結果を保存します。 バッチ変換の例 UCI の乳がん検出のためのパブリックデータセットを使って、特定の腫瘍が悪性 (1) または良性 (0) である可能性があるかどうかを検出するバイナリ分類モデルをトレーニングします。このデータセットには各腫瘍の ID 属性が付属しています。これらはトレーニングと予測の際に除外されます。ただし、バッチ変換ジョブからの各腫瘍の悪性腫瘍について予測した確率を使用して、ID 属性を最終的なアウトプットに戻し、記録します。 手引きとなる Jupyter ノートブックもダウンロードできます。この記事の以下の各セクションはノートブックのセクションに対応していますので、読みながら各ステップのコードを実行してください。 設定 […]

Read More

Amazon SageMaker での Apache MXNet 1.4 と Model Server のサポート

Apache MXNet は ディープニューラルネットワークのトレーニングとデプロイに使用するオープンソースの深層学習ソフトウェアフレームワークです。 データサイエンティストや機械学習 (ML) の開発者の多くが深層学習モデルの構築の際、その柔軟性と効率性から MXNet を好んで使用しています。 Amazon SageMaker では MXNet を含むすべての ML フレームワークとライブラリにおいて、カスタマーエクスペリエンスの向上に取り組んでいます。MXNet 1.4 の最新リリースでは、インターネット無料モードで MXNet コンテナを使用したり、Model Server for Apache MXNet (MMS) を使った深層学習モデルを推論用にデプロイしたりできるようになりました。 Model Server for Apache MXNet (MMS) は深層学習モデルを推論用にデプロイする作業を簡素化するオープンソースのツールセットです。MMS を使用すると、MXNet やその他のフレームワークモデルを簡単に、素早く、そして大きな規模で提供できます。詳細については、「Model Server for Apache MXNet v1.0 release」をご参照ください。 MXNet 1.4 の更新には、ネットワークの分離、Julia バインディング、実験的な制御フロー演算子、JVM メモリ管理、グラフの最適化と量子化、使いやすさの向上など、いくつかの新機能が含まれています。変更ログ情報については、「Apache MXNet (incubating) 1.4.0」をご参照ください。 Amazon SageMaker のトレーニングとデプロイ済み推論コンテナは、デフォルトでインターネットに対応しています。新しい MXNet コンテナを使用すると、インターネット無料モードでコンテナを使用できます。そのため、セキュアかつ隔離された環境内でトレーニングジョブを実行できます。 Amazon SageMaker をトレーニングまたは推論コンテナへの外部ネットワークにアクセスさせたくない場合は、トレーニングジョブやモデルの作成時にネットワークの分離を有効にできます。 MXNet […]

Read More

Amazon SageMaker Ground Truth: データラベリングを高速化するための事前トレーニング済みモデルの使用

Amazon SageMaker Ground Truth を使用すると、機械学習用の高精度なトレーニングデータセットをすばやく構築することができます。SageMaker Ground Truth を使用すると、パブリックおよびプライベートでラベル付けを行う人間の作業者への簡単なアクセスと、一般的なラベル付けタスクのための組み込みのワークフローとインターフェースが提供されます。さらに、SageMaker Ground Truth は自動データラベル付けを使用してラベル付けのコストを最大 70% 削減します。自動データラベル付けは、人間がラベルを付けたデータから Ground Truth をトレーニングし、サービスが独自にデータにラベルを付けることを学習することによって機能します。以前のブログ記事では、自動化されたデータのラベル付けのしくみと、その結果の評価方法について説明しました。 SageMaker Ground Truth はラベリングジョブの間にお客様のためにモデルをトレーニングし、そしてラベリングジョブが終わった後にこれらのモデルを使用できるようになることはご存知でしたでしょうか? このブログ記事では、前のラベリングジョブからトレーニングされたモデルを使用して次のラベリングジョブを「スタートダッシュ」する方法について説明します。これは高度な機能で、SageMaker の Ground Truth API を通じてのみ利用できます。 このブログ記事について 読む時間 30 分 完了するまでの時間 8 時間 完了するためのコスト 600 USD 未満 学習レベル 中級 (200) AWS のサービス Amazon SageMaker、Amazon SageMaker GroundTruth この記事は、以下の以前の記事を基にしているので、最初にその記事を確認することをお勧めします。 Amazon SageMaker Ground Truth と自動化されたデータのラベル付けによる低コストでのデータのアノテーション このブログの一部として、以下で説明するように、3 つの異なるラベリングジョブを作成します。 「自動ラベリング」機能を有効にした初期ラベリングジョブ。このラベリングジョブの最後に、サンプルデータセットに対して高い精度の予測を行うことができるトレーニング済みの機械学習モデルを準備します。 […]

Read More

TensorFlow と Apache MXNet を使用して、Amazon SageMaker で Keras モデルをトレーニングおよびデプロイする

Keras は適切に文書化された定評のある深層学習用オープンソースライブラリで、一方 Amazon SageMaker は機械学習モデルをトレーニングし最適化するための使いやすいツールです。両者を使用するにはこれまで、カスタムコンテナを構築する必要がありましたが、Keras は TensorFlow と Apache MXNet 用のビルトイン TensorFlow 環境の一部になりました。この結果、開発プロセスが簡素化しただけでなく、スクリプトモードや自動モデル調整などの Amazon SageMaker の標準機能を使用することもできるようになりました。 Keras の優れたドキュメント、多数の事例、さらに活発なコミュニティにより、初心者にも経験豊富な専門家にも最適な選択肢となっています。このライブラリはあらゆる種類の深層学習アーキテクチャを簡単に構築できるようにするハイレベルな API を提供し、さらにトレーニングと予測に異なるバックエンドを使用するオプション (TensorFlow、Apache MXNet、および Theano) もあります。 この記事では TensorFlow と Apache MXNet 用ビルトイン TensorFlow 環境を使用して、Amazon SageMaker で Keras 2.x モデルをトレーニングおよびデプロイする方法を説明します。その過程で、次のことも学びます。 スクリプトモードを使用して、ローカルマシンで実行しているのと同じ Keras コードを Amazon SageMaker で実行する。 自動モデル調整を起動して、ハイパーパラメータを最適化する。 Amazon Elastic Inference を使用してモデルをデプロイする。 Keras の例 この例では、Fashion MNIST データセットで簡単な畳み込みニューラルネットワークをトレーニングする方法を示します。このデータセットは、よく知られている MNIST データセットに置き換えられるものです。同数のクラス […]

Read More

Amazon SageMaker の体験ハンズオン動画とQAを公開しました

先日 (2019/5/17) 開催しました 「Amazon SageMaker 機械学習エンジニア向け体験ハンズオン」の動画および資料を公開しました。当日、参加者の皆様から多数頂いた QA についても掲載しています。 Amazon SageMaker は、データサイエンティストやエンジニアが効率よく機械学習を進めるために、 AWS が提供するマネージドサービスです。この動画はSageMakerの基本的な使い方を体験できる1時間のハンズオン動画となっており、動画を見ながら実際に手を動かすことで、SageMakerの利用法を効率よく理解することができます。これからSageMakerを利用して機械学習に取り組む際にはAWS Black Belt オンラインセミナーと合わせて是非ご覧下さい。 【ハンズオンの概要】 1) ビルトインアルゴリズムの利用 ・Random Cut Forest を利用した異常検知 ・XGBoost を利用した画像認識(紹介のみ) 2) Deep Learning フレームワークの利用 ・Chainer を利用した画像認識          ※ 動画の一例 視聴はこちらから >> ※ リンク先でフォームに登録いただきますと、各コンテンツにアクセス可能となります。   当日、参加者の皆様から頂いた QA を以下に掲載します。 Q. SageMakerと他のMachine Learningサービスの区別は?マネージドサービスの中の機械学習サービスの分別とか、適用範囲を教えて頂けませんか A. 機械学習に関連するAWSサービスは、インフラストラクチャ、MLサービス、AIサービスという3つのカテゴリに大きく分けられます。 1. 機械学習を支えるインフラストラクチャには、GPU/FPGA/大量のCPUを搭載したEC2やAWS IoT Greengrass、Amazon Elastic Inferenceなどが該当します。 […]

Read More

パイオニアが車載カメラ画像の認識でAmazon SageMaker Neo を利用

Pioneer Corp は、デジタルエンターテインメント製品を専門とする日本のグローバル企業です。パイオニア は、カーナビゲーションシステムを通じてドライバーが路面状況や交通状況を把握することをサポートしたいと考えており、ドライバーのナビゲーションをサポートするリアルタイムの画像共有サービスを開発しています。このサービスでは車載カメラから集められた画像の分析を行っており、サービス利用者は路面状況や混雑状況などを把握することができます。  これらの画像は公道上で撮られるものであるため、画像共有時には人の顔や車のナンバープレートを高精度で認識し、マスクしてプライバシーを保護する必要があります。 パイオニア は、Amazon SageMaker Neo を使用して画像共有サービスを構築しています。Amazon SageMaker は完全マネージド型サービスで、これにより開発者ははるかに少ない労力とコストで機械学習モデルを構築、トレーニング、およびデプロイすることができます。Amazon SageMaker Neo は、開発者が一度機械学習モデルをトレーニングすれば、クラウドやエッジデバイス上で推論を実行することのできるサービスです。Amazon SageMaker Neo は、精度を損なうことなく、10 分の 1 以下のラインタイムのメモリフットプリント、最大 2 倍の速度で実行するようにモデルを最適化します。 最初に、MXNet、TensorFlow、PyTorch や XGBoost を使って構築され、Amazon SageMaker を使ってトレーニングした ML モデルを用意します。次に、M4/M5/C4/C5 インスタンスやエッジデバイスなどのターゲットハードウェアプラットフォームを選択します。Amazon SageMaker Neo はワンクリックで、トレーニング済みモデルを実行できるようにコンパイルします。 コンパイラはニューラルネットワークを使用して、特定のパフォーマンス最適化をすべて検出して適用し、ターゲットハードウェアプラットフォーム上でモデルを最も効率的に実行できるようにします。最適化されたモデルをデプロイして、クラウドまたはエッジデバイス上で推論を実行できます。 ローンチ時、Amazon SageMaker Neo は次の 4 つの AWS リージョンで利用できました。米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)、アジアパシフィック (ソウル) です。2019 年 5 月から、SageMaker Neo は日本のアジアパシフィック (東京) […]

Read More

AWS DeepRacer ご利用後のリソース削除方法について

先日 2019年6月12日~14日に開催されたAWS Summit Tokyo 2019 では AWS DeepRacer リーグが行われました。AWS DeepRacer のご利用の際は、ご利用後に使わないリソースを適宜削除し、不要な課金を防いで利用しましょう。 AWS DeepRacer シミュレータのアーキテクチャ この図のように、AWS DeepRacer を立ち上げると、VPC 内に AWS DeepRacer の学習・推論評価用途 SageMaker, RoboMaker、描画、学習データの保存・データ転送に S3, Kinesis Video Stream, NAT Gateway が自動的に起動し、それぞれのサービスに対して課金が発生します。下記では、AWS DeepRacer ご利用後のリソース削除方法を紹介します。 注)本ブログは2019年6月15日時点の仕様を基にしており、今後変更の可能性がございます。   継続的な課金を停止するのに必要なこと リソースの自動削除 一度サービスを立ち上げると、学習・評価が終了しても、一部のサービスが起動したままの状態になっています。継続的な課金を防ぐために、下記の手順で関連リソースを削除することで、継続的な課金が防げます。 AWS DeepRacer → Reinforcement learning → Create model を選択 Account resources で、4つのリソースの左チェック印が緑色の場合、関連リソースが利用可能な状態となっています。 不要な課金を防ぐためには、Reset resources をクリックすれば、S3以外の関連リソースは削除されます。   S3 バケットの削除方法 また、S3バケットの削除は別途行う必要があります。S3 […]

Read More

Amazon SageMaker Neo が、エッジデバイスでの物体検出と画像の分類を支援

野村総合研究所 (NRI) は、日本におけるシステムソリューションおよびコンサルティングサービスの世界的大手プロバイダーであり、APN プレミアムコンサルティングパートナーです。NRI では、顧客が在庫と生産計画を最適化し、コストを削減し、より良いカスタマーエクスペリエンスを創造するのを支援する要求がますます高まっています。こうした要求に応えるために、同社は、顧客のより良い事業運営を支援するために、新しいデータソース、特に動画や写真に目を向けています。 例えば、NRIでは日本のコンビニエンスストアの店内カメラ画像を利用した在庫管理のサポートや、日本の空港で空港利用者の導線パターンを分析し、空港内の利用者の導線の最適化のサポートなど実施もしくは予定しています。 こうしたシナリオでは、物体を検出する機械学習モデルを作成する必要がありました。商品 (飲み物、軽食、紙製品など) や、小売店の店舗を出る人々、空港の通勤者を検出する必要がありました。 NRI は、こうした目標を達成するために Acer と AWS に着目しました。Acer aiSage は、コンピュータビジョンと AI を使用してリアルタイムの洞察を提供するエッジコンピューティングデバイスです。 Acer aiSage は、物体を検出して画像を一度分類するとどこでも実行できるモデルをトレーニングするサービスである Amazon SageMaker Neo、およびローカルコンピューティング、メッセージング、データキャッシング、同期、および機械学習の推論機能をエッジデバイスに提供するサービスである AWS IoT Greengrass を利用します。 NRI の執行役員/DX生産革新本部長である 大元 成和 氏は、「当社の顧客であるヤマハ発動機は、AIによる店舗解析、スマートストア機能の評価を検討中です」と述べています。「こうしたソリューションには、複数のコンピュータビジョンモデルを構築する必要があります。MXNet GluonCV を使用してモデルを構築後、Amazon SageMaker Neo を使用してモデルをコンパイルし、AWS IoT Greengrass を利用して Acer の aiSage にモデルをデプロイします。  Amazon SageMaker Neo は ML フレームワークを抽象化することでモデルのフットプリントを削減し、エッジデバイスでより高速に動作するように最適化できます。当社では、AI ソリューションのエッジ領域までを含めてフルに AWS の技術スタックを活用しています。」 以下は、NRI で物体検出と画像分類が機能している仕組みです。 […]

Read More

Bewgle が AWS を原動力にして、非構造化テキストをインサイトに変える

SAP.iO および Techstars の資金提供を受ける企業である Bewgleは、AWS のサービスを使用してユーザー側で生成されたテキストや音声ストリームからインサイトを浮上させます。同社はインサイトの生成により、美容器具や電子機器といったさまざまな製品において、顧客満足度やエンゲージメントの向上を目指すプロダクトマネージャーのサポートを行っています。  AWS の技術を原動力とする Bewgle の支援を受けて顧客の声に耳を傾けると、プロダクトマネージャーは製品の売り上げの増大が実現できるようになります。 平均的な人間が 1 分間に読める文字数は約 250 字にすぎません。そのため、1000 件のカスタマーレビューをまとめるには、8 時間あまりかかってしまいます。すると、こうしたレビューすべてに加え、フォーラム投稿やブログ投稿のようなその他のテキスト、そしてアンケート結果の逐語的記録や音声ストリームを分析することなど実行できるはずがありません。 AI、特に natural language processing (NLP) と呼ばれる機械学習 (ML) が優れているのはまさにこの分野です。Bewgle の中心的なソリューションは AWS 上ですべてが開発された AI プラットフォームで、数百万規模のコンテンツを分析し、キートピックおよびその背後に潜む感情を抽出します。Amazon Machine Learning および AWS テックスタック全体では、通常なら数年かかる作業をわずか数分で完了できます。 Bewgle のソリューションはまさに、幅広い AWS のサービスを活用しているのです。Bewgle のデータ処理パイプラインが依存する AWS Lambdaおよび Amazon DynamoDB は以下の ML タスクのコアを形成します。 大規模な分析データを保存する。 データのクリーンアップする。 さまざまな処理機能をダイナミックに活用して分析を生成する。 チームは、システムのスケーリング、大まかに結合されたさまざまなワークフローを組織するために、革新的でサーバーレスな ML ワークフローを開発しました。チームはこれにより、さまざまなアプローチを評価、選択するにあたって驚異的な俊敏性および柔軟性を得て、スピーディーなイノベーションを推進することが可能になりました。 Bewgle のワークフローは通常、大規模かつオンデマンドのデータの収集、タグ付けを行うAmazon […]

Read More