Amazon Web Services ブログ

Category: SageMaker

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

Amazon SageMaker に組み込みの物体検出アルゴリズムと AWS DeepLens を使用してエッジで鳥の種を識別する

カスタムの物体検出は、MRI での腫瘍の発見、病気に罹った農作物の特定、鉄道駅ホームの監視など、さまざまな産業やユースケースにとって重要な要素となっています。このブログ記事では、アノテーションが付けられた公開データセットに基づいて鳥を識別します。このタイプのモデルは、さまざまな方法で使用できます。建設プロジェクトの環境調査の自動化で使用したり、バードウォッチングの時に鳥愛好家が使用したりすることができます。また、このモデルを実用的な例として利用し、独自のユースケースの新しいアイデアを生み出すこともできます。 この例では、Amazon SageMaker が提供している組み込みの物体検出アルゴリズムを使用します。Amazon SageMaker は、エンドツーエンドの機械学習 (ML) プラットフォームです。組み込みアルゴリズムを使用することで、開発者は TensorFlow や MXNet などの低レベルの ML フレームワークの使用に関する専門知識を必要とせずに機械学習を加速させることができます。モデルは、Amazon SageMaker の完全に管理されたオンデマンドトレーニングインフラストラクチャでトレーニングします。AWS IoT Greengrass を使用すると、トレーニング済みモデルをクラウドまたはエッジで簡単にホストすることができます。 カスタムの物体検出をエッジで使用する方法を示すために、トレーニング済みモデルを開発者向けの世界初の深層学習対応ビデオカメラである AWS DeepLens にデプロイする方法も示します。AWS DeepLens により、開発者は文字どおり完全にプログラム可能なビデオカメラ、チュートリアル、コード、および深層学習スキルを向上させるよう設計された事前トレーニング済みのモデルを使って深層学習を利用できます。 次の図は、鳥の識別ソリューションの構築方法の概要を示しています。 データセットの理解 CUB 200-2011 鳥類データセットには、200 種の鳥の種にわたる 11,788 枚の画像が含まれています (元の技術レポートはこちらにあります)。それぞれの種には約 60 枚の画像が付属しており、一般的なサイズは約 350 ピクセル × 500 ピクセルです。鳥の部分のアノテーションとして、バウンディングボックスが提供されています。推奨されるトレーニング/テストの分割は与えられますが、画像サイズデータは与えられていません。 画像データセットの準備 Amazon SageMaker の物体検出アルゴリズムに画像データを提供する最も効率的な方法は、RecordIO 形式を使用することです。MXNet には、データセット用の RecordIO ファイルを作成するための im2rec.py というツールがあります。このツールを使用するには、一連の画像を記述するリストファイルを用意します。 物体検出データセットでは、Amazon SageMaker は、バウンディングボックスを、フル画像に対するボックスのコーナーの比率である […]

Read More

Amazon SageMaker Ground Truth を使用して階層型ラベル分類法を作成する

