Amazon Web Services ブログ

Category: Artificial Intelligence

AWS Step Functions を使用した Amazon SageMaker モデルの自動的で連続的なデプロイ

Amazon SageMaker は、モデルの開発、トレーニング、およびデプロイ、ソリューション構築のコスト削減、データサイエンスチームの生産性向上のための完全な機械学習 (ML) ワークフローサービスです。Amazon SageMaker には、多くの事前定義済みアルゴリズムが付属しています。また、Docker イメージ、モデルをトレーニングするためのトレーニングイメージ、および REST エンドポイントにデプロイするための推論モデルを指定して、独自のアルゴリズムを作成することもできます。 機械学習モデルの構築とデプロイを自動化することは、本稼働の機械学習サービスを作成する上で重要なステップです。コードおよび/またはデータが更新されたときは、モデルを再トレーニングしてデプロイする必要があります。このブログ記事では、AWS Step Functions を使用した Amazon SageMaker の自動化の手法について説明します。新しいオープンソースプロジェクトである aws-sagemaker-build を通してそれを実証します。このプロジェクトは私たちのワークフローを完全に実装しています。Python と Amazon Alexa を使用してビルドの作成、起動、停止、進行状況の追跡を行う方法を示す Jupyterノ ートブックも含まれています。 aws-sagemaker-build の目的は、Amazon SageMaker と AWS Step Functions を使用する一般的で有用なパイプラインのリポジトリを提供することです。このリポジトリはコミュニティと共有され、コミュニティによって成長できます。 このコードはオープンソースであり、GitHub のここでホストされています。 カスタムモデル このブログ記事では、トレーニングや推論のために Dockerfile を作成および設計する方法の詳細については説明しません。詳細については、以下のドキュメントをご覧ください。 Example Project and Tutorial using aws-sagemaker-build (aws-sagemaker-build を使ったサンプルプロジェクトとチュートリアル) Training Image Documentation (トレーニングイメージのドキュメント) Inference Image Documentation (推論イメージのドキュメント) […]

Read More

simpleshow が Amazon Polly を使って解説動画のストーリーを音声化する方法

simpleshow は 10 数年前に、3 分間のアニメーション解説動画を使用することによって、お客様がそれぞれの素材、アイデア、および製品を説明できるように援助し始めました。これらの解説動画は、ふたつの手とシンプルな白黒のイラストを使って視聴者にストーリーを伝えます。現在 simpleshow では、誰もがほぼすべてのトピックに関する高品質の解説動画を作成できるプラットフォーム、mysimpleshow.com も提供しています。このプラットフォームは Amazon Polly と統合されているため、台本が提供されていれば、誰でも解説動画に自然な発音の音声を使用できます。 最初に、simpleshow についてもう少しお話ししてから、mysimpleshow がどのように Amazon Polly と統合されているかについて説明したいと思います。 過去 10 年の間、simpleshow は解説動画フォーマットの有効性を科学的に証明し、simpleshow の専門家は、何千にも及ぶ解説動画において、シンプルかつ楽しい方法でそれぞれのトピックを紹介できるようにお客様を助けてきました。 これらの動画の制作には、チーム内に多くの才能が必要です。 ストーリーテリング: 認定された simpleshow のコンセプトライターが基本的な事実を中心にストーリーを創り出します。 イラストレーション: 才能豊かなアーティストが適切な抽象化レベルで対象物とコンセプトをイラストにします。 ビジュアル化: ストーリーボードアーティストとモーションデザイナーがストーリーをビジュアル化してアニメーションにします。 音声: プロの話し手のネットワークが、ふさわしい口調であることを確実にします。 解説動画が極めて幅広い用途を持つフォーマットであることに気付いた simpleshow のチームは、さらに多くの分野におけるさらに多くのユーザーがリソースを使用できるようにしたいと考えました。これが、simpleshow のチームが mysimpleshow.com を作った理由です。このプラットフォームは、誰もがほぼすべてのトピックに関する高品質の解説動画を作成できるようにするものです。mysimpleshow は人口知能 (AI) を使用し、使いやすいユーザーインターフェイスを備えています。 mysimpleshow でのプロセスはとてもシンプルです。 まず、ユーザーがストーリーを書きます。mysimpleshow は、幅広いトピックを対象とするサンプルストーリーを使ったテンプレートとインスピレーションでユーザーをガイドします。 ストーリーのテキストは、次に mysimpleshow の中核にある人工知能、Explainer Engine によって分析されます。Explainer Engine は、意味のあるキーワード、人物、および場所を認識するために自然言語処理 (NLP) を使用します。その後、Wikipedia […]

