Amazon Web Services ブログ

Category: Artificial Intelligence

AWS Batch および Amazon SageMaker を使用したマルチリージョンサーバーレス分散型トレーニング

AWS でグローバル展開を築き、スケールにアクセスすることは、数多くのベストプラクティスの 1 つです。そのような規模とデータの効率的な利用 (パフォーマンスとコストの両方) を実現するアーキテクチャを作成することで、重要なアクセスが規模であることを確認できます。たとえば、自動運転車両 (AV) の開発では、データは運転キャンペーンにローカルで地理的に獲得されます。機械学習 (ML) から生成データと同じ AWS リージョンでの計算パイプライン実行することに至るまで、関連性があり、より効率的です。 さらに工夫するために、たとえば、組織が米国のサンフランシスコで運転キャンペーンの 4K ビデオデータを獲得したとします。並行して、あなたの同僚がドイツのスタっとガードの運転キャンペーンを取得したとします。両方のビデオキャンペーンにより、1 日当たり数テラバイトのデータを得ることができます。理想的には、そのデータをあなたの生成場所に近いリージョンに転送します。(この場合は、us-west-1とeu-central-1)です。ワークフローがこのデータにラベルを付けると、それぞれのリージョンにローカルの分散型トレーニングを実行することで、コストとパフォーマンスの観点から理に適う一方で、両方のデータセットをトレーニングするために使用されるハイパーパラメーターの一貫性が維持されます。 AWS の分散型トレーニングを開始するには、Amazon SageMaker を使用します。これは、分散型トレーニング (たとえば、Horovod で最適化された TensorFlow) で必要な差別化されないヘビーリフティングの大部分をプロビジョニングします。さらに、1 秒当たりの課金により、効率的なコスト管理をもたらします。これらの利点により、完全管理型のアーキテクチャにおけるモデル開発とデプロイに労力をかけなくても済むようになります。 Amazon SageMaker は管理型 ML サービスのエコシステムであり、地上検証によるラベリング、モデルトレーニング、ハイパーパラメーターの最適化、デプロイを支援します。これらのサービスは、Jupyter notebooks、AWS CLI、または Amazon SageMaker Python SDK を使用してアクセスできます。SDK では特に、ML ワークロードを初期化し、分散させるために少しのコード変更が必要です。 上記のアーキテクチャでは、S3 バケットはトレーニング入力ファイルのソースとしての役割を果たします。SageMaker Python SDK は、必要な計算リソースと Docker イメージをインスタンス化して、S3 からデータをソーシングするモデルトレーニングを実行します。出力モデルアーティファクトは、出力 S3 バケットに保存されます。 Amazon SageMaker Python SDK は、インフラストラクチャデプロイを抽象化し、完全に API […]

Read More

Amazon SageMaker の Horovod またはパラメータサーバーでTensorFlow 分散トレーニングを簡単に起動する

Amazon SageMaker は、TensorFlow を含む一般的なディープラーニングフレームワークをすべてサポートしています。クラウド内の TensorFlow プロジェクトの 85% 以上が AWS で実行されています。プロジェクトの多くはすでに Amazon SageMaker で実行されています。これは、Amazon SageMaker が TensorFlow モデルのホスティングとトレーニングにもたらす大きな利便性によるものです。これには、Horovod とパラメータサーバーを使用した完全マネージド型の分散トレーニングが含まれます。 お客様は、1 週間以上かかる大規模なデータセットのトレーニングモデルにますます関心を持ってきています。この場合、クラスター内の複数のマシンまたはプロセスにトレーニングを分散することにより、プロセスを高速化できる可能性があります。この記事では、Amazon SageMaker により、トレーニングクラスターを直接管理する費用や困難なしに、TensorFlow を使用して分散トレーニングを迅速にセットアップおよび起動する方法について説明します。 TensorFlow バージョン 1.11 以降では、Amazon SageMaker の事前作成された TensorFlow コンテナを使用できます。Python トレーニングスクリプトを提供し、ハイパーパラメータを指定し、トレーニングハードウェア設定を指定するだけです。Amazon SageMaker は、トレーニングクラスターをスピンアップし、トレーニングが終了したらクラスターを破棄するなど、残りの作業を行います。この機能は「スクリプトモード」と呼ばれます。 スクリプトモードは、すぐに使用できる以下の 2 つの分散トレーニングアプローチを現在サポートしています。 オプション #1: TensorFlow のネイティブパラメータサーバー (TensorFlow バージョン 1.11 以降) オプション #2: Horovod (TensorFlow バージョン 1.12 以降) 次のセクションでは、これらの TensorFlow 分散トレーニングオプションを […]

