構築

精度が極めて高いトレーニングデータセットを構築する

Amazon SageMaker Ground Truth を利用すれば、Machine Learning を使用して高精度なトレーニングデータセットを短時間で構築し、データのラベル付けコストを最大で 70% 削減できます。Machine Learning モデルは、正しい判断を下す方法をモデルに教えるようにラベル付けされたデータを利用することで適切にトレーニングできます。このプロセスを完了させるには数か月かかることもよくあり、たくさんの人から構成される大規模なチームが必要になります。SageMaker Ground Truth はコストを削減し、複雑性を緩和する画期的なソリューションを提供します。また、「アクティブラーニング」という人的ラベル付けプロセスと機械学習を一緒にすることで、データのラベル付け精度が上がります。 

詳細はこちら

オーサリングモデル用のマネージドノートブック

Amazon SageMaker は、データの吟味と前処理のトレーニング用に、Jupyter ノートブックを実行する完全にマネージされたインスタンスを提供します。これらのノートブックには、よく使われる深層学習プラットフォームに対応した CUDA および cuDNN ドライバー、Anaconda パッケージ、TensorFlow、Apache MXNet、PyTorch、Chainer 用のライブラリがあらかじめロードされています。 

クリックひとつで、よく使われる Jupyter オープンソースノートブックフォーマットを用いた、完全にマネージされた Machine Learning ノートブック環境にアクセスできます。

これらのノートブックワークスペースでは、データを吟味し、可視化して、ほぼすべてのよく使われるライブラリ、フレームワーク、インターフェイスを用いた再使用可能なワークフローで吟味結果を記録できます。ノートブックの内部から、すでに保存済みの自分のデータを Amazon S3 で使用することができます。また AWS Glue を用いて、Amazon RDS、Amazon DynamoDB、Amazon Redshift からデータを簡単に S3 に移動して解析できます。自分のノートブックを書き込み、またはインポートでき、あるいは Amazon SageMaker にあらかじめロードして構築してある多くのノートブックのひとつを使うこともできます。あらかじめ構築してあるノートブックは、組み込みの Machine Learning アルゴリズムのすべてに対して利用できます。また、ノートブックのテンプレートもあり、よく使われる ML アプリケーションや、さらに高度な Amazon SageMaker 機能を使い始めるときに役立ちます。 

高パフォーマンスのアルゴリズムを組み込み

Amazon SageMaker は速度、規模、正確さに最適化された高パフォーマンスでスケーラブルな Machine Learning アルゴリズムをお届けします。これらのアルゴリズムはペタバイト規模のデータベースをトレーニングでき、他の実装に比べて最大 10 倍のパフォーマンスがあります。トレーニング中に正しい答えがわかる教師ありアルゴリズムから選択することができ、ミスをしたモデルに指示することができます。  Amazon SageMaker には XGBoost などの教師ありアルゴリズムや、線形回帰、ロジスティック回帰または分類分けが組み込まれており、推奨と時系列予測の問題に対処できます。  Amazon SageMaker にはまた k 平均法クラスタリングや主成分分析 (PCA) などの教師なし学習 (アルゴリズムが自分で正しい答えを選ぶ) もあり、購買行動に基づく顧客のグループ分けなどの問題を解決できます。

Amazon SageMaker では、最も一般的な Machine Learning アルゴリズムが自動的に利用可能になります。ユーザーはデータソースを指定するだけで、データセグメンテーションに k 平均法クラスタリング、因数分解機によるレコメンド、時系列予測、線形回帰、または主成分分析を直ちに開始できます。 

