本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
限制與故障診斷
下節概述使用 Amazon SageMaker Canvas 時適用的疑難排解說明和限制。您可以使用這些主題來協助您進行任何問題的故障診斷。
對透過 SageMaker 主控台授予許可的問題進行疑難排解
如果您在授予 Canvas 基礎許可或 Ready-to-use模型許可給使用者時遇到問題,您的使用者可能具有與 AWS IAM AWS 其他服務具有多個信任關係的執行角色。信任關係是連接至您角色的政策,可定義哪些主體者 (使用者、角色、帳戶或服務) 可以擔任該角色。例如,如果使用者執行角色與 Amazon SageMaker 和 Amazon Forecast 都具有信任關係,則您可能會遇到將其他 Canvas 許可授予使用者的問題。
若要修正此問題,請選擇下列其中一個選項。
1. 從角色中移除所有信任服務,僅留下一個。
此解決方案會要求您編輯使用者設定檔IAM角色的信任關係,並移除除 以外的所有 AWS 服務 SageMaker。
若要編輯IAM執行角色的信任關係,請執行下列動作:
前往 IAM 主控台https://console.aws.amazon.com/iam/
。 在IAM主控台的導覽窗格中,選擇角色 。主控台會顯示您帳戶的角色。
選擇您要修改之角色的名稱,然後在詳細資訊頁面上,選取信任關係標籤。
選擇編輯信任政策。
-
在編輯信任政策編輯器,貼上以下內容,然後選擇更新政策。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
您也可以使用 IAM 更新此政策文件CLI。如需詳細資訊,請參閱 IAM命令列參考 中的更新信任。
您現在可以重試將 Canvas 基礎許可或 Ready-to-use模型許可授予您的使用者。
2. 在一個或更少的可信服務上使用不同的角色。
此解決方案需要您為使用者設定檔指定不同的IAM角色。如果您已經有可以取代IAM的角色,請使用此選項。
若要為使用者指定其他執行角色,請執行以下動作:
在 開啟 Amazon SageMaker 主控台https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇管理員組態。
-
在管理員組態 下,選擇網域 。
從網域清單中,選取要檢視使用者設定檔清單的網域。
在網域詳細資訊頁面上,選擇使用者設定檔索引標籤。
選擇您想要編輯其許可的使用者。在使用者詳細資訊頁面,選擇編輯。
在一般設定頁面上,選擇執行角色下拉式清單,然後選取要使用的角色。
選擇提交,將變更儲存至使用者設定檔。
您的使用者現在應該僅使用一個受信任服務 () 的執行角色SageMaker。
您可以重試將 Canvas 基礎許可或 Ready-to-use模型許可授予您的使用者。
3. 手動將 AWS 受管政策連接至執行角色,而不是使用 SageMaker 網域設定中的切換。
您可以手動連接授予使用者正確許可的 AWS 受管政策,而不是使用網域或使用者設定檔設定中的切換。
若要授予使用者 Canvas 基本許可,請連接AmazonSageMakerCanvasFullAccess政策。若要授予使用者 Ready-to-use模型許可,請連接AmazonSageMakerCanvasAIServicesAccess政策。
使用下列程序將 AWS 受管政策連接至您的角色:
前往 IAM 主控台https://console.aws.amazon.com/iam/
。 選擇角色。
在搜尋方塊中,依名稱搜尋使用者的角色,然後選取該IAM角色。
在使用者角色頁面的許可下,選擇新增許可。
在下拉式清單中,選擇連接政策。
-
搜尋並選取要連接至使用者執行角色的一個或多個政策:
若要授予 Canvas 基礎許可,請搜尋並選取AmazonSageMakerCanvasFullAccess政策。
若要授予 Ready-to-use模型許可,請搜尋並選取AmazonSageMakerCanvasAIServicesAccess政策。
選擇新增許可以將政策連接到角色。
透過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空間。
若要判斷空間建立失敗原因的根本原因,您可以使用 DescribeSpaceAPI檢查 FailureReason
欄位。如需空間可能狀態及其意義的詳細資訊,請參閱 Amazon SageMaker 網域實體和狀態。
若要解決此問題,請在 SageMaker 主控台中找到您的網域,並刪除您收到的錯誤訊息中列出的失敗空間。如需如何尋找和刪除空間的詳細步驟,請參閱 頁面刪除或停止執行執行個體、應用程式和空間的 Studio並遵循刪除 Studio 空間的指示。刪除空間也會刪除與空間相關聯的任何應用程式。刪除空間後,您可以嘗試再次建立 Canvas 應用程式。空間現在應已成功佈建,允許 Canvas 啟動。
協作的限制
當您在 Amazon SageMaker Studio Classic 中與資料科學家協作時,適用下列一般限制。
-
您只能將成功訓練的模型從 Canvas 共用到 Studio Classic。同樣地,您只能將已在 Studio Classic 中成功訓練的模型分享給 Canvas。
-
您無法將快速建置模型從 Canvas 共用至 Studio Classic。您只能共用標準建置模型。
-
您只能共用一個以 Canvas 訓練的標準建置模型版本。您可以在 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 筆記本並編寫自己的代碼。
-
對於時間序列預測模型,您無法在 Studio Classic 中變更模型配方或資料轉換。您只能對 Studio Classic 中的時間序列預測模型進行下列更新:
-
您可以更新預測總時程的長度。
-
您可以更新項目的中繼資料欄位,該欄位會依特定欄分組資料。
-
您可以更新其他維度欄位,例如指定假日排程。
-
在數值和分類預測模型上協同合作的限制
當您在 Canvas 和 Studio Classic 之間協作數值和類別預測模型類型時,適用下列限制。
-
在 Studio Classic 中更新或訓練模型時,如果您使用頂端的協作橫幅關閉索引標籤,則會結束共用模型工作流程,並失去進度。在這種情況下,您必須從已分享模型頁面的與我分享區段重新啟動共用模型工作流程。如需更多資訊,請參閱與資料科學家協作。
-
在 Studio Classic 中更新模型時,如果您想要將模型更新共用回 Canvas,則無法變更目標欄。如果要更改目標欄並重新訓練模型,請訓練模型,然後使用共用按鈕,共用到 Canvas。如需與 Canvas 共用新模型的詳細資訊,請參閱將您自己的模型帶到 SageMaker Canvas 。
-
在 Studio Classic 中更新 Amazon SageMaker Data Wrangler Recipe 介面中的模型時,會限制 Studio Classic 使用者可以套用 Canvas 支援的變更:
-
您只能將已從 Data Wrangler 線性資料流量中的最後一個節點訓練過的模型共用到 Canvas。
-
僅支援轉換節點。
-
您無法在目標資料欄上執行作業。
-
您無法更新資料欄的資料類型。
-
您無法更新資料來源或新建資料來源。
-
-
從 Studio Classic Autopilot 頁面將替代候選項目分享給 Canvas 時,您無法從排行榜中選取模型。您必須從橫幅中選擇共用模型,然後從清單中選取替代模型。如需更多資訊,請參閱 Canvas 文件中的與 Canvas 使用者共用替代模型。
-
只有與 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。如需如何使用自有容器的更多資訊,請參閱調整自己的推論容器。
也適用無伺服器端點的功能排除。
-
為了成功將模型從 Studio Classic 共用到 Canvas,Canvas 接受以下格式的模型推論輸出:
TEXT/CSV
迴歸:模型推論回應應為位元組字串,其中每個輸出預測都以
\n
分隔:b'-0.0007884334772825241\n-0.015136942267417908\n0.050063662230968475\n0.02891816757619381\n'
分類:模型推論回應應為位元組字串,其中每個
predicted_label
、predicted_probability
、probabilities
和labels
以\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、線性學習器
表格式迴歸:LightGBM、 CatBoost、XGBoost、 AutoGluon-Tabular TabTransformer、線性學習器
在 中 JumpStart,只有在模型已準備好與 Canvas 共用時,共用按鈕才會開啟。如果您訓練過的模型沒有共用到 SageMaker Canvas 按鈕,則您的模型不支援 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
中的訓練任務 JumpStart 必須在您可以與 Canvas 共用
Complete
之前。針對分類問題 (或 Canvas 中的分類預測),在共用到 Canvas 時,需要在 Configure model output (設定模型輸出)區段分中提供原始類別名稱。類別名稱的順序必須與模型中使用的索引相符。您的映射關係檔案CSV格式應如下所示,其中索引 0 (第一個索引) 會映射至類別名稱
A
:A B C D
當 Canvas 使用者在 Canvas 應用程式中檢視模型指標量時,只能看到每個類別的索引 (0、1、2)。不過,使用者可以在檢視單一預測的結果時看到類別名稱。
從 Autopilot 攜帶自有模型
從 Autopilot 將模型共用至 Canvas 時,請檢閱下列資訊和限制。
您只能與 Canvas 共用您已成功從具有內嵌 、 HPO或自動模式的 AutoML 任務中訓練的模型 (對於自動模式,Autopilot 會根據訓練資料集大小選擇內嵌或HPO模式)。目前支援的 Autopilot 問題類型為迴歸、多類別分類、二進制分類。
針對每個 Autopilot 工作,您可以一次可以選擇一個模型 (最佳模型或任何其他候選項) 分享到 Canvas。您只需要選擇共用模型按鈕,然後指定要與其共用模型的 Canvas 使用者與備註即可。
AutoGluon- 使用 Data Wrangler 轉換器進行推論的表格式模型無法與 Canvas 共用。這是因為 Data Wrangler 轉換器導致模型使用多個容器。
HPO 與 SageMaker Neo 不相容的模型無法成功與 Canvas 共用。相容模型是使用 XGBoost或 MLP演算法的 Autopilot 模型。不相容的模型包括使用線性學習程式演算法的 Autopilot 模型。
從 Model Registry 中攜帶自己的模型
從 Model Registry 將模型共用至 Canvas 時,請檢閱下列資訊和限制。
-
與 提供的共用按鈕不同 JumpStart,模型登錄檔不提供模型驗證,因此從 Studio Classic 成功共用的已註冊模型可能會因模型不相容而在匯入 Canvas 時失敗。從 Model Registry: 共用至 Canvas 之前,請先檢閱下列提示:
為您的模型使用單一推論容器。您可以在 AdditionalInferenceSpecifications 欄位中使用多個容器註冊模型,但 Canvas 只會針對每個模型的一個推論容器進行最佳化。例如,當您使用推論管道並在具有多個資料預處理容器和推論容器的
AdditionalInferenceSpecifications
欄位中註冊多個容器時,預設情況下會選取第一個容器來進行 Canvas 中的模型推論。如果您使用的是機器學習管道,請評估這是否適用於您的使用案例。使用具有相容推論格式的 SageMaker 內建表格式演算法。使用相容推論輸出的測試範例演算法為 Autogluon-Tabular、 CatBoost、Light GBM TabTransformer 和 XGBoost。Factorization Machines 等演算法不接受CSV作為檔案輸入,且 Canvas 不支援 Linear Learner 和 K-NN 等演算法的推論輸出格式。
-
您也可以將自己的映像容器帶到 Canvas 並共用,或修改預先建置的 SageMaker 容器。
如果您要攜帶自己的容器,則必須修改它才能使用 SageMaker。如需如何使用自有容器的更多資訊,請參閱調整自己的推論容器。
如需推論輸出格式的詳細格式,請參閱 自攜模型的限制 (BYOM)。
-
在模型套件群組中註冊模型時,請記得提供推論容器下列屬性:
-
環境:
"{\"SAGEMAKER_CONTAINER_LOG_LEVEL\": \"20\", \"SAGEMAKER_PROGRAM\": \"inference.py\", \"SAGEMAKER_REGION\": \"us-west-2\", \"SAGEMAKER_SUBMIT_DIRECTORY\": \"/opt/ml/model/code\"}"
-
Image (影像):
"s3://sagemaker-us-west-2-
<account-id>
/model-regression-abalone-2022-10-14-23-02-45/model.tar.gz" -
"
<account-id>
.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1"
-
-
將模型從 Model Registry 共用至 Canvas 時,您必須提供訓練和驗證資料集。資料集應存放在 Amazon S3 中,且 Studio Classic 和 Canvas 使用者的執行角色必須能夠存取 Amazon S3 位置。您可以使用相同的 Amazon S3 與 Canvas URIs共用訓練和驗證資料集,也可以使用相同的資料結構描述共用不同的資料集。資料集必須的輸入格式必須與模型的推論容器所用完全相同。
您必須將目標欄提供給 Canvas,否則預設會使用訓練/驗證資料集的首欄。
在共用至 Canvas 時的新增模型詳細資訊區段中,您可以提供訓練和驗證資料集的首列為標題,也可以指定不同的檔案為標題。
對於分類問題 (或 Canvas 中的類別預測),在透過設定模型輸出選項與 SageMaker Canvas 共用時,需要提供原始類別名稱。類別名稱的順序必須與共用的模型中使用的索引相符。映射可以是 Amazon S3 中的CSV檔案,也可以手動輸入類別名稱。