View a markdown version of this page

模型部署 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

模型部署

訓練任務完成後,訓練的模型會在輸出模型套件群組中以模型套件的形式提供。您有兩個部署選項。

選項 1:使用 SageMaker AI 推論部署

在 SageMaker AI 推論端點上託管模型,以進行即時、無伺服器或非同步預測。此選項可讓您精細控制執行個體類型、擴展政策和網路組態。當您需要低延遲服務、自訂推論邏輯,或與現有 SageMaker AI 工作流程緊密整合時,這是理想的選擇。

若要部署,OutputModelPackageArn請從您完成的訓練任務擷取 ,並使用它來建立端點。

# Retrieve the output model ARN from your completed job aws sagemaker describe-job \ --job-name "my-agent-rft-job" \ --job-category AgentRFT \ --region us-west-2

如需完整的部署選項和組態,請參閱 SageMaker AI 文件中的部署模型以進行推論

選項 2:匯入 Amazon Bedrock

將您的模型匯入 Amazon Bedrock,以使用 Bedrock 的受管推論 APIs無需端點組態。Amazon Bedrock 支援匯入自訂的開放原始碼基礎模型 (例如 Mistral AI 或 Llama),以及在 SageMaker AI AI 中微調的 Amazon Nova 模型。如需詳細資訊,請參閱《Amazon Bedrock 使用者指南》中的將預先訓練的模型匯入 Amazon Bedrock。對於 Nova 模型,請參閱使用建立自訂模型匯入

使用 SageMaker AI Studio 部署

  • 導覽至任務 > 訓練,然後選取多迴轉 RL 索引標籤。

  • 選取已完成的任務,然後在自訂模型詳細資訊下選擇模型,以檢閱效能指標、模型歷程和訓練日誌。

  • 控管索引標籤下,核准模型,使其符合部署資格。

  • 選擇部署。選取是否要部署到 SageMaker AI 即時端點或透過 Amazon Bedrock,以及是否要建立新的端點或重複使用現有的端點。

  • 選取執行個體類型,並選擇性地設定 VPC 設定、IAM 角色和 KMS 加密金鑰。

  • 在部署索引標籤下監控部署進度。

  • 導覽至部署 > 端點。當您的端點和相關聯的推論元件達到 InService 狀態時,您的端點已準備好進行調用。

使用 SageMaker AI Python SDK 部署

部署至 SageMaker AI 端點:

from sagemaker.serve import ModelBuilder from sagemaker.core.resources import ModelPackage # Get the output model package from your completed training job model_package = ModelPackage.get( model_package_name=job.output_model_package_arn ) model_builder = ModelBuilder( model=model_package, image_uri="763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.36.0-lmi24.0.0-cu129", instance_type="ml.g6e.48xlarge", ) model_builder.accept_eula = True model_builder.build() endpoint = model_builder.deploy( endpoint_name="mtrl-finetuned-endpoint", instance_type="ml.g6e.48xlarge", initial_instance_count=1, )

叫用端點:

import json response = endpoint.invoke( body=json.dumps({ "model": "/opt/ml/model", "messages": [{"role": "user", "content": "What is 25 * 4?"}], "max_tokens": 200, "stream": False, }).encode("utf-8"), content_type="application/json", )