BlazingText Word2Vec BlazingText は、Word2Vec アルゴリズムを実装しており、スケーリングに対応し、大量の文書からの単語埋め込みの生成を高速化します。
DeepAR 再帰型ニューラルネットワーク (RNN) を使用して数多くの関連する時系列からパターンを学習することで、正確な予測を生成するアルゴリズムです。
因数分解機 データ量が非常に少ない場合でも、特徴の間の相互作用すべてを推定することのできるモデルです。
購買ブーストツリー (XGBoost) これは Extreme Gradient Boosting、極度勾配ブースティングの略で、XGBoost は最適化された分散型勾配ブースティングライブラリです。
画像分類 (ResNet) 画像分類システムの開発によく使われるニューラルネットワークです。
IP Insights 悪意のあるユーザーを検出する、または IP アドレスの使用パターンを学習するアルゴリズム。
K 平均法クラスタリング ML アルゴリズムの最も単純なもののひとつです。ラベル付けのされていないデータ内でのグループの発見に使用します。
K-Nearest Neighbor (k-NN) 分類および回帰ベースの問題を処理する索引ベースのアルゴリズム。

潜在的ディリクレ割り当て、Latent Dirichlet Allocation (LDA)

テキストファイル群の中にある主要なトピックを自動的に発見するのに適したモデルです。
線形学習機 (分類) 線形学習機は対象物の特徴を用いて、それの属する適切なグループを特定します。
線形学習機 (回帰) 線形回帰は 2 つの変数間にある線形関係の予測に使用されます。
ニューラルトピックモデリング (NTM) テキストと画像のデータベースからトピックを学習する、ニューラルネットワークに基づいたアプローチです。
Object2Vec 最近接を計算し、自然クラスターを視覚化する神経埋め込みアルゴリズム。
オブジェクトの検出 画像中の複数のオブジェクトを検出、分類し、その周りに境界ボックスを配置します。
主成分分析法 (PCA) このアルゴリズムはデータの前処理によく使われ、多くの特徴を持つ表または行列から、少数の代表的特徴を抽出します。
ランダムカットフォレスト 例外検出のための教師なし Machine Learning アルゴリズムです。
セマンティックセグメンテーション
画像を分割し、画像の個々のピクセルにラベルを割り当てることで関心領域を特定します。
Seqence2Sequence テキストに対する汎用エンコーダー・デコーダーで、機械翻訳、テキスト要約などに使われます。

これらのアルゴリズムは最適化され、従来のものに比べて最高 10 倍も高速化されています。弊社が取った手法のひとつは、これらのアルゴリズムが 1 度見たデータは 2 度と見なくても済むように実装したことです。従来の方法では、アルゴリズムはデータセット中を複数回元に戻って初めのデータを参照していました。データセットが小さい場合はこれでも良いのですが、大きなデータセットの場合はパフォーマンスが大きく影響を受けてトレーニングを大幅に遅くしてしまいます。1 度きりのパスとすることで、ペタバイト規模のデータセットでも低コストでトレーニングができるようになりました。 

幅広いフレームワークをサポート

Amazon SageMaker は TensorFlow、Apache MXNet、Chainer、PyTorch、Scikit-learn、SparkML を自動的に構成して最適化するため、これらのフレームワークの使用開始時には何もセットアップをする必要がありません。他の主要なフレームワークもこの数か月中に追加する予定です。ただし、Amazon EC2 Container Registry に格納されている Docker コンテナにフレームワークを組み込めば、いつでも好きなフレームワークを Amazon SageMaker に組み込むことができます。

Amazon SageMaker RL を使用した強化学習サポート

Amazon SageMaker は、従来の教師あり/教師なし学習に加え、強化学習をサポートします。SageMaker に、完全管理型の強化学習アルゴリズムが組み込まれました。これには学術文献における最新/最高のパフォーマンスがいくつか含まれています。SageMaker は、TensorFlow や MXNet など、複数のフレームワークで RL をサポートしています。また、Intel Coach や Ray RL など、強化学習のために一から設計された最新のフレームワークをサポートしています。2D と 3D のさまざまな物理シミュレーション環境がサポートされています。たとえば、オープンソースの OpenGym インターフェイスに基づく環境があります。さらに、SageMaker RL では、Amazon Sumerian や Amazon RoboMaker で構築された仮想 3D 環境を利用してトレーニングできます。SageMaker には、さまざまなノートブックやチュートリアルも用意されており、初めての人を支援します。 

