Amazon Web Services ブログ

Category: SageMaker

Amazon SageMaker Ground Truth でのラベリングジョブ用の優れた説明の作成

Amazon SageMaker Ground Truthは、機械学習 (ML) 用の高精度なトレーニングデータセットをすばやく構築するお手伝いをします。ご自身のワークフォース、データラベリングに特化したベンダー管理ワークフォースの選択、または Amazon Mechanical Turk が提供するパブリックワークフォースを使用して、人が生成するラベルを提供することができます。質の高いのラベルを取得するには、特にパブリックワークフォースを使用している場合、簡単かつ簡潔で明確な説明が必要です。良い説明が書ければ、アノテーションの品質を向上させることができます。正しく行えば、この作業に時間を費やす価値はあります。 このブログ記事では、パブリックワークフォースに効果的な説明を作成するためのベストプラクティスをご紹介します。ここで重要なポイントが 2 点あります。ワークフォースへの認知負荷をできるだけ減らすこと、そして説明を微調整して後で発生する問題を避けるためにもプロセスの早い段階で実験することです。たとえば実験で、データの一部に自分でラベルを付けたり、プロセス全体の中でも小規模なジョブをパブリックワークフォースに行ってもらうことができます。 以下のスクリーンショットは、ワーカーの観点から見て適切な説明のある Ground Truth のバウンディングボックスのラベリングタスク例を示しています。このタスク例では、Google Open Images Dataset から取得したイメージにある花の周りを囲む四角形の枠を描くようワーカーに伝えます。ワーカーがアノテーションを付けている作業中、イメージの左側にあるサイドバーには短い説明が表示されます。はっきりと要領を得た、かつタスクに特化した説明で、サンプルのイメージに焦点を当てています。 以下の図は、サイドバーにある [View full instructions] を選択すると表示される完全な説明のサンプルです。ワーカーが混乱しやすいあいまいな説明が、明確に表記されています。この投稿を最後まで読むと、ご自身のラベリングジョブで優れた説明を作成することができるでしょう。 推奨するワークフロー Ground Truth が提供するツールを使用してデータの一部にアノテーションを付けるのが、適切な説明を作成する最も簡単な方法です。作成後、その結果を説明のサンプルとして使用できます。これを行うには、以下の手順を行います。 データからサンプルをいくつか選択する。 Ground Truth でプライベートジョブを実行し、選択したサンプルにラベルを付ける。 結果を使って、簡単な説明を作成する。サンプルイメージと少しのテキストに焦点を当てる。 タスクのあいまいさを回避し明確にするため、完全な説明を作成する。 小さなパブリックジョブを実行し、説明をテストする。満足する結果が出るまで繰り返す。 タスクの単純化を考慮し、正当な価格を設定する。 注: プライベートラベリングジョブを実行すると、1 サンプルにつき 0.08 USD の費用がかかります。料金の詳細については、Amazon SageMaker Ground Truth料金ページをご覧ください。 質の高い説明を作成したら、フルラベリングジョブをパブリックワークフォースに送信します。チェックリストの各ステップを見ていきましょう。 データからサンプルをいくつか選択する データセットを閲覧して、データの多様性を捉えたサンプルを選択します。一般的なサンプルではなく、ラベルを付けたい項目からサンプルを選択すると、ご自身の特定のタスクについてアノテーターの理解が得られやすくなります。 ここでは、さまざまな形や大きさの花が異なる数で写っているイメージを選択します。これらのイメージにある一部の花は、他の花の後ろに隠れたり、フレームの端に触れたりしています。さまざまなケースを選択すると、説明を作成するのに良いサンプルを見つけやすくなります。また、ワーカーから見て難しいタスクについて、洞察や発見を得ることもできます。 Ground Truth でプライベートジョブを実行し、選択したサンプルにラベルを付けます。 前回のブログ投稿では、AWS […]

Read More

Amazon SageMaker の自動モデルチューニングで、ランダム検索とハイパーパラメータスケーリングをサポート

