制限事項とトラブルシューティング - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

制限事項とトラブルシューティング

以下のセクションでは、Amazon SageMaker Canvas を使用する際に適用されるトラブルシューティングのヘルプと制限事項の概要を説明します。これらのトピックは、問題が発生した際のトラブルシューティングに役立ちます。

SageMaker コンソールを介したアクセス許可の付与に関する問題のトラブルシューティング

Canvas のベースアクセス許可または Ready-to-useモデルアクセス許可をユーザーに付与できない場合は、ユーザーに他の AWS サービスと複数の信頼関係を持つ実行ロールがある AWS IAM可能性があります。信頼関係とは、どのプリンシパル (ユーザー、ロール、アカウント、またはサービス) がそのロールを引き受けることができるかを定義する、ロールにアタッチされたポリシーです。例えば、実行ロールが Amazon SageMaker と Amazon Forecast の両方と信頼関係にある場合、ユーザーに追加の Canvas アクセス許可を付与する問題が発生することがあります。

この問題を解決するには、次のいずれかのオプションを選択します。

1. 1 つを除いて、すべての信頼されたサービスをロールから削除します。

このソリューションでは、ユーザープロファイルのIAMロールの信頼関係を編集し、 を除くすべての AWS サービスを削除する必要があります SageMaker。

IAM 実行ロールの信頼関係を編集するには、以下を実行します。

  1. のIAMコンソールに移動しますhttps://console.aws.amazon.com/iam/

  2. IAM コンソールのナビゲーションペインで、ロール を選択します。コンソールには、アカウントにあるロールが表示されます。

  3. 変更するロールの名前を選択した後、詳細ページの [Trust relationships] (信頼関係) タブを開きます。

  4. [信頼ポリシーを編集] を選択します。

  5. [信頼ポリシーの編集エディタ] に以下の内容を貼り付けた後、[ポリシーを更新] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

このポリシードキュメントは、 IAM を使用して更新することもできますCLI。詳細については、IAM「 コマンドラインリファレンス」の「update-trust」を参照してください。

Canvas のベースアクセス許可または Ready-to-useモデルアクセス許可をユーザーに再度付与できるようになりました。

2. 1 つ以下の信頼されたサービスを持つ別のロールを使用します。

このソリューションでは、ユーザープロファイルに別のIAMロールを指定する必要があります。このオプションは、置き換えることができるIAMロールが既にある場合に使用します。

ユーザーに別の実行ロールを指定するには、次の手順に従います。

  1. で Amazon SageMaker コンソールを開きますhttps://console.aws.amazon.com/sagemaker/

  2. 左のナビゲーションペインで、[管理設定‭] を選択します。

  3. 管理設定 で、ドメイン を選択します。

  4. ドメインのリストから、ユーザープロファイルのリストを表示するドメインを選択します。

  5. ドメインの詳細ページで、ユーザープロファイルタブを選択します。

  6. 権限を編集するユーザーを選択します。[ユーザーの詳細] ページで、[編集] を選択します。

  7. [全般設定] ページで、[実行ロール] ドロップダウンリストを選択し、使用するロールを選択します。

  8. [送信] を選択して、ユーザープロファイルへの変更を保存します。

これで、ユーザーは信頼できるサービス () を 1 つだけ持つ実行ロールを使用する必要がありますSageMaker。

Canvas のベースアクセス許可または Ready-to-useモデルアクセス許可をユーザーに再度付与できます。

3. SageMaker ドメイン設定でトグルを使用する代わりに、 AWS 管理ポリシーを実行ロールに手動でアタッチします。

ドメインまたはユーザープロファイル設定でトグルを使用する代わりに、ユーザーに正しいアクセス許可を付与する AWS 管理ポリシーを手動でアタッチできます。

ユーザー Canvas ベースアクセス許可を付与するには、AmazonSageMakerCanvasFullAccessポリシーをアタッチします。ユーザー Ready-to-useモデルに許可を付与するには、AmazonSageMakerCanvasAIServicesAccessポリシーをアタッチします。