大半の機械学習は「教師あり」というカテゴリに属します。この手法では、ラベル付きトレーニングデータが大量に必要ですが、構築するモデルは高度な決定を下すことが可能です。コンピュータビジョン、スピーチ、言語のモデルでは一般的な手法です。別の一般的な Machine Learning に「教師なし」という分類があります。こちらはあまり使われません。「教師なし」のアルゴリズムでは、ラベルのないデータの中に隠された構造の特定が試行されます。「教師なし」モデルの場合、トレーニングの制約がずいぶん軽くなりますが、その分、モデルが下せる決定の高度性が低くなります。「教師なし」モデルは多くの場合、データの異常性を特定するために使用されます。たとえば、温度の異常な変化やネットワーク侵入の兆候などです。

強化学習 (RL) は補足的な第 3 の機械学習手法です。RL では、非常に異なる手法でモデルがトレーニングされます。この手法では、ラベル付きトレーニングデータは実質的には必要ではありませんが、それでも人間レベルの高度性に達します (それを超えることもあります)。RL の最も優れた点は、1 つの決定を下すのではなく、複合的な一連の動作をモデル化することを学習し、目標とする成果に到達できることです。RL の現在、最も一般的な応用は、目的地まで誘導する自動車両のトレーニングです。

RL の仕組みを理解する簡単な方法は、キャラクターが迷路を移動しながら敵を避け、旗を集める単純なビデオゲームを想像することです。人間の代わりにアルゴリズムがそのキャラクターを操作し、大量のゲームをプレイします。ゲームを始めるためにアルゴリズムが知るべきことは、キャラクターが上下左右に動けることと点を入れることで報酬を得ることだけです。その後、アルゴリズムは可能な限り高い得点を出す方法を学習します。得点を増やし (旗を拾うことやボーナスを活用することなど)、ペナルティを最小に抑える (敵の攻撃を受けることなど) 動作を学習します。 時間の経過と共に、RL アルゴリズムは迷路の下の部分を最初に片付けるなど、ゲームを支配するための高度な戦略を、パワーアップの使い方と使うタイミングを、敵の動作を逆手に取る方法を学習します。

RL は従来の機械学習手法の力を倍増させる存在になりえます。たとえば、RL と「教師あり」学習を組み合わせることで、医療で個人向け養生計画を作成したり、製造サプライチェーンを最適化したり、自動車両を走らせたり、ロボットを安全に操作したり、さらには生徒一人ひとりのために授業/学習計画を作成したりしています。

ローカルでテストとプロトタイプ作成を実行

Github では、オープンソースである Apache MXNetTensorflow Docker コンテナを Amazon SageMaker で使用できるようになります。また、これらのコンテナをローカル環境にダウンロードしたり、スクリプトを Amazon SageMaker のトレーニング環境やホスト環境にデプロイする前に、Amazon SageMaker Python SDK を使用してそのスクリプトをテストしたりすることもできます。ローカルでのテストから本番環境でのトレーニングやホストに移行する際に必要なことは、コードを 1 行変更することのみです。

トレーニング

ワンクリックトレーニング

Amazon SageMaker でトレーニングの準備が整ったら、コンソールで Amazon S3 のデータの場所、ならびに必要な Amazon SageMaker ML インスタンスのタイプと数量を指定します。その後、1 回クリックするだけで、トレーニングを開始できます。Amazon SageMaker は分散型コンピュータクラスターをセットアップし、トレーニングを行い、結果を Amazon S3 に出力し、完了後クラスターを解体します。 

Amazon SageMaker ではトレーニングモードも簡単です。S3 の中でのデータの場所を指定すると、Amazon SageMaker は、ユーザーのニーズに応じて構成され、ソフトウェアで定義されたネットワーク上に分離されたトレーニングクラスター上でお使いのアルゴリズムを実行します。高速で効率の高いトレーニング向けの P3 GPU インスタンスなどのインスタンスタイプを選択すると、Amazon SageMaker により Auto Scaling グループの中にユーザーのクラスターが作成され、各ノードに EBS ボリュームがアタッチされます。そしてデータパイプラインがセットアップされ、ユーザーの TensorFlow、MXNet、Chainer、PyTorch スクリプトや、Amazon のアルゴリズム、またはユーザーが自身のコンテナで提供するユーザーのアルゴリズムでトレーニングが開始されます。完了後、結果は S3 に出力され、クラスターは自動的に解体されます。