Read More

Amazon SageMaker のトレーニングと推論の間でデータ処理コードの一貫性を確保する

このブログ記事では、推論パイプラインを紹介します。これは、推論リクエストごとに実行される一連の手順を指定できる、Amazon SageMaker の新機能です。この機能を使用すると、同じコードの 2 つの別のコピーを保持する必要なしで、推論中のトレーニングで適用されたデータ処理手順を再利用できます。これにより、予測が正確になり、開発のオーバーヘッドを削減できます。ここでの例では、Apache Spark MLlib で変換器を使用してトレーニングと推論の入力データを前処理し、Amazon SageMaker の XGBoost アルゴリズムを使用して自動車の状態を予測する機械学習モデルをトレーニングします。 概要 データサイエンティストや開発者は、機械学習 (ML) モデルをトレーニングする前に、データのクリーニングと準備に多くの時間を費やしています。これは、現実のデータを直接使用することができないためです。値が欠落していたり、情報が重複していたり、標準化する必要がある同じ情報の複数のバリエーションがあったりするからです。さらに多くの場合、機械学習アルゴリズムで使用できるために、データをある形式から別の形式に変換する必要があります。たとえば、XGBoost アルゴリズムは数値データしか受け入れないため、入力データが文字列またはカテゴリ形式の場合は、使用する前に数値形式に変換する必要があります。他には、複数の入力の特徴を単一の特徴に組み合わせることで、より正確な機械学習モデルとなります。たとえば、気温と湿度を組み合わせて飛行遅延を予測すると、より正確なモデルが作成されます。 機械学習モデルを本稼働にデプロイして新しいデータを予測する場合 (推論と呼ばれるプロセス)、トレーニングで使用されたのと同じデータ処理手順がそれぞれの推論リクエストにも適用されるようにする必要があります。そうしないと、誤った予測結果となる可能性があります。今までは、トレーニングと推論に使用するために同じデータ処理手順の 2 つのコピーを維持し、それらが常に同期していることを確認する必要がありました。また、データ処理手順を、機械学習モデルへのリクエストを行うアプリケーションコードと組み合わせるか、推論ロジックに組み込む必要がありました。その結果、開発のオーバーヘッドと複雑さが必要以上に高くなり、迅速に繰り返す能力が制限されていました。 現在は、Amazon SageMaker に推論パイプラインを作成することで、推論中のトレーニングと同じデータ処理手順を再利用できます。推論パイプラインを使用すると、最大 5 つのデータ処理および推論の手順を指定できます。これらの手順は、全ての予測リクエストに対して実行されます。トレーニングのデータ処理手順を再利用できるので、データ処理コードのコピーを 1 つだけ管理し、クライアントアプリケーションや推論ロジックを更新することなくデータ処理手順を個別に更新することができます。 Amazon SageMaker は、推論パイプラインの作成方法に柔軟性をもたらします。データ処理手順では、Scikit-Learn および Apache SparkMLlib で利用可能な組み込みのデータ変換器を使用して、一般的なユースケースのためにデータをある形式から別の形式に処理および変換するか、カスタムの変換器を作成することができます。推論では、Amazon SageMaker で利用可能な組み込みの機械学習アルゴリズムとフレームワークを使用することもできますし、カスタムのトレーニングモデルを使用することもできます。リアルタイム推論とバッチ推論で同じ推論パイプラインを使用できます。推論パイプラインのすべての手順が同じインスタンスで実行されるため、レイテンシーによる影響は最小限になります。 例 この例では、AWS Glue を使用するデータ処理に Apache Spark MLLib を使用し、推論中にデータ処理コードを再利用します。UCI の Machine Learning Repository の Car Evaluation データセットを使用します。目標は、unacc、acc、good、vgoodの値の中から、特定の車の容認可能性を予測することです。根本的には分類問題であり、Amazon SageMaker の組み込みの […]