AWS 管理ポリシーをロールにアタッチするには、次の手順に従います。

  1. のIAMコンソールに移動しますhttps://console.aws.amazon.com/iam/

  2. [ロール] を選択します。

  3. 検索ボックスで、名前でユーザーIAMロールを検索し、選択します。

  4. ユーザーのロールのページの [権限] で、[権限の追加] を選択します。

  5. ドロップダウンメニューで、[ポリシーをアタッチ] を選択します。

  6. ユーザーの実行ロールにアタッチする 1 つまたは複数のポリシーを検索して選択します。

    1. Canvas ベースアクセス許可を付与するには、AmazonSageMakerCanvasFullAccessポリシーを検索して選択します。

    2. モデルに Ready-to-use許可を付与するには、AmazonSageMakerCanvasAIServicesAccessポリシーを検索して選択します。

  7. [アクセス許可の追加] を選択して、ポリシーをロールにアタッチします。

IAM コンソールを介して AWS マネージドポリシーをユーザーロールにアタッチした後、ユーザーに Canvas ベースアクセス許可または Ready-to-useモデルアクセス許可が付与されるようになりました。

スペース障害による Canvas アプリケーションの作成に関する問題のトラブルシューティング

新しい Canvas アプリケーションを作成するときに、 というエラーが発生した場合はUnable to create app <app-arn> because space <space-arn> is not in InService state、基盤となる Amazon SageMaker Studio スペースの作成が失敗したことを示します。Studio スペースは、Canvas アプリケーションデータをホストする基盤となるストレージです。Studio スペースの詳細については、「」を参照してくださいAmazon SageMaker Studio スペース。Canvas でスペースを設定する方法の詳細については、「」を参照してください SageMaker Canvas アプリケーションデータを自分の SageMakerスペースに保存する

スペースの作成が失敗した理由の根本原因を確認するには、 DescribeSpace API を使用して FailureReasonフィールドを確認できます。スペースのステータスと意味の詳細については、「」を参照してくださいAmazon SageMaker ドメインエンティティとステータス

この問題を解決するには、 SageMaker コンソールでドメインを検索し、受信したエラーメッセージに記載されている失敗したスペースを削除します。スペースを検索して削除する詳細な手順については、「」ページを参照Studio で実行中のインスタンス、アプリケーション、スペースを削除または停止するし、手順に従って Studio スペース を削除します。スペースを削除すると、そのスペースに関連付けられたアプリケーションも削除されます。スペースを削除したら、Canvas アプリケーションを再度作成できます。これで、スペースが正常にプロビジョニングされ、Canvas が起動できるようになります。

コラボレーションの制限事項

Amazon SageMaker Studio Classic でデータサイエンティストとコラボレーションする場合、次の一般的な制限が適用されます。

  • 正常にトレーニングされたモデルを Canvas から Studio Classic にのみ共有できます。同様に、Studio Classic で正常にトレーニングされたモデルのみを Canvas に共有できます。

  • Canvas から Studio Classic にクイックビルドモデルを共有することはできません。[標準ビルド] モデルのみ共有できます。

  • Canvas でトレーニングされた [標準ビルド] モデルの 1 つのバージョンしか共有できません。Canvas 内でモデルの追加バージョンをトレーニングすることはできますが、Studio Classic と共有することはできません。

  • Studio Classic では、フィードバックを共有したり、更新されたモデルを Canvas と共有したりすることしかできません。両方のアクションを同時に実行することはできません。

  • Studio Classic から Canvas および Canvas から Studio Classic に共有されるコメントの長さ制限は 1024 文字です。

  • Canvas または Studio Classic モデルは、別のユーザープロファイルでのみ共有できます。独自のユーザープロファイル内で Canvas と Studio Classic の間でモデルを共有することはできません。

  • Canvas ユーザーから Canvas ユーザー、または Studio Classic ユーザーから Studio Classic ユーザーと共有することはできません。