規模に合わせてトレーニングを行うため、S3 からトレーニングデータをストリームする方法を最適化しました。API を通して、クラスターの各ノードにすべてのデータを送るか、Amazon SageMaker にユーザーのアルゴリズムのニーズに応じて各ノードにどのようにデータを分配するか管理させるかどうかを指定できます。

Amazon SageMaker で可能なトレーニングのスケーラビリティーは、組み込まれたアルゴリズムと相まって、トレーニング実行に要する時間とコストを劇的に削減します。 

自動モデルチューニング

Amazon SageMaker は何千ものアルゴリズムパラメータを調節してモデルを自動的にチューニングし、モデルが出し得る最も正確な予測に到達します。 

モデルをさらに正確にチューニングする場合は、モデルに与えるデータ入力を変更する (たとえば数のログを取るなど)、アルゴリズムのパラメータを調節するという 2 つの大きな手段を取ります。これらはハイパーパラメータと呼ばれ、適切な値を探し出すのは容易ではありません。通常はランダムなものから初めて、変更がどういう影響を与えるかを試行錯誤を重ねて調節します。モデルにいくつのハイパーパラメータがあるかによって、これには時間がかかることがあります。

この過程を簡単にするため、Amazon SageMaker ではトレーニング中のオプションとして、自動モデルチューニングを提供します。Amazon SageMaker では、Machine Learning を使用して Machine Learning モデルをチューニングします。これはどのタイプのデータがどのようにモデルに影響を与えるかを学習し、この知識をモデルの多くのコピーに渡って適用して素早く最も良い結果を生み出します。開発者や科学者にとっては、このことはモデルに与えるデータの調節だけを考えておれば良く、トレーニング中に考慮すべき事項を大幅に減らせることを意味します。

自動モデルチューニングの開始時にユーザーが API を通じてトレーニングジョブの数を指定するだけで、残りの処理は Amazon SageMaker で行います。 

トレーニングしたモデルをどこでも実行

Amazon SageMaker Neo では、Machine Learning モデルを一度トレーニングすれば、それをどこでも、クラウドでも、エッジでも実行できます。通常、複数のプラットフォームで実行されるように Machine Learning モデルを最適化することは非常に難しい行為となります。開発者は、各プラットフォームに固有のハードウェア/ソフトウェア構成に合わせてモデルを手ずから調整する必要があるためです。必要な時間と労力を要するそのような調整は、Neo の場合、最近の ARM、Intel、NVIDIA プロセッサでデプロイするために TensorFlow、MXNet、PyTorch、ONNX、XGBoost モデルを自動最適化することでなくなります。間もなく、Cadence、Qualcomm、Xilinx ハードウェアもサポートします。SageMaker Neo には SageMaker コンソールからアクセスできます。数回のクリックで、クラウドインスタンスやエッジデバイスに合わせて最適化されたモデルが作られます。最適化されたモデルは 2 倍のスピードで動作し、従来のモデルと比較し、ストレージ容量の使用は 100 分の 1 以下になります。 

詳細はこちら

ジョブ検索のトレーニング

Amazon SageMaker Search では、数百や数千はありえる Amazon SageMaker モデルトレーニングジョブから、最も関連のあるモデルトレーニング実行を簡単に見つけ、評価できます。SageMaker Search は現在のところ、AWS Management Console と AWS SDK APIs for Amazon SageMaker の両方でベータ版を入手できます。

