本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
執行自訂負載測試
Amazon SageMaker Inference Recommender 負載測試會根據延遲和輸送量、自訂流量模式,以及您選擇的無伺服器端點或即時執行個體 (最多 10 個) 的生產需求,執行廣泛的基準測試。
下列各節示範如何使用 和 以程式設計方式建立、描述 AWS SDK for Python (Boto3) 和停止負載測試 AWS CLI,或使用 Amazon SageMaker Studio Classic 或 SageMaker 主控台以互動方式進行。
建立負載測試任務
使用 AWS SDK for Python (Boto3)、 和 以程式設計方式建立負載測試 AWS CLI,或使用 Studio Classic 或 SageMaker 主控台以互動方式建立負載測試。與推論建議一樣,指定負載測試的任務名稱、 AWS IAM角色 、ARN輸入組態,以及您在模型登錄檔註冊模型ARN時的模型套件。負載測試還會要求您指定流量模式和停止條件。
- AWS SDK for Python (Boto3)
-
使用
CreateInferenceRecommendationsJob
API建立推論建議程式載入測試。為JobType
欄位指定Advanced
並提供:-
負載測試的任務名稱 (
JobName
)。任務名稱在您的 AWS 區域和 AWS 帳戶中必須是唯一的。 -
讓推論建議程式代表您執行任務IAM的角色的 Amazon Resource Name (ARN)。為
RoleArn
欄位定義此項目。 -
端點組態字典 (
InputConfig
),方便您在其中指定以下項目:-
針對
TrafficPattern
,指定階段或樓梯流量模式。透過階段流量模式,新使用者每分鐘產生一次您指定的速率。在階梯流量模式下,新使用者會以您指定的速率按定時間隔 (或步驟) 產生。選擇下列其中一項:-
對於
TrafficType
,請指定PHASES
。接著,針對Phases
陣列,指定InitialNumberOfUsers
(開始使用多少個並行使用者,最少為 1 且最多為 3 )、SpawnRate
(在特定負載測試階段中,一分鐘內產生的使用者數目,最少為 0 且最多為 3),以及DurationInSeconds
(流量階段應為多長時間,最少為 120 且最多為 3600)。 -
對於
TrafficType
,請指定STAIRS
。然後,針對Stairs
陣列,指定DurationInSeconds
(流量階段應為多長時間,最少為 120 且最多為 3600)、NumberOfSteps
(階段期間使用的間隔數目) 和UsersPerStep
(每個間隔期間新增了多少使用者)。請注意,每個步驟的長度都是DurationInSeconds / NumberOfSteps
的值。例如,如果您的DurationInSeconds
是600
並指定5
步驟,則每個步驟長度為 120 秒。注意
使用者會定義為系統產生的實行者,在迴路中執行,並以 Inference Recommender 的一部分調用端點的請求。對於在
ml.c5.large
執行個體上執行的典型XGBoost容器,端點每分鐘可以達到 30,000 個叫用 (500 tps),只有 15-20 個使用者。
-
-
對於
ResourceLimit
,請指定MaxNumberOfTests
(Inference Recommender 任務的基準測試負載測試數目上限,最少為 1,最多為 10) 和MaxParallelOfTests
(Inference Recommender 任務的平行基準測試負載測試數目上限,最少為 1,最多為 10)。 -
針對
EndpointConfigurations
,您可以指定下列其中一項:-
InstanceType
欄位方便您在其中指定要執行負載測試的執行個體類型。 -
您可以在
ServerlessConfig
中為無伺服器端點指定MaxConcurrency
和MemorySizeInMB
的理想值。如需詳細資訊,請參閱無伺服器推論文件。
-
-
-
停止條件字典 (
StoppingConditions
),如果符合任何條件,Inference Recommender 任務就會停止。對於此範例,請在字典中指定下列欄位:-
針對
MaxInvocations
,指定端點每分鐘預期的請求數目上限,最少為 1 且最多為 30,000。 -
針對
ModelLatencyThresholds
,指定Percentile
(模型延遲百分位數閾值) 和ValueInMilliseconds
(模型延遲百分位數值 (以毫秒為單位))。 -
(選用) 對於
FlatInvocations
,您可以指定當 TPS(每分鐘叫用次數) 速率趨於平穩時是否要繼續載入測試。固定TPS速率通常表示端點已達到容量。不過,您可能需要在完整容量條件下繼續監控端點。若要在發生這種情況時繼續負載測試,請將此值指定為Continue
。否則,預設值為Stop
。
-
# Create a low-level SageMaker service client. import boto3 aws_region=
<INSERT>
sagemaker_client=boto3.client('sagemaker', region=aws_region) # Provide a name to your recommendation based on load testing load_test_job_name="<INSERT>"
# Provide the name of the sagemaker instance type instance_type="<INSERT>"
# Provide the IAM Role that gives SageMaker permission to access AWS services role_arn='arn:aws:iam::<account>:role/*
' # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn='arn:aws:sagemaker:<region>:<account>:role/*
' sagemaker_client.create_inference_recommendations_job( JobName=load_test_job_name, JobType="Advanced", RoleArn=role_arn, InputConfig={ 'ModelPackageVersionArn': model_package_arn, "JobDurationInSeconds": 7200, 'TrafficPattern' : { # Replace PHASES with STAIRS to use the stairs traffic pattern 'TrafficType': 'PHASES', 'Phases': [ { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 }, { 'InitialNumberOfUsers': 1, 'SpawnRate': 1, 'DurationInSeconds': 120 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, 'ResourceLimit': { 'MaxNumberOfTests': 10, 'MaxParallelOfTests': 3 }, "EndpointConfigurations" : [{ 'InstanceType': 'ml.c5.xlarge' }, { 'InstanceType': 'ml.m5.xlarge' }, { 'InstanceType': 'ml.r5.xlarge' }] # Uncomment the ServerlessConfig and comment out the InstanceType field if you want recommendations for a serverless endpoint # "ServerlessConfig": { # "MaxConcurrency":value
, # "MemorySizeInMB":value
# } }, StoppingConditions={ 'MaxInvocations': 1000, 'ModelLatencyThresholds':[{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten 'FlatInvocations': 'Stop' } )如需可傳遞給 的選用和必要引數的完整清單,請參閱 Amazon SageMaker API 參考指南
CreateInferenceRecommendationsJob
。 -
- AWS CLI
-
使用
create-inference-recommendations-job
API建立推論建議程式載入測試。為JobType
欄位指定Advanced
並提供:-
負載測試的任務名稱 (
job-name
)。任務名稱在您的 AWS 區域和 AWS 帳戶中必須是唯一的。 -
讓推論建議程式代表您執行任務IAM的角色的 Amazon Resource Name (ARN)。為
role-arn
欄位定義此項目。 -
端點組態字典 (
input-config
),方便您在其中指定以下項目:-
針對
TrafficPattern
,指定階段或樓梯流量模式。透過階段流量模式,新使用者每分鐘產生一次您指定的速率。在階梯流量模式下,新使用者會以您指定的速率按定時間隔 (或步驟) 產生。選擇下列其中一項:-
對於
TrafficType
,請指定PHASES
。接著,針對Phases
陣列,指定InitialNumberOfUsers
(開始使用多少個並行使用者,最少為 1 且最多為 3 )、SpawnRate
(在特定負載測試階段中,一分鐘內產生的使用者數目,最少為 0 且最多為 3),以及DurationInSeconds
(流量階段應為多長時間,最少為 120 且最多為 3600)。 -
對於
TrafficType
,請指定STAIRS
。然後,針對Stairs
陣列,指定DurationInSeconds
(流量階段應為多長時間,最少為 120 且最多為 3600)、NumberOfSteps
(階段期間使用的間隔數目) 和UsersPerStep
(每個間隔期間新增了多少使用者)。請注意,每個步驟的長度都是DurationInSeconds / NumberOfSteps
的值。例如,如果您的DurationInSeconds
是600
並指定5
步驟,則每個步驟長度為 120 秒。注意
使用者會定義為系統產生的實行者,在迴路中執行,並以 Inference Recommender 的一部分調用端點的請求。對於在
ml.c5.large
執行個體上執行的典型XGBoost容器,端點每分鐘可以達到 30,000 個叫用 (500 tps),只有 15-20 個使用者。
-
-
對於
ResourceLimit
,請指定MaxNumberOfTests
(Inference Recommender 任務的基準測試負載測試數目上限,最少為 1,最多為 10) 和MaxParallelOfTests
(Inference Recommender 任務的平行基準測試負載測試數目上限,最少為 1,最多為 10)。 -
針對
EndpointConfigurations
,您可以指定下列其中一項:-
InstanceType
欄位方便您在其中指定要執行負載測試的執行個體類型。 -
您可以在
ServerlessConfig
中為無伺服器端點指定MaxConcurrency
和MemorySizeInMB
的理想值。
-
-
-
停止條件字典 (
stopping-conditions
),如果符合任何條件,Inference Recommender 任務就會停止。對於此範例,請在字典中指定下列欄位:-
針對
MaxInvocations
,指定端點每分鐘預期的請求數目上限,最少為 1 且最多為 30,000。 -
針對
ModelLatencyThresholds
,指定Percentile
(模型延遲百分位數閾值) 和ValueInMilliseconds
(模型延遲百分位數值 (以毫秒為單位))。 -
(選用) 對於
FlatInvocations
,您可以指定當 TPS(每分鐘叫用次數) 速率趨於平穩時是否要繼續載入測試。固定TPS速率通常表示端點已達到容量。不過,您可能需要在完整容量條件下繼續監控端點。若要在發生這種情況時繼續負載測試,請將此值指定為Continue
。否則,預設值為Stop
。
-
aws sagemaker create-inference-recommendations-job\ --region
<region>
\ --job-name<job-name>
\ --job-type ADVANCED\ --role-arn arn:aws:iam::<account>:role/*
\ --input-config \"{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region>:<account>:role/*
\", \"JobDurationInSeconds\": 7200, \"TrafficPattern\" : { # Replace PHASES with STAIRS to use the stairs traffic pattern \"TrafficType\": \"PHASES\", \"Phases\": [ { \"InitialNumberOfUsers\": 1, \"SpawnRate\": 60, \"DurationInSeconds\": 300 } ] # Uncomment this section and comment out the Phases object above to use the stairs traffic pattern # 'Stairs' : { # 'DurationInSeconds': 240, # 'NumberOfSteps': 2, # 'UsersPerStep': 2 # } }, \"ResourceLimit\": { \"MaxNumberOfTests\": 10, \"MaxParallelOfTests\": 3 }, \"EndpointConfigurations\" : [ { \"InstanceType\": \"ml.c5.xlarge\" }, { \"InstanceType\": \"ml.m5.xlarge\" }, { \"InstanceType\": \"ml.r5.xlarge\" } # Use the ServerlessConfig and leave out the InstanceType fields if you want recommendations for a serverless endpoint # \"ServerlessConfig\": { # \"MaxConcurrency\":value
, # \"MemorySizeInMB\":value
# } ] }\" --stopping-conditions \"{ \"MaxInvocations\": 1000, \"ModelLatencyThresholds\":[ { \"Percentile\": \"P95\", \"ValueInMilliseconds\": 100 } ], # Change 'Stop' to 'Continue' to let the load test continue if invocations flatten \"FlatInvocations\": \"Stop\" }\" -
- Amazon SageMaker Studio Classic
-
使用 Studio Classic 建立負載測試。
-
在 Studio Classic 應用程式中,選擇首頁圖示 ( )。
-
在 Studio Classic 的左側列中,選擇部署 。
-
從下拉式清單中選擇推論建議程式。
-
選擇建立推論建議程式任務。名為建立推論建議程式任務的新索引標籤會隨即開啟。
-
從下拉式清單模型群組欄位中選取模型群組的名稱。此清單包含您帳戶中已向模型登錄檔註冊的所有模型群組,包括 Studio Classic 外部註冊的模型。
-
從下拉式清單模型版本欄位中選取模型版本。
-
選擇繼續。
-
在名稱欄位中提供任務的名稱。
-
(選用) 在說明欄位中提供任務的描述。
-
選擇授予 Inference Recommender 存取 AWS 服務許可IAM的角色。您可以建立角色並連接
AmazonSageMakerFullAccess
IAM受管政策以完成此操作,也可以讓 Studio Classic 為您建立角色。 -
選擇停止條件以展開可用的輸入欄位。提供一組停止部署建議的條件。
-
在每分鐘調用數上限欄位中,指定端點每分鐘預期的請求數量上限。
-
在模型延遲閾值欄位中指定模型延遲閾值 (以微秒為單位)。模型延遲閾值描述了從 Inference Recommender 檢視的模型回應所花費的時間間隔。這個間隔包含傳送請求和從模型容器擷取回應的本機通訊時間,以及在容器中完成推論的時間。
-
-
選擇流量模式以展開可用的輸入欄位。
-
在初始使用者數目欄位中指定一個整數,以設定虛擬使用者的初始數量。
-
在產生率欄位中提供一個整數。產生率設定每秒建立的使用者數目。
-
在持續時間欄位中指定一個整數,以秒為單位設定階段的持續時間。
-
(選用) 新增其他流量模式。若要這麼做,請選擇新增。
-
-
選擇其他設定以顯示最長測試持續時間欄位。指定任務期間測試所需的時間上限 (以秒為單位)。在定義的持續時間之後,不會排定新任務。這有助於確保進行中的任務不會停止,而且您只能檢視已完成的任務。
-
選擇繼續。
-
選擇選取的執行個體。
-
在基準測試執行個體欄位中,選擇新增要測試的執行個體。為 Inference Recommender 選取最多 10 個執行個體,以用於負載測試。
-
選擇其他設定。
-
提供一個整數,此整數會設定任務可在測試數量上限欄位中進行的測試次數上限。請注意,每個端點組態都會產生新的負載測試。
-
為平行測試上限測試欄位提供一個整數。此設定定義可以平行執行的負載測試次數上限。
-
-
選擇提交。
負載測試最多需要 2 小時的時間。
警告
請勿關閉此索引標籤。如果您關閉此索引標籤,就會取消 Inference Recommender 負載測試任務。
-
- SageMaker console
-
透過 SageMaker 主控台執行下列動作來建立自訂負載測試:
-
前往 SageMaker 主控台https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇推論,然後選擇推論建議程式。
-
在推論建議程式任務頁面上,選擇建立任務。
-
針對步驟 1:模型組態,執行下列動作:
-
針對任務類型,選擇進階推薦程式任務。
-
如果您使用的是在模型登錄檔中註冊的 SageMaker模型,請開啟從模型登錄檔切換中選擇模型,然後執行下列動作:
-
在模型群組下拉式清單中 SageMaker,選擇模型登錄檔中模型群組。
-
對於模型版本下拉式清單,選擇您想要的模型版本。
-
-
如果您使用的是您在 中建立的模型 SageMaker,請關閉從模型登錄切換中選擇模型,然後執行下列動作:
-
在模型名稱欄位中,輸入 SageMaker 模型的名稱。
-
-
對於IAM角色 ,您可以選取具有建立執行個體建議任務所需許可的現有 AWS IAM角色。或者,如果您沒有現有角色,您可以選擇建立新角色以開啟角色建立快顯視窗,並將必要的許可 SageMaker 新增至您建立的新角色。
-
針對用於基準測試承載的 S3 儲存貯體,請輸入您範例承載存檔的 Amazon S3 路徑,其中應包含 Inference Recommender 用於在不同執行個體類型上對模型進行基準測試的範例承載檔案。
-
針對承載內容類型 ,輸入範例承載資料的MIME類型。
-
對於流量模式,請執行下列動作來設定負載測試的階段:
-
對於初始使用者數目,請指定您要開始使用的並行使用者數目 (最少為 1,最多為 3)。
-
對於產生率,請指定該階段在一分鐘內產生的使用者數目 (最少為 0 且最多為 3)。
-
對於持續時間 (秒),請指定流量階段應多低,以秒為單位 (最少為 120 且最多為 3600)。
-
-
(選用) 如果您關閉從模型登錄切換中選擇模型並指定 SageMaker 模型,則對於容器組態 ,請執行下列動作:
-
在網域下拉式清單中,選取模型的機器學習領域,例如電腦視覺、自然語言處理或機器學習。
-
針對架構下拉式清單,選取容器的架構,例如 TensorFlow 或 XGBoost。
-
針對架構版本,請輸入容器映像的架構版本。
-
在最近的模型名稱下拉式清單中,選取大部分與您自己的模型相符的預先訓練模型。
-
針對任務下拉式清單,選取模型完成的機器學習任務,例如影像分類或迴歸。
-
-
(選用) 對於使用 SageMaker Neo 的模型編譯,您可以為使用 SageMaker Neo 編譯的模型設定建議任務。針對資料輸入組態,請以類似
{'input':[1,1024,1024,3]}
的格式輸入模型的正確輸入資料形式。 -
選擇下一步。
-
-
針對步驟 2:執行個體和環境參數,請執行下列操作:
-
針對選取要進行基準測試的執行個體,請選取最多 8 個您要進行基準測試的執行個體類型。
-
(選用) 對於環境參數範圍,您可以指定有助於最佳化模型的環境參數。將參數指定為鍵和值對。
-
選擇 Next (下一步)。
-
-
針對步驟 3:任務參數,請執行下列動作:
-
(選用) 針對工作名稱欄位,輸入執行個體建議任務的名稱。當您建立任務時, 會將時間戳記 SageMaker 附加到此名稱的結尾。
-
(選用) 針對工作描述,輸入該任務的描述。
-
(選用) 針對加密金鑰下拉式清單,依名稱選擇 AWS KMS 金鑰,或輸入金鑰ARN來加密您的資料。
-
(選用) 針對測試次數上限,輸入建議任務期間要執行的測試數量。
-
(選用) 針對平行測試上限,輸入建議任務期間要執行的平行測試數量上限。
-
針對最長測試持續時間,請輸入您希望每個測試執行的秒數上限。
-
針對每分鐘調用數上限,請輸入端點在停止建議任務之前每分鐘可達到的請求數量上限。達到此限制後, 會 SageMaker 結束任務。
-
對於 P99 模型延遲閾值 (ms),輸入模型延遲百分位數 (以毫秒為單位)。
-
選擇 Next (下一步)。
-
-
針對步驟 4:檢閱任務,檢閱您的組態,然後選擇提交。
-
取得負載測試結果
使用 AWS SDK for Python (Boto3)、 AWS CLI Studio Classic 或 主控台完成負載測試後,您可以以程式設計方式收集所有負載測試的 SageMaker指標。
- AWS SDK for Python (Boto3)
-
使用
DescribeInferenceRecommendationsJob
收集指標API。為JobName
欄位指定負載測試的任務名稱:load_test_response = sagemaker_client.describe_inference_recommendations_job( JobName=load_test_job_name )
列印回應物件。
load_test_response['Status']
這會傳回類似下列範例的JSON回應。請注意,此範例顯示建議的即時推論執行個體類型 (如需顯示無伺服器推論建議的範例,請參閱此範例之後的範例)。
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100} ]}, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0} }前幾行提供負載測試任務本身的相關資訊。這包括任務名稱、角色 ARN、建立和刪除時間。
InferenceRecommendations
字典包含 Inference Recommender 推論建議的清單。EndpointConfiguration
巢狀字典包含執行個體類型 (InstanceType
) 建議,以及建議任務期間使用的端點和變體名稱 (部署的 AWS 機器學習模型)。您可以使用端點和變體名稱在 Amazon CloudWatch Events 中進行監控。如需更多資訊,請參閱 SageMaker 使用 Amazon 監控 Amazon 的指標 CloudWatch。EndpointConfiguration
巢狀字典也包含執行個體計數 (InitialInstanceCount
) 建議。這是您應在端點中佈建以符合StoppingConditions
中指定的MaxInvocations
執行個體數目。例如,如果InstanceType
是ml.m5.large
,而InitialInstanceCount
是2
,則您應該為端點佈建 2 個ml.m5.large
執行個體,以便它可以處理MaxInvocations
停止條件中TPS指定的 。Metrics
巢狀字典包含有關即時端點的預估每小時成本 (CostPerHour
),即時端點的預估每次推論成本 (CostPerInference
)、傳送至端點的InvokeEndpoint
請求數量上限,以及模型延遲 (ModelLatency
) 的資訊,這是模型回應 所花費的時間間隔 (以微秒為單位) SageMaker。模型延遲包含傳送請求和從模型容器擷取回應的本機通訊時間,以及在容器中完成推論的時間。下列範例顯示設定為傳回無伺服器推論建議之負載測試任務的
InferenceRecommendations
回應部分:"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "
value
", "InitialInstanceCount":value
, "InstanceType": "value
", "VariantName": "value
", "ServerlessConfig": { "MaxConcurrency":value
, "MemorySizeInMb":value
} }, "InvocationEndTime":value
, "InvocationStartTime":value
, "Metrics": { "CostPerHour":value
, "CostPerInference":value
, "CpuUtilization":value
, "MaxInvocations":value
, "MemoryUtilization":value
, "ModelLatency":value
, "ModelSetupTime":value
}, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value
" }, "RecommendationId": "value
" } ]您可以解讀無伺服器推論的建議,類似於即時推論的結果,但不包括
ServerlessConfig
,它會告訴您具有指定MaxConcurrency
和MemorySizeInMB
值的負載測試設定之指標。無伺服器建議也會測量指標ModelSetupTime
,以測量在無伺服器端點上啟動運算資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊,請參閱無伺服器推論文件。 - AWS CLI
-
使用
describe-inference-recommendations-job
收集指標API。為job-name
標記指定負載測試的任務名稱:aws sagemaker describe-inference-recommendations-job --job-name
<job-name>
這會傳回類似下列範例的回應。請注意,此範例顯示即時推論的建議執行個體類型 (如需顯示 Serverless Inference 建議的範例,請參閱後面的範例)。
{ 'JobName':
'job-name'
, 'JobDescription':'job-description'
, 'JobType': 'Advanced', 'JobArn': 'arn:aws:sagemaker:region
:account-id
:inference-recommendations-job/resource-id
', 'Status': 'COMPLETED', 'CreationTime': datetime.datetime(2021, 10, 26, 19, 38, 30, 957000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2021, 10, 26, 19, 46, 31, 399000, tzinfo=tzlocal()), 'InputConfig': { 'ModelPackageVersionArn': 'arn:aws:sagemaker:region
:account-id
:model-package/resource-id
', 'JobDurationInSeconds': 7200, 'TrafficPattern': { 'TrafficType': 'PHASES' }, 'ResourceLimit': { 'MaxNumberOfTests': 100, 'MaxParallelOfTests': 100 }, 'EndpointConfigurations': [{ 'InstanceType': 'ml.c5d.xlarge' }] }, 'StoppingConditions': { 'MaxInvocations': 1000, 'ModelLatencyThresholds': [{ 'Percentile': 'P95', 'ValueInMilliseconds': 100 }] }, 'InferenceRecommendations': [{ 'Metrics': { 'CostPerHour': 0.6899999976158142, 'CostPerInference': 1.0332434612791985e-05, 'MaximumInvocations': 1113, 'ModelLatency': 100000 }, 'EndpointConfiguration': { 'EndpointName':'endpoint-name'
, 'VariantName':'variant-name'
, 'InstanceType': 'ml.c5d.xlarge', 'InitialInstanceCount': 3 }, 'ModelConfiguration': { 'Compiled': False, 'EnvironmentParameters': [] } }], 'ResponseMetadata': { 'RequestId':'request-id'
, 'HTTPStatusCode': 200, 'HTTPHeaders': { 'x-amzn-requestid':'x-amzn-requestid'
, 'content-type':'content-type'
, 'content-length': '1199', 'date': 'Tue, 26 Oct 2021 19:57:42 GMT' }, 'RetryAttempts': 0 } }前幾行提供負載測試任務本身的相關資訊。這包括任務名稱、角色 ARN、建立和刪除時間。
InferenceRecommendations
字典包含 Inference Recommender 推論建議的清單。巢狀字典包含執行個體類型
EndpointConfiguration
(InstanceType
) 建議,以及建議任務期間使用的端點和變體名稱 (部署的 AWS 機器學習模型)。您可以使用端點和變體名稱在 Amazon CloudWatch Events 中進行監控。如需更多資訊,請參閱 SageMaker 使用 Amazon 監控 Amazon 的指標 CloudWatch。Metrics
巢狀字典包含有關即時端點的預估每小時成本 (CostPerHour
) 以美元為單位的資訊、即時端點的預估每次推論成本 (CostPerInference
)、傳送至端點的InvokeEndpoint
請求數量上限,以及模型延遲 (ModelLatency
),這是模型回應 所需的時間間隔 (以微秒為單位) SageMaker。模型延遲包含傳送請求和從模型容器擷取回應的本機通訊時間,以及在容器中完成推論的時間。下列範例顯示設定為傳回無伺服器推論建議之負載測試任務的
InferenceRecommendations
回應部分:"InferenceRecommendations": [ { "EndpointConfiguration": { "EndpointName": "
value
", "InitialInstanceCount":value
, "InstanceType": "value
", "VariantName": "value
", "ServerlessConfig": { "MaxConcurrency":value
, "MemorySizeInMb":value
} }, "InvocationEndTime":value
, "InvocationStartTime":value
, "Metrics": { "CostPerHour":value
, "CostPerInference":value
, "CpuUtilization":value
, "MaxInvocations":value
, "MemoryUtilization":value
, "ModelLatency":value
, "ModelSetupTime":value
}, "ModelConfiguration": { "Compiled": "False", "EnvironmentParameters": [], "InferenceSpecificationName": "value
" }, "RecommendationId": "value
" } ]您可以解讀無伺服器推論的建議,類似於即時推論的結果,但不包括
ServerlessConfig
,它會告訴您具有指定MaxConcurrency
和MemorySizeInMB
值的負載測試設定之指標。無伺服器建議也會測量指標ModelSetupTime
,以測量在無伺服器端點上啟動電腦資源所需的時間 (以微秒為單位)。如需有關設定無伺服器端點的詳細資訊,請參閱無伺服器推論文件。 - Amazon SageMaker Studio Classic
-
建議會填入 Studio Classic 中稱為推論建議的新索引標籤中。最多可能需要 2 小時,結果才會顯示。此索引標籤包含結果和詳細資訊欄。
詳細資訊欄提供有關負載測試任務的資訊,例如指定給負載測試任務的名稱、建立任務的時間 (建立時間) 等。它也包含設定資訊,例如每分鐘發生的調用次數上限,以及所使用之 Amazon Resource Name 的相關資訊。
結果欄提供部署目標和SageMaker建議視窗,您可以根據部署重要性調整結果的顯示順序。您可以在三個下拉式清單選單中為使用案例提供成本、延遲和輸送量的重要性層級。您可以針對每個目標 (成本、延遲和輸送量) 設定重要性層級:最低重要性、低重要性、中等重要性、高重要性或最高重要性。
根據您對每個目標的重要性選擇,推論建議程式會在面板右側的SageMaker建議欄位中顯示其最佳建議,以及每小時的預估成本和推論請求。同時也提供預期模型延遲、調用次數上限以及執行個體數目的相關資訊。
除了顯示的最佳建議之外,您也可以看到在所有執行段落中,Inference Recommender 測試過的所有執行個體處理所顯示的相同資訊。
- SageMaker console
-
您可以執行下列動作,在 SageMaker 主控台中檢視自訂負載測試結果:
-
前往 SageMaker 主控台https://console.aws.amazon.com/sagemaker/
。 -
在左側導覽窗格中,選擇推論,然後選擇推論建議程式。
-
在推論建議程式任務頁面上,選擇推論建議任務的名稱。
在任務的詳細資訊頁面上,您可以檢視推論建議 ,這是適用於模型的執行個體類型 SageMaker 建議,如下列螢幕擷取畫面所示。
在本節中,您可以依各種因素比較執行個體類型,例如模型延遲、每小時成本、每個推論的成本、每分鐘調用數。
您也可以在此頁面檢視針對您指定的組態。在監控區段中,您可以檢視針對每個執行個體類型記錄的 Amazon CloudWatch 指標。若要深入了解如何解讀這些指標,請參閱解讀結果。
-