Amazon Web Services ブログ

Localization Team

Author: Localization Team

Amazon SageMaker 自動モデルチューニング: 機械学習のために機械学習を使用する

今日は、Amazon SageMaker 自動モデルチューニングの一般向けリリースを発表します。自動モデルチューニングは、より正確なモデルのために、ハイパーパラメータースペースを検索するのに必要になる画一的な負荷を一掃します。開発者とデータ科学者はこの機能により、自身の機械学習モデルをトレーニングおよびチューニングするための膨大な時間と手間を省くことができます。ハイパーパラメーターチューニングジョブは、完了したトレーニングジョブの結果をもとに、様々なハイパーパラメーターの組み合わせで複数のトレーニングジョブを起動します。SageMaker はベイズ最適化に基づき、私たちのトレーニングジョブのハイパーパラメーターコンビネーションを推測するため、「メタ」機械学習モデルをトレーニングします。もう少し、掘り下げていきましょう。 機械学習プロセスにおけるモデルチューニング 開発者の典型的な機械学習プロセスには、探索的データ解析 (EDA)、モデル設計、モデルトレーニング、モデル評価の 4 つのステップがあります。SageMaker ではパワフルな Jupyter ノートブックインスタンス、内蔵型アルゴリズム、サービスを使用したモデルトレーニングなどを採用することで、すでにこれら各ステップの合理化が図られています。このプロセスのトレーニングの面に注目することで、私たちは通常、データを処理し、想定した結果に照らしてモデルの予測を評価したモデルへ、そのデータを移植します。私たちは全体的な入力データの一部、評価データを、モデルのトレーニングに使用したトレーニングデータとは離しておきます。そしてこの評価データを使用して、それまで見たことのないデータでモデルの動作を検証するのです。多くのケースではアルゴリズムを選択した、あと、またはカスタムモデルを構築したあとに、入力したデータに対する最高の結果を得るために、そのアルゴリズムのハイパーパラメーターで、最も可能性のあるスペースを検索するために必要になります。 ハイパーパラメーターは基礎となるアルゴリズムの操作とモデルのパフォーマンスに及ぶ影響を管理します。たとえば、トレーニングするエポックの数、ネットワークレイヤーの数、学習率、最適化アルゴリズム、その他などです。通常、ランダムな値、または他の問題と共通の値で開始し、変更の結果が見え始めるまで、調整を繰り返します。かつて、この作業は骨の折れる手作業でした。しかし、才能溢れる研究者たちの地道な努力のおかげで、SageMaker を使用してこうした手作業による手間をほとんどすべて排除できるようになりました。ユーザーに必要なのは、チューニングするハイパーパラメーター、探索するパラメーターの範囲、予算に応じたトレーニングジョブの合計数です。実際の動作を見てみましょう。 ハイパーパラメーターのチューニング この機能のデモをご覧に入れるため、作業には標準の MNIST データセット、Apache MXNet フレームワーク、SageMaker Python SDK を使用します。下記で選択するもののすべては SageMaker example notebooks で入手できます。 まず、ノートブックインスタンス上で SageMaker Python SDK を使用し、従来の MXNet エスティメーターを作ります。 import boto3 import sagemaker from sagemaker.mxnet import MXNet role = sagemaker.get_execution_role() region = boto3.Session().region_name train_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/train’.format(region) test_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/test’.format(region) estimator […]

Read More

Amazon SageMaker を使用して、人口区分のために米国の国勢調査データを分析する

