Amazon Web Services ブログ

ビルド、共有、デプロイ : ビジネスアナリストとデータサイエンティストが、ノーコード機械学習と Amazon SageMaker Canvas を使用して市場投入までの時間を短縮する方法

この記事は、「 Build, Share, Deploy: how business analysts and data scientists achieve faster time-to-market using no-code ML and Amazon SageMaker Canvas 」を翻訳したものです。

機械学習 (ML: Machine Learning) は、需要予測、クレジットスコアリング、価格設定、顧客離反予測、次善の提案 (NBO: Next Best Offer) の特定、出荷遅延の予測、製造品質の向上など、さまざまな分野にわたる中核的なビジネス機能を最適化することで、組織の収益増加、ビジネスの成長の促進、コスト削減を支援します。従来の機械学習開発サイクルでは、データサイエンスや機械学習エンジニアリングのスキルがほとんど必要ない領域にもかかわらず数ヶ月を要することがありました。データサイエンティストが彼らのスキルを必要とする複雑な機械学習プロジェクトに集中する一方で、ビジネスアナリストの機械学習モデルに関するアイデアは、データサイエンスチームの対応を待つ長いバックログに埋もれてしまうことがあったのです。

この行き詰まりを打破するために、私達は Amazon SageMaker Canvas を導入しました。これは、企業が機械学習ソリューションの提供を数時間または数日に短縮できるようにする、コーディング不要の機械学習ソリューションです。SageMaker Canvas を使用すると、ビジネスアナリストは、データレイク、データウェアハウス、業務データストアにある利用可能なデータを簡単に使用したり、機械学習モデルを構築したり、それらを使用してインタラクティブな予測を行ったり、データセットに対してのバッチスコアリングを行ったりできます。これらすべてを、コードを 1 行も記述することなく実施できます。

この投稿では、SageMaker Canvas がどのようにデータサイエンティストとビジネスアナリストのコラボレーションを可能にし、市場投入までの時間を短縮し、機械学習ソリューションの開発を加速させるかを説明します。ビジネスアナリストは、機械学習の専門家にならなくても、SageMaker Canvas で独自のノーコード機械学習環境を利用できます。その後、ビジネスアナリストは数回クリックするだけで SageMaker Canvas からモデルを共有できます。データサイエンティストは、エンドツーエンドの機械学習統合開発環境 (IDE) である Amazon SageMaker Studio でそのモデルを操作できるようになります。互いに協力することで、ビジネスアナリストはそれぞれの分野の知識と実験結果を引き出すことができ、データサイエンティストはパイプラインを効果的に作成してプロセスを合理化できます。

ワークフローがどのようなものになるかを詳しく見ていきましょう。

ビジネスアナリストはモデルを構築して共有します

SageMaker Canvas がビジネスアナリストとデータサイエンティスト (または機械学習エンジニア) 間のコラボレーションを簡素化する方法を理解するために、まずビジネスアナリストとして作業に取り組みます。始める前に、SageMaker Canvas によるモデルの構築とテストの手順については、「Amazon SageMaker Canvas を発表 – ビジネスアナリスト向けの視覚的でノーコードの機械学習機能」を参照してください。

この記事では、二値分類問題に関するよく知られたデータセットである Kaggle のクレジットカード不正検知データセットの修正版を使用します。このデータセットは元々非常に不均衡なため、陰性クラス (不正な取引) に分類されるエントリはほとんどありません。SageMaker Canvas はモデルのトレーニングと調整を自動的に行いながらこの不均衡を処理するので、ターゲット特徴量の分布に関係なく、このデータセットをそのまま使用できます。このデータセットは約 900 万個のセルで構成されています。このデータセットの縮小版をダウンロードすることもできます。縮小版では、全体をランダムサンプリングした後に陰性クラスのデータを SMOTE(Synthetic Minority Over-sampling Technique) 手法でオーバーサンプリングすることで、データ縮小による情報の欠損をできるだけ避けながらセル数を約 50 万個に大幅に減らしてあります。

この削減されたデータセットを使用してテスト全体を実行した場合、SageMaker Canvas 無料利用枠では費用はかかりません。

モデルが構築されると、ビジネスアナリストはそのモデルを使用して SageMaker Canvas で個別のリクエストまたは入力データセット全体のバッチ推論を直接行うことができます。

 Use the trained model to generate predictions

