2020年XNUMX月、AWS 発表の の一般的な可用性 Amazon SageMaker ジャンプスタート、の機能 アマゾンセージメーカー これにより、機械学習(ML)をすばやく簡単に開始できます。 2022年XNUMX月、私たちも 発表の JumpStartでのAPIのサポート。 JumpStartは、一般的なMLタスク全体で事前にトレーニングされたさまざまなモデルのワンクリック微調整と展開、および一般的なビジネス上の問題を解決するエンドツーエンドのソリューションの選択を提供します。 これらの機能により、MLプロセスの各ステップの負担が軽減され、高品質のモデルの開発が容易になり、展開までの時間が短縮されます。
この投稿では、JumpStartを使用して自動モデルチューニングを実行する方法を示します。
SageMaker自動モデル調整
従来、MLエンジニアは試行錯誤の方法を実装して、適切なハイパーパラメータのセットを見つけていました。 試行錯誤では、実験の実行に必要なリソースをプロビジョニングしながら、複数のジョブを順次または並行して実行します。
SageMaker自動モデル調整、MLエンジニアとデータサイエンティストは、モデルを最適化するという時間のかかるタスクをオフロードし、SageMakerに実験を実行させることができます。 SageMakerは、AWSプラットフォームの弾力性を利用して、データセットに対して複数のトレーニングシミュレーションを効率的かつ同時に実行し、モデルに最適なハイパーパラメーターを見つけます。
SageMakerの自動モデルチューニングは、アルゴリズムを使用してデータセットで多くのトレーニングジョブを実行することにより、モデルの最適なバージョンを見つけます。 範囲 指定するハイパーパラメータの数。 次に、によって測定された、最高のパフォーマンスを発揮するモデルをもたらすハイパーパラメータ値を選択します。 メトリック あなたが選ぶこと。
自動モデルチューニングは、 ベイジアン (デフォルト)または ランダム ハイパーパラメータの最適な値を見つけるための検索戦略。 ベイジアン検索は、ハイパーパラメータ調整を次のように扱います。 回帰 問題。 次のトレーニングジョブに最適なハイパーパラメータを選択するとき、これまでに問題について知っているすべてのことを考慮し、アルゴリズムが最もよく知られている結果を利用できるようにします。
この投稿では、デフォルトのベイジアン検索戦略を使用して、JumpStartを使用した自動モデル調整の実行に関連する手順を示します。 ライトGBM モデル。
JumpStartは現在、自動モデル調整を備えた10のサンプルノートブックをサポートしています。 また、表形式のデータモデリングのためのXNUMXつの一般的なアルゴリズムもサポートしています。 タスクとサンプルノートブックへのリンクを次の表に要約します。
仕事 | 事前トレーニング済みモデル | カスタムデータセットをサポート | サポートされているフレームワーク | ノートブックの例 |
画像分類 | はい | はい | PyTorch、TensorFlow | JumpStartの概要–画像分類 |
オブジェクト検出 | はい | はい | PyTorch、TensorFlow、MXNet | JumpStartの概要–オブジェクト検出 |
セマンティックセグメンテーション | はい | はい | MXNet | JumpStartの概要–セマンティックセグメンテーション |
テキスト分類 | はい | はい | TensorFlow | JumpStartの概要–テキスト分類 |
文のペアの分類 | はい | はい | TensorFlow、Hugging Face | JumpStartの概要–文のペアの分類 |
質問応答 | はい | はい | パイトーチ | JumpStartの概要–質問応答 |
表形式の分類 | はい | はい | LightGBM、CatBoost、XGBoost、Linear Learner | JumpStartの概要–表形式の分類– LightGBM、CatBoost JumpStartの概要–表形式の分類– XGBoost、線形学習者 |
表形式の回帰 | はい | はい | LightGBM、CatBoost、XGBoost、Linear Learner | JumpStartの概要–表形式の回帰– LightGBM、CatBoost JumpStartの概要–表形式の回帰– XGBoost、線形学習者 |
ソリューションの概要
この技術ワークフローでは、JumpStartモデルを自動的に調整するために必要なAmazonSagemakerのさまざまな機能と手順の概要を説明します。
次のセクションでは、LightGBMアルゴリズムを使用してJumpStartで自動モデルチューニングを実行する方法のステップバイステップのウォークスルーを提供します。 付属品をご用意しております ノート このウォークスルーのために。
次の高レベルの手順を実行します。
- JumpStartの事前トレーニング済みモデルと画像コンテナを取得します。
- 静的ハイパーパラメータを設定します。
- 調整可能なハイパーパラメータ範囲を定義します。
- 自動モデルチューニングを初期化します。
- チューニングジョブを実行します。
- 最適なモデルをエンドポイントにデプロイします。
JumpStartの事前トレーニング済みモデルと画像コンテナを取得します
このセクションでは、微調整のためにLightGBM分類モデルを選択します。 モデルが実行されるml.m5.xlargeインスタンスタイプを使用します。 次に、トレーニングDockerコンテナー、トレーニングアルゴリズムソース、および事前トレーニング済みモデルを取得します。 次のコードを参照してください。
training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
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
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
)
静的ハイパーパラメータを設定する
ここで、JumpStartによって事前構成された、このLightGBMモデルのデフォルトのハイパーパラメーターを取得します。 また、 num_boost_round
カスタム値を持つハイパーパラメータ。
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
調整可能なハイパーパラメータ範囲を定義する
次に、ハイパーパラメータ範囲を次のように定義します 自動モデルチューニングにより最適化。 モデルで期待されるハイパーパラメータ名を定義してから、このハイパーパラメータに対して試行される値の範囲を定義します。 自動モデルチューニングはサンプルを描画します( max_jobs
パラメータ)ベイズ検索と呼ばれる手法を使用して、ハイパーパラメータの空間から。 描画されたハイパーパラメータサンプルごとに、チューナーはその構成でモデルを評価するためのトレーニングジョブを作成します。 次のコードを参照してください。
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
自動モデルチューニングを初期化します
を作成することから始めます 推定量 事前トレーニング済みモデル、トレーニングイメージ、トレーニングスクリプトなど、トレーニングジョブを定義するすべての必要なアセットを含むオブジェクト。 次に、 ハイパーパラメータチューナー SageMakerハイパーパラメータチューニングAPIと対話するオブジェクト。
HyperparameterTuner
Estimatorオブジェクト、ハイパーパラメーターの最適なセットが決定されるターゲットメトリック、トレーニングジョブの総数をパラメーターとして受け入れます(max_jobs
)ハイパーパラメータ調整ジョブを開始し、実行する最大並列トレーニングジョブ(max_parallel_jobs
)。 トレーニングジョブは、LightGBMアルゴリズム、および最小のハイパーパラメータ値を使用して実行されます mlogloss
メトリックが選択されます。 自動モデル調整の構成の詳細については、を参照してください。 ハイパーパラメータ調整のベストプラクティス.
# Create SageMaker Estimator instance
tabular_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",
instance_count=1,
instance_type=training_instance_type,
max_run=360000,
hyperparameters=hyperparameters,
output_path=s3_output_location,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
上記のコードでは、最大10回の実験を実行するようにチューナーに指示しています(max_jobs
)および一度にXNUMXつの同時実験のみ(max_parallel_jobs
)。 これらのパラメータは両方とも、コストとトレーニング時間を管理します。
チューニングジョブを実行します
SageMakerチューニングジョブを起動するには、ハイパーパラメータチューナーオブジェクトのfitメソッドを呼び出し、 Amazon シンプル ストレージ サービス (Amazon S3)トレーニングデータのパス:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
自動モデルチューニングが最適なハイパーパラメータを検索している間、SageMakerコンソールまたはでそれらの進行状況を監視できます アマゾンクラウドウォッチ。 トレーニングが完了すると、最適なモデルの微調整されたアーティファクトが、トレーニング構成で指定されたAmazonS3出力の場所にアップロードされます。
最適なモデルをエンドポイントにデプロイする
チューニングジョブが完了すると、最適なモデルが選択され、AmazonS3に保存されます。 これで、のdeployメソッドを呼び出すことでそのモデルをデプロイできます。 HyperparameterTuner
オブジェクトを作成し、作成されたエンドポイントに使用されるインスタンスの数、それらのタイプ、デプロイされるイメージ、実行するスクリプトなどの必要なパラメーターを渡します。
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
これで、推論リクエストを行うことで、作成されたエンドポイントをテストできます。 付随するプロセスの残りの部分に従うことができます ノート.
まとめ
SageMakerの自動モデルチューニングでは、サポートされているアルゴリズムのXNUMXつを使用して、提供されたデータセットでトレーニングジョブを実行することにより、モデルの最適なバージョンを見つけることができます。 自動モデル調整を使用すると、指定したハイパーパラメータ範囲内で最適なハイパーパラメータ構成を自動的に検索することで、モデルの調整時間を短縮できます。
この投稿では、SageMakerAPIを使用してJumpStartの事前トレーニング済みモデルで自動モデルチューニングを実行することの価値を示しました。 LightGBMアルゴリズムを使用し、最大10のトレーニングジョブを定義しました。 また、JumpStartモデルの最適化をサポートするMLフレームワークを紹介するサンプルノートブックへのリンクも提供しました。
自動モデル調整を使用してJumpStartモデルを最適化する方法の詳細については、例を参照してください。 ノート.
著者について
ダグ・ムバヤ は、データと分析に重点を置いたシニアパートナーソリューションアーキテクトです。 DougはAWSパートナーと緊密に連携し、データと分析ソリューションをクラウドに統合するのを支援しています。
クルティ・ジャヤシマ ラオ は、Scale-PSAチームのパートナーソリューションアーキテクトです。 Kruthiは、パートナーの技術的検証を実施し、パートナーパスでの進歩を可能にします。
ジャンニス・ミトロプロス SageMakerのソフトウェア開発エンジニアです 自動モデル調整.
アシッシュ・ケタン博士 の上級応用科学者です Amazon SageMaker ジャンプスタート および AmazonSageMakerの組み込みアルゴリズム 機械学習アルゴリズムの開発に役立ちます。 彼は機械学習と統計的推論の活発な研究者であり、NeurIPS、ICML、ICLR、JMLR、およびACL会議で多くの論文を発表しています。
- "
- 10
- 100
- 2020
- 2022
- 私たちについて
- 越えて
- アクティブ
- 利点
- アルゴリズム
- アルゴリズム
- すべて
- Amazon
- 分析論
- API
- 資産
- オートマチック
- 賃貸条件の詳細・契約費用のお見積り等について
- AWS
- BEST
- 内蔵
- ビジネス
- コール
- 選択する
- 選ばれた
- 分類
- クラウド
- コード
- コマンドと
- 会議
- 考慮する
- 領事
- コンテナ
- コントロール
- 作ります
- 作成した
- 作成します。
- 作成
- 現在
- カスタム
- データ
- 決定しました
- 実証します
- 展開します
- 展開
- 展開
- 細部
- 開発する
- 開発
- 異なります
- デッカー
- 簡単に
- 効率良く
- 有効にする
- エンドポイント
- エンジニア
- エンジニア
- 評価する
- すべてのもの
- 例
- 予想される
- 実験
- 悪用する
- 特徴
- 発見
- フィット
- フォーカス
- フォロー中
- さらに
- 高さ
- 助け
- ことができます
- 高品質
- 認定条件
- How To
- HTTPS
- 画像
- 実装する
- 情報
- 統合する
- 関係する
- IT
- ジョブ
- Jobs > Create New Job
- 起動する
- 学習
- フェイスリフト
- リンク
- 場所
- 機械
- 機械学習
- 作成
- 3月
- ML
- モデル
- モニター
- 他には?
- 最も
- の試合に
- 数
- 最適化
- 最適化
- 最適化
- パートナー
- パートナー
- 通過
- プラットフォーム
- 人気
- 問題
- 問題
- プロセス
- 提供します
- は、大阪で
- 質問
- すぐに
- 減らします
- 縮小
- リクエスト
- の提出が必要です
- リソース
- REST
- 結果
- ラン
- ランニング
- 科学者
- 科学者たち
- を検索
- 選択
- セッションに
- 展示の
- 簡単な拡張で
- So
- ソフトウェア
- ソフトウェア開発
- 溶液
- ソリューション
- 解決する
- スペース
- start
- 開始
- 統計的
- ストレージ利用料
- 戦略
- サポート
- サポート
- サポート
- ターゲット
- タスク
- チーム
- 技術的
- test
- 介して
- 時間
- 時間がかかる
- 役職
- トレーニング
- トライアル
- つかいます
- 値
- 多様
- while
- 以内
- 作品