「SageMakerキャンバスモデルリーダーボードを使用して、高度な設定を持つ機械学習モデルを構築し、評価します」

「SageMakerキャンバスモデルリーダーボードで高度な機械学習モデルを構築し、評価する方法」

Amazon SageMaker Canvasは、分析者や一般のデータサイエンティストがビジネスニーズに合わせた正確な機械学習(ML)予測を生成できる、ノーコードのワークスペースです。SageMaker Canvasは、アンサンブルまたはハイパーパラメータ最適化のトレーニング方法の選択、トレーニングおよび検証データの分割比率のカスタマイズ、autoMLの反復とジョブ実行時間の制限の設定など、高度なモデル構築の構成をユーザーがコードを書かずにカスタマイズできるようになりました。この柔軟性により、より信頼性の高い洞察に基づいたモデル開発が可能となります。非技術的なステークホルダーはデフォルト設定でノーコードの機能を使用でき、一般のデータサイエンティストはさまざまなMLアルゴリズムやテクニックを試すことができ、データに最適な手法を理解し、モデルの品質とパフォーマンスを最適化するのに役立ちます。

モデル構築の構成に加えて、SageMaker Canvasにはモデルのリーダーボードも提供されています。リーダーボードを使用すると、さまざまなモデルの構成の重要な性能メトリック(例:精度、適合率、再現率、F1スコア)を比較し、データに最適なモデルを特定することができます。これにより、モデルの構築に対する透明性が向上し、モデルの選択に関する情報を元に意思決定を行うことができます。ノートブックには、前処理手法、アルゴリズム、ハイパーパラメータ範囲など、モデル構築のワークフロー全体を表示することもできます。これらの機能にアクセスするには、SageMaker Canvasにサインアウトして再サインインし、モデルの構築時にモデルの構成を選択してください。

この記事では、新しいSageMaker Canvasの高度なモデル構築設定を使用して、アンサンブルおよびハイパーパラメータ最適化(HPO)トレーニングを開始する方法を説明します。

ソリューションの概要