共有するモデルのタイプに応じて、他の制限事項が適用される場合もあります。時系列予測モデル、数値予測モデル、およびカテゴリ予測モデルの制限事項については、以下のセクションを参照してください。

時系列予測モデルでのコラボレーションに関する制限事項

Canvas と Studio Classic の間で時系列予測モデルを共同作業する場合、以下の制限が適用されます。

  • Studio Classic の時系列予測モデルでは、自動共有ボタンを使用して予測を行うことはできません。ただし、Jupyter Notebook を作成して独自のコードを記述することはできます。

  • 時系列予測モデルの場合、Studio Classic でモデルレシピまたはデータ変換を変更することはできません。Studio Classic では、時系列予測モデルに対してのみ以下の更新を行うことができます。

    • 予測期間の長さを更新する。

    • データを特定の列でグループ化するアイテムのメタデータフィールドを更新する。

    • 祝日スケジュールの指定など、他のディメンションフィールドを更新する。

数値予測モデルおよびカテゴリ予測モデルでのコラボレーションに関する制限事項

Canvas と Studio Classic の間で数値予測モデルタイプとカテゴリ予測モデルタイプを共同作業する場合、以下の制限が適用されます。

  • Studio Classic でモデルを更新またはトレーニングするときに、上部のコラボレーションバナーでタブを閉じると、共有モデルのワークフローが終了し、進行状況が失われます。その場合、[共有モデル] ページの [自分と共有] セクションから共有モデルワークフローを再開する必要があります。詳細については、「Collaborate with data scientists」を参照してください。

  • Studio Classic でモデルを更新する場合、モデルの更新を Canvas に返す場合は、ターゲット列を変更できません。ターゲット列を変更してモデルを再トレーニングする場合は、モデルをトレーニングしてから [共有] ボタンを使用して Canvas に共有します。Canvas に新しいモデルを共有する方法の詳細については、「Bring your own model to SageMaker Canvas 」を参照してください。

  • Studio Classic の Amazon SageMaker Data Wrangler Recipe インターフェイスでモデルを更新する場合、Canvas がサポートする Studio Classic ユーザーが適用できる変更には制限があります。

    • Canvas と共有できるのは、Data Wrangler の線形データフローの最後のノードからトレーニングされたモデルのみです。

    • 変換ノードのみがサポートされます。

    • [ターゲット] 列は操作できません。

    • 列のデータ型は更新できません。

    • データソースを更新したり、新しいデータソースを追加したりすることはできません。

  • Studio Classic Autopilot ページから Canvas の代替候補を共有する場合、リーダーボードからモデルを選択することはできません。バナーから共有モデルを選択し、リストから代替モデルを選択する必要があります。詳細については、「Canvas のドキュメント」の「Share an alternate model with the Canvas user」を参照してください。

  • SageMaker Neo と互換性のあるモデルのみが Canvas に正常に共有できます。互換性のあるモデルは、 XGBoost または MLPアルゴリズムを使用する Autopilot モデルです。互換性のないモデルには、線形学習アルゴリズムを使用する Autopilot モデルが含まれます。

  • Spark を使用したカスタム式変換の場合SQL、Canvas は Unary オペレーション、集計関数、文字列連結オペレーション、および Power オペレーションのみをサポートします。他の演算はサポートされていません。

独自のモデルを持ち込むための制限 (BYOM)