SageMaker Canvas Standard Build で構築されたモデルは、ボタンをクリックするだけで、SageMaker Studio を使用するデータサイエンティストや機械学習エンジニアと簡単に共有することもできます。これにより、データサイエンティストは構築したモデルのパフォーマンスを検証し、フィードバックを提供できます。機械学習エンジニアは、モデルを選択し、それを企業や顧客が利用できる既存のワークフローや製品と統合できます。本記事の日本語版執筆時点 (2023 年 1 月) では、SageMaker Canvas Quick Build で構築されたモデルや時系列予測モデルを共有することはできないことに注意してください。

SageMaker Canvas UI を使用してモデルを共有するのは簡単です。

  • 作成したモデルを表示するページで、モデルを選択します。
  • [Share] を選択します。
    Share the trained model from the Analyze tab
  • 共有したいモデルのバージョンを 1 つ以上選択します。
  • オプションで、モデルに関する詳細や、あなたがメンバーから得たい助言について記したメモを含めます。
  • [Create SageMaker Studio Link] を選択します。
     Share the model with SageMaker Studio
  • 生成されたリンクをコピーします。
    Copy the generated link

これで完成です! Slack やメールなど、お好みの方法で同僚とリンクを共有できるようになりました。データサイエンティストがモデルにアクセスするには、同じ SageMaker Studio ドメインに属している必要があるため、必ず組織の管理者に確認してください。

 Share the model by sending a Slack message or an email

データサイエンティストは SageMaker Studio からモデル情報にアクセスします

それでは、SageMaker Studio を使用して、データサイエンティストまたは機械学習エンジニアの立場に立って物事を見てみましょう。

ビジネスアナリストが共有したリンクから、エンドツーエンドの機械学習ワークフローをクラウドベースで初めて実現した IDE である SageMaker Studio にアクセスできます。

Show the model overview as seen in SageMaker Studio

タブが自動的に開き、SageMaker Canvas でビジネスアナリストが作成したモデルの概要が表示されます。モデルの名前、機械学習の問題タイプ、モデルのバージョン、モデルを作成したユーザー (Canvas user ID フィールド) をすばやく確認できます。また、入力データセットや SageMaker が作成できた最良モデルに関する詳細にもアクセスできます。これについては、記事の後半で詳しく説明します。

Input Dataset タブでは、データソースから入力データセットへのデータフローも確認できます。この場合、使用されるデータソースは 1 つだけで、結合( JOIN )操作は適用されていないため、1 つのデータソースが表示されます。[Open data exploration notebook] を選択すると、データセットの統計情報と詳細を分析できます。このノートブックでは、用意したデータをモデルのトレーニング前に調べることができます。このノートブックには、ターゲット変数の分析、入力データのサンプル、統計情報と列と行の説明をはじめとした、データサイエンティストがデータセットについて詳しく知るための役立つ情報が含まれています。このレポートの詳細については、Amazon SageMaker Autopilot Data exploration report を参照してください。

Show the model overview, with the completed jobs and the job information

入力データセットを分析したら、Model overviewの 2 番目のタブである AutoML Job に移りましょう。このタブには、SageMaker Canvas でStandard Buildオプションを選択したときの AutoML ジョブの説明が含まれています。

SageMaker Canvas に搭載されている AutoML テクノロジーにより、機械学習モデル構築時の手間のかかる作業が不要になります。自動化されたアプローチにより、データに基づいて最適な機械学習モデルを自動的に構築、トレーニング、調整し、完全な制御と可視性を維持できます。生成された候補モデルとAutoMLプロセスで使用されるハイパーパラメータに関する情報は、このタブにある [Open candidate generation notebook] から参照できます。

AutoML Job タブには、AutoML プロセスの一環として作成されたすべてのモデルが F1 スコア順にリスト表示されます。開始されたトレーニングジョブの中から最適なモデルを強調表示するために、Best Model 列には緑色の丸付きタグが使用されています。また、精度 (Accuracy) や曲線下面積 (AUC) など、学習や評価フェイズで使用されるその他の指標も簡単に可視化できます。AutoML Job で学習できるモデルと、学習済みモデルのパフォーマンスを評価するために使用される指標の詳細については、指標と検証を参照してください。

モデルの詳細を確認するには、Best Model を右クリックして [Open in model details] を選択できるようになりました。または、最初にアクセスした Model overview セクションの上部にある [Best model] リンクを選択することもできます。

Model details with feature importances and metrics