Read More

Amazon Translate を使用してオンデマンドで翻訳されたレビューを用いたウェブサイトの強化

e コマースプラットフォームの成功は、顧客による何千ものユーザーレビューとソーシャルシェアリングによって確立された評判に大きく依存しています。既存の顧客は、レビューすること、そして情報を共有することによって、実際に触れることができないものとの信頼関係を築きます。世界中の閲覧者がこの内容を利用できるようにするためにも、それらを現地語に翻訳して顧客の購買決定を助けることが極めて重要です。 古い車、ボート、およびオートバイを販売する会社を想像してみましょう。この会社はその e コマースビジネスを数か国に拡大し、会社の製品について他の買い物客が書いたレビューを顧客が簡単に読めるようにしたいと考えています。 この問題を解決するために、この会社がどのように Amazon Translate を活用して、オンデマンドの翻訳済みレビューをリアルタイムで取得できるかをご紹介します。また、いかに簡単にそのサービスを最新の e コマースアーキテクチャに統合できるかについても説明していきます。 Amazon Translate は、高度な深層学習技術を使用してソース言語からターゲット言語 (サポートされる言語ペアの中から選択されたもの) へのコンテンツの迅速な言語翻訳を提供する、高品質のニューラル機械翻訳サービスです。このサービスは、開発者がニューラル機械翻訳モデルを構築する複雑さを考慮することなく、翻訳されるテキストを提供する API を簡単に呼び出し、翻訳されたテキストをリアルタイムで取得することを可能にします。

Read More

Amazon SageMaker で、Scikit-Learn のサポートを追加

Amazon SageMaker は、Docker コンテナの Scikit-Learn Machine Learning ライブラリで事前に構成されています。Scikit-Learn は、一貫性のある Python インターフェイスと文書で十分に立証された API を使用して、データ分析や一般的な Machine Learning アルゴリズムを高品質で実装できる効率的なツールを提供するため、データサイエンティストや開発者にとって人気があります。Scikit-Learn はすばやく実行でき、ほとんどのデータセットや問題に対応できるため、Machine Learning 問題をすばやく繰り返さなくてはならない場合に最適です。TensorFlow や MxNet などの深層学習フレームワークとは異なり、Scikit-Learn は Machine Learning やデータ分析に使用されます。クラスタリング、回帰、分類、次元削減、機能の前処理、およびモデル選択に関して、指導付き学習アルゴリズムと指導無し学習アルゴリズムの範囲から選択できます。 新しく追加された Scikit-Learn ライブラリは、Amazon SageMaker Python SDK で利用可能です。Scikit-Learn スクリプトを作成し、自動モデルチューニングを含む Amazon SageMaker のトレーニング機能を使用することができます。モデルのトレーニングを終えたら、Scikit-Learn モデルを高い可用性のエンドポイントにデプロイして、Auto Scaling して、低レイテンシーでリアルタイムでの予測を行うことができます。また、大規模なバッチ変換ジョブで同じモデルを使用することもできます。 このブログ記事では、Amazon SageMaker で事前に構築された Scikit-Learn ライブラリを使用して、マルチクラス分類モデルを構築、トレーニング、およびデプロイする方法を説明します。 Scikit-Learn モデルのトレーニングとデプロイ この例では、IRIS データセットの決定木分類子をトレーニングします。この例は Scikit-Learn 決定木分類子の例に基づいています。完全な Amazon SageMaker ノートブックをお試しいただけます。ここでは最も重要な部分を強調します。このデータセットは、異なる 3 […]