米国では 2018 年の中間選挙に向けて、人々は投票プロセスについてより多くの情報を求めています。このブログ記事では、有権者を理解するタスクに科学を有効に統合するために、機械学習 (ML) を適用する方法を探っています。 通常、機械学習アプリケーションでは、ラベルの付いたデータから明確なユースケースが得られます。例えば、古さや型番などデバイスの属性に基づいて、障害の可能性を予測できます。特定の結果を予測する際に監督またはガイドがあるため、これは教師あり学習と呼ばれます。 しかし、現実世界では、きれいなラベルを定義するのが難しい場合、予測する特定の結果が存在しない大規模なデータセットがしばしば存在します。適切な結果が予測するものを、正確に特定することは困難です。この種類のユースケースはしばしば探索的です。これはデータセットの作成と、どのような自然パターンが存在するかを理解することが目的です。この種類のユースケースは、教師なし学習です。この一例は、属性セットに基づいて類似の個人をグループ化する試みです。 このブログ記事で紹介するユースケースは、人口区分です。私たちは次のサイトから一般公開されている、米国の国勢調査から得られた米国の郡ごと匿名化された人口統計データを入手できます。https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml(この製品は Census Bureau Data API を使用していますが、国勢調査局による保証または認定は行われていません)。この分析結果は、変換された特徴空間における類似した郡の自然なグループ化です。例えば、ある集団に共鳴するメッセージをハイライトすることで、類似する郡のグループに到達する方法を理解するなど、郡が所属するクラスターを活用して選挙運動を計画することが可能です。より一般的には、この技術は企業が対象を定めたマーケティングキャンペーンを作成するために、顧客やユーザー区分に対して適用できます。この種類の分析には、CA-Fresno 郡と AZ-Yuma 郡という同じグループにされた、表向きは分からない類似点を明らかにする能力があります。直感的には人口サイズや人種構成など一般的に調べられる属性が異なりますが、雇用タイプの組み合わせなど、軸に沿って調べたときには類似しています。 ブログ記事に従って、サンプルノートブックを使用してコードを実行し、データをやり取りすることができます。 この演習には 2 つの目標があります。 1) PCA と Kmeans モデリング技術を使用して教師なし学習のための Amazon SageMaker を使用したデータ科学ワークフローを説明する。 2) 有用なモデル属性を抽出するために、Amazon SageMaker 内に構築された基礎モデルにユーザーがどのようにアクセスできるかを説明する。教師なし学習から結論を引き出すことが難しい場合が往々にしてあり、PCA と Kmeans のモデルにアクセスできることが単にモデルを使用して予測を生成する以上に重要になります。 データ科学ワークフローには 4 つのメインステップがあります。 Amazon S3 からのデータの読み込み 探索的データ分析 (EDA) – データのクリーニングと探索 データのクリーニング データの可視化 特徴エンジニアリング データモデリング 次元縮退 PCA モデル属性へのアクセス PCA モデルのデプロイ 教師なしクラスタリングを使用した人口区分 […]

Read More

AWS 内部ユースケース : AWS マーケティングにおける Amazon SageMaker の評価と採用

こんにちは。AWS マーケティングデータサイエンスチームです。 高度な分析および機械学習 (ML) 技術を使用して、セールスリードのML 主導スコアリング、ML によるセグメントをターゲティング化、およびダウンストリームへのインパクト測定の計量モデルといった、AWS のお客様のライフサイクル全体にわたるビジネス上の問題解決に向けて、お客様とともに取り組みます。 アマゾン内では、各チームが独立して運営されており、独自のテクノロジースタックの選択方法や、お客様が利用する AWS サービスの採用方法に関して意思決定を行います。 これにより、各チームは各自のロードマップを管理できます。 結果、サービス評価と採用が類似したものとなって、ML の経験がまだこれからというお客様にお役に立てることでしょう。 このブログでは、Amazon SageMaker サービスの評価に関して、初めの一歩を踏み出す情報をお届けしますので、皆さまのお役に立てれば何よりです。 AWS サービスをどう利用して、ビジネス目標を達成し ML モデルを拡張するか、といった最新情報をお届けしていきます。 このブログ記事では、Amazon SageMaker を使用して、独自の ML トレーニングおよびホスティングインフラストラクチャを置き換えるための実証支援 (POC) をどう実施するか、当社の経験をシェアしたいと思います 。 当社の既存の ML インフラストラクチャは、データ処理パイプラインを管理する Amazon の内部ワークフローツールと、モデルの構築、トレーニング、およびホストのための Amazon EC2 インスタンスで構成されています。 こうしたインフラストラクチャ管理に多大な時間を費やしており、それが Amazon SageMaker サービスをより高めていく動機となりました。 POC は、Amazon SageMaker の機能と性能を調べ、インフラストラクチャの作業と運用の複雑さを最小限に抑えます。 鍵となるワークストリームは次の 3 つです。 AWS IT セキュリティチームと協力して、データセキュリティとコントロールを特定し、実装。 Amazon SageMaker の既存のMLモデルの 1 […]

Read More

Amazon Comprehend、AWS Glue、Amazon Athena を使用して感情分析をスケールする方法