機械学習モデルを開発するには、継続的な実験が必要です。新しい学習アルゴリズムを試し、ハイパーパラメータを微調整します。その間ずっと、モデルのパフォーマンスと精度に与える影響を観察します。多くの場合、この繰り返し作業の結果、モデルトレーニング実験が大量に行われ、モデルバージョンが大量に作られます。それにより最良のモデルの収束と発見が遅れます。さらに、情報が爆発的に増えることで、モデルバージョンが通ってきた道を完全にたどることが非常に難しくなります。つまり、そもそも、データセット、アルゴリズム、パラメータをどのように組み合わせてそのモデルが作られたのかわからなくなります。

Amazon SageMaker Search を利用すれば、Amazon SageMaker でモデルトレーニングジョブを簡単に整理し、追跡し、評価できます。使われた学習アルゴリズム、ハイパーパラメータ設定、使われたトレーニングデータセットから、モデルトレーニングジョブで追加したタグに至るまで、すべての定義属性で検索できます。また、トレーニングロスや検証精度など、パフォーマンス指標に基づいてトレーニング実行を簡単に比較し、ランクを付けることができます。運用環境にデプロイする「優勝」モデルを選択するための順位掲示板が作られます。最後になりますが、Amazon SageMaker Search では、ライブ環境にデプロイされたモデルの完全な系統をモデルのトレーニングまたは検証で使用されたデータセットまで簡単に遡ることができます。

デプロイ

1-Click デプロイ

Amazon ML インスタンスは複数のアベイラビリティーゾーン間で自動スケーリングされます。お客様は、1 回クリックするだけで、この冗長性に優れたインスタンスにモデルをデプロイできます。お客様がインスタンスのタイプ、必要なインスタンスの最大数と最小数を指定すると、残りの手順は自動的に実行されます。インスタンスの作成、モデルのデプロイ、アプリケーションと安全に通信するための HTTPS エンドポイントのセットアップも自動的に行われます。アプリケーションではこのエンドポイントへの API コールを行うだけで、低レイテンシーで高スループットの推論が利用できます。このアーキテクチャーではユーザーの新規モデルをアプリケーションミニッツに組み入れられるようになり、これはモデルの変更が、アプリケーションのコードの変更を必要としなくなるからです。 

自動 A/B テスト

Amazon SageMaker はまたモデルの A/B テストも行えます。エンドポイントの設定で最大 5 つのモデルに渡ってトラフィックを分散し、各々が処理するインファレンスコールのパーセンテージを設定できます。これらはすべて操作しながら変更できます。柔軟に実験することにより、どのモデルが実際の世界で最も正確な結果を生み出すかを決定できます。 

自動スケーリングを備えた完全マネージド型のホスト

Amazon SageMaker はお客様に代わって本番コンピュータインフラを管理し、健全性チェックを行い、パッチを適用し、その他の日常的メンテナンスを行います。これらはすべて組み込みの Amazon CloudWatch モニタリングとロギングで行います。 

バッチ変換

バッチ変換により、大小のバッチデータに対する予測を実行できます。データセットを複数のチャンクに分けたりリアルタイムのエンドポイントを管理したりする必要はありません。シンプルな API を使って、多数のデータレコードの予測をリクエストし、そのデータを迅速かつ簡単に変換できます。 

 

推論パイプライン

Amazon SageMaker では、推論パイプラインをデプロイできます。未加工の入力データを渡したり、リアルタイムまたは一括の推論要求で前処理、予測、後処理を実行したりできます。推論パイプラインは、Machine Learning フレームワーク、組み込みアルゴリズム、または Amazon SageMaker 上で利用できるカスタム コンテナで構成できます。Amazon SageMaker の SparkML および Scikit-learn フレームワークコンテナで利用できる一連のフィーチャトランスフォーマーでフィーチャデータ処理とフィーチャエンジニアリングパイプラインを構築し、それらを推論パイプラインの一部としてデプロイし、データ処理コードと簡単になった Machine Learning プロセス管理を再利用できます。

 

Amazon SageMaker の料金の詳細について

料金ページを見る
始める準備はできましたか?
サインアップ
ご不明な点がありますか?
お問い合わせ