Read More

3 つの新しい言語で音声の文字起こしが可能に: フランス語、イタリア語、ブラジルポルトガル語

Amazon Transcribe が、フランス語、イタリア語、ブラジルポルトガル語の 3 つの新しい言語で自動音声認識をサポートするようになったことをお知らせいたします。これらの新しい言語は、Amazon Transcribe ですでに利用可能であった米国英語、米国スペイン語、オーストラリア英語、イギリス英語、カナダフランス語の 5 つの言語の拡張になります。 Amazon Transcribe API を使用すると、Amazon S3 に保存されている音声ファイルを分析して、文字起こしした音声のテキストファイルをサービスに返すことができます。また、ライブのオーディオストリームを Amazon Transcribe に送信し、文字起こしのストリームをリアルタイムで受信することもできます。自動文字起こしは、さまざまな分野 (動画の字幕、コンタクトセンターの通話分析およびコンプライアンス、法廷での宣誓証言、あらゆるアプリケーションへのアクセシビリティの一般的な向上など) で、多くの開発者にとって非常に役立つツールであることが証明されています。 この最近の re:Invent で行われた分科会から、コンタクトセンター (Amazon Connect を含む) で文字起こしを使用する方法の詳細を学ぶことができます。 フランス語、イタリア語、ブラジルポルトガル語の文字起こしは、Amazon Transcribe の他の言語と同じ料金、同じリージョンで利用できます。この新しい言語のセットは、AWS マネジメントコンソール、AWS コマンドラインインターフェイス、AWS SDK を介して試すことができます。   著者について Paul Zhao は、AWS Machine Learning のシニアプロダクトマネージャーです。 Paul は Amazon Transcribe サービスを管理しており、仕事以外ではオートバイのファンで、木工細工が大好きです。    

Read More

Amazon SageMaker Ground Truth でラベル付けしたデータセットを使用して、モデルを簡単にトレーニングする

 データサイエンティストや開発者は、Amazon SageMaker Ground Truth でラベル付けされたデータセットによって機械学習モデルを簡単にトレーニングすることができます。Amazon SageMaker のトレーニングは、AWS マネジメントコンソールと Amazon SageMaker Python SDK API の両方を通じた入力として拡張マニフェスト形式で作成されたラベル付きデータセットを受け入れるようになりました。 先月の AWS re:Invent の期間中に、人間のラベル付け作業者のパブリックワークフォースならびにプライベートワークフォースを支援する機械学習を使用して、ラベル作成コストを最大 70% 節約し、正確なトレーニングデータセットを構築できる Amazon SageMaker Ground Truth を開始しました。ラベル付きデータセットは、それぞれの入力データセットオブジェクトを、ラベルなどの追加のメタデータを使用してファイル内でインライン展開する拡張マニフェストファイル形式で作成されます。以前は、拡張されたデータセットでモデルをトレーニングするために、低レベルの AWS SDK API しか使用できませんでした。本日から、Amazon SageMaker コンソールですばやく簡単に数回クリックするか、ハイレベルの Amazon SageMaker Python SDK を使用して 1 行の API をコールすることで、そうしたトレーニングをすばやく簡単に実行できるようになります。 さらに、 モデルを Amazon SageMaker のパイプモードを使用してトレーニングすることができます。このモードは、Amazon Simple Storage Service (S3) から Amazon SageMaker にデータがストリーミングされる速度を大幅に高速化するので、トレーニングジョブが早く始まり、素早く完了し、 Amazon […]

Read More