Read More

Amazon SageMaker の TensorFlow Serving を使用したバッチ推論の実行

TensorFlow モデルをトレーニングしてエクスポートした後で、Amazon SageMaker を使用して、モデルを使用した推論を実行します。以下のいずれかを行うことができます。 モデルからリアルタイムの推論を取得するために、エンドポイントにモデルをデプロイします。 Amazon S3 に保存されたデータセット全体に対する推論を取得するために、バッチ変換を使用します。 バッチ変換の場合、ラージデータセットで高速で最適化されたバッチ推論を実行するためにますます必要となります。 この記事では Amazon SageMaker バッチ変換を使用してラージデータセットに対して推論を実行する方法を学びます。この記事の例では、TensorFlow Serving (TFS) コンテナを使用して、画像のラージデータセットに対するバッチ推論を実行します。また、Amazon SageMaker TFS コンテナの新しい事前処理と事後処理の機能を使用する方法も確認していきます。この機能は、TensorFlow モデルで S3 のデータで直接推論を行い、S3 に処理後の推論を保存することもできるようになります。 概要 この例のデータセットは、「Open Images V5 Dataset」の「Challenge 2018/2019」サブセットです。このサブセットには、JPG 形式で 100,000 個の画像が含まれ、合計 10 GB になっています。使用するモデルlは、 image-classification モデルで、ImageNet データセットでトレーニングされ、TensorFlow SavedModelとしてエクスポートされる ResNet-50 アーキテクチャに基づいています。このモデルを使用して、各画像のクラスを予測しっます (例: ボート、車、鳥)。事前処理と事後処理のスクリプトを書き、それを SavedModel でパッケージ化して、推論を素早く、効率的に、大きな規模で実行します。 チュートリアル バッチ変換ジョブを実行するとき、次のことを指定します。 入力データが保存される場所 データを変換するために使用する Amazon SageMaker モデルオブジェクト (「モデル」という名前) バッチ変換ジョブクラスターインスタンスの数 私たちのユースケースでは、モデルオブジェクトは […]

Read More

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