SageMaker Canvas に独自のモデルを持ち込む場合、次の一般的な制限が適用されます。

  • Studio Classic から Canvas にモデルを共有すると、Canvas ユーザーはモデルの構築に使用されたデータセットの詳細を更新または表示できません。

  • Canvas ユーザーがインポートしたモデルで単一予測を実行する場合は、列の値を更新する際にデータ型の制限はありません。単一予測の値を更新するときは、既存の値のデータ型と一致することを手動で確認する必要があります。

  • Canvas ユーザーがインポートされたモデルに対してバッチ予測を実行する場合は、Canvas はユーザーが想定される入力データセットがどのようなものかを知っているものと仮定します。Canvas に取り込むデータセットには、モデルのトレーニングに使用されたデータセットと一致する列とデータ型が必要です。一致しない場合は、モデルを共有したユーザーにコンタクトして、バッチ予測の実行に使用できるデータセットをインポートしてください。

  • Canvas アプリケーションは内部的にサーバーレスエンドポイントを使用して予測を実行し、モデルメトリクスを生成します。Canvas と共有するモデルは、サーバーレスエンドポイントと互換性がある必要があります。

    • 最大メモリサイズは 6144 MB です。

    • コンテナに推論入力レスポンスキーを設定する際は、以下の設定を使用します。

      INFERENCE_INPUT_RESPONSE_KEYS = { "BINARY": ["predicted_label", "probability"], "MULTI_CLASS": ["predicted_label", "probability", "probabilities", "labels"], }
    • SageMakerが提供する推論コンテナを選択するか、エンドポイントに使用する独自のイメージ推論コンテナを持ち込むことができます。 SageMaker は、組み込みアルゴリズム用のコンテナと、最も一般的な機械学習フレームワークの一部用の事前構築済みの Docker イメージを提供します。独自のコンテナを持ち込む場合は、 を使用するように変更する必要があります SageMaker。独自のコンテナの取り込みの詳細については、「Adapting Your Own Inference Container」を参照してください。

    • サーバーレスエンドポイントの機能の除外事項も適用されます。

  • Studio Classic から Canvas にモデルを正常に共有するために、Canvas は次の形式でモデル推論出力を受け入れます。

    TEXT/CSV

    • リグレッション: モデル推論レスポンスは、各出力予測が \n で区切られたバイト文字列でなければなりません。

      b'-0.0007884334772825241\n-0.015136942267417908\n0.050063662230968475\n0.02891816757619381\n'
    • 分類: モデル推論のレスポンスは、predicted_labelpredicted_probabilityprobabilitieslabels がそれぞれ \n で区切られたバイト文字列でなければなりません。二項分類の例を以下に示します。

      b'no,0.9967488050460815,"[0.9967488050460815, 0.003251201706007123]","[\'no\', \'yes\']"\nno,0.9999420642852783,"[0.9999420642852783, 5.793538366560824e-05]","[\'no\', \'yes\']"\nno,0.9999846816062927,"[0.9999846816062927, 1.5326571883633733e-05]","[\'no\', \'yes\']"\nno,0.9999727606773376,"[0.9999727606773376, 2.7267418772680685e-05]","[\'no\', \'yes\']"\n'

      マルチクラス分類の例を以下に示します。

      b'Iris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\n'

    APPLICATION/JSON

    • 回帰: モデル推論レスポンスは predictionキーを含むJSON文字列で、その値は出力予測のリストである必要があります。

      let response = { "predictions": [ // First instance prediction. 1.75 // Second instance prediction. 3.25 ] }
    • 分類: モデル推論レスポンスはprobabilitiesキーを含むJSON文字列で、その値は確率のリストである必要があります。

      二項分類の例を以下に示します。

      let response = { "probabilities": [ // First instance prediction. [0.9, 0.1] // Second instance prediction. [0.2, 0.8] ] }

      マルチクラス分類の例を以下に示します。

      let response = { "probabilities": [ // First instance prediction. [0.7, 0.2, 0.1] // Second instance prediction. [0.2, 0.5, 0.3] ] }

取り込むモデルのタイプに応じて、他の制限事項が適用される場合もあります。

から独自のモデルを取得する JumpStart

Canvas と JumpStart モデルを共有するときは、以下の情報と制限を確認してください。

  • Canvas にモデルをインポート可能なサポートされているアルゴリズムは次のとおりです。詳細については、「 JumpStart ドキュメント」を参照してください。

    • 表形式分類: Light GBM、 CatBoost、XGBoost、 AutoGluon-Tabular、 TabTransformer、Linear Learner

    • 表形式の回帰: Light GBM、 CatBoost、XGBoost、 AutoGluon-Tabular、 TabTransformer、Linear Learner

  • では JumpStart、モデルが Canvas と共有できる場合にのみ、共有ボタンがオンになります。トレーニング済みモデルに SageMaker キャンバスへの共有ボタンがない場合、モデルは ではサポートされていませんBYOM。

  • JumpStart モデルをトレーニングするときは、トレーニングデータセットと検証データセットを提供する必要があります。データセットは Amazon S3 に保存する必要があり、Studio Classic および Canvas ユーザーの実行ロールは Amazon S3 の場所にアクセスできる必要があります。同じ Amazon S3 を使用してトレーニングデータセットと検証データセットを Canvas URIsと共有することも、同じデータスキーマで異なるデータセットを共有することもできます。

    トレーニングまたは検証データファイルは、次の形式 (CSV形式) になります。最初の列をターゲットとしてファイルにインデックスを付与する必要があります。

    3 1 22 1 1 0 4 4 0 0 38 0 0 1 3 4 1 0 67 0 1 0 1 6 1 0 67 0 0 2 2 6 0 0 40 0 0 2 6 6 2 0 56 1 0 1 2 6
  • デフォルトでは、 JumpStart はモデルをトレーニングするときに、トレーニングデータセットと検証データセットの最初の列をターゲットとして使用します。データセットのターゲット列 (デフォルトでは最初の列) は Canvas と共有されます。

  • JumpStart モデルのトレーニング時に、トレーニングデータセットと検証データセットの列ヘッダーを指定する必要があります。デフォルトでは、 は列ヘッダーのないデータセット JumpStart のみを受け入れるため、モデルのトレーニング中に列ヘッダーをファイルとして追加する必要があります。URI 列ヘッダーファイルの Amazon S3 も Canvas と共有されます。列ヘッダーファイルは、次の例 (CSV形式) のようになります。最初の列がターゲットになります。

    Segmentation EverMarried Age Graduated WorkExperience SpendingScore FamilySize Var1
  • のトレーニングジョブは、Canvas と共有Completeする前に JumpStart である必要があります。

  • 分類問題 (または Canvas のカテゴリ予測) では、Canvas と共有する際に [モデル出力の設定] セクションに元のクラス名を指定する必要があります。クラス名の順序は、モデルで使用されているインデックスと一致する必要があります。マッピングリレーションファイルは、インデックス 0 (最初のインデックス) がクラス名 にマッピングされるCSV形式は次の例のようになりますA

    A B C D

    Canvas ユーザーが Canvas アプリケーションでモデルメトリクスを表示すると、各クラスのインデックス (0、1、2) のみが表示されます。ただし、1 つの予測の結果を表示すると、クラス名が表示されます。

Autopilot から独自のモデルを取り込む

モデルを Autopilot から Canvas に共有する場合、以下の情報を確認してください。

  • Ensembling 、、HPOまたは Auto モードを使用して AutoML ジョブから正常にトレーニングしたモデルのみを Canvas と共有できます (Auto モードの場合、Autopilot はトレーニングデータセットのサイズに基づいて Ensembling または HPO モードを選択します)。現在サポートされている Autopilot 問題タイプは、リグレッション、マルチクラス分類、および二項分類です。

  • 各 Autopilot ジョブで、任意のモデル ([最適モデル]またはその他の候補) を選択して、一度に 1 つずつ Canvas と共有できます。[モデルの共有] ボタンを選択し、モデルとメモを共有する Canvas ユーザーを指定するだけでモデルを共有できます。

  • AutoGluon- 推論に Data Wrangler トランスフォーマーを使用するタブラーモデルは Canvas と共有できません。これは、Data Wrangler 変換によってモデルに複数のコンテナが使用されるためです。

  • HPO SageMaker Neo と互換性のないモデルは、Canvas に正常に共有できません。互換性のあるモデルは、 XGBoost または MLPアルゴリズムを使用する Autopilot モデルです。互換性のないモデルには、線形学習アルゴリズムを使用する Autopilot モデルが含まれます。

モデルレジストリから独自のモデルを取り込む

モデルをモデルレジストリから Canvas に共有する場合、以下の情報を確認してください。

  • が提供する共有ボタンとは異なり JumpStart、Model Registry はモデル検証を提供しないため、Studio Classic から正常に共有された登録済みモデルが、モデルの非互換性のために Canvas にインポート中に失敗する可能性があります。モデルレジストリから Canvas に共有する前に、以下のヒントを確認してください。

    • モデルには単一の推論コンテナを使用します。AdditionalInferenceSpecifications フィールド内の複数のコンテナでモデルを登録できますが、Canvas はモデルごとに 1 つの推論コンテナに対してのみ最適化されます。例えば、推論パイプラインを使用し、AdditionalInferenceSpecifications フィールド内の複数のコンテナを複数のデータ前処理コンテナと推論コンテナに登録すると、デフォルトでは最初のコンテナが Canvas のモデル推論用に選択されます。機械学習パイプラインを使用している場合は、これがユースケースに合っているかどうかを評価してください。

    • 互換性のある推論形式を備えた SageMaker 組み込みの表形式アルゴリズムを使用します。互換性のある推論出力を持つテスト済みサンプルアルゴリズムは、Autogluon-Tabular、 CatBoost、Light GBM、 TabTransformer および ですXGBoost。Factorization Machines などのアルゴリズムはファイル入力CSVとして受け付けず、Linear Learner や K-NN などのアルゴリズムの推論出力形式は Canvas ではサポートされていません。

    • また、独自のイメージコンテナを持ち込んで Canvas と共有したり、構築済みの SageMaker コンテナを変更したりすることもできます。

  • モデルをモデルパッケージグループに登録する際は、推論コンテナに必ず次の属性を指定してください。

    • 環境

      "{\"SAGEMAKER_CONTAINER_LOG_LEVEL\": \"20\", \"SAGEMAKER_PROGRAM\": \"inference.py\", \"SAGEMAKER_REGION\": \"us-west-2\", \"SAGEMAKER_SUBMIT_DIRECTORY\": \"/opt/ml/model/code\"}"
    • 画像

      "s3://sagemaker-us-west-2-<account-id>/model-regression-abalone-2022-10-14-23-02-45/model.tar.gz"
    • ModelDataUrl

      "<account-id>.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1"
  • モデルレジストリから Canvas にモデルを共有する場合は、トレーニングデータセットと検証データセットが必要です。データセットは Amazon S3 に保存する必要があり、Studio Classic および Canvas ユーザーの実行ロールは Amazon S3 の場所にアクセスできる必要があります。同じ Amazon S3 を使用してトレーニングデータセットと検証データセットを Canvas URIsと共有することも、同じデータスキーマで異なるデータセットを共有することもできます。データセットは、モデルの推論コンテナの入力形式とまったく同じである必要があります。

  • Canvas でターゲット列を指定する必要があります。指定しない場合は、トレーニング/検証データセットの最初の列がデフォルトで使用されます。

  • Canvas と共有する際、[モデルの詳細を追加] セクションで、トレーニングデータセットと検証データセットの最初の行をヘッダーとして指定することも、ヘッダーを別のファイルとして指定することもできます。

  • 分類の問題 (または Canvas でのカテゴリ予測) では、モデル出力の設定オプションを使用して SageMaker Canvas と共有するときに、元のクラス名を指定する必要があります。クラス名の順序は、共有モデルで使用されているインデックスと一致する必要があります。マッピングは、Amazon S3 内のCSVファイルでも、クラス名を手動で入力することもできます。