TensorFlow で行うスケーラブルなマルチノードトレーニング

 お客様から、TensorFlow トレーニングのジョブを複数のノードや GPU にスケーリングすることは難しいとの声を聞きました。TensorFlow には分散トレーニングが組み込まれていますが、使用するのは難しい場合があります。最近、TensorFlow と Horovod を最適化し、AWS のお客様が TensorFlow のトレーニングジョブを複数のノードや GPU に拡張できるようにしました。これらの改善により、AWS のお客様は、15 分以内に ImageNet の ResNet-50 をトレーニングするために AWS Deep Learning AMI を使用することができます。 これを実現するため、32 個のAmazon EC2 インスタンス (それぞれ 8 GPU、合計 256 GPU) が TensorFlow で利用できます。このソリューションに必要なソフトウェアとツールは、すべて最新の Deep Learning AMI (DLAMI) に付属しているので、自分で試すことができます。 より早くトレーニングし、モデルをより速く実装し、結果を以前より速く得ることができます。 このブログの記事では、得られた結果について説明し、さらに TensorFlow で分散トレーニングを実行するための簡単で迅速な方法をご紹介ます。 図A. Deep Learning AMI 上で、Horovod を使用した、最新の最適化された TensorFlow で行う ResNet-50 ImageNet モデルトレーニングには、256 […]

Read More

Amazon SageMaker の自動モデルチューニングで、トレーニングジョブの早期停止がサポートされるようになりました

2018 年 6 月、Amazon SageMaker 自動モデルチューニングを開始しました。このモデルは、Machine Learning モデルをトレーニングする高性能ハイパーパラメータを自動的に検出する機能です。トレーニング中に学習されたモデルパラメータとは異なり、学習プロセスが開始される前にハイパーパラメータが設定されます。ハイパーパラメータの典型的な使用例としては、確率勾配法の確率を学習する場合があります。デフォルトのハイパーパラメータを使用しても、必ずしも最良のモデルパフォーマンスが得られるわけではなく、高性能ハイパーパラメータを見つける作業は、些細で時間がかかります。自動モデルチューニングを使用すると、Amazon SageMaker は自動的に高性能ハイパーパラメータを見つけ、モデルをトレーニングして、目標メトリクスを最大化します。 構成できるハイパーパラメータの数は、探索中のハイパーパラメータ数の指数関数にあたります。この検索スペースを単純に探索するには、多数のトレーニングジョブが必要となるため、コストが高くなります。この問題を克服するために、Amazon SageMaker はベイズ最適化を使用します。これは、少数のトレーニングジョブに基づいて、異なるハイパーパラメータのパフォーマンスを効率的にモデル化する戦略です。しかし、このアルゴリズムは、トレーニングの終わりには、以前の構成よりも著しく悪化することが判明したハイパーパラメータ構成を探索することがあります。 今日では、早期停止機能を自動モデルチューニングに追加しています。チューニングジョブを起動したときに早期停止することで、Amazon SageMaker は各候補モデルのトレーニング反復(「エポック」)ごとに目標メトリクスを追跡します。Amazon SageMaker は、これまでチューニングジョブで評価されていた以前の最良モデルより、各候補がどれだけ優れているかを評価します。早期停止により、価値のないモデルはすべての反復を完了する前に終了するため、時間を節約し、コストを最大 28 %削減します(アルゴリズムとデータセットによって異なります)。例えば、このブログ記事では Amazon SageMaker を使用した画像分類アルゴリズムによる早期停止を使用して、時間とコストを 23 %まで削減する方法を示します。 エポックごとに目標メトリクスを発信する場合、サポートされている Amazon SageMaker アルゴリズムの組み込みと独自のアルゴリズムを使用して、早期停止することができます。 早期停止を使用する画像分類モデルのチューニング 早期停止の活用方法を示すために、画像分類アルゴリズムの組み込みを使用して画像分類器を構築し、Caltech-256 データセットに対してモデルを調整します。2 つのハイパーパラメータチューニングジョブを実行します。片方は自動早期停止を使わず、もう一方は早期停止を有効にして、他の構成はすべて同じままです。次に、2 つのハイパーパラメータチューニングジョブの結果を終わり頃に比較します。完全なサンプルノートブックはこちらから参照できます。 早期停止なしで、ハイパーパラメータチューニングジョブを開始し起動する ノートブックインスタンスを作成し、データセットを準備し、Amazon S3 にプッシュする手順は省略します。サンプルノートブックがこれらのプロセスを含んでいるため、ここでは説明しません。代わりに、ハイパーパラメータチューニングジョブを開始するところから始めます。 チューニングジョブを作成するには、最初に組み込み画像分類アルゴリズム用のトレーニング推定器 (Estimator) を作成し、チューニングする予定のものを除いて、このアルゴリズムのすべてのハイパーパラメータの値を指定する必要があります。組み込み画像分類アルゴリズムのハイパーパラメータについての詳細は、こちらの文書 を参照してください。 s3_train_data = ‘s3://{}/{}/’.format(bucket, s3_train_key) s3_validation_data = ‘s3://{}/{}/’.format(bucket, s3_validation_key) s3_input_train = sagemaker.s3_input(s3_data=s3_train_data, content_type=’application/x-recordio’) s3_input_validation […]