Model Details ページには、この入力データで最も優れた性能を発揮したモデルに関する有用な情報が多数含まれています。まず、ページ上部の概要に注目しましょう。上のスクリーンショット例は、何百回も実行されたモデルトレーニングのうち、XGBoost モデルが入力データセットで最高の性能を発揮したことを示しています。この記事の執筆時点で、SageMaker Canvas は線形学習者 (Linear learner)、XGBoost、深層学習アルゴリズム (Deep learning algorithm) の 3 種類の機械学習アルゴリズムを学習に使用できます。各アルゴリズムには、さまざまな前処理パイプラインとハイパーパラメーターがあります。各アルゴリズムの詳細については、トレーニングモードとアルゴリズムのサポートを参照してください。

SageMaker には、スケーラブルで効率的な KernelSHAP (特定の予測における各特徴量の重要度の値を割り当てる、協力ゲーム理論でのシャープレイ値に基づく指標) による説明機能も含まれています。これにより、モデルがどのようにして予測に到達したかが明確になり、各特徴量の重要性を定義するのに非常に役立ちます。特徴量の重要性を含む詳細な説明レポートは、PDF 、ノートブック、またはローデータ形式でダウンロードできます。このレポートには、AutoML Job で使用されるハイパーパラメータの完全なリストだけでなく、さまざまな指標が表示されます。SageMaker が AutoML ソリューションと標準的な機械学習アルゴリズム向けに統合された説明可能性ツールをどのように提供しているのかについては、Use integrated explainability tools and improve model quality using Amazon SageMaker Autopilot を参照してください。

最後に、このページの他のタブには、パフォーマンスの詳細 (混同行列、Precision-Recall 曲線、ROC曲線) 、Auto ML Jobで入力や生成されたアーティファクト、およびネットワークの詳細に関する情報が表示されます。

この時点で、データサイエンティストには 2 つの選択肢があります。モデルを直接デプロイするか、手動または自動でスケジュール設定またはトリガーできるトレーニングパイプラインを作成するかです。以下のセクションでは、両方のオプションについて説明します。

モデルを直接デプロイ

データサイエンティストが AutoML Job で得られた結果に満足すれば、Model Details ページからモデルを直接デプロイできます。モデル名の横にある [Deploy model] を選択するだけで簡単です。

Additional model details, from where to deploy the model

SageMaker には、Amazon SageMaker エンドポイントを利用したリアルタイム推論と Amazon SageMaker バッチ変換を利用したバッチ推論の 2 つのデプロイオプションが示されています。

Option to launch prediction from AutoML

SageMaker には他の推論モードも用意されています。詳細については、「推論のためのモデルをデプロイする」を参照してください。

エンドポイントに名前、インスタンスタイプ、インスタンス数を指定するだけで、リアルタイム推論モードを有効にできます。ここで例にあげたモデルは重いコンピューティングリソースを必要としないため、初期カウントが 1 の CPU ベースのインスタンスを使用できます。Amazon SageMaker Pricing ページ (On-Demand Pricing セクションで Real-Time Inference タブを選択) で、利用可能なさまざまな種類のインスタンスとその仕様について詳しく知ることができます。導入時にどのインスタンスを選択すべきかわからない場合は、SageMaker Inference Recommender を使用して KPI に基づいて最適なインスタンスを見つけさせることができます。また、エンドポイントに対するリクエストとレスポンスのデータをキャプチャするかどうかについて、追加のオプションパラメータを指定することもできます。これは、モデルの監視を計画している場合に役立ちます。また、レスポンスに含める内容を選択することもできます。内容は、推論結果、推論したクラスの予測確率 (Prediction probability)、全クラスの予測確率、ターゲットラベルなどです。

入力セット全体の推論結果をまとめて取得するバッチスコアリングジョブを実行するには、AWS マネジメントコンソールまたは SageMaker Python SDK を使用してバッチ変換ジョブを起動します。バッチ変換について詳しくは、「バッチ変換の使用」とサンプルノートブックを参照してください。

トレーニングパイプラインの定義

構築した機械学習モデルが将来にわたって変更不要とみなされることはめったにありません。実際には、学習時に想定したベースラインに対してズレが生じてきます。現実世界で観測されるデータは時間の経過とともに変化し、より多くのパターンや洞察が得られるべきですが、それらが過去のデータに基づいて学習されたモデルにすべて織り込まれているとは限りません。この問題を解決するために、利用可能な最新データを使用してモデルを自動的に再学習するトレーニングパイプラインを設定できます。

このパイプラインを定義するにあたり、データサイエンティストの選択肢の 1 つは、トレーニングパイプラインに再び AutoML を使用することです。AWS Boto3 SDK から create_auto_ml_job () API を呼び出すことで、AutoML ジョブをプログラムで起動できます。この操作は、AWS Step Functions ワークフロー内の AWS Lambda 関数から、または Amazon SageMaker Pipelines の LambdaStep から呼び出すことができます。( 日本語版注記 : SageMaker Pipelinesは2022/11/30より、AutoML Step をサポートしました )

