本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
部署預先最佳化的模型
中的某些模型 JumpStart 是由 預先最佳化 SageMaker,這表示您可以部署這些模型的最佳化版本,而不必先建立推論最佳化任務。如需具有預先最佳化選項的模型清單,請參閱 支援的模型參考。
使用下列程序,使用 Amazon SageMaker Studio 部署預先最佳化的 JumpStart 模型。
部署預先最佳化的模型
-
在 Studio 的左側導覽功能表中,選擇 JumpStart。
-
在所有公有模型頁面上,選擇預先最佳化的其中一個模型。
-
在模型詳細資訊頁面上,選擇部署 。
-
在部署頁面上,某些 JumpStart 模型會要求您簽署最終使用者授權合約 (EULA),然後才能繼續。若有要求,請檢閱授權合約區段中的授權條款。如果您的使用案例可接受這些術語,請選取我接受 的核取方塊EULA,然後閱讀條款與條件。
如需詳細資訊,請參閱終端使用者授權協議。
-
對於端點名稱和初始執行個體計數 ,請接受預設值或設定自訂值。
-
對於執行個體類型 ,請保留預設值。否則,您無法部署預先最佳化的組態。
-
在模型 下,展開模型組態。Studio 會顯示資料表,提供您可以選擇的預先最佳化組態。每個選項都有延遲和輸送量的指標。選擇最適合您應用程式需求的選項。
-
選擇部署。
透過 Amazon SageMaker Python SDK,您可以部署預先最佳化的模型。首先,您可以使用 ModelBuilder
類別定義模型。然後,您建立模型。最後,您可以使用 Model
類別部署模型。
若要設定專案
-
在您的應用程式程式碼中,匯入必要的程式庫。下列範例會匯入 SDK for Python (Boto3)。它也會從SDK您用來定義和使用模型的 Amazon SageMaker Python 匯入模組:
import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session
-
初始化 SageMaker 工作階段。下列範例使用 Amazon SageMaker Python 中的
Session()
類別SDK:sagemaker_session = Session()
定義模型
-
建立
SchemaBuilder
執行個體,並提供輸入和輸出範例。當您定義模型時,您會將此執行個體提供給ModelBuilder
類別。透過它, SageMaker 會自動產生串列和還原序列化輸入和輸出的串列函數。如需使用
SchemaBuilder
和ModelBuilder
類別的詳細資訊,請參閱 在 Amazon SageMaker 中創建模型 ModelBuilder。下列範例為
SchemaBuilder
類別提供範例輸入和輸出字串:response = "Jupiter is the largest planet in the solar system. It is the fifth planet from the sun." sample_input = { "inputs": "What is the largest planet in the solar system?", "parameters": {"max_new_tokens": 128, "top_p": 0.9, "temperature": 0.6}, } sample_output = [{"generated_text": response}] schema_builder = SchemaBuilder(sample_input, sample_output)
-
將模型定義為 SageMaker。下列範例會設定參數以初始化
ModelBuilder
執行個體:model_builder = ModelBuilder( model="
jumpstart-model-id
", schema_builder=schema_builder, sagemaker_session=sagemaker_session, role_arn=sagemaker_session.get_caller_identity_arn(), )此範例使用 JumpStart 模型。
以 JumpStart 模型的 ID 取代,例如jumpstart-model-id
meta-textgeneration-llama-3-70b
。
擷取基準指標
-
若要判斷您要部署的預先最佳化組態,請查詢 SageMaker 提供的選項。下列範例會顯示這些範例:
model_builder.display_benchmark_metrics()
此
display_benchmark_metrics()
方法會列印如下的資料表:| Instance Type | Config Name | Concurrent Users | Latency, TTFT (P50 in sec) | Throughput (P50 in tokens/sec/user) | |:----------------|:--------------|-------------------:|-----------------------------:|--------------------------------------:| | ml.g5.48xlarge | lmi-optimized | 1 | 2.25 | 49.70 | | ml.g5.48xlarge | lmi-optimized | 2 | 2.28 | 21.10 | | ml.g5.48xlarge | lmi-optimized | 4 | 2.37 | 14.10 | . . . | ml.p4d.24xlarge | lmi-optimized | 1 | 0.10 | 137.40 | | ml.p4d.24xlarge | lmi-optimized | 2 | 0.11 | 109.20 | | ml.p4d.24xlarge | lmi-optimized | 4 | 0.13 | 85.00 | . . .
在第一欄中,資料表會列出可用來託管所選 JumpStart 模型的潛在執行個體類型。對於每個執行個體類型,在 下
Config Name
會列出預先最佳化組態的名稱。 SageMaker 提供的組態名為lmi-optimized
。對於每個執行個體類型和組態,資料表會提供基準指標。這些指標表示您的模型將支援不同數量並行使用者的輸送量和延遲。 -
根據基準指標,挑選最能支援效能需求的執行個體類型和組態名稱。建立部署組態時,您會使用這些值。
部署預先最佳化的模型
-
建立部署組態。下列範例使用
ModelBuilder
執行個體。它會將執行個體類型和組態名稱傳遞至set_deployment_config()
方法:model_builder.set_deployment_config( config_name="
", instance_type="config-name
", )instance-type
Replace (取代)
具有資料表中的組態名稱,例如config-name
lmi-optimized
。
將 取代為資料表中的執行個體類型,例如instance-type
ml.p4d.24xlarge
。 -
建置您的模型。下列範例使用
ModelBuilder
執行個體.build()
的方法:optimized_model = model_builder.build()
此
.build()
方法會傳回可部署的Model
執行個體。 -
將模型部署至推論端點。下列範例使用
Model
執行個體.deploy()
的方法:predictor = optimized_model.deploy(accept_eula=True)
此
deploy()
方法會傳回執行個體,您可以使用此Predictor
執行個體將推論請求傳送至模型。
使用推論請求測試模型
-
將模型部署至推論端點後,請測試模型的預測。下列範例使用
執行個體傳送推論請求:Predictor
predictor.predict(sample_input)
模型會傳回其透過如下回應產生的文字:
{'generated_text': ' Jupiter is the largest planet in the solar system. It is the fifth planet from the sun. It is a gas giant with . . .'}