Read More

Amazon SageMaker ランダムカットフォレストアルゴリズムを使用した Amazon DynamoDB ストリームでの異常検出

異常検出技術の導入を検討したことがありますか? 異常検出とは、分析しているデータの大部分と大きく異なるため信憑性にかける、あまり見かけないアイテム、イベント、あるいは観察を特定するために使用する手法です。  異常検出のアプリケーションは幅広い分野で利用されており、例えば、異常購入や銀行へのサイバー侵入の検出、MRI スキャンでの悪性腫瘍の発見、不正な保険請求の特定、製造時の異常な機械動作の発見、侵入を知らせるネットワークトラフィックの異常なパターンの検出などがあります。 こうしたアプリケーションには多くの市販品がありますが、Amazon SageMaker、AWS Glue、AWS Lambda を使えば、異常検出システムを簡単に実装することができます。Amazon SageMaker は、機械学習モデルの構築、トレーニング、デプロイを、規模を問わず迅速に行う完全マネージド型プラットフォームです。AWS Glue は、完全マネージド型の ETL サービスで、分析のためのデータやモデルの準備が簡単にできます。AWS Lambda は、普及しているサーバーレスのリアルタイムプラットフォームです。これらのサービスを使用すれば、モデルを新しいデータで自動的に更新することができ、その新しいモデルを使って、リアルタイムに異常をより正確に知らせることができます。 このブログ記事では、AWS Glue でデータを準備し、Amazon SageMaker で異常検出モデルをトレーニングする方法について説明します。今回のエクササイズでは、Numenta Anomaly Benchmark (NAB) ニューヨーク市タクシーデータのサンプルを Amazon DynamoDB に保存し、AWS Lambda 関数を用いてリアルタイムでストリーミングしています。 ここで説明するソリューションは、以下のような利点があります。 既存のリソースを最大限に活用して、異常検出を行います。例えば、災害対策 (DR) やその他の目的で Amazon DynamoDB Streams を使用したことがある場合、そのストリームのデータを異常検出に使用できます。加えて、スタンバイストレージは通常、使用率が低いものです。認識しにくいデータは、トレーニングデータに使用できます。 ユーザーの介入なしに、定期的に新しいデータでモデルを自動的に再トレーニングすることができます。 ランダムカットフォレストを組み込んだ Amazon SageMaker アルゴリズムを使えば、簡単に再トレーニングできます。Amazon SageMaker は、安全でスケーラブルな環境で、特定のワークフローに適応できる、柔軟な分散トレーニングオプションを提供します。 ソリューションのアーキテクチャ 次の図は、ソリューションの全体的なアーキテクチャを示しています。 アーキテクチャーにおけるデータ処理の手順は、次のとおりです。 ソース DynamoDB は変更を取得し、それらを DynamoDB ストリームに格納します。 AWS […]

Read More