「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
Amazon SageMaker による機械学習
このセクションでは、一般的な機械学習ワークフローについて説明し、Amazon SageMaker でこれらのタスクをどのように達成するかを要約します。
機械学習では、あなたがコンピュータに予測や推論を行うように「教え」ます。まず、アルゴリズムとサンプルデータを使用してモデルをトレーニングします。次に、モデルをアプリケーションに統合して、リアルタイムで、そして大規模に推論を生成します。本番環境では、モデルは通常、数百万のサンプルデータ項目から学習し、20 ミリ秒未満で数百の推論を生成します。
次の図は、機械学習モデルを作成するための典型的なワークフローを示しています。

図に示すように、通常は以下のアクティビティを実行します。
-
サンプルデータの生成 — モデルをトレーニングするには、サンプルデータが必要です。必要なデータのタイプは、モデルで解決するビジネス上の問題 (モデルに生成させる推論) によって異なります。たとえば、手書き数字の入力イメージからその数字を予測するモデルを作成するとします。そのようなモデルをトレーニングするには、手書き数字のイメージ例が必要です。
モデルの訓練に使用する前に、データ科学者は多くの場合、サンプルデータの探索や前処理に、つまりそれとの「争論に」多くの時間を費やしています。データを事前処理するには、通常、次の操作を実行します。
-
データを取得する — 社内にサンプルデータリポジトリがある場合や、公開されているデータセットを使用する場合があります。通常、データセット (複数可) を 1 つのリポジトリにプルします。
-
データをクリーンアップする — モデルトレーニングを強化するには、データを検査し、必要に応じてクリーンアップします。たとえば、データの
country name
属性に、United States
とUS
の値がある場合、データの整合性をとるために編集できます。 -
データの準備または変換 — 追加のデータ変換を実行してパフォーマンスを向上させることができます。たとえば、属性を結合することを選択できます。航空機の除氷を必要とする条件を予測するモデルの場合、温度と湿度の属性を別々に使用せずに、これらの属性を 1 つの新しい属性として結合すると、より良いモデルを得られることがあります。
SageMaker では、ノートブックインスタンス上の Jupyter ノートブックでサンプルデータを前処理します。ノートブックを使用してデータセットを取得し、それを確認してモデルトレーニングのために準備します。詳細については、データの調査、分析、処理 を参照してください。AWS Marketplace でのデータ準備の詳細については、データ準備
を参照してください。 -
-
モデルをトレーニングする — モデルトレーニングには、次のように、モデルのトレーニングと評価の両方が含まれます。
-
モデルのトレーニング — モデルをトレーニングするにはアルゴリズムが必要です。選択するアルゴリズムは、さまざまな要因によって異なります。すばやく、そのまま使えるソリューションとして、SageMaker が提供するアルゴリズムの 1 つを使用することができます。SageMaker によって提供されるアルゴリズムのリストおよび関連する考慮事項については、Amazon SageMaker 組み込みアルゴリズムを使用するを参照してください。
トレーニングのためにコンピューティングリソースも必要です。トレーニングデータセットのサイズと、どれほど早く結果を得る必要があるかに応じて、単一の汎用インスタンスから GPU インスタンスの分散クラスターまでのリソースを使用できます。詳細については、Amazon SageMaker によるモデルのトレーニング を参照してください。
-
モデルの評価 — モデルをトレーニングした後、モデルを評価して、推論の正確性が許容可能かどうかを判断します。SageMaker では、AWS SDK for Python (Boto) または SageMaker が提供する高レベルの Python ライブラリのいずれかを使用して、推論のためにモデルにリクエストを送信します。
SageMaker ノートブックインスタンスの Jupyter ノートブックを使用して、モデルのトレーニングと評価を行います。
-
-
モデルをデプロイする — モデルをアプリケーションと統合してデプロイする前に、モデルを従来の方法で設計し直す必要があります。SageMaker のホスティングサービスでは、モデルを独立してデプロイし、アプリケーションコードから分離することができます。詳細については、SageMaker ホスティングサービスでモデルをデプロイする を参照してください。
機械学習は、継続的なサイクルです。モデルをデプロイしたら、推論のモニタリング、「グランドトゥルース」の収集、およびモデルの評価を行い、ドリフトを特定します。次に、トレーニングデータを更新して新しく収集したグランドトゥルースを含めることで、推論の精度を高めます。これを行うには、新しいデータセットでモデルを再トレーニングします。より多くのサンプルデータが利用可能になれば、モデルの再トレーニングを続けて、精度を上げることができます。