Amazon SageMaker の自動モデルチューニングで強くお勧めできる 2 つの機能、ランダム検索とハイパーパラメータスケーリングを紹介します。この記事では、これらの機能について説明し、いつどのように有効にするかについて説明し、どのようにハイパーパラメータの検索におけるパフォーマンスを向上させることができるかを示します。お急ぎの場合は、デフォルト値で実行すると、ほとんどの場合はうまく機能します。しかし、もっと詳しく知りたい場合、もっと手動で制御したい場合は、読み続けてください。 Amazon SageMaker 自動モデルチューニングを初めて使用する場合は、「Amazon SageMaker 開発者ガイド」を参照してください。 ランダム検索とハイパーパラメータの対数スケーリング使用方法の実施例については、GitHub の Jupyter ノートブックの例を参照してください。 ランダム検索 ランダム検索を使用して、Amazon SageMaker に、ランダムな分布からハイパーパラメータ設定を選択するように指示します。 ランダム検索の主な利点は、すべてのジョブを並行して実行できることです。対照的に、デフォルトのチューニング手法であるベイズ最適化は、チューニングジョブの進行につれて過去のトレーニングから学習する順序アルゴリズムです。これにより、並列処理のレベルが大幅に制限されます。ランダム検索の欠点は、匹敵するモデル品質に到達するために、一般的にかなり多くのトレーニングジョブを実行する必要があることです。 Amazon SageMaker では、以下のように、チューニングジョブを作成するときに [戦略] フィールドを [ランダム] に設定するのと同じくらい簡単に、ランダム検索を有効にすることができます。 { “ParameterRanges”: {…} “Strategy”: “Random”, “HyperParameterTuningJobObjective”: {…} } AWS SDK for Python (Boto) を使用している場合は、HyperparameterTuner クラスで strategy=”Random” に設定します。 tuner = HyperparameterTuner( sagemaker_estimator, objective_metric_name, hyperparameter_ranges, max_jobs=20, max_parallel_jobs=20, strategy=”Random” ) 次のプロットは、左側のランダム検索で選択されたハイパーパラメータと、右側のベイズ最適化で選択されたハイパーパラメータを比較したものです。この例では、モデルチューニングのノートブックの例で作成した銀行マーケティングのデータセットを使用して、XGBoost アルゴリズムを調整しました。視覚化するために、alpha […]

Read More

Java と Amazon SageMaker Random Cut Forest アルゴリズムを使ってサーバーレスの異常検知ツールを構築する

ビジネスオーナーの方達が、共通して直面する問題の一つが、ビジネス上で普段と違う出来事に遭遇する、というものです。例えば、ユーザーが日ごろとは違う行動を取ったり、日々のトラフィックパターンに変化が起きるなどは、それらの問題の一部にすぎません。データやメトリクスが常に増加しつづける中、機械学習の力を借りて異常検知をすることは、積極的な問題特定のための、非常に有益な手法と言えます。 今回のブログでは、Amazon SageMaker と Java を使って、サーバーレスの異常検知ツールを作成する方法を解説していきます。Amazon SageMaker を使えば、機械学習モデルのトレーニングとホスティングを簡単に行え、ビルトインのアルゴリズムが、ビジネスに共通の問題を解決します。こういったビジネス上の特有な問題解決には、Random Cut Forest (RCF) 異常検知アルゴリズムを使います。Amazon Web Services ではお客様に、素早い対応力、低い IT コスト、そしてスケーリングなどを提供する、国際的なクラウドベースの製品を幅広く提案しています。ここでは、それらを使い、サーバーレスの異常検知ツールを構成する方法をご提示しましょう。Python は、機械学習の問題を追跡するための、最も普及したプログラミング言語の一つですが、多くのユーザーは、Java やその他の JVM ベース言語を使って、マイクロサービスやサーバーレスのアプリケーションを構築しているでしょう。このブログを読み終えた段階で、 お客様はAmazon SageMaker を使い、Java アプリケーションの中で機械学習を動作させられるようになると思います。 このブログ全体を通して、Java コードのスニペットを示しながら、本ツールの特徴的な側面に焦点を当てていきます。こちらから、構築およびデプロイされたコードを、ご自身の AWS アカウントのために取得することが可能です。 問題の概要 今回の例では、Java 開発者の Alice さんにご登場願います。彼女は、複数の AWS サービスの上層で走るビデオストリーミングプラットフォームを運営しており、顧客は数千人におよびます。Alice さんは、彼女のプラットフォームが上手く機能しているかを表示するメトリクスを追跡するため、ダッシュボードの設定を行っています。彼女にとって最も重要なメトリクスの 1 つは、次の図に示すような、プラットフォーム上のアクティブユーザーの総数です。 このメトリクスは、ユーザー数の基本的な日次パターンを示していますが、同時に、周期的な変化も見せています。 アクティブユーザー数の低い点、高い点、そして日常パターンから外れた動きなどは、すべて変則値として捉えられます。主に Alice さんが関心を寄せているのは、これらの変則的データポイントの根本原因を突き止めるということです。現在のところ彼女は、データ内の異常を見つけるための自動ツールは使っていません。代わりに、データのスパイクやくぼみ、周期性から外れた部分をみつけるため、マニュアル操作を行い多くの時間を費やしています。そして、この周期性に変化があることから、固定的なしきい値やそのウィンドウを設定しても、さほどの効果は上がりません。彼女には、もっと良い解決策が必要というわけです。 Alice さんの仕事を楽にする方法とは? ソリューションのアーキテクチャ 異常検知についてAlice さんが抱える問題を解決するには、まず、異常検知ツールの全構成ブロックを確認することが必要でしょう。 Amazon SageMaker – メトリクスデータの履歴をもとにしたモデルの構築を容易にするには、Amazon SageMaker を使います。これにより、(前週の値を参考に) 現在の変則的なデータポイントを見つけ出すことができます。Amazon SageMaker […]