re:Invent 2018 で、私たちは Amazon SageMaker Ground Truth を発表しました。これは、機械学習を使用して非常に正確なデータセットを構築し、ラベル付けのコストを最大 70% 削減することができます。Amazon SageMaker Ground Truth を使用すると、パブリックおよびプライベートでラベル付けを行う人間の作業者に簡単なアクセスと、一般的なラベル付けタスクのための組み込みのワークフローとインターフェースが提供されます。さらに、Amazon SageMaker Ground Truth は自動データラベル付けを使用してラベル付けのコストを削減します。自動データラベル付けは、人間がラベルを付けたデータから Ground Truth をトレーニングし、サービスが独自にデータにラベルを付けることを学習することによって機能します。 路上でカメラで撮影した画像の大規模なコーパスがあるとしましょう。それぞれの画像には、無人自動車用のアルゴリズムを開発するために重要な多くの異なる対象物 (たとえば、車または交通標識) が含まれている可能性があります。最初に、画像から取得したい情報の階層表現を定義する必要があります (そのようなラベル分類法がどのように見えるかの例については、下記を参照してください)。次に、これらのラベルが付いていない未処理の画像を取得し、高レベルのクラス (「車」、「交通標識」、「歩行者」など) でラベル付けすることによってラベル付けプロセスを開始します。 このブログ記事では、ジョブをチェーンさせて拡張マニフェスト機能を利用することで、Amazon SageMaker Ground Truth を使用してこのような階層的なラベル付けを実現する方法を紹介します。 通常の解決方法 教師あり機械学習では、通常、未加工データと各データオブジェクトの関連ラベルの両方を含むラベル付きデータセットを使用します。たとえば、道路画像のトレーニングデータセットを作成し、それらを「交通標識あり」または「交通標識なし」に分類することができます (ラベル 0 と 1 が 2 つのクラスに対応します)。これらのラベルは通常、CSV や JSON などの形式で保存され、最初の列は未加工データを表し、2 番目の列はラベルを表します。 ただし、同じセットの画像にさらにラベルを付けたい場合 (たとえば、「交通標識あり」セット内の交通標識の種類を識別するため)、通常、最初のデータセットに対してフィルタ処理を実行して交通標識が含まれている画像だけを選択して、新しいデータセットを作成します。これにより、データセットは「交通標識」 (ラベル 0) だけを含む別のサブセットに縮小されます。その後、新しいラベルを追加して、標識を「一時停止標識」、「制限速度」などに分類することができます。 こうした種類のフィルタリング操作は、大規模なデータセットではコストや時間がかかる可能性があります。また、物体検出 (バウンディングボックス) アルゴリズムによって、画像内のすべての停止標識と歩行者をマークしたいと考えるかもしれません。このため、通常、画像の中の停止標識と歩行者のそれぞれの周囲に、物体検出ラベルを追加して 3 番目のデータセットを作成する必要があります。深く分類し続けるにつれて、トレーニングデータセットの数と複雑さは分類法のファンアウト係数 […]

Read More

[AWS Black Belt Online Seminar] Amazon SageMaker Advanced Session 資料及び QA 公開

先日 (2018/3/13) 開催しました AWS Black Belt Online Seminar「Amazon SageMaker Advanced Session」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190213 AWS Black Belt Online Seminar Amazon SageMaker Advanced Session from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. 自動ラベリング機能については、SageMakerのフレームワークに則る必要がありますか?(APIレベルで) A. 自動ラベリング機能は,Image classification,Object detection,Text classificationの3つのビルトインアルゴリズムについて,EC2上で学習とバッチ推論APIとしてお使いいただくことができます. https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/sms-automated-labeling.html Q. Marketplaceでは推論モデルのバージョンアップのタイミングで精度が変化することもあると思いますが、次のバージョンがリリースされる前に試用期間を設けてもらうことは可能でしょうか? A. 出品者のお客様のほうで出品内容については管理されており,AWS側からそう言った制限を設けることは現状できかねます. Q. そのアルゴリズムなどに対する問い合わせは通常のサポート窓口経由ですか? A. サポートにご契約いただいているお客様は,サポートにお問い合わせいただくことができます. Q. DeepRacerって国内でも使えるんですか? A. 日本国内発売開始後,ご利用いただけます. Q. 学習したモデルをデプロイするのではなく、modelファイルとして出力して、別環境にデプロイすることはできますか? A. 学習済みのモデルとその時に使ったスクリプトや・パラメータは全てS3に保存されますので,そこから直接取り出して別環境にデプロイいただけます. https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html 今後の AWS Webinar スケジュール 直近で以下のオンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております! AWSOME DAY ONLINE CONFERENCE […]

Read More

Amazon SageMaker スクリプトモードでの TensorFlow Eager Execution の使用

 このブログ記事では、TensorFlow の Eager Execution モードでモデルを訓練するために Amazon SageMaker のスクリプトモードを使用する方法について説明します。Eager Execution は TensorFlow の未来であり、現在最新の TensorFlow 1.x バージョンでオプションとして利用可能ではあるものの、TensorFlow 2 ではデフォルトモードになる予定です。今回は、スクリプトモードと Eager Execution について簡単に説明してから、代表的な回帰タスクシナリオをご紹介します。次に、スクリプトモードと Eager Execution を併用して、このタスクを解決するワークフローについて説明します。このブログ記事のためのノートブックと関連コードは GitHub から入手することができます。それでは、スクリプトモードから見ていきましょう。 Amazon SageMaker のスクリプトモード Amazon SageMaker は、TensorFlow などの人気の高い機械学習 (ML) および深層学習フレームワークの一部を使ったモデルの訓練とデプロイメントを容易にする API と事前構築されたコンテナを提供します。Amazon SageMaker は、コンテナの構築や基盤となるインフラストラクチャの管理について心配することなく、カスタム TensorFlow コードを使用したモデルを訓練してデプロイするために使用できます。Amazon SageMaker の Python SDK TensorFlow Estimator、および Amazon SageMaker のオープンソース TensorFlow コンテナは、TensorFlow スクリプトを記述して、それを Amazon SageMaker […]