このセクションでは、新しいSageMaker Canvasの高度なモデル構築設定を使用して、アンサンブルおよびハイパーパラメータ最適化(HPO)トレーニングを開始し、データセットを分析し、高品質なMLモデルを構築し、モデルのリーダーボードを確認して推論用に公開する手順をステップバイステップで示します。SageMaker Canvasは、データセットのサイズに基づいて自動的にトレーニング方法を選択するか、手動で選択することができます。選択肢は以下の通りです:

  • アンサンブル: AutoGluonライブラリを使用して複数のベースモデルをトレーニングします。データセットに最適な組み合わせを見つけるため、アンサンブルモードでは異なるモデルとメタパラメータ設定で10回のトライアルを実行します。そして、これらのモデルをスタッキングアンサンブルメソッドを使用して組み合わせ、最適な予測モデルを作成します。アンサンブルモードでは、SageMaker Canvasは以下の種類の機械学習アルゴリズムをサポートしています:
    • Light GBM: グラジエントブースティングを使用したツリーベースのアルゴリズムを最適化したフレームワークです。このアルゴリズムは、幅ではなく深さに成長するツリーを使用し、高速化に最適化されています。
    • CatBoost: グラジエントブースティングを使用したツリーベースのアルゴリズムを扱うフレームワークです。カテゴリ変数を処理するために最適化されています。
    • XGBoost: グラジエントブースティングを使用したツリーベースのアルゴリズムで、深さではなく幅に成長します。
    • ランダムフォレスト: データのランダムなサブサンプルで複数の決定木を使用するツリーベースのアルゴリズムです。各ツリーは最適なノードに分割されます。各ツリーの決定は平均化され、過学習を防ぎ、予測を向上させるためです。
    • エキストラツリー: データセット全体で複数の決定木を使用するツリーベースのアルゴリズムです。各ツリーはランダムに各レベルで分割されます。各ツリーの決定は平均化され、過学習を防ぎ、予測を向上させます。エキストラツリーはランダムフォレストアルゴリズムと比較してある程度のランダム性を追加します。
    • 線形モデル: 観測データの2つの変数間の関係をモデル化するために線形方程式を使用するフレームワークです。
    • ニューラルネットワークtorch: Pytorchを使用して実装されたニューラルネットワークモデルです。
    • ニューラルネットワークfast.ai: fast.aiを使用して実装されたニューラルネットワークモデルです。
  • ハイパーパラメータ最適化(HPO): SageMaker Canvasは、データセット上でトレーニングジョブを実行しながら、ベイジアン最適化またはマルチフィデリティ最適化を使用してハイパーパラメータを調整し、モデルの最適なバージョンを見つけます。HPOモードは、データセットに最も関連性のあるアルゴリズムを選択し、モデルを調整するための最適なハイパーパラメータ範囲を選択します。モデルの調整のため、HPOモードでは最大で100回(デフォルト)の試行を実行し、選択した範囲内の最適なハイパーパラメータ設定を見つけます。データセットのサイズが100 MB未満の場合、SageMaker Canvasはベイジアン最適化を使用します。データセットのサイズが100 MBを超える場合、SageMaker Canvasはマルチフィデリティ最適化を選択します。マルチフィデリティ最適化では、トレーニングコンテナからメトリックが連続的に出力されます。選択した目的のメトリックに対してパフォーマンスが低いトライアルは早期に停止されます。パフォーマンスが良いトライアルはより多くのリソースが割り当てられます。HPOモードでは、SageMaker Canvasは以下の種類の機械学習アルゴリズムをサポートしています:
  • リニアラーナー: 分類または回帰問題を解決できる監視学習アルゴリズムです。
  • XGBoost: よりシンプルで弱いモデルのアンサンブルの推定値を組み合わせることで、目標変数を正確に予測しようとする監視学習アルゴリズムです。
  • ディープラーニングアルゴリズム: マルチレイヤーパーセプトロン(MLP)およびフィードフォワード型の人工ニューラルネットワークです。このアルゴリズムは線形的に分離できないデータを扱うことができます。
  • オート: SageMaker Canvasは、データセットのサイズに基づいてアンサンブルモードまたはHPOモードを自動的に選択します。データセットのサイズが100

    事前条件

    この記事では、以下の事前条件を完了する必要があります:

    1. AWSアカウントを持っていること。
    2. SageMakerキャンバスを設定すること。詳細はAmazon SageMaker Canvasの設定に関する前提条件を参照してください。
    3. クラシックなTitanicデータセットをローカルコンピュータにダウンロードすること。

    モデルの作成

    TitanicデータセットとSageMakerキャンバスを使用して、Titanicの沈没事故で生き残った乗客を予測するモデルを作成します。これは二値分類の問題です。アンサンブルトレーニングモードを使用してキャンバス実験を作成し、F1スコアと全体のランタイムの結果を、HPOトレーニングモード(100試行)を使用したSageMakerキャンバス実験と比較します。

    列名 説明
    Passengerid 識別番号
    Survivied 生存
    Pclass チケットクラス
    Name 乗客の名前
    Sex 性別
    Age 年齢
    Sibsp タイタニックに乗っている兄弟または配偶者の数
    Parch タイタニックに乗っている親または子供の数
    Ticket チケット番号
    Fare 乗客の運賃
    Cabin キャビン番号
    Emarked 乗船港

    Titanicデータセットは890行12列のデータです。乗客の人口統計情報(年齢、性別、チケットクラスなど)とSurvived(yes/no)のターゲット列を含んでいます。

    1. まず、データセットをSageMakerキャンバスにインポートします。データセットの名前をTitanicとします。
    2. Titanicデータセットを選択し、新しいモデルを作成を選択します。モデルの名前を入力し、プロブレムタイプとして予測分析を選択し、作成を選択します。
    3. 予測する列を選択で、Survivedターゲット列のドロップダウンから選択します。Survived目標列は、0(生存していない)と1(生存)の2つのバイナリデータ型です。

    モデルの設定と実行

    最初の実験では、SageMaker Canvasを使用して、目標メトリックとして正確性を持つデータセット上でアンサンブルトレーニングを実行します。高い正確性スコアは、モデルがより正確な予測を行っていることを示し、低い正確性スコアはモデルがより多くのエラーを起こしていることを示します。正確性はバランスの取れたデータセットに適しています。アンサンブルトレーニングでは、XGBoost、Random Forest、CatBoost、およびLinear Modelsをアルゴリズムとして選択します。トレーニングとバリデーションのデータ分割は、デフォルトの80/20のままにします。最後に、トレーニングジョブを最大1時間まで実行するように設定します。

    1. モデルの設定を選択して開始します。
    2. これにより、モデルの設定用のモーダルウィンドウが表示されます。ナビゲーションペインからAdvancedを選択します。
    3. Objective metricを選択してモデルの設定を開始します。この実験ではAccuracyを選択します。正確性スコアは、モデルの予測が全体的に正しい頻度を示します。
    4. Training method and algorithmsを選択し、Ensembleを選択します。機械学習のアンサンブルメソッドは、複数のモデルを作成し、それらを組み合わせて改善された結果を生み出す手法です。この手法は、異なるアルゴリズムの利点を生かして予測の正確性を向上させるために使用されます。アンサンブルメソッドは、さまざまな機械学習の競技や実世界の応用において、単一のモデルよりも正確な解を生み出すことが知られています。
    5. アンサンブルに使用するさまざまなアルゴリズムを選択します。この実験では、XGBoostLinearCatBoostRandom Forestを選択します。他のアルゴリズムはすべてクリアしてください。
    6. ナビゲーションペインからData splitを選択します。この実験では、デフォルトのトレーニングとバリデーションの分割を80/20のままにします。次のイテレーションでは異なる分割を使用して、モデルのパフォーマンスが向上するかどうかを確認します。
    7. ナビゲーションペインからMax candidates and runtimeを選択し、Max job runtimeを1時間に設定してSaveを選択します。
    8. Standard buildを選択してビルドを開始します。

    この時点で、SageMaker Canvasは指定した設定に基づいてモデルのトレーニングを実行しています。トレーニングジョブの最大実行時間が1時間に指定されているため、SageMaker Canvasはトレーニングジョブを実行するのに最大1時間かかります。

    結果を確認する

    トレーニングジョブの完了後、SageMaker Canvasは自動的に分析ビューに戻り、モデルのトレーニング実験で構成した目標メトリクスの結果を表示します。この場合、モデルの精度は86.034%です。

    1. モデルリーダーボードの横にある折りたたみ矢印ボタンを選択して、モデルのパフォーマンスデータを確認します。
    2. スコアリングタブを選択して、モデルの精度に関する詳細を調べます。トレーニングされたモデルは、生存しなかった乗客を正しく89.72%予測できると報告しています。
    3. 高度なメトリクスタブを選択して、追加のモデルのパフォーマンス詳細を評価します。まず、メトリクステーブルを選択して、F1適合率再現率AUCなどのメトリクスの詳細を確認します。
    4. SageMaker Canvasはトレーニングされたモデルの混同行列も視覚化します。
    5. そして、適合率・再現率曲線も視覚化されます。AUPRC値が0.86であることは、高い分類精度を示しており、良好です。
    6. キーのパフォーマンスメトリクス(精度、適合率、再現率、F1スコアなど)を比較するために、SageMaker Canvasによって評価される異なるモデルのためのモデルリーダーボードを選択します。デフォルトのモデルが最良のパフォーマンスを持っている場合、デフォルトモデルラベルがモデルリーダーボードで強調表示されます。
  • モデルの詳細をさらに深く掘り下げたり、モデルをデフォルトにするためにサイドのコンテキストメニューを使用できます。リーダーボードの2番目のモデルでモデル詳細を表示を選択して詳細を確認します。
  • SageMaker Canvasは、選択したモデル候補の詳細を表示するためにビューを変更します。デフォルトモデルの詳細はすでに利用可能ですが、代替モデルの詳細ビューは10~15分かかります。
  • 2つ目のモデルを作成する

    モデルを構築し、実行し、レビューしたので、比較のために2つ目のモデルを作成しましょう。

    1. トップの角にあるXを選択してデフォルトのモデルビューに戻ります。次に、バージョンを追加を選択して新しいモデルのバージョンを作成します。
    2. 最初に作成したTitanicデータセットを選択し、データセットを選択を選択します。

    SageMaker Canvasは、目標とする列をすでに選択してモデルを自動的に読み込みます。この2番目の実験では、データセットに対してより良い結果を出せるかどうかを確認するために、HPOトレーニングに切り替えます。このモデルでは、最初の実験と比較するために同じ目標メトリクス(Accuracy)を使用し、HPOトレーニングにはXGBoostアルゴリズムを使用します。トレーニングとバリデーション用のデータ分割を70/30に変更し、HPOジョブの最大候補者数とランタイム値を20候補者と最大ジョブランタイムを1時間に設定します。

    モデルの設定と実行

    1. モデルの設定を選択してモデルのトレーニングの詳細を設定して、2番目の実験を開始します。
    2. モデルの設定ウィンドウで、ナビゲーションペインから目標メトリクスを選択します。 目標メトリクスで、ドロップダウンからAccuracyを選択し、すべてのバージョンの出力を並べて表示および比較できるようにします。
    3. トレーニング方法とアルゴリズムを選択します。トレーニング方法としてハイパーパラメータ最適化を選択します。それから、アルゴリズムを選択するために下にスクロールします。
    4. アルゴリズムとしてXGBoostを選択します。XGBoostは、データサイエンスの多くの問題を迅速かつ正確に解決する並列ツリーブースティングを提供し、XGBoostモデルの改善とフル活用のために調整できる大量のハイパーパラメータを提供します。
    5. データ分割を選択します。このモデルでは、トレーニングデータとバリデーションデータの分割を70/30に設定します。
    6. 最大候補者数とランタイムを選択し、HPOジョブのために最大候補者を20と最大ジョブランタイムを1時間に設定します。設定を完了するために保存を選択します。
    7. 2番目のモデルの設定が完了したので、標準のビルドを選択してトレーニングを開始します。

    SageMaker Canvasは、構成を使用してHPOジョブを開始します。最初のジョブと同様に、このトレーニングジョブは最大1時間かかります。

    結果を確認する

    HPOトレーニングジョブが完了(または最大実行時間が切れる)すると、SageMaker Canvasはデフォルトモデルに基づいてトレーニングジョブの出力を表示し、モデルの正確性スコアを表示します。

    1. 「モデルリーダーボード」を選択して、HPOトレーニングランから20個の候補モデルのリストを表示します。最高精度を見つけるという目的に基づいて、最適なモデルがデフォルトとしてマークされます。

    デフォルトモデルの正確度が最も高いですが、HPOジョブランから別のモデルはより高いROC曲線下面積(AUC)スコアを持っています。AUCスコアは、バイナリ分類モデルの性能を評価するために使用されます。AUCが高いほど、モデルは2つのクラスを区別するのに優れており、1は完璧なスコアを示し、0.5はランダムな推測を示します。

    1. コンテキストメニューを使用して、AUCの高いモデルをデフォルトモデルに設定します。そのモデルのコンテキストメニューを選択し、ラインメニューで「デフォルトモデルに変更」オプションを選択します。図31に示すように。

    SageMaker Canvasは、選択したモデルを実験のバージョン2の新しいデフォルトモデルに変更し、モデルリストのトップに移動するまで数分かかります。

    モデルを比較する

    この時点で、2つのモデルのバージョンを持っており、SageMaker Canvasのマイモデルに移動して並べて表示することができます。

    1. タイタニック号の生存を予測を選択して、利用可能なモデルのバージョンを表示します。
    2. 2つのバージョンがあり、そのパフォーマンスが並べて比較された表形式で表示されます。
    3. アンサンブルアルゴリズムを使用してトレーニングされたモデルのバージョン1の方が精度が良いことが分かります。SageMaker Canvasを使用して、1行のコードを書くことなく、AutoGluonのトライアルをカスタマイズし、SageMaker Canvasのワークフローを実行するためのSageMakerノートブックを生成できます。ノートブックを生成するには、コンテキストメニューを選択し、ノートブックを表示を選択します。
    4. SageMakerノートブックがポップアップウィンドウに表示されます。ノートブックは、SageMaker Canvasが提案するパラメータを調査および変更するのに役立ちます。SageMaker Canvasが提案する設定のうち、インタラクティブに選択し、それを変更して、SageMaker Studio環境で選択した設定に基づいてモデルのトレーニングを行うための処理ジョブを実行できます。

    推論

    最適なモデルを特定したら、コンテキストメニューを使用して、リアルタイムの推論のためにエンドポイントに展開することができます。

    または、コンテキストメニューを使用して、機械学習(ML)モデルをSageMakerモデルレジストリに登録して本番で運用化することもできます。

    クリーンアップ

    将来の料金を発生させないために、この記事に従って作成したリソースを削除してください。SageMaker Canvasはセッションの期間に請求されますので、使用していないときにはSageMaker Canvasからサインアウトすることをおすすめします。

    詳細はAmazon SageMaker Canvasからログアウトを参照してください。

    結論

    SageMaker Canvasは、技術的でない利害関係者と市民データサイエンティストの両方を対象とした機械学習を民主化する強力なツールです。高度なモデルビルドの構成やモデルリーダーボードなど、新たに導入された機能により、プラットフォームの柔軟性と透明性が向上しています。これにより、コードに入り込むことなく特定のビジネスニーズに合わせて機械学習モデルをカスタマイズすることが可能となります。トレーニング方法、アルゴリズム、データ分割などのパラメータをカスタマイズすることで、さまざまなMLテクニックを試行し、モデルのパフォーマンスをより深く理解することができます。

    モデルリーダーボードの導入は、異なる構成のキーエンドパフォーマンスメトリックスの明確な概要を提供する重要な強化です。この透明性により、ユーザーはモデルの選択と最適化についての情報を正しく判断することができます。SageMaker Canvasは、ノートブック内に提案される前処理手順、アルゴリズム、ハイパーパラメータ範囲を含むモデルの構築ワークフロー全体を表示することで、モデル開発プロセスの包括的な理解を促進しています。

    低コード/ノーコードのMLの旅を開始するには、Amazon SageMaker Canvasを参照してください。

    ローンチに貢献してくれた全ての方々に特別な感謝を申し上げます:

    Esha Dutta、Ed Cheung、Max Kondrashov、Allan Johnson、Ridhim Rastogi、Ranga Reddy Pallelra、Ruochen Wen、Ruinong Tian、Sandipan Manna、Renu Rozera、Vikash Garg、Ramesh Sekaran、および Gunjan Garg

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

機械学習

このAIニュースレターは、あなたが必要なもの全てです#58

今週、私たちはNLPの領域外でAIの2つの新しい進展を見ることに興奮しましたMeta AIの最新の開発では、彼らのOpen Catalystシ...

コンピュータサイエンス

「LLMランドグラブ:AWS、Azure、およびGCPがAIを巡って闘っている」

企業クラウドプラットフォーム間でのAIの優位性を競うレースが始まっています大手および中小のプロバイダーが自分たちの賭け...

機械学習

MITの新しいAI研究は、深層ニューラルネットワークが私たちとは異なる方法で世界を見ていることを示しています

人間の感覚システムの複雑な機能を模倣することを目指して、神経科学と人工知能の研究者は、計算モデルと人間の知覚の間の不...

AI研究

このAI論文は、MITが化学研究のために深層学習モデルのスケーリングを探究しています

MITの研究者は、化学のための生成的事前トレーニングモデル(ChemGPT)とグラフニューラルネットワークフォースフィールド(G...

データサイエンス

マシンラーニングにおける線形回帰の幾何学的解釈と古典統計学との比較

上記の画像は、最小二乗法(OLS)または線形回帰(古典統計学では同義的に使用される言葉)の幾何学的解釈を示しています見て...