現代の消費者は、ソーシャルメディア、ブログ、レビュープラットフォームを通じて企業や製品に満足感や不満を表明することがよくあります。感情分析は、企業が顧客の意見やニーズをよりよく理解し、情報に基づいてビジネスの意思決定を行うのに役立ちます。Amazon は、複数のカテゴリと言語で 1 億 3,000 万件以上の製品レビューを含むデータセットを公開しました。このデータセットを、今回のユースケースで使用します。 この記事では、Amazon S3 から未処理の Amazon 製品レビューを取り出し、データセットをクリーンアップし、各レビューから感情を抽出し、Amazon S3 に出力を書き戻すサーバーレスのデータ処理パイプラインを構築する方法を学びます。次に、最終結果を探索して視覚化します。クラウドベースの機械学習 API や他の選択した API を使用してデータを充実させる方法を強調したいと考えています。柔軟性は、パイプラインに組み込まれています。 Amazon Comprehend は機械学習を使用して、テキストにある洞察や関係を見つけます。私たちのユースケースでは、Amazon Comprehend を使用して、顧客の製品レビューから感情を判断します。使いやすい API を使用しても、意味のある洞察を得るには、未処理のデータセットをクリーンアップしてテキストをレビューする必要があります。この目的のために、Apache Spark のパワーを活用する完全マネージド型でサーバーレスの ETL (抽出、変換、ロード) サービスである AWS Glue を使用します。最後に、Amazon Athena と Amazon QuickSight を使用してデータをクエリし、視覚化します。 データパイプラインのアーキテクチャ 私たちのユースケースはシンプルですが、複雑なシナリオに合わせて簡単に拡張することができます。未処理データから始めて、すべてを一気に充実させたいと考えています。この場合、バッチ ETL プロセスが理想的です。 次の図は、私たちの処理パイプラインのアーキテクチャを示しています。 Apache Parquet 形式で Amazon S3 から未処理の Amazon 製品レビューのデータセットを読み取る (1) Glue ETL ジョブの実行から開始します。ETL は、レビューの行ごとに Comprehend API (2) […]

Read More

Amazon EKS – 一般向け利用を開始