Read More

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

アマゾン ウェブ サービス ジャパン株式会社 (AWS) ソリューションアーキテクトの針原佳貴です。 AWS では、Amazon SageMaker のハンズオンとお客様の登壇による事例紹介を合わせたイベント「Amazon SageMaker 事例祭り」を毎月開催しています。2018年2月12日に目黒オフィスで第2回 Amzon SageMaker 事例祭りが開催され150名ほどの方にご参加頂いたので、以下でその概要についてお伝えします。今回の Amazon SageMaker 事例祭りは Chainer x AWS というテーマで、セミナーと事例発表の二部構成で開催されました。   セミナー 「Chainer v5 とこれから ~学習と推論の最新機能~」株式会社Preferred Networks リサーチャー 得居誠也 様 [slides] Chainer は Python で実装された Define by Run の深層学習フレームワークで、NumPy のような既存の Python ライブラリをそのまま使い、直感的な API によるモデルの記述ができます。本発表ではまずこれらの設計思想と API の解説を改めて Chainer のリード開発者である 株式会社Preferred Networks 得居様からお話し頂きました。また、大規模データに対するトレーニングの際に求められる Serializers によるパラメータのファイル出力や、ONNX-Chainer, […]

Read More

Amazon SageMaker で複数の TensorFlow モデルを一つのエンドポイントへデプロイする方法

概要 Amazon SageMaker では、TensorFlow、MXNet、Chainer、PyTorch、scikit-learn といった機械学習フレームワークをサポートしています。これらのフレームワークを利用して機械学習による予測結果を得るためには、学習した機械学習モデルをエンドポイントにデプロイする必要があります。複数のモデルを利用したい場合、モデル一つ一つに対してエンドポイントを作成する方法が一般的ですが、推論リクエストが少ないモデルに対してエンドポイントを常時起動すると、推論処理に対するコストが高くなってしまいます。そこで、推論リクエストの少ないモデルを、他のモデルと同じエンドポイントにデプロイし、常時起動するインスタンス数を低減する方法があります。この手法はリアルタイム処理が必要な場合は特に有効です。なお、推論処理がリアルタイム性を要求しない場合はバッチ変換ジョブをご利用ください。 本記事では、複数のモデルを一つのエンドポイントにデプロイする方法について説明いたします。Amazon SageMaker がサポートする全ての機械学習フレームワークで、複数のモデルを一つのエンドポイントにデプロイすることができますが、ここでは Tensorflow Serving を利用して、複数のモデルをデプロイする方法について説明します。例として、軽量な物体検出モデル SSD MobileNet と、軽量な画像分類モデル MobileNet を1つのインスタンスにデプロイします。デプロイまでの手順の概要は以下のとおりです。 複数の TensorFlow モデルを TensorFlow Serving にデプロイ可能な SavedModel 形式で保存します。 保存したモデルを1つのアーカイブファイル (tar.gz 形式) にして、Amazon S3 (S3) にアップロードします。 Amazon SageMaker の API を利用して、1 つのインスタンスにデプロイし、テストします。 それでは各手順について以下で説明します。 1. TensorFlow モデルの保存 Jupyter Notebook からコードを実行し、TensorFlow の学習済みモデルをダウンロードして、以下のような SavedModel 形式で保存します。model1 を SSD MobileNet、model2 を MobileNet とします。TensorFlow モデルには、SavedModel 形式以外の学習済みモデルが公開されている場合があるので、必要に応じて変換します。今回は […]

Read More