AmazonSageMakerJumpStartモデルとアルゴリズムがAPIPlatoBlockchainDataIntelligenceを介して利用できるようになりました。 垂直検索。 愛。

AmazonSageMakerJumpStartモデルとアルゴリズムがAPI経由で利用可能になりました

12月の2020では、 AWSが一般提供を発表しました of Amazon SageMaker ジャンプスタート、の機能 アマゾンセージメーカー これにより、機械学習(ML)をすばやく簡単に開始できます。 JumpStartは、一般的なMLタスク全体で、事前にトレーニングされたさまざまなモデルのワンクリックの微調整と展開、および一般的なビジネス上の問題を解決するエンドツーエンドのソリューションの選択を提供します。 これらの機能により、MLプロセスの各ステップの負担が軽減され、高品質のモデルの開発が容易になり、デプロイまでの時間が短縮されます。

以前は、すべてのJumpStartコンテンツは Amazon SageMakerスタジオこれは ユーザーフレンドリーなグラフィカルインターフェイス 機能を操作します。 本日、使いやすい発売を発表できることを嬉しく思います。 JumpStart API SageMakerPythonSDKの拡張として。 これらのAPIを使用すると、JumpStartでサポートされている事前トレーニング済みモデルの膨大な選択肢を独自のデータセットにプログラムでデプロイして微調整できます。 この起動により、コードワークフロー、MLOpsパイプライン、およびSDKを介してSageMakerとやり取りしているその他の場所でのJumpStart機能の使用が可能になります。

この投稿では、JumpStartの機能の現在の状態に関する最新情報を提供し、使用例を使用してJumpStartAPIの使用フローをガイドします。

JumpStartの概要

JumpStartは、SageMakerでMLをすばやく開始するのに役立つさまざまな機能を含む多面的な製品です。 これを書いている時点では、JumpStartを使用すると次のことができます。

  • 一般的なMLタスク用に事前トレーニング済みモデルを展開する – JumpStartを使用すると、公開されている大規模なデータセットで事前トレーニングされたモデルを簡単にデプロイできるため、開発作業なしで一般的なMLタスクを解決できます。 MLの研究コミュニティは、最近開発されたモデルの大部分を一般に公開することに多大な努力を払ってきました。 JumpStartは、オブジェクト検出、テキスト分類、テキスト生成などの300の最も人気のあるMLタスクにまたがる、15を超えるモデルのコレクションをホストし、初心者が簡単に使用できるようにします。 これらのモデルは、TensorFlow、PyTorch、Hugging Face、MXNetHubなどの一般的なモデルハブから抽出されています。
  • 事前にトレーニングされたモデルを微調整する – JumpStartを使用すると、独自のトレーニングアルゴリズムを作成しなくても、事前にトレーニングされたモデルを微調整できます。 MLでは、あるドメインで学習した知識を別のドメインに転送する機能は、 転移学習。 転移学習を使用すると、元のモデルを最初からトレーニングする場合よりもはるかに低いトレーニングコストで、より小さなデータセットで正確なモデルを作成できます。 JumpStartには、LightGBM、CatBoost、XGBoost、およびScikitに基づく一般的なトレーニングアルゴリズムも含まれています。表形式のデータ回帰と分類のためにゼロからトレーニングできることを学びます。
  • 構築済みのソリューションを使用する –JumpStartは一連の 17の構築済みソリューション 数回クリックするだけで展開できる、需要予測や産業および金融アプリケーションなどの一般的なMLユースケースの場合。 ソリューションは、特定のビジネスユースケースを解決するためにさまざまなAWSサービスをつなぎ合わせるエンドツーエンドのMLアプリケーションです。 彼らは使用します AWS CloudFormation 迅速な展開のためのテンプレートとリファレンスアーキテクチャ。つまり、完全にカスタマイズ可能です。
  • SageMakerアルゴリズムのノートブックの例を使用する –SageMakerは一連の 組み込みアルゴリズム データサイエンティストとML実践者が、MLモデルのトレーニングと導入を迅速に開始できるように支援します。 JumpStartは、これらのアルゴリズムをすばやく使用するために使用できるサンプルノートブックを提供します。
  • トレーニングビデオやブログを活用する – JumpStartは、SageMaker内でさまざまな機能を使用する方法を教える多数のブログ投稿とビデオも提供します。

JumpStartは、カスタムVPC設定とKMS暗号化キーを受け入れるため、エンタープライズ環境内で利用可能なモデルとソリューションを安全に使用できます。 セキュリティ設定は、SageMakerStudio内またはSageMakerPythonSDKを介してJumpStartに渡すことができます。

JumpStartでサポートされているMLタスクとAPIサンプルノートブック

JumpStartは現在、最も人気のある15のMLタスクをサポートしています。 そのうち13はビジョンとNLPベースのタスクであり、そのうち8つはノーコードの微調整をサポートしています。 また、表形式のデータモデリングのためのXNUMXつの一般的なアルゴリズムもサポートしています。 タスクとサンプルノートブックへのリンクを次の表に要約します。

