Amazon Web Services ブログ

Category: Artificial Intelligence

Coursera の AWS Machine Learning での機械学習スキルの習得

機械学習 (ML) は、テクノロジーで最も急速に成長している分野のひとつで、今日の求人市場において極めて高い人気があります。今日は、Coursera と共同で構築された、ML スキルを習得するために役立つ新しい教育コース、Getting started with AWS Machine Learning をご紹介したいと思います。このコースの内容は、Coursera ウェブサイトで、今すぐ無料でアクセスできます。 世界経済フォーラム [1] は、人工知能 (AI) の発達は今後数年間で 5,800 万のまったく新しい仕事を生み出す可能性があるとしていますが、何百万人もの AI エンジニアが必要であることに反して、AI エンジニアは現在世界中で 30 万人だと推定されています [2]。これは、スキルレベルに関わらず、AI アプリケーションの構築に使用される本質的な ML 概念を学び始めるための、ユニークかつ急を要する機会があることを意味します。今 ML の基礎を学んでおくことは、この発達に後れを取らず、スキルを拡大するだけでなく、キャリアアップするためにも役立ちます。 Amazon のエンジニアを訓練するために使用されるものと同じ ML コースに基づいたこのコースは、AWS Machine Learning の使用を開始する方法を教えます。主なトピックには、Machine Learning on AWS、Computer Vision on AWS、および Natural Language Processing (NLP) on AWS などがあります。各トピックは、様々な ML 概念、AWS のサービス、およびをこの概念を実践するためのエキスパートからの洞察を深く掘り下げる数個のモジュールで構成されています。このコースは、AWS 機械学習認定でより深く学ぶ前に、Machine Learning […]

Read More

Amazon Elasticsearch Search と Amazon Comprehend を使用してスマートテキスト分析を実現する

AWS クラウドで Amazon Comprehend を使用して、Amazon Elasticsearch Service ドメインの非構造化テキストを分析および視覚化するために、自然言語処理を活用するエンドツーエンドのソリューションを発表できることをお知らせしたいと思います。このソリューションは、AWS CloudFormation テンプレートを使用して数分でデプロイし、Kibana ダッシュボードでデータを視覚化することができます。 Amazon Elasticsearch Service (Amazon ES) は、Elasticsearch の使いやすい API とリアルタイム機能、ならびに本稼働ワークロードに必要な可用性、スケーラビリティ、セキュリティを提供する完全マネージド型のサービスです。 Amazon Comprehend は完全マネージド型の自然言語処理 (NLP) サービスで、ドキュメントのコンテンツから洞察を抽出するテキスト分析を可能にします。お客様は、Amazon ES と Amazon Comprehend を活用して非構造化テキストのインデックス作成と分析を行い、事前設定された Kibana ダッシュボードをデプロイして、ドキュメントから抽出したエンティティ、キーフレーズ、構文、感情を視覚化することができます。 一例として、企業は大量のオンラインでの顧客フィードバックまたは文字起こしされた顧客からのコールを持っている場合があります。このソリューションを使用すると、顧客との接触における感情の時系列を視覚化し、そうした接触のエンティティまたはキーフレーズのワードクラウドを分析し、感情によって特定の製品についての接触を検索したりできます。このブログ記事では、Amazon ES および Amazon Comprehend を使用してテキストデータから洞察を引き出すためにデプロイできる Kibana ダッシュボードの例を見てみましょう。詳細な手順については、ソリューション実装ガイドをご覧ください。 このソリューションでは、AWS CloudFormation を使用して、AWS クラウドでのデプロイを自動化します。ソリューションの詳細については、次のリンクをクリックし、こちらでテンプレートをダウンロードしてください: このテンプレートを使用して、ソリューションおよび関連するすべてのコンポーネントを起動できます。このソリューションをデフォルトのパラメーターでデプロイすると、AWS クラウドに次の環境が構築されます。 デフォルト設定では、Amazon API Gateway、AWS Lambda、Amazon Elasticsearch Service、AWS Identity and Access Management […]

Read More

Amazon Sagemaker 推論モデルを構築、テストし、AWS Lambda にデプロイする