Read More

Amazon SageMaker で Optuna を用いたハイパーパラメータ最適化を実装する

Amazon SageMaker はお客様の機械学習のワークロードにおいて様々な選択肢を提供します。深層学習フレームワークの選択肢として2018年の AWS Summit Tokyo で発表された Chainer 対応はその一つです。Chainer は 株式会社Preferred Networks により開発された深層学習フレームワークで、計算時に動的にグラフを生成する define-by-run の考え方 (imperative な実行とも呼ばれます) を世界に先駆けて取り入れました。株式会社Preferred Networks はこの Chainer とは独立に、同じく define-by-run の思想に基づいたハイパーパラメータの最適化 (HPO) のための Optuna を2018年12月に発表しました。本稿では、AWS が提供する SageMaker 上で Optuna を用いた HPO を行う方法とアーキテクチャについてご紹介します。 導入 SageMaker が提供する HPO の選択肢 Amazon SageMaker は、TensorFlow, Apache MXNet, PyTorch, Chainer, scikit-learn, Horovod, Keras, Gluon などのフレームワーク・インターフェースに対応し、すべての開発者とデータサイエンティストに機械学習モデルの構築・学習・デプロイ手段を提供する AWS のサービスです。SageMaker はマネージド型の […]

Read More

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

アマゾン ウェブ サービス ジャパン株式会社 (AWS) 機械学習ソリューションアーキテクトの宇都宮聖子です。AWS 目黒オフィスでは、お客様の事例紹介登壇を交えた Amazon SageMaker のセミナーとして、「Amazon SageMaker 事例祭り」を毎月開催しています。2019年3月12日に開催された第3回 Amzon SageMaker 事例祭りでは、株式会社ディー・エヌ・エーの加藤様、クックパッド株式会社の染谷様をゲストスピーカーにお迎えし、Amazno SageMaker の入門ハンズオンまで、130名を超えるたくさんの方々にご参加いただきました。   Amazon SageMaker 紹介 「Amazon SageMakerとは何か」 アマゾン ウェブ サービス ジャパン株式会社 機械学習ソリューションアーキテクト 鮫島 正樹  [slides] Amazon SageMaker は、開発・トレーニング・デプロイと一連の機械学習のワークフローにおける課題を解消するためのサービスです。AWS ソリューションアーキテクト鮫島より、機械学習のマネージドサービスである Amazon SageMaker について、開発・学習・推論を効率的に実装する各種機能の基本的な使い方、SageMaker を使った機械学習のフローやアーキテクチャ、SageMaker 対応の学習スクリプトや分散学習対応コードの書き方など SageMaker への移行の際に気をつけること、機械学習パイプラインの構築支援機能、実際のユースケースなど、SageMaker を便利にお使いいただくための方法をご紹介しました。 Amazon SageMaker Ground Truth、Amazon Elastic Inference、ノートブックインスタンスの16TBまでのディスク拡張、TensorFlow の script mode 対応、AWS Step Functions […]

Read More

オンプレミス環境から Amazon SageMaker を利用する

Amazon SageMaker は、機械学習におけるデータ準備・開発・学習・モデル変換・デプロイ、これら全体のパイプラインをサポートするマネージドサービスです。SageMaker の利用を検討する際に、これらの全てを SageMaker に移行しなければならないのかというと、そうではありません。例えば、開発のみを SageMaker の Jupyter Notebook で行うことや、学習・デプロイのみを SageMaker で行うことも可能です。この特性を活かせば、オンプレミスに機械学習環境を保有しているユーザが、既存のオンプレミス環境をなるべく活用し、追加のリソースが必要な部分に SageMaker を利用することができます。

Read More

Amazon SageMaker に独自のハイパーパラメータ最適化アルゴリズムを持ち込む