あるいは、データサイエンティストは AutoML ジョブから得られた知識、アーティファクト、ハイパーパラメータを使用して、トレーニングパイプラインを完全に定義することもできます。そのためには、次のリソースが必要です。

  • ユースケースに最も適したアルゴリズム — この情報は、SageMaker Canvasで生成されたモデルの概要からわかります。このユースケースでは、XGBoost の組み込みアルゴリズムです。SageMaker Python SDK を使用して SageMaker で XGBoost アルゴリズムをトレーニングする方法については、 Use XGBoost with the SageMaker Python SDK を参照してください。
    nformation about the algorithm that was trained with the Canvas job
  • AutoML ジョブによって導出されるハイパーパラメーター — これらは Explainability セクションにあります。これらを SageMaker Python SDK でトレーニングジョブを定義する際の入力として使用できます。 The model hyperparameters The model hyperparameters
  • Artifact セクションで提供される特徴量生成コード — このコードをデータの前処理として、学習時 (Amazon SageMaker Processing など) または推論時 (SageMaker 推論パイプラインの一部として) の両方に使用できます。The S3 URI of the Feature Engineering Code

これらのリソースを SageMaker パイプラインの一部として組み合わせることができます。この投稿では実装の詳細を省略しますが、このトピックに関するその他のコンテンツをお楽しみにお待ち下さい。

クリーンアップ

今後セッション料金が発生しないようにするには、SageMaker Canvas からログアウトしてください。

まとめ

SageMaker Canvas では、機械学習を用いた予測をコードを書かずに生成できます。ビジネスアナリストは、Amazon Simple Storage Service (Amazon S3) 、Amazon Redshift 、Snowflake にすでに保存されているデータだけでなく、ローカルデータセットでも自主的に使用を開始できます。数回クリックするだけで、データセットの準備と結合、推論精度の分析、特徴量の寄与度の検証、最もパフォーマンスの高いモデルのトレーニング、個別推論またはバッチ推論の生成をすべて実行できます。これらすべてを、専門のデータサイエンティストに依頼する必要はありません。その後、必要に応じてモデルをデータサイエンティストまたは MLOps エンジニアのチームとモデルを共有して SageMaker Studio にインポートしてもらい、彼らと協力して製品ソリューションを仕上げることができます。

ビジネスアナリストは、機械学習の学位を取得していなくても、コードを 1 行も記述しなくても、独力でデータからインサイトを得ることができます。データサイエンティストは、AI と 機械学習 に関する幅広い知識を活かして、さらに困難なプロジェクトに多くの時間を割けるようになります。

私達は、この新しいコラボレーションがお客様のビジネスにとってより強力な機械学習ソリューションを構築するための扉を開くと信じています。今では、ビジネスアナリストが貴重なビジネスインサイトを生み出し、彼らの必要に応じてデータサイエンティストや機械学習エンジニアが調整や拡張といった支援を行えるのです。

その他のリソース

  • MLOps エンジニアが MLOps による 機械学習ライフサイクルを効率化する上で SageMaker がどのように役立つかについての詳細は、MLOps 用 Amazon SageMaker を参照してください。

著者について

Davide Gallitelliは、EMEA 地域の AI / 機械学習のスペシャリストソリューションアーキテクトです。彼はブリュッセルを拠点とし、ベネルクス全域の顧客と緊密に連携しています。彼は幼い頃から開発者で、7 歳でコーディングを始めました。彼は大学で AI / 機械学習を学び始め、それ以来 AI / 機械学習に夢中になっています。

Mark Royは AWS のプリンシパル機械学習アーキテクトであり、お客様の AI / 機械学習ソリューションの設計と構築を支援しています。Mark の研究は機械学習の幅広いユースケースを対象としており、主な関心はコンピュータービジョン、深層学習、企業全体での機械学習のスケーリングです。保険、金融サービス、メディア/エンターテインメント、ヘルスケア、公益事業、製造など、さまざまな業界の企業を支援してきました。Mark は ML Speciality Certification を含む 6 つの AWS 認定資格を取得しています。AWS に入社する前は、Mark は 25 年以上にわたってアーキテクト、開発者、テクノロジーリーダーを務め、そのうちの 19 年間は金融サービス業界に携わっていました。

本ブログは、ソリューションアーキテクトの橋井が翻訳しました。原文はこちらです