Amazon Web Services ブログ

Category: SageMaker

DXC Technology が AWS の機械学習を使ってサポートチケットの選別を自動化

  DXC Technology は、さまざまな企業や政府機関向けに、デジタルトランスフォーメーション上でエンドツーエンドのサービスを提供している IT サービスの世界的大手企業です。同社は、オンプレミスとクラウドで、クライアントのサービス管理も行っています。  プロセスの過程でインシデントチケットが発生した場合は、サービスレベルアグリーメント (SLA) に沿ってすばやく解決する必要があります。  DXC は、人的作業を減らし、インシデントの解決時間を短縮し、知識管理を強化して、インシデント解決の一貫性を向上させることを目標に掲げています。  そして、この目標を念頭に、知識管理 (KM) 記事の予測メカニズムを開発しました。 今回のブログでは、DXC が、KM 記事を自動的に特定するために AWS で機械学習をどのように使用しているか、またそれをチケット解決用のオーケストレーションランブックで自動化し、IT サポートの効率をいかに向上できるかについてご紹介します。 AWS を活用した DXC のソリューション その 1: Amazon S3 にデータレイクを構築する DXC の顧客が、インシデントチケットを IT サービスマネジメントツール (ITSM) へ送ります。チケットは、ユーザーまたはマシンにより生成できます。データは、Amazon S3 のバケットへプッシュまたはプルされます。Amazon S3 は、高い耐久性で低価格のオブジェクトストレージであり、形式やフォーマットを問わずあらゆるデータを保存できます。 その 2: 最適な機械学習ツールとアルゴリズムを選択する 一般に、問題は、テキストをいかに分類するかということです。AWS は、テキストを分類するためのさまざまな選択肢を顧客に提供しています。DXC は、次の AWS サービスの評価を行いました。 BlazingText と呼ばれるアルゴリズム内蔵の Amazon SageMaker Amazon Comprehend のカスタム分類 最適な選択肢は、Amazon […]

Read More

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

先日 (2019/2/6) 開催しました AWS Black Belt Online Seminar「Amazon SageMaker Basic Session」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. バッチ推論とは何ですか? A. バッチ推論とは、大量の推論対象データに対して、一括で推論処理を行うことを指します。Amazon SageMaker においては、推論用のインスタンスを立ち上げて、S3 から対象データを読み込んで推論を行い、結果を S3 に書き出す形で実現しています。 Q. SageMakerの各コンポーネントで、モデル変換とありましたが、このモデル変換後出てくるモデルの形式は何になりますでしょうか(例:Keras⇒Chainer等) A. モデル変換は、Neo-AI プロジェクトとして OSS で公開されておりますコンパイラによって実施されます。出力形式は、Neo の独自フォーマットとなり、Neo Runtime にて動作いたします。Neo-AI プロジェクトの詳細については、こちらのブロク記事も参照ください。 Q. SDKの基本コード3行目のchainer_estimator.fitはestimator.fitの間違いでしょうか?chainer_estimatorという変数が宣言されていないように思えます。 A. ご指摘の通りです。こちらの資料間違いでご迷惑をおかけして申し訳ありません。公開バージョンの資料では、こちらの間違いは修正いたしました。 Q. SageMakerのハイパーパラメータチューニングについて、通常のGridSearchやベイズ最適化をPythonで組んで実行するのと何か違いはありますか?例えばGridSearchの範囲を指定しなくても最適なものを選んでくれるとか。 A. SageMaker のハイパーパラメタチューニングは、ベイズ最適のみをサポートしています。通常の最適化ライブラリとの違いは、SageMaker […]

Read More

Amazon Rekognition に関する最近の研究論文および関連記事についての考察