アマゾン ウェブ サービス ジャパン株式会社 機械学習ソリューションアーキテクトの大渕です。AWS Japan 目黒オフィスでは「Amazon SageMaker 事例祭り」(Twitter: #sagemaker_fes) を定期的に開催しています。2019年8月29日に開催された第7回 Amzon SageMaker 事例祭りでは、AWS Japan のソリューションアーキテクトによるサービスの最新情報や技術情報と、Amazon SageMaker をご利用いただいているお客様をゲストスピーカーにお招きし、実際に導入頂いたお客様による「体験談」をお話し頂きました。

Read More

Amazon SageMaker Ground Truth を使ってプライベートのラベル付けチームのスループットを追跡

AWS re:Invent 2018 において発表された Amazon SageMaker Ground Truth は、機械学習モデル向けの高精度なトレーニングデータセットをすばやく構築することを可能にするサービスです。Amazon SageMaker Ground Truth を使うと、パブリックおよびプライベートのラベル付け作業者に簡単にアクセスしたり、そうした作業者に対して一般的なラベル付けタスクに使用できる組み込みのワークフローとインターフェイスを提供したりすることができます。さらに Amazon SageMaker Ground Truth は、自動ラベル付けによってラベル付けのコストを最大 70% 削減します。自動ラベル付けを機能させるには、人間がラベル付けしたデータを使用して Ground Truth をトレーニングし、サービスに自立的にデータのラベル付けを学習させます。 プライベートの作業者にデータのラベル付けを行わせるときは、そのスループットと効率を測定および追跡したいとお考えでしょう。Amazon SageMaker Ground Truth では、作業者のイベント (ラベル付け作業者によるタスクの開始時刻、送信時刻など) を Amazon CloudWatch に記録できるようになりました。さらに、CloudWatch に組み込まれたメトリクス機能を使って、作業チーム全体または個々の作業者のスループットを測定および追跡することも可能になりました。このブログ記事では、作業者イベントの raw ログと組み込みのメトリクスを、お使いの AWS アカウントで使用する方法について解説していきます。 作業者アクティビティログの使い方 Amazon SageMaker Ground Truth を使ってプライベートの作業者チームをセットアップし、ラベル付けジョブを実行すると、作業者のアクティビティログが CloudWatch に自動的に生成されます。プライベートチームのセットアップ方法と最初のラベル付けジョブの開始方法については、こちらの開始方法に関するブログ記事を参照してください。注: 過去にプライベート作業チームを作成したことがある場合は、新しいプライベート作業チームを作成し、作業チームと CloudWatch の間に信頼されたアクセス許可をセットアップする必要があります。このプライベート作業チームを使用する必要はなく、セットアップのステップは 1 回限りのものとなります。 ログを閲覧するには、CloudWatch コンソールにアクセスし、左側のパネルで [ログ] をクリックします。/aws/sagemaker/groundtruth/WorkerActivity […]

Read More

Amazon Comprehend を使用してカスタムエンティティレコグナイザーを構築する

Amazon Comprehend は、非構造化テキストからキーフレーズ、場所、名前、組織、イベント、さらには感情の抽出などが行える自然言語処理サービスです。 お客様は通常、独自の部品コードや業界固有の用語など、ビジネスに固有の独自のエンティティタイプを追加することを望みます。2018 年 11 月、Amazon Comprehend の機能強化により、デフォルトのエンティティタイプをカスタムエンティティに拡張する機能が追加されました。さらに、カスタム分類機能により、ドキュメントを名前が付けられたカテゴリーにグループ化できます。たとえば、サポート E メールを部署ごとに、ソーシャルメディア記事を製品ごとに、または分析レポートを事業単位ごとにグループ化することができます。 概要 この記事では、カスタムエンティティレコグナイザーの構築方法について説明します。事前の機械学習の知識は必要ありません。カスタムエンティティレコグナイザーをトレーニングする前に、データを圧縮、フィルタリング、およびクリーンアップする必要がある例を示します。それ以外の場合は、次のステップバイステップの手順に従うだけで済みます。この手順は、データセットをすでに準備した状態で始めます。 この例では、Kaggle でホストされている Twitter のカスタマーサポートのデータセットを使用します。 データセットは主に短い発話で構成されています。これは、顧客とサポート担当者との間のチャット会話の典型的で一般的な例です。Twitter データセットからの発話のサンプルを次に示します。 @AppleSupport で返信が無視され、キーボードの下のタップされた通知が開きます?😡😡 @SpotifyCares ありがとう! Samsung Galaxy Tab A (2016) モデル SM-T280 のアンカー bluetooth スピーカーのバージョン 8.4.22.857 armv7 スピーカーからの距離が問題なのでしょうか? データをフィルター処理し、「TMobileHelp」と「sprintcare」を含むツイートのみを保持して、特定のドメインとコンテキストに集中できるようにしました。comprehend_blog_data.zip ファイルからコンピューターにデータセットをダウンロードして解凍します。 チュートリアル この例では、iPhone および Samsung Galaxy 携帯電話に関する情報を抽出するカスタムエンティティレコグナイザーを作成します。現在、Amazon Comprehend は両方のデバイスを「市販品」として認識しています。 このユースケースでは、より具体的にする必要があります。 特にスマートフォンデバイスを抽出できる必要があるため、抽出されたデータを一般的な市販品に制限すると効率的ではありません。この機能により、サービスプロバイダーはツイートからデバイス情報を簡単に抽出し、問題を関連するテクニカルサポートチームにルーティングすることができます。 Amazon Comprehend コンソールで、デバイスのカスタムエンティティレコグナイザーを作成します。[レコグナイザーをトレーニング] を選択します。 名前と、DEVICE などの [エンティティタイプ] […]

Read More

Amazon SageMaker RL で継続的な学習を使用してコンテキストバンディットを強化する

Amazon SageMaker は、開発者やデータサイエンティストがあらゆる規模の機械学習モデルを短期間で簡単に構築、トレーニング、デプロイできるようにするモジュラー式完全マネージド型サービスです。 トレーニングモデルは、組み込みの高性能アルゴリズム、構築済みのディープラーニングフレームワークのセットや、独自のフレームワークを使用して、迅速かつ簡単に構築できます。 機械学習 (ML) アルゴリズムの選択を支援するために、Amazon SageMaker には、インストール済みでパフォーマンスが最適化された最も一般的な ML アルゴリズムが付属しています。 教師ありおよび教師なし学習手法を使用した機械学習モデルの構築に加えて、Amazon SageMaker RL を使用して Amazon SageMaker で強化学習モデルを構築することもできます。Amazon SageMaker RL には、強化学習の開始を容易にする、事前に構築された RL ライブラリとアルゴリズムが含まれています。GitHub には、Amazon SageMaker RL をロボットと自律走行車のトレーニング、ポートフォリオ管理、エネルギー最適化、自動容量スケーリングに使用する方法を示した例がいくつかあります。 このブログ記事では、Amazon SageMaker RL を使用してコンテキストを考慮したマルチアームバンディット (または略してコンテキストバンディット) を実装し、ユーザー向けにコンテンツをパーソナライズする方法を紹介します。コンテキストバンディットアルゴリズムは、おすすめをクリックしたかどうかなどのおすすめに対するユーザーの応答から学習することにより、ユーザー (ゲーマーやハイキング愛好家など) にさまざまなコンテンツオプションをおすすめします。このアルゴリズムでは、データの変化に適応するために機械学習モデルを継続的に更新する必要があり、Amazon SageMaker で反復トレーニングとデプロイループを構築する方法を説明します。 コンテキストバンディット パーソナライズされたウェブサービス (コンテンツレイアウト、広告、検索、製品のおすすめなど) のような多くのアプリケーションは、多くの場合、いくつかのコンテキスト情報に基づいて、継続的に決定を下す必要に迫られます。これらのアプリケーションは、ユーザー情報とコンテンツ情報の両方を利用して、個人向けにコンテンツをパーソナライズする必要があります。たとえば、彼女がゲーム愛好家であることに関連するユーザー情報と、そのゲームがレーシングゲームであることに関連するコンテンツ情報です。これらのアプリケーションを可能にする機械学習システムには、2 つの課題があります。ユーザーの好みを学習するためのデータはまばらで偏っています (多くのユーザーはほとんどまたはまったく履歴を持たず、過去におすすめされた製品も多くありません)。また、新しいユーザーとコンテンツが常にシステムに追加されています。パーソナライゼーションに使用される従来の Collaborative Filtering (CF) ベースのアプローチは、まばらで偏っているデータセットと現在のユーザーとコンテンツのセットに対して静的な推奨モデルを構築します。一方、コンテキストバンディットは、既知の情報の exploiting (ゲーム愛好家へゲームをおすすめすること) と、おすすめの exploring (ゲーム愛好家にハイキング用具をおすすめすること) との間でトレードオフを行うことで、戦略的な方法でデータを収集および増強します。これにより、高い利益が得られる可能性があります。バンディットモデルはユーザー機能とコンテンツ機能も使用するため、同様のコンテンツとユーザーの好みに基づいて、新しいコンテンツとユーザーにおすすめを作成できます。 先に進む前に、いくつかの用語を紹介しましょう。コンテキストバンディットアルゴリズムは、反復プロセスによって特徴付けられます。agent が選択できる (arm または […]

Read More

Amazon EFS または Amazon FSx for Lustre ファイルシステムを使用して、Amazon SageMaker のトレーニングをスピードアップする

Amazon SageMaker は、データサイエンスと機械学習のワークフローに向けて完全管理型のサービスを提供します。Amazon SageMaker の最も重要な機能の 1 つに、機械学習モデルをトレーニングするための完全管理型のトレーニングジョブを実行する機能が挙げられます。サービスコンソールにアクセスして、Amazon SageMaker で自分自身で機械学習モデルをトレーニングしてください。 今では、Amazon Elastic File System (EFS) または Amazon FSx for Lustre に保存されているデータから機械学習モデルをトレーニングすることで、トレーニングジョブの実行をスピードアップすることができます。 Amazon EFS は AWS クラウドサービスとオンプレミスリソースで使用するために Linux ベースのワークロードに対して、単純でスケール自在、伸縮自在なファイルシステムを提供します。Amazon FSx for Lustre は、機械学習、分析、ハイパフォーマンスコンピューティングなどのワークロードに対して最適化されたハイパフォーマンスファイルシステムです。 機械学習モデルのトレーニングでは、トレーニングジョブに対してトレーニングデータセットを提供することが必要です。 ファイル入力モードで Amazon Simple Storage Service (S3) をトレーニングデータソースとして使用するとき、トレーニングジョブの開始時にすべてのトレーニングデータが Amazon S3 からトレーニングインスタンスにアタッチされた EBS ボリュームにダウンロードされます。Amazon EFS または FSx for Lustre などの分散型ファイルシステムは、このダウンロード手順の必要性を排除することで、機械学習トレーニングをスピードアップできます。 この記事では、ファイルシステムを使用してモデルをトレーニングする利点について見ていき、ファイルシステムを選択し、開始する方法を示すために役立つ情報を提供します。 SageMaker のトレーニングモジュールのファイルシステムの選択 ファイルシステムから機械学習モデルをトレーニングすべきかどうかを考えるとき、最初に考えるべきことは、ご自分のトレーニングデータが今どこに常駐しているのか、ということです。 トレーニングデータがすでに Amazon S3 にあり、トレーニングジョブのためにより短いトレーニング時間を指示する必要がない場合は、データの移動必要なしで Amazon SageMaker […]

Read More

Apache MXNet、AWS Lambda、Amazon Elastic Inference を使って深層学習を提供している Curalate 社

 このブログは、Curalate のコンピュータビジョン研究技師 Jesse Brizzi 氏によるゲストブログ投稿です。 Curalate では、深層学習とコンピュータビジョンを使ってユーザー生成コンテンツ (UGC、user-generated content) を発見および活用し、インフルエンサーを活性化する新たな方法を日々考案しています。そうしたアプリケーションの中には、Intelligent Product Tagging のように、画像を可能な限りすばやく処理するために深層学習モデルを必要とするものがあります。他方で、深層学習モデルは、有用な信号を生成して顧客にコンテンツを提供するために、毎月何億という画像を取り込まなければなりません。 スタートアップである Curalate は、こうしたことのすべてを、高いパフォーマンスと費用対効果を維持しながら大規模に実行できる方法を見つけなければなりませんでした。当社は、自社の深層学習モデルをホストするために、AWS が提供すべきあらゆるタイプのクラウドインフラストラクチャを長年にわたって使用してきました。その過程で、深層学習モデルを本番稼働で大規模に提供することに関して多くのことを学びました。 この記事では、Curalate が深層学習のインフラストラクチャを設計する際に考慮している重要な要素、API/サービスタイプでそれらの要素がどのように優先付けされているのか、そして最も重要なこととして、さまざまな AWS 製品が結局のところいかにしてこうした要件を満たしているのかについて、解説していきます。 問題の概要 たとえば、手元にトレーニング済みの MXNet モデルがあり、それを AWS クラウドインフラストラクチャで提供しようと考えているとします。どのように構築を行いますか。また、どのようなソリューションやアーキテクチャを選択しますか。 Curalate は、こうした問題に答えを出すことに長年取り組んでいます。当社はスタートアップとして、新しいオプションが公開されたときはいつでも、すぐにそれを導入し、試す必要がありました。また、深層学習サービスを構築する際は自社のコードをロールします。そうすることで、管理を強化し、選択したプログラミング言語で作業することが可能になります。 この記事では、もっぱら深層学習サービスのハードウェアオプションに焦点をあてます。同じくモデル提供のソリューションをお探しの方は、Amazon SageMaker に利用可能なオプションがあります。 次に、私たちがいつも自問自答している問いの一部を紹介します。 いま設計しているのはどんな種類のサービス/API なのか? それはユーザーが触れるものでリアルタイムなのか? あるいは、オフラインのデータパイプライン処理サービスなのか? 各 AWS ハードウェア提供オプションの違いは何か? パフォーマンス特性 そのモデルを使うとどれくらいの速さで入力を実行できるか? 開発の容易さ サービスロジックの設計およびコード化の難易度はどの程度か? 安定性 ハードウェアがサービスの安定性に及ぼす影響はどの程度か? 費用 そのハードウェアオプションの費用対効果は他のオプションに比べ、どの程度優れているか? GPU ソリューション GPU は最も確実なソリューションに見えるかもしれません。機械学習の分野における開発は、GPU の処理能力と切っても切り離せません。真の “深層” […]

Read More

Deliveroo の宅配サービスと Amazon Rekognition で、毎日の夕食がお手軽に

ソフトウェアエンジニアの Florian Thomas 氏が、急成長中かつ求められている企業である Deliverooについて、このように話しています。どのみち、人は食べなければ生きていけません。Deliveroo には、彼の言葉で言うと「食事を注文する方法を変えるという使命があります」。  具体的には、Deliveroo はレストランと提携し、利用客の贔屓のメニューを玄関口に届けるのです。 Deliveroo は創設者兼 CEO である Will Shu 氏が、ロンドンに越してきた2013 年に起業しました。ロンドンには素敵なレストランが数多くあるにもかかわらず、たいていのレストランは宅配をしていないことにがっかりしたのです。そこで、地元の最高のレストランの食事を、客の玄関先に直接届けようと決意したのです。現在、Deliveroo のチームは 2,000 人となり、イギリスだけでなく、オーストラリア、アラブ首長国連邦、香港、ヨーロッパの国々のほとんどを含む 14 のグローバル市場で運営しています。 Deliveroo は常に顧客を中心に考え、各国のチームは成長してきました。Deliveroo が提供するものは、利用客が選んだメニューをお手軽かつタイムリーに提供することだけではありません。注文でトラブルが起こった場合 (漏れているなど)、そうした問題も同じようにタイムリーで、反応よく、そして創造的に処理します。利用客はサービスポータルを利用して、起こったトラブルを画像ベースのレポートでシェアできます。 「トラブルが発生したら、お客様は私たちに連絡するだけでなく、その状況を見せたいと思っていることを知ったのです」と Thomas 氏は言います。画像の付いたレポートでカスタマーケアチームがそれぞれの利用客にソリューションを提供できるだけでなく、その画像を Deliveroo のレストランパートナーともシェアし、カスタマーエクスペリエンスを改善し続けていくことが可能となります。 しかし、利用客がアップロードした画像がどれも適切であるわけではないと、Thomas 氏とチームはすぐに気付きました。そこで Deliveroo は、Amazon Rekognition を利用して、カスタマーサービスチームが不適切な画像を選別する必要をなくしました。このコンテンツモデレーションソリューションは使いやすく、Deliveroo のカスタマーケアフローに不可欠なものとなりました。実際に、週に数百枚の写真 (送信されるすべての画像の約 1.7%) を受取拒否しています。 Thomas 氏は次のように説明します。「Amazon Rekognition で、これらの写真をすべてリアルタイムで迅速かつ正確に処理できるため、実際の問題が発生した際も迅速にお客様に対応できます。さらに、エージェントとやり取りする時間も節約できるため、大切なお客様の問題に集中できるのです。」「Amazon Rekognition を使用すると、エージェントが重要である利用客の問題に素早く安全に対応するようになるため、お客様からの正当なクレームを自動的に処理できるようになります。」 Amazon Rekognition は長い間 AWS を使用してきた Deliveroo にとって、当然の選択でした。チームは当初、サービスへの信頼から AWS を選択しました。現在、Amazon […]

Read More