仕事 事前にトレーニングされたモデルによる推論 カスタムデータセットのトレーニング サポートされているフレームワーク ノートブックの例
画像分類 はい はい PyTorch、TensorFlow JumpStartの概要–画像分類
オブジェクト検出 はい はい PyTorch、TensorFlow、MXNet JumpStartの概要–オブジェクト検出
セマンティックセグメンテーション はい はい MXNet JumpStartの概要–セマンティックセグメンテーション
インスタンスのセグメンテーション はい いいえ MXNet JumpStartの概要–インスタンスのセグメンテーション
画像の埋め込み はい いいえ TensorFlow、MXNet JumpStartの概要–画像の埋め込み
テキスト分類 はい はい TensorFlow JumpStartの概要–テキスト分類
文のペアの分類 はい はい TensorFlow、Hugging Face JumpStartの概要–文のペアの分類
質問応答 はい はい パイトーチ JumpStartの概要–質問応答
名前付きエンティティの認識 はい いいえ ハグ顔 JumpStartの概要–名前付きエンティティの認識
テキストの要約 はい いいえ ハグ顔 JumpStartの概要–テキストの要約
テキスト生成 はい いいえ ハグ顔 JumpStartの概要–テキスト生成
機械翻訳 はい いいえ ハグ顔 JumpStartの概要–機械翻訳
テキストの埋め込み はい いいえ TensorFlow、MXNet JumpStartの概要–テキストの埋め込み
表形式の分類 はい はい LightGBM、CatBoost、XGBoost、Linear Learner JumpStartの概要–表形式の分類– LightGBM、CatBoost
JumpStartの概要–表形式の分類– XGBoost、線形学習者
表形式の回帰 はい はい LightGBM、CatBoost、XGBoost、Linear Learner JumpStartの概要–表形式の回帰– LightGBM、CatBoost
JumpStartの概要–表形式の回帰– XGBoost、線形学習者

タスクに応じて、前の表にリンクされているサンプルノートブックは、次のプロセスのすべてまたはサブセットをガイドできます。

  • 特定のタスクに対して、JumpStartでサポートされている事前トレーニング済みモデルを選択します。
  • 事前にトレーニングされたモデルをホストし、それからリアルタイムで予測を取得し、結果を適切に表示します。
  • 独自に選択したハイパーパラメータを使用して事前トレーニング済みのモデルを微調整し、推論のために展開します。

JumpStartAPIを使用してオブジェクト検出モデルを微調整してデプロイします

次のセクションでは、オブジェクト検出の代表的なタスクで新しいJumpStartAPIを使用する方法のステップバイステップのウォークスルーを提供します。 事前にトレーニングされたオブジェクト検出モデルを使用して、境界ボックスのある画像内の事前定義されたクラスのセットからオブジェクトを識別する方法を示します。 最後に、独自のデータセットで事前にトレーニングされたモデルを微調整して、独自のデータを取得するだけで、ビジネスニーズに固有の画像内のオブジェクトを検出する方法を示します。 私たちは提供します このウォークスルーに付属するノートブック.

次の高レベルの手順を実行します。

  1. 事前にトレーニングされたモデルで推論を実行します。
    1. JumpStartアーティファクトを取得し、エンドポイントをデプロイします。
    2. エンドポイントをクエリし、応答を解析して、モデルの予測を表示します。
  2. 事前にトレーニングされたモデルを独自のデータセットで微調整します。
    1. トレーニングアーティファクトを取得します。
    2. トレーニングを実行します。

事前にトレーニングされたモデルで推論を実行する

このセクションでは、JumpStartで事前にトレーニングされた適切なモデルを選択し、このモデルをSageMakerエンドポイントにデプロイし、デプロイされたエンドポイントで推論を実行する方法を示します。 すべての手順は、 付属するJupyterノートブック.

JumpStartアーティファクトを取得し、エンドポイントをデプロイします

SageMakerは、Dockerコンテナに基づくプラットフォームです。 JumpStartは、利用可能なフレームワーク固有を使用します SageMakerディープラーニングコンテナ (DLC)。 選択したタスクのトレーニングと推論を処理するためのスクリプトだけでなく、追加のパッケージもフェッチします。 最後に、事前にトレーニングされたモデルアーティファクトは、 model_uris、プラットフォームに柔軟性を提供します。 XNUMXつのトレーニングまたは推論スクリプトで、同じタスクに対して事前にトレーニングされたモデルをいくつでも使用できます。 次のコードを参照してください。

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

次に、リソースをにフィードします SageMakerモデル インスタンス化してエンドポイントをデプロイします。

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

エンドポイントの展開は、完了するまでに数分かかる場合があります。

エンドポイントをクエリし、応答を解析して、予測を表示します