昨日発表された研究論文と関連記事は、Amazon Rekognition の精度について触れています。私たちはフィードバックを歓迎しており、実際に常に人々からフィードバックを得ていますが、この研究論文と記事は誤解を招きやすく、誤った結論に導いています。このブログ記事が、いくつかの誤解や不正確さを明確にするのに役立つことを願っています。 多くの場合、精度は絶対的な尺度と考えられます。たとえば、数学の試験のパーセンテージスコアでは、それぞれの答えは正しいか、間違っているかのどちらかです。 機械学習システムの精度を理解、解釈、比較するには、何が予測されているか、予測の信頼性、どのように予測を使うべきかを理解することが重要であり、これを単一の絶対数またはスコアから収集することは不可能です 。 何が予測されているか: Amazon Rekognition は、コンピュータービジョンと呼ばれる一種の機械学習を使用して、2 つの異なる顔機能を提供します。最初の機能は顔分析です。特定の画像やビデオについて、このサービスは顔がどこに表示されているか、および画像の特定の特性 (画像に笑顔、めがね、口ひげ、顔の性別が含まれているかなど) を知らせることができます。こうした属性は通常、写真のカタログを検索するのに役立ちます。Amazon Rekognition の 2 番目の機能は、一般に顔認識と呼ばれている機能です。これは、顔分析とは明確に異なる機能であり、似ているように見える顔を照合します。これは、一部の電話のロックの解除、建物に入る人の認証、または対象となる人物を識別するために法執行機関がフィールドを絞り込むために使用するのと同じアプローチです。後者は、昔の映画に登場する写真の本をめくる探偵に似ていますが、はるかに高速です。 顔分析と顔面認識は、基盤となるテクノロジとそれらをトレーニングするために使用されるデータの点でまったく異なります。そうした目的を意図したアルゴリズムではないので、顔認識の精度を測定するために顔分析を使用することは軽率です (説明は、ドキュメントをご覧ください)。 信頼性: 顔分析と顔認識の両方について、Amazon Rekognition は、特定の結果がどの程度の信頼性であるかについても説明します。すべての機械学習システムは本質的に確率論的なので、信頼スコアはシステムがその結果にどれだけ信頼を置いているかの尺度と考えることができます。信頼度が高いほど、結果を信頼できます。結果を解釈するために使用される信頼度閾値について透明かつ思慮深くなければ、顔分析または顔認識のいずれかの品質を解釈することは不可能です。この調査で使用されている閾値はまだ分かっていませんが、以下に示すように、推奨される信頼水準で実行した場合の結果は大きく異なります。 予測のユースケース: 信頼性と組み合わせることで、精度を適切な文脈でとらえるのに役立つので、機械学習による予測の使用の意図は重要です。たとえば、写真のカタログで「サングラス」を含む画像を検索するために顔分析を使用する場合、完全に一致しないものが含まれるとしても、検索結果に表示する画像の数を増やすことが望ましい場合があります。このユースケースにおける不完全な結果のコストは低いので、より多い結果とそれらの結果のより少ない手作業による検査と引き換えに、より低い信頼レベルが受け入れられることが多くなります。ただし、捜査で関心のある人物を識別するために顔認識を使用する場合は、法執行機関は推奨されている 99% の信頼度閾値 (文書化されているとおり) を使用し、あくまでも捜査の 1 つの要素としてのみ使用することが必要です。 Amazon Rekognition の「テスト」についてどのように考えるかについての上記の文脈で、私たちはこの最新のレポートとその誤った主張にたどり着きました。 この研究論文は「商業的な顔認識製品のパフォーマンスの脆弱性をさらす」ことを目指していますが、実際には代わりに顔分析を使用しています。 上述したように、顔分析と顔認識は 2 つの別々のツールです。顔認識の場合と同じ方法で顔を照合するために顔分析を使用することはできません。これは単に意味や定義の問題ではありません。2つの異なる目的を持つ 2 つの異なる機能なのです。顔分析では、主に画像のフィルタ処理や整理に役立つ一般的な特徴 (髪の毛、笑顔、眉をひそめる、性別など) しか見つけることができません。顔を一意に特定する知識は持ちません (これを画像からリバースエンジニアリングすることはできません)。対照的に、顔認識は、顔を照合するための顔の一意な特徴に焦点を合わせており、顧客が持ち込むデータセット内の顔と照合するために使用されます。顔認識を行うために顔分析を使用することは、一意の個人を識別するには不正確で推奨されない方法です。  これについてはドキュメントで説明していますが、この問題について混乱している顧客からの報告は受けていません。 その研究論文は、Amazon Rekognition が低品質の顔分析結果を提供していると述べています。しかし、これは、私たち自身の広範囲にわたるテストや、サービスを利用している顧客から聞いたことを反映していません。 まず、この研究者達は古いバージョンの Amazon Rekognition を使用しています。私たちは、11 月に大幅な改善を行っています。次に、AWS が Amazon Rekognition […]

Read More
keras-logo

Amazon SageMaker で簡単に Keras を使う方法

Amazon SageMaker は、すべての開発者とデータサイエンティストに機械学習モデルの構築、トレーニング、デプロイの手段を提供する AWS のマネージドサービスです。SageMaker は深層学習の主要なフレームワークをサポートしており、TensorFlow、Apache MXNet、PyTorch、Chainer などを用いてモデルを記述することができます。また、TensorFlow や MXNet をバックエンドとした Keras の高レベルな API を用いることで、モデルを簡単にすばやく作成することもできます。 これまで、Keras で書いたコードを SageMaker 上で動かす方法について、多くのお客様からご質問を頂いておりました。2018年12月に、SageMaker の TensorFlow ならびに MXNet のコンテナに、それぞれのフレームワークをバックエンドとする Keras がデフォルトでインストールされました。また両コンテナでは Script Mode をサポートしているため、SageMaker 外で開発した Keras のコードに、わずかな修正を加えるだけで動かすことができるようになりました。ここでは Keras 公式サンプルコードの mnist_cnn.py をなるべくそのまま利用して、SageMakerのTensorFlowとMXNetコンテナで実行する方法をご説明します。   TensorFlow Backend での Keras の使い方 トレーニングスクリプトの修正 AWS のマネージドコンソールから SageMaker ノートブックインスタンス (Jupyter/JupyterLab) を開き、Keras のリポジトリをクローンします (このブログのようにノートブックインスタンスの作成時に関連付けることも可能です)。keras/examples/mnist_cnn.py の中で以下の3点を修正します: 学習からモデルの保存までを train(args) 関数として定義します。ここでは次の手順で読み込む args […]