このブログ記事では、Amazon SageMaker でモデルをチューニングするためのカスタムの最先端のハイパーパラメータ最適化 (HPO) アルゴリズムを実装する方法について説明します。Amazon SageMaker には HPO アルゴリズムが組み込まれていますが、独自の HPO アルゴリズムを使用するための柔軟性があります。選択した HPO アルゴリズムを組み込むためのフレームワークを提供します。けれどもこれを実行する前に、いくつかの基本事項を確認しましょう。 フレームワークに関係なく、どのような機械学習 (ML) パイプラインでも、4 つの一般的な手順は、構築、トレーニング、チューニング (調整)、そしてデプロイです。構築段階では、データを収集し、マッサージし、そして ML トレーニングのために準備し、そしてアルゴリズムをゼロから記述するか、または一般的な ML フレームワークを使用して記述します。次に、準備されたデータをアルゴリズムで指し示し、何らかのパフォーマンス測定基準 (検証精度など) を段階的に改善することによってモデルをトレーニングします。モデルを望ましいレベルの精度にトレーニングしたら、より大きな ML アーキテクチャで使用するためにホストするか、デプロイする準備が整います。トレーニングを開始する前に、各アルゴリズムは、アルゴリズムのさまざまな側面を定義するハイパーパラメータと呼ばれる値のセットから開始します。たとえば、Amazon SageMaker の組み込みアルゴリズムとしても提供されている一般的な Xgboost (Extreme Gradient Boosted Trees の略) アルゴリズムは、モデルをトレーニングする前に以下のパラメータを設定する必要があり、そしてデータと共に、トレーニングの実行方法、およびモデルの最終的な精度を決定します。 パラメータ名 パラメータタイプ 推奨範囲 alpha 連続 MinValue: 0, MaxValue: 1000 colsample_bylevel 連続 MinValue: 0.1, MaxValue: 1 colsample_bytree 連続 MinValue: 0.5, MaxValue: […]

Read More

新しい認定資格「AWS Certified Machine Learning – Specialty」で認定機械学習開発者になる

2018 年 11 月に、このブログで、Amazon のエンジニアを訓練するために使用されるものと同じ機械学習 (ML) コースが、AWS を通してすべての開発者にご利用いただけるようになったことをお知らせしいたしました。本日は、AWS を使用して機械学習モデルを構築、トレーニング、調整、デプロイする能力を強化および検証する方法があることをお知らせいたします。 AWS トレーニングと認定は、新しい AWS Certified Machine Learning – Specialty 認定の提供を発表いたします。この新しい試験は、特定のビジネス上の問題に対して ML ソリューションを設計、実装、デプロイ、保守する能力を検証したい開発者およびデータサイエンティストのために AWS の専門家によって作成されました。さらに、特定のビジネス上の問題に適した ML アプローチを選択して正当化し、ML ソリューションを実装するのに適切な AWS のサービスを特定し、スケーラブルでコスト最適化された信頼性の高い安全な ML ソリューションを設計および実装する能力を検証します。AWS トレーニングと認定では、ML および人工知能 (AI) サービス、特に Amazon SageMaker、および Amazon EMR、AWS Lambda、AWS Glue、Amazon S3 などのその他のサービスの使用に関して 1 年以上の実務経験があることをお勧めしています。また、受験者がアソシエートレベルの認定またはクラウドプラクティショナー認定を取得していることも推奨されますが、必須ではありません。 AWS の機械学習担当副社長である Swami Sivasubramanian から、この成長分野でのニーズについての彼の考えを聞く機会がありました。「顧客は機械学習の分野でもっと熟練した人材が必要であると言っており、これはアマゾン内でもよく知られている問題です。そのため、開発者を機械学習についてトレーニングするための社内教育の開発に大きな投資をしました」と、彼は言いました。「AWS トレーニングと認定は、同じリソースを顧客に提供することで、顧客がスタッフのスキルを開発および検証し、AWS で発展している AI/ML スイート、およびこのテクノロジが組織や世界経済にもたらす変革の効果を最大限に活用できるようにします。」 ML モデルを構築、トレーニング、調整、デプロイする能力により、新しいビジネスアイデアの発案、新しい雇用機会、新しい顧客体験が生まれます。始める準備はできていますか? 次のステップ […]

Read More

Amazon SageMaker Ground Truth ラべリングジョブに、加わったデータラべリングサービス 2 社を使用する