Amazon Elastic Container Service for Kubernetes を発表し、re:Invent 2017 の期間中にお客様をプレビューにご招待しました。本日謹んで、Amazon EKS が、お客様が利用可能な実稼働状態に達したことをお知らせいたします。その Kubnernetes 適合性が認証され、既存の Kubernetes ワークロードを実行できるようになりました。 Cloud Native Computing Foundation の最新のデータによれば、Kubernetes を実行している全企業の 57% が AWS は 選択しており、Kubernetes 環境としては AWS が先頭を走っています。Kubernetes はお客様の IT 戦略のコアであり、毎週 AWS で数億ものコンテナを実行しています。Amazon EKS は Kubernetes クラスターのビルド、保護、操作、保守のプロセスを簡略化し、Kubernetes クラスターをゼロから設定することなく、アプリケーションのビルドに集中したいと考える組織にコンテナベースのコンピューティングの便益をもたらしています。 AWS インサイド Amazon EKS は AWS クラウド内で実行できるため、多くの AWS サービスと機能を大いに活用しながら、Kubernetes に関する既知の知識すべてをそのまま有効に適用できます。概要は以下の通りです。 Multi-AZ – Kubernetes コントロールプレーン (API サーバーおよび […]

Read More

Amazon SageMaker コンソールがトレーニングジョブのクローン作成サポートを開始

本日、トレーニングジョブのクローン作成機能を立ち上げましました。 Amazon SageMaker コンソール上で既存のものに基づいてトレーニングジョブを作成することがとても簡単になりました。 異なるトレーニングセットおよび同一設定を使い、 Amazon SageMaker 上で、複数のトレーニングジョブを実行するのが一般的なやり方です。 特定のハイパーパラメータや、基礎となるコンピューティングリソースを調整し、モデルを再トレーニングすることもよく行われます。 このようなシナリオでは、既存のトレーニングジョブをベースに新しいトレーニングジョブを作成することが望ましいです。こうした要件に対処するため、Amazon SageMaker は AWS 管理コンソールを使用して、既存のトレーニングジョブのクローン作成をサポートできるようになりました。 コンソールを使えば、既存のトレーニングジョブを複製するのは簡単です。 Amazon SageMaker コンソールで、左側のナビゲーションペインに表示される Training、そして Training jobs を選択してください。 そうすれば、これまでに作成した全てのトレーニングジョブのリストが表示されます。 例えば、新しいトレーニングジョブを作成したいとしましょう。 Training jobs リストの中にあるジョブ (xgboost-2018-06-05-17-19-32-703) を例とします。 同じ設定を用いて、別のデータセットに対しても xgboost-2018-06-05-17-19-32-703 トレーニングすることができます。 トレーニングジョブを最初から作成するには、Create training job を選択する代わりに、 xgboost-2018-06-05-17-19-32-703 をチェックし、Clone を選択して、Clone training job のページを開くだけです。 ジョブの設定は、元の設定 xgboost-2018-06-05-17-19-32-703 とほぼ同じです。ただし、接尾辞が元のジョブ名に自動的に追加された点が異なります。 同じトレーニングプロセスを再実行したい場合は、何も変更をせずにページの一番下にある Create training job を選択してください。 別のデータセットを使用するので、トレーニングジョブ名は好きなように変更してください。 この例では、 xgboost-mydataset を使用します。 ページ下にある […]

Read More

AWS Deep Learning AMI に Horovod が追加され、Amazon EC2 P3 インスタンスで、より高速なマルチ GPU TensorFlow のトレーニングが可能に

この AWS Deep Learning AMI は、よく普及しているオープンソースの分散トレーニングフレームワークで、複数 GPU で TensorFlow トレーニングを拡張します。Ubuntu や Amazon Linux 用で、 Horovod といっしょにインストールおよび全設定が完了済みです。 これは、 TensorFlow 1.8 の最適化ビルドのアップデート版で、5 月初旬に開始されました。 このカスタムビルドの TensorFlow 1.8 は、高度に最適化されたソースから直接構築され、Amazon EC2 C5 および P3 インスタンスのストック TensorFlow 1.8 と比較して、トレーニングパフォーマンスが向上しています。 マシンラーニングの開発者は、AMI に Horovod を追加すれば、TensorFlow トレーニングを P3 などの Amazon EC2 GPU インスタンス上で、1 つの GPU から複数の GPU にすばやくスケールアップすることが可能となり、トレーニングパフォーマンスをさらに向上させることができます。 開発者は、パラメーターサーバーを使用する標準の TensorFlow 分散トレーニングモデルと比較して、コードの変更を少なくし、より高いマルチ GPU トレーニングパフォーマンスが可能となります。 Amazon […]

Read More

複数の GPU に対する深層学習トレーニングをスケーリングするためのハイパーパラメーターの調整の重要性

複数の GPU による並列プロセスは、深層モデルのトレーニングのスケーリングを行う上で重要なステップです。トレーニングを繰り返すたびに、一般的に、ミニバッチと呼ばれるデータセットの小さなサブセットがプロセスされます。単一の GPU が使用可能の場合、それぞれのトレーニングの繰り返しにおけるミニバッチの処理は、この GPU により取り扱われます。複数の GPU でトレーニングするとき、ミニバッチはプロセスの負荷を均等に分散するために使用可能な GPU 全体に分割されます。各 GPU を完全に使用するためには、各追加 GPU でミニバッチのサイズを直線的に増大させる必要があります。ミニバッチのサイズは、トレーニング速度に影響を与えるだけではなく、トレーニングされるモデルの質にも影響を与えます。ミニバッチのサイズが大きくなると、他のハイパーパラメーターを微調整して、類似するモデルの質でより高速なトレーニングができるようにすることが重要です。 Gluon によるマルチ GPU と分散トレーニング 最新の真相学習モデルにより必要な広範なデータの量により、複数の GPU と分散マシンにスケーリングすることで、調査と本番稼働のための大幅な時間節約となる可能性があります。Amazon SageMaker や Amazon Elastic Compute Cloud (Amazon EC2) のようなサービスでは、数百 GPU の分散トレーニングをセットアップすることは、痛みのないだけでなく、正確な使用量に対して支払うだけで非常に経済的で、高価で十分に活用されていないハードウェアフリートを維持する必要はありません。 Apache MXNet は、柔軟でより効率的な深層学習プラットフォームです。 これは、複数のホストにわたるマルチ GPU と分散トレーニングに特に適しています。Apache MXNet の Gluon ライブラリは、深層学習のための明確で正確、さらにシンプルな API を提供します。gluon による複数の GPU のトレーニングおよび複数のマシンによる分散トレーニングに関するチュートリアルでは、マルチ GPU と分散トレーニングの容易なセットアップをデモンストレーションします。 トレーニングのハイパーパラメーター トレーニングのハイパーパラメーターは、勾配降下法によっては学習できないが、最終的なモデル品質に影響を与えるすべてのパラメーターを構成します。これらのパラメーターは、学習速度およびモメンタムなどの最適化パラメーター、ランダムなカラーシフト量などの増強パラメーター、および他の学習以外のパラメーターを含みます。 MXNet Gluon API は、すべての […]

Read More

この一週間の顔認識と Amazon Rekognition に関する公開ディスカッションについて弊社が考えること

この一週間、顔認識、監視、および個人の自由に関する、Amazon Rekognition の役割について多くの議論を見てきましたが、弊社の考えを共有したいと思ってます。 Amazon Rekognition は、弊社が 2016 年に発表したサービスです。開発者がディープラーニングなどの新しいテクノロジを簡単にかつ低料金で開発に利用できるようになりました。サービスを開始して以来、お客様は社会 (人身売買の防止、児童労働搾取の防止、失った子供との再会、子供向けの教育アプリの構築など) と組織 (マルチファクタ認証導入によるセキュリティ強化、画像検索の容易化、玄関先の商品の盗難防止など) の両面において、Amazon Rekognition の画像と動画の分析機能を活用してます。アマゾン ウェブ サービス (AWS) は、単にこれらのサービスプロバイダではありません。私たちは画像およびビデオ分析のテクノロジーが公共部門や法執行機関も含む組織においてどのように良い結果をもたらすのかを見るのがとても楽しみです。規定 (以下、「AUP」) を定めており、「違法行為、他者の権利を侵害する行為、または他者に有害である可能性のある行為」に対して本サービスの使用を禁じています。これには、本質的にあらゆる種類の違法差別や正当なプロセスやプライバシー権の侵害など、第 4、第 5、および第 14 条修正に関する憲法上の権利を侵害することが含まれます。 当社の AUP に違反しているお客様は当社のサービスを使用することはできません。 しかし新しい技術力には常にリスクが存在します。新技術の採用を決定した組織は、責任をもった行動、または法的罰則や公然の非難を受ける覚悟が必要です。AWS はその責任を真剣に受け止めています。しかし、我々は有望な技術を悪事に利用されるのを恐れて、それらの使用を禁止するといったことは誤った方法だと考えています。もしコンピュータが悪用される可能性があるという理由で、人々がコンピュータの購入を規制された場合、世界は誤った方向に行くでしょう。私たちが毎日頼っている何千もの技術についても同様です。 それらの技術を責任を持って利用することで、技術がもたらす恩恵はリスクをはるかに上回っています。 お客様は Amazon Rekognition を使い素晴らしいスタートを切りました。この新技術がもたらすプラスの効果は日々大きくなっています。我々は責任ある利用をしているお客様を引き続きサポートすることができて嬉しく思っています。 -Dr. Matt Wood 氏、AWS の人工知能ゼネラルマネジャー

Read More

Amazon SageMaker のアップデート、東京リージョン、CloudFormation、Chainer、GreenGrass ML

本日、東京での AWS Summit で、Amazon SageMaker の多数のアップデートや新機能が発表されました。本日より、SageMaker が アジアパシフィック (東京) で利用可能になります!また、SageMaker は CloudFormation もサポートします。SageMaker Python SDK では、MXNet および Tensorflow に加えて、機械学習の新しいフレームワークである Chainer も利用できます。最後に、いくつかのデバイスでの Chainer モデルの実行に対するサポートが AWS Greengrass Machine Learning に追加されました。 Amazon SageMaker Chainer エスティメーター Chainer は、定評がある、柔軟で直感的な深層学習のフレームワークです。Chainer ネットワークは、ネットワークトポロジが順方向計算によって動的に定義される「Define-by-Run」スキームで動作します。これは、ネットワークのトポロジがデータとは別に定義される「定義と実行」スキームで動作する他の多くのフレームワークとは対照的です。多くの開発者は、ネイティブの Python の構造やツールでネットワークを書くことができるので、Chainer スキームを重宝しています。 幸いなことに、SageMaker で Chainer を使用することは、TensorFlow または MXNet のエスティメーターを使用するのと同じくらい簡単です実際には、既存のスクリプトを使用して、少し修正するだけで SageMaker でトレーニングすることができるので、さらに簡単かもしれません。TensorFlow または MXNet を使用する場合には、特定の署名を持つトレーニング機能を実装する必要があります。Chainer を使用する場合は、 SM_MODEL_DIR、 SM_NUM_GPUS、その他の環境変数から簡単に読み込めるので、スクリプトはより移植しやすくなります。既存のスクリプトを、 if __name__ […]

Read More