本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立模型裝置
重要
允許 Amazon SageMaker Studio 或 Amazon 工作室經典版建立 Amazon SageMaker SageMaker 資源的自訂IAM政策還必須授予許可,才能將標籤新增到這些資源。需要向資源添加標籤的權限,因為 Studio 和 Studio 經典版會自動標記它們創建的任何資源。如果IAM原則允許 Studio 和 Studio 典型版建立資源,但不允許標記,則在嘗試建立資源時可能會發生 AccessDenied "" 錯誤。如需詳細資訊,請參閱提供標記資 SageMaker源的權限。
AWS Amazon 的受管政策 SageMaker授予建立 SageMaker 資源的權限,已包含在建立這些資源時新增標籤的權限。
您可以使用 SageMaker 控制台或 SageMaker Python 創建 Amazon SageMaker 模型卡SDK。您也可以直接使用這些API操作。若要取得有關API作業的更多資訊,請參閱通過低級使用模型卡 APIs。
使用 SageMaker 主控台建立模型卡
轉到 Amazon 控 SageMaker 制台。在瀏覽窗格的 控管 下,請選擇 模型卡。選擇右上角的 建立模型卡。
遵循建立模型卡提示中的四個步驟,記錄有關您模型的詳細資訊。
步驟 1:輸入模型詳細資訊和預定用途
如果您的模型是 AWS 資源,請在此欄位中指定確切的模型名稱以自動填入模型詳細資訊。若要瀏覽現有型號名稱,請參閱 Amazon SageMaker 主控台中的模型。每個唯一的模型名稱只能有一個關聯的模型卡。
如果您的模型不是 AWS 資源,請為您的模型提供唯一的名稱。若要將模型新增為 AWS 資源,請參閱 Amazon SageMaker 開發人員指南中的建立模型。或者,您可以使用 SageMakerMarketplace 或模型登錄將模型新增為SageMaker 模型套件。
如需預期用途的更多資訊,請參閱模型的預期用途。如需風險評等的更多資訊,請參閱風險評等。
步驟 2:輸入訓練詳細資訊
將任何訓練詳細資訊、訓練觀察、資料集、超參數,以及有關模型目標函式的詳細資訊新增至模型卡。
模型卡中的目標函式可以是訓練期間最佳化的任何特徵。這可以包括但不限於成本函式、損失函式或目標指標。在本節中,記錄對訓練您的模型而言最重要的目標函式。
我們建議您將您目標函式的以下屬性編入目錄:
-
最佳化方向
-
指標
-
描述
例如,您可以將二進位分類問題 (描述) 的交叉熵損失 (指標) 最小化 (最佳化方向),或將邏輯迴歸的可能性最大化。此外,您可以提供有關為什麼選擇此目標函式而不是其他特徵的附註。
步驟 3:輸入評估詳細資訊
如果您現有的評估報告由 SageMaker 澄清或模型監視器產生,請URI為這些報告提供 S3,或手動上傳它們以將其新增至模型卡。
如需有關 SageMaker 澄清的詳細資訊,請參閱執行 SageMaker 澄清處理工作以進行偏差分析和解釋。
如需有關使用模型監控監視模型品質指標中偏離的更多資訊,請參閱監視模型品質。
若要新增您自己的評估報告,請選擇一般模型卡評估。所有模型卡評估報告都必須在模型卡JSON架構。
步驟 4:輸入其他詳細資訊
新增自訂模型卡詳細資訊欄位欄位,以取得您要在模型卡上解釋的任何其他資訊。例如,您可能會包含具有個人理財值的企業營運自訂欄位。
儲存模型卡
檢視模型卡中的資訊後,請選擇右下角的儲存,以儲存您的模型卡。
使用 SageMaker Python 創建一個模型卡 SDK
在建立模型卡之前,您必須先定義您模型卡的內容。使用 SageMaker Python 時SDK,模型內容包含模型概述、訓練詳細資料、預期用途、評估詳細資料和其他資訊。
您可以為下列項目建立模型卡:
-
以中為主體的模型 SageMaker
-
模型登錄中的模型套件 ( SageMaker 模型)
-
在以外託管或註冊的模型 SageMaker
您也可以建立模型卡,而不將任何模型與其關聯。
我們建議將您訓練過的模型新增至 SageMaker 模型登錄。模型註冊表可協助您將模型編入目錄並追蹤模型版本。建立模型卡時,模型註冊表中有關模型的資訊會自動填入模型卡。建立模型卡後,您可以編輯模型卡或新增資訊。
如需使用模型註冊表的更多資訊,請參閱使用模型註冊表註冊和部署模型。如需有關從模型註冊表建立模型卡的資訊,請參閱在模型登錄中為模型建立 SageMaker 模型卡。
注意
要使用模型卡與 SageMaker PythonSDK,你首先需要建立一個 SageMaker 會話。如需詳細資訊,請參閱 SageMaker Python SDK API 參考資料中的工作階段
若要為不在模型登錄中的模型建立 SageMaker 模型卡,請參閱建立一個不在模型註冊表中的模型。
建立一個不在模型註冊表中的模型
使用以下各節中的資訊,為尚未新增至模型註冊表的模型建立模型卡。
步驟 1:定義模型概述
定義您模型的概觀。
model_overview = ModelOverview.from_model_name( model_name=
model_name
, sagemaker_session=sagemaker_session
, model_description="A-description-of-your-model"
, problem_type="Problem-type"
, # For example, "Binary Classification" algorithm_type="Algorithm-type"
, # For example, "Logistic Regression" model_creator="Name-of-model-creator"
, model_owner="Name-of-model-owner"
, )
如果您的模型是 AWS 資源,則會自動擷取概觀資訊ARN,例如模型URI、推論容器和模型加工品的 S3 位置。使用下列指令列印關聯的 AWS 中繼資料:
print(model_overview.model_id) print(model_overview.inference_environment.container_image) print(model_overview.model_artifact)
步驟 2:定義訓練詳細資訊
若要定義您的模型訓練詳細資訊,您必須先定義其目標函式。
objective_function = ObjectiveFunction( function=Function( function=ObjectiveFunctionEnum.MINIMIZE, facet=FacetEnum.LOSS, ), notes=
"An-explanation-about-objective-function"
, )
接下來,您可以使用現有的模型概觀、作業階段和目標函式來定義訓練詳細資訊。在此處新增任何的訓練觀察。
training_details = TrainingDetails.from_model_overview( model_overview=model_overview, sagemaker_session=sagemaker_session, objective_function=objective_function, training_observations="
Model-training-observations
", )
再一次,如果您的模型是 AWS 資源,則會自動填入某些訓練詳細資料。使用下列命令列印訓練工作ARNURI、訓練容器和訓練指標:
print(training_details.training_job_details.training_arn) print(training_details.training_job_details.training_environment.container_image) print([{"name": i.name, "value": i.value} for i in training_details.training_job_details.training_metrics])
定義評估詳細資訊
若要定義您模型評估的詳細資訊,您必須先定義一或多個指標群組,以說明用於任何評估任務的指標。
my_metric_group = MetricGroup( name=
"binary classification metrics"
, metric_data=[Metric(name="accuracy"
, type=MetricTypeEnum.NUMBER
, value=0.5
)] )
接下來,您可以使用評估指標和每個評估任務的資料集來定義評估詳細資訊。在此處新增任何評估觀察值,並為您的評估任務提供唯一名稱。
evaluation_details = [ EvaluationJob( name="
Example-evaluation-job
", evaluation_observation="Evaluation-observations"
, datasets=["s3://path/to/evaluation/data
"], metric_groups=[my_metric_group
], ) ]
如果您有由SageMaker澄清或SageMaker 模型監控產生的現有評估報告,請將它們上傳到 Amazon S3,並提供 S3 URI 以自動剖析評估指標。若要新增您自己的一般模型卡評估報告,請以評估結果JSON格式提供報表。
report_type =
"clarify_bias.json"
example_evaluation_job.add_metric_group_from_json( f"example_metrics/{report_type}", EvaluationMetricTypeEnum.CLARIFY_BIAS )
步驟 3:定義預期用途
定義模型的預定用途,包括模型的一般用途以及模型預定的使用案例。還建議您在特定使用案例中加入任何可能具有此模型有效性的因素,以及您組織對模型的風險評等。如需更多資訊,請參閱模型的預期用途和風險評等。
intended_uses = IntendedUses( purpose_of_model=
"Purpose-of-the-model"
, intended_uses="The-intended-uses-of-this-model"
, factors_affecting_model_efficiency="Any-factors-effecting-model-efficacy"
, risk_rating=RiskRatingEnum.LOW
, explanations_for_risk_rating="Explanation-for-low-risk-rating"
, )
定義其他資訊
最後,您可以在模型卡中新增其他自訂資訊。您可以記錄與模型有關的任何倫理考量、注意事項和建議。您還可以用鍵值對形式新增您想要的任何自訂詳細資訊。
additional_information = AdditionalInformation( ethical_considerations=
"Any-ethical-considerations"
, caveats_and_recommendations="Any-caveats-and-recommendations"
, custom_details={"custom details1"
:"details-value"
}, )
步驟 4:建立模型卡
為模型卡命名,定義模型卡,然後使用該定義使用 SageMaker Python 創建模型卡SDK。
model_card_name =
"my-model-card"
my_card
= ModelCard( name=model_card_name, status=ModelCardStatusEnum.DRAFT, model_overview=model_overview, training_details=training_details, intended_uses=intended_uses, evaluation_details=evaluation_details, additional_information=additional_information, sagemaker_session=sagemaker_session, )my_card
.create()
在模型登錄中為模型建立 SageMaker 模型卡
在開始建立模型卡之前,請確定您已建立模型套件群組和模型套件。如需使用模型註冊表的更多相關資訊,請參閱使用模型註冊表註冊和部署模型。
重要
您必須具有使用 SageMaker 模型登錄中作業的權限。我們建議使用AmazonSageMakerModelRegistryFullAccess
AWS 受管政策。如需受管政策的更多相關資訊,請參閱AWS 模型登錄的受管理原則。
使用 SageMaker Python SDK 為模型登錄內的模型套件建立 SageMaker 模型卡。模型套件是您訓練過的模型。當您建立模型卡時,Amazon SageMaker 模型卡會自動將模型套件中的資料匯入模型卡。
當您為模型套件建立模型卡時,Amazon SageMaker Model Card 會使用此DescribeModelPackage操作將模型套件中的資料新增至模型卡。以下是可以從模型套件匯入至模型卡的欄位範例:
使用以下代碼來定義模型套件,並從中建立模型卡:
mp_details = ModelPackage.from_model_package_arn( model_package_arn="
example_model_package_arn
", sagemaker_session=sagemaker_session
, ) model_card_name = "example-model-card" my_card = ModelCard( name=model_card_name, status=ModelCardStatusEnum.status
, model_package_details=mp_details, sagemaker_session=sagemaker_session
, ) my_card.create()
對於
,您指定的是模型卡的核准狀態。如果未指定狀態,「 SageMaker 模型卡」會使用預設值status
DRAFT
。如果您未指定 SageMaker 工作階段,「 SageMaker 模型卡」會使用預設 SageMaker 工作階段。
您必須指定模型的名稱和模型套件的 Amazon 資源名稱 (ARN)。如需取得模型套件之 Amazon 資源名稱 (ARN) 的相關資訊,請參閱檢視並更新模型版本 (Boto3) 的詳細資訊。
您從模型套件建立的模型卡可能包含遺失或不正確的資訊。您可以將資訊新增至模型卡或編輯。如需有關管理您模型卡的更多相關資訊,請參閱管理模型卡。
SageMaker 模型登錄支援模型套件的版本控制。您可以版本化模型套件,並為每個版本建立一個模型卡。以前版本的模型卡中的資訊會轉移到以後續版本建立的模型卡。例如,您可以擁有模型套件的版本 1、版本 2 和版本 3。假設您已經為版本 1 建立了模型卡,但尚未為版本 2 建立模型卡。如果您為第 3 版建立模型卡,Amazon SageMaker 模型卡會自動將第 1 版的型號卡中的資訊轉移到第 3 版的型號卡。
注意
您也可以為不使用版本控制的模型套件建立模型卡。但是,大多數機器學習的工作流程都涉及相同模型的多個版本,因此我們建議您進行以下操作:
-
為每個模型套件建立一個版本
-
為模型套件的每個版本建立模型卡