Read More

AWS がエッジデバイスの ML 展開を加速するオープンソースの Neo-AI プロジェクトをロンチング

 re:Invent 2018 で、Amazon SageMaker Neo が発表されました。機械学習モデルを一度トレーニングすると、クラウドおよびエッジ内ではどこでも実行できる新しい機械学習機能です。今日、私たちは Apache Software License の下でオープンソースの Neo-AI プロジェクトとしてコードを公開しています。このリリースでは、プロセッサベンダー、デバイスメーカー、および深層学習の開発者が、機械学習における新しい独自のイノベーションをさまざまなハードウェアプラットフォームにすばやく取り入れることができます。 通常、開発者は各プラットフォームのハードウェアおよびソフトウェア構成に合わせて、モデルを手動で調整する必要があるため、複数のハードウェアプラットフォームに対して機械学習モデルを最適化することは困難です。コンピューティング能力とストレージが制約される傾向があるエッジデバイスにとっては、特に困難です。これらの制約により、実行できるモデルのサイズと複雑さが制限されます。そのため、最高のパフォーマンスを得るために、開発者が手動でモデルを調整するのに数週間または数ヶ月かかります。調整プロセスには、最適化手法に関する稀な専門知識とハードウェアに関する深い知識が必要です。それでも、優れたツールをすぐに利用できないため、優れたパフォーマンスを得るには、通常、かなりの試行錯誤が必要となります。 ソフトウェアの違いにより、この作業はさらに複雑になります。デバイス上のソフトウェアがモデルと同じバージョンでない場合、モデルはデバイスと互換性がありません。これにより、開発者は自分のモデルのソフトウェア要件と完全に一致するデバイスのみに制限するようになります。 したがって、機械学習アプリケーションをすばやく構築、拡張、および維持することは非常に困難です。 Neo-AI は、TensorFlow、MXNet、PyTorch、ONNX、および XGBoost モデルを自動的に最適化して、最大元のモデルの 2 倍速で正確性を損なうことなく実行できます。これにより、複数プラットフォームへ展開する機械学習モデルの調整に必要な時間と労力を省きます。さらに、ソフトウェアの互換性の問題を排除するために、モデルを効率的な共通フォーマットに変換します。ターゲットプラットフォームでは、コンパクトなランタイムによって通常のフレームワークが消費するリソースのごく一部を使用します。最適化を簡素化にすることによって、Neo-AI は洗練されたモデルがリソースに制約のあるデバイス上で動作することを可能にします。また、そこで自律走行車、ホームセキュリティ、および異常検出などの分野におけるイノベーションを引き出します。Neo-AI は現在、Intel、NVIDIA、および ARM のプラットフォームをサポートしており、Xilinx、Cadence、および Qualcomm のサポートも近日中に開始する予定です。 Neo-AI は、主要な機械学習コンパイラであり、LLVM や Halide など従来のコンパイラテクノロジーに関する、数十年にわたる研究に基づいて構築されたランタイムです。Neo-AI コンパイラには、ワシントン大学で開始したオープンソース研究プロジェクトの TVM と Treelite に対する修正が含まれています。今日の Neo-AI プロジェクトを通じて AWS コードをオープンソースにリリースすることで、開発者はプロダクショングレードの Neo コンパイラとランタイムをイノベーションすることができます。Neo-AI プロジェクトは、AWS、ARM、Intel、Qualcomm、Xilinx、Cadence などを含め、複数の組織によって進められます。 Neo-AI プロジェクトと連携することで、モデルのパフォーマンス向上に最大の効果を発揮する時点で、プロセッサベンダーはカスタムコードをコンパイラにすばやく統合できます。このプロジェクトにより、デバイスメーカーは、デバイス特定のソフトウェアおよびハードウェアの構成に合わせて Neo-AI ランタイムをカスタマイズすることもできます。Neo-AI ランタイムは現在、ADLINK、Lenovo、Leopard Imaging、Panasonic などのデバイスに導入されています。Neo-AI プロジェクトは、さまざまなソースによるイノベーションを機械学習用の共通コンパイラおよびランタイムに吸収して、利用可能な最高のパフォーマンスをモデルに提供します。 Intel の […]

Read More

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

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 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

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

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