デプロイされたモデルから推論を取得するには、入力イメージを受け入れタイプとともにバイナリ形式で提供する必要があります。 JumpStartでは、返されるバウンディングボックスの数を定義できます。 次のコードスニペットでは、画像ごとにXNUMX個のバウンディングボックスを追加して予測します。 ;n_predictions=10 〜へ Accept。 xxボックスを予測するには、次のように変更できます。 ;n_predictions=xx 、または省略してすべての予測ボックスを取得します ;n_predictions=xx 完全に。

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

次のコードスニペットは、オブジェクト検出がどのように見えるかを垣間見ることができます。 各オブジェクトクラスについて予測された確率が、その境界ボックスとともに視覚化されます。 を使用します parse_response および display_predictions 付随するで定義されているヘルパー関数 ノート.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

次のスクリーンショットは、予測ラベルと境界ボックスを含む画像の出力を示しています。

AmazonSageMakerJumpStartモデルとアルゴリズムがAPIPlatoBlockchainDataIntelligenceを介して利用できるようになりました。 垂直検索。 愛。

独自のデータセットで事前にトレーニングされたモデルを微調整します

JumpStartの既存のオブジェクト検出モデルは、COCOまたはVOCデータセットのいずれかで事前にトレーニングされています。 ただし、元の事前トレーニングデータセットに存在しないオブジェクトクラスを特定する必要がある場合は、これらの新しいオブジェクトタイプを含む新しいデータセットでモデルを微調整する必要があります。 たとえば、調理器具を特定し、展開済みの事前トレーニング済みSSDモデルで推論を実行する必要がある場合、モデルは新しい画像タイプの特性を認識しないため、出力は正しくありません。

このセクションでは、JumpStart APIを使用して、事前にトレーニングされたモデルを微調整し、新しいオブジェクトクラスを検出することがいかに簡単であるかを示します。 詳細を含む完全なコード例は、 付属のノート.

トレーニングアーティファクトを取得する

トレーニングアーティファクトは、前のセクションで説明した推論アーティファクトに似ています。 トレーニングには、ベースDockerコンテナー、つまり次のサンプルコードのMXNetコンテナーが必要です。 トレーニングに必要な追加のパッケージは、次のトレーニングスクリプトに含まれています。 train_sourcer_uri。 事前にトレーニングされたモデルとそのパラメーターは、個別にパッケージ化されています。

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. train_image_uri = image_uris.retrieve(region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope,instance_type=training_instance_type) # Retrieve the training script and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

トレーニングを実行する

トレーニングを実行するには、必要なアーティファクトといくつかの追加パラメータをにフィードするだけです。 SageMaker エスティメーター そして呼び出す .fit 関数:

# Create SageMaker Estimator instance
od_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", # Entry-point file in source_dir and present in train_source_uri. instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

アルゴリズムのトレーニング中は、コード自体を実行しているSageMakerノートブックまたはでその進行状況を監視できます。 アマゾンクラウドウォッチ。 トレーニングが完了すると、微調整されたモデルアーティファクトがにアップロードされます。 Amazon シンプル ストレージ サービス (Amazon S3)トレーニング構成で指定された出力場所。 これで、事前にトレーニングされたモデルと同じ方法でモデルをデプロイできます。 残りのプロセスは、 付属のノート.

まとめ

この投稿では、新しくリリースされたJumpStartAPIの価値とその使用方法について説明しました。 JumpStartでサポートされているさまざまなMLタスクの17のサンプルノートブックへのリンクを提供し、オブジェクト検出ノートブックについて説明しました。

JumpStartを試してみて、皆様からのご連絡をお待ちしております。


著者について

AmazonSageMakerJumpStartモデルとアルゴリズムがAPIPlatoBlockchainDataIntelligenceを介して利用できるようになりました。 垂直検索。 愛。ヴィヴェック・マダン博士 は、AmazonSageMakerJumpStartチームの応用科学者です。 彼はイリノイ大学アーバナシャンペーン校で博士号を取得し、ジョージア工科大学で博士号を取得しました。 彼は機械学習とアルゴリズム設計の活発な研究者であり、EMNLP、ICLR、COLT、FOCS、およびSODA会議で論文を発表しています。

AmazonSageMakerJumpStartモデルとアルゴリズムがAPIPlatoBlockchainDataIntelligenceを介して利用できるようになりました。 垂直検索。 愛。ジョアンモウラ アマゾンウェブサービスのAI/MLスペシャリストソリューションアーキテクトです。 彼は主にNLPのユースケースに焦点を当てており、顧客がディープラーニングモデルのトレーニングと展開を最適化するのを支援しています。

AmazonSageMakerJumpStartモデルとアルゴリズムがAPIPlatoBlockchainDataIntelligenceを介して利用できるようになりました。 垂直検索。 愛。アシッシュ・ケタン博士 の上級応用科学者です Amazon SageMaker ジャンプスタート および AmazonSageMakerの組み込みアルゴリズム 機械学習アルゴリズムの開発に役立ちます。 彼は機械学習と統計的推論の活発な研究者であり、NeurIPS、ICML、ICLR、JMLR、およびACL会議で多くの論文を発表しています。

タイムスタンプ:

より多くの AWS機械学習