Amazon SageMaker Ground Truth のラベリングジョブに使用できるデータラベリングサービスで、さらに次の 2 つのサービスが増えることになりました。 iMerit の米国を拠点とするワークホースによるデータラベリングサービス Startek, Inc によるデータラベリングサービス AWS Marketplace に加わったこの新しいリスティングは、現存する iMerit のインドを拠点とするワークフォースリスティングを補完するもので、合計 3 つのオプションが提供されることになります。 iMerit では今後、データラベリングを専門とするフルタイムの米国ベーススタッフを提供することになりました。同社の画像ラベリング機能には、分類、枠どり、画像分割、キーポイント、ポリゴン、ポリラインなどがあります。同社のテキストラベリング機能には、英語およびスペイン語の両言語における要素抽出と分類があります。 StarTek はビジネスプロセスのアウトソーシング企業で、データラベリングサービスを提供します。StarTek は株式公開企業 (NYSE: SRT) で、同社のワークフォースは、フィリピン、ホンジュラス、インド、ブラジル、ジャマイカに展開しています。同社の画像ラベリング機能には、分類、枠どり、画像分割、キーポイント、ポリゴン、ポリラインなどがあります。同社のテキストラベリング機能には、英語での要素抽出と分類があります。 Amazon SageMaker Ground Truth は、re:Invent 2018 で立ち上げられました。これは機械学習向けに精度の高いトレーニングデータセットを構築するのに役立つサービスです。詳細については立ち上げブログをご覧ください。Ground Truth のラベリングジョブを設定する際、ラベリングタスクを自社のワーカー、Amazon Mechanical Turk のパブリックワーカー、または AWS Marketplace のリストに掲載されているベンダーのいずれかに送信できます。 お客様は事前承認されたベンダーのいずれかにデータラベリングタスクを割り当てることが可能で、これらのベンダーは、Amazon が機密保持、サービス保証、特殊スキルなどの面で綿密に調査を行った企業です。こうしたベンダーはデータセキュリティ、物理的施設へのアクセス制限、セキュアなデータ送信などに関する特定の要件を満たしているかによって承認されます。承認されたベンダーが承認後も要件を満たしていることを確認するため、定期的にセキュリティに関する監査を行います。 通常、適切なベンダーを見つけ、その後契約を結ぶのは、時間を要する面倒な作業です。Ground Truth を活用することで、ベンダーとの作業はシンプルになり、その工程も AWS Marketplace を通してわずか数クリックするだけとなります。すべてのベンダー関連の料金は AWS Marketplace リスティングを通じて、AWS の請求書に直接記載されます。ここでは、Ground Truth […]

Read More

Amazon SageMaker 推論パイプラインと Scikit-learn を使用して予測を行う前に入力データを前処理する

Amazon SageMaker を使用すると、開発者やデータサイエンティストは大規模な機械学習 (ML) モデルを構築、トレーニング、調整、デプロイすることができます。目に見えないデータのリアルタイム予測またはバッチ予測のためにトレーニング済み ML モデルをデプロイできます。推論と呼ばれるプロセスです。ただし、ほとんどの場合、未加工の入力データは前処理する必要があり、予測で直接使用することはできません。これは、ほとんどの ML モデルが事前に定義された形式のデータを想定しているため、ML モデルでデータを処理するには、まず未加工データをクリーンアップして形式を設定する必要があるためです。 このブログ記事では、入力データの前処理に Amazon SageMaker の組み込みの Scikit-learn ライブラリを使用し、次に予測に Amazon SageMaker の組み込みの Linear Learner (線形回帰) アルゴリズムを使用する方法を説明します。Amazon SageMaker の推論パイプライン機能を使用して、ライブラリとアルゴリズムの両方を同じエンドポイントにデプロイするので、未加工の入力データを直接 Amazon SageMaker に渡すことができます。また、ML のワークフローをモジュール化し、トレーニングと推論の間で前処理コードを再利用して開発のオーバーヘッドやエラーを削減する方法も示します。 ここでの例 (GitHub でも公開されています) では、UCI 機械学習リポジトリからの abalone (アワビ) データセットを使用します。このデータセットには、性別、長さ、直径、高さ、殻の重さ、身の重さ、全体重、内臓の重さ、年齢など、アワビ (貝類の一種) に関するさまざまなデータが含まれています。  アワビの年齢を測定するのは時間がかかる作業であるため、アワビの年齢を予測するモデルを構築することで、物理的測定のみに基づいてアワビの年齢を推定することができ、アワビの年齢を手動で測定する必要がなくなります。 これを実現するために、まず Amazon SageMaker 組み込みの Scikit-learn ライブラリを使って簡単な前処理を行います。未加工のアワビデータに、SimpleImputer、StandardScaler、OneHotEncoder の変換器を使用します。これらは Scikit-learn の前処理ライブラリに含まれる一般的に使用されるデータ変換器であり、データを ML モデルに必要な形式に処理します。  次に、処理したデータを使用して、Amazon SageMaker の Linear […]

Read More