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

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

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

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

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

Canvas のベースアクセス許可または R eady-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 コンソールのナビゲーションペインで [Roles] (ロール) を選択します。コンソールには、アカウントにあるロールが表示されます。

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

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

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

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

また、IAM CLI を使用してこのポリシードキュメントを更新することも可能です。詳細については、「IAM Command Line Reference」の「update-trust」を参照してください。

Canvas の基本アクセス許可または R eady-to-use モデルアクセス許可をユーザーに付与することを再試行できるようになりました。

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

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

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

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

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

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

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

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

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

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

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

これで、ユーザーは信頼されたサービス () を 1 つだけ持つ実行ロールを使用しているはずですSageMaker。

Canvas の基本アクセス許可または R eady-to-use モデルアクセス許可をユーザーに付与することを再試行できます。

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

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

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

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

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

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

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

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

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

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

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

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

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

IAM コンソールを使用して AWS マネージドポリシーをユーザーのロールにアタッチすると、ユーザーに Canvas の基本アクセス許可または R eady-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 でのスペースの設定の詳細については、「」を参照してくださいCanvas SageMaker アプリケーションデータを自分の 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 は単項演算、集計関数、文字列連結演算、および 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 ドキュメント」を参照してください。

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

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

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

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

    トレーニングデータファイルまたは検証データファイルは次のようになります (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 のみを受け入れるため、モデルのトレーニング中に列ヘッダーをファイルとして追加する必要があります。列ヘッダーファイルの Amazon S3 URI は、Canvas にも共有されます。列ヘッダーファイルは次の例のようになります (CSV 形式)。最初の列がターゲットになります。

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

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

    A B C D

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

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

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

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

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

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

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

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

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

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

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

    • 互換性のある推論形式で SageMaker 組み込みの表形式アルゴリズムを使用します。互換性のある推論出力を持つテスト済みサンプルアルゴリズムは、Autogluon-Tabular、 CatBoost、LightGBM、 TabTransformer XGBoost です。因数分解マシンなどのアルゴリズムは CSV をファイル入力として受け付けず、線形学習や 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 URI を使用してトレーニングデータセットと検証データセットを Canvas と共有することも、同じデータスキーマで異なるデータセットを共有することもできます。データセットは、モデルの推論コンテナの入力形式とまったく同じである必要があります。

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

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

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