Amazon SageMaker は、開発者やデータサイエンティストがあらゆる規模の機械学習 (ML) モデルを迅速かつ簡単に構築、トレーニング、デプロイできるようにする完全マネージド型プラットフォームです。ML モデルをデプロイすると、Amazon SageMaker は ML ホスティングインスタンスを活用してモデルをホストし、推論を提供する API エンドポイントを提供します。AWS IoT Greengrass も使用できます。 ただし、異なるターゲットへのデプロイを可能にする Amazon SageMaker の柔軟性のおかげで、AWS Lambda でモデルをホストするといくつかの利点が得られる場合があります。たとえば、GPU が必要な場合、すべてのモデルを AWS Lambda でホストできるわけではありません。また、AWS Lambda のデプロイパッケージのサイズなどのその他の制限があり、この方法を使用できない場合があります。AWS Lambda を使用できる場合、このアーキテクチャには、低コスト、イベントトリガー、シームレスなスケーラビリティ、スパイクリクエストなどの利点があります。たとえば、モデルが小さく、頻繁に呼び出されない場合、AWS Lambda を使用する方が安価な可能性があります。 この記事では、推論を提供する Lambda 関数を構築、テスト、デプロイするためのパイプラインを作成します。 前提条件 読者は Amazon SageMaker、AWS CloudFormation、AWS Lambda、および AWS Code* スイートの使用経験があると想定しています。 アーキテクチャの説明 CI/CD のパイプラインを作成するには、AWS 開発者用ツールを使用します。このスイートは、AWS CodeDeploy、AWS CodeBuild、および AWS CodePipeline を使用します。以下にアーキテクチャの図を示します。 Amazon SageMaker を使用してモデルをトレーニングすると、出力モデルが […]

Read More

Amazon SageMaker で PyTorch を使用するグローバル最適化のためのディープニューラルネットベースの代理関数の構築

最適化とは、設計変数と呼ばれる入力に依存する関数の最小値 (または最大値) を求めるプロセスです。お客様 X には次のような問題があります。このお客様は、最大の燃料効率のために設計される新しい自動車モデルをリリースしようとしています。実際の場合、エンジン、トランスミッション、サスペンションなどに関連するチューニングパラメータを示す何千ものパラメータがあり、それらの組み合わせは様々な燃料効率値を生じます。 しかし、この記事では、特定の速度で走行する場合に燃焼される 1 時間あたりの燃料量 (ガロン単位) としてこの効率性を測定し、その他すべてのパラメータは変化しないと仮定します。従って、最小化される「関数」は「1 時間ごとに燃焼される燃料量 (ガロン単位)」になり、設計変数は「速度」になります。 この一次元最適化問題は、「1 時間ごとに燃焼される燃料量を最小限化するには、どの速度で車を走行させるべきか」という問題を提起します。これは、考慮される何千もの実際のパラメータを大幅に簡素化したものです。 目的関数 (f) が以下の合成関数のようになると仮定します。 f(x) = x⋅sin(x)+x⋅cos(2x) x および y 軸の単位を無視して、青矢印で示されているこの関数の最小値を探すのが今回のタスクになります。単一次元を扱っている場合でさえも、すべての速度値 (速度は実数) で車を走行させるのは非現実的です。 この記事では、実験を 30 回行う予算があるとします。各「実験」では、テスト装置上で車をその速度で走行させ、1 時間ごとに燃焼された燃料の平均値を測定し、収集します。こうすることで、速度の 30 の値に対応する燃焼された燃料の 30 の値だけが得られ、それ以外は得られません。また、最小値 (図の青矢印) で示されている速度の値で実施された実験が存在するという保証もありません。 各実験のセットアップには、実際に数時間かかる場合があります。このような実験を特定回数以上実施することは現実的ではないため、このタイプの関数は高コストなブラックボックス関数と呼ばれます。この関数が高コストなのは値を返すまでに時間がかかるためで、ブラックボックスと呼ばれるのは実施された実験を数式で記述できないからです。 最適化研究分野の全体が、これらのような問題を解決するアルゴリズムの作成を目的としています。この記事では、上記の関数 (f) を近似化するために、ニューラルネットワークを使用します。「代理モデル」としても知られる関数の訓練された近似化は、実際の実験の代わりに使用することができます! 訓練されたモデルが実際の関数の良好な近似化であるならば、任意の値の速度 (入力) に対して燃焼された燃料 (出力) を予測するためにこのモデルを使用できます。 技術的なアプローチ これらすべてのステップを詳しく説明するサンプルの Jupyter ノートブックについては、Build a Deep Neural Global Optimizer を参照してください。 […]

Read More

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