部署预先优化的模型 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

部署预先优化的模型

中的某些模型 JumpStart 已通过 SageMaker AI 进行预优化,这意味着您可以部署这些模型的优化版本,而无需先创建推理优化作业。

有关带有预优化选项的模型列表,请参阅 预先优化的模型 JumpStart

使用以下步骤使用 Amazon SageMaker Studio 部署预先优化的 JumpStart 模型。

部署预优化模型
  1. 在 Studio 中,在左侧的导航菜单中选择JumpStart

  2. 全部公共模型页面上,选择一个已预优化的模型。

  3. 在模型详细信息页面,选择部署

  4. 在部署页面上,某些 JumpStart 型号要求您签署最终用户许可协议 (EULA),然后才能继续。如果需要,请查看许可协议部分中的许可条款。如果您可以接受使用条款,请选择我接受 EULA 并阅读条款和条件的复选框。

    有关更多信息,请参阅 最终用户许可协议

  5. 对于端点名称初始实例数,接受默认值或设置自定义值。

  6. 对于实例类型,保留默认值。否则,您就无法部署预先优化的配置。

  7. 模型下,展开模型配置。Studio 显示了一个表格,其中提供了可供您选择的预优化配置。每个选项都有延迟和吞吐量指标。选择最适合您应用需求的选项。

  8. 选择部署

您可以在项目中使用 SageMaker AI Python 软件开发工具包来部署预先优化的模型。首先,使用ModelBuilder类来定义Model实例。然后,使用set_deployment_config()方法设置要部署的预先优化的配置。然后,使用该build()方法来构建模型。最后,您可以使用该deploy()方法将其部署到推理端点。

有关以下示例中使用的类和方法的更多信息,请参阅 APIs SageMaker AI Python SDK 文档。

设置项目
  1. 在应用程序代码中,导入必要的库。下面的示例导入了 Python SDK (Boto3)。它还会从 SageMaker AI Python SDK 中导入用于定义和处理模型的模块:

    import boto3 from sagemaker.serve.builder.model_builder import ModelBuilder from sagemaker.serve.builder.schema_builder import SchemaBuilder from sagemaker.session import Session
  2. 初始化 A SageMaker I 会话。以下示例使用该Session()类:

    sagemaker_session = Session()
定义模型
  1. 创建 SchemaBuilder 实例,并提供输入和输出样本。在定义模型时,您需要向 ModelBuilder 类提供该实例。借助它, SageMaker AI 会自动生成编组函数,用于序列化和反序列化输入和输出。

    有关使用 SchemaBuilderModelBuilder 类的更多信息,请参阅 使用 Amazon A SageMaker I 创建模型 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)
  2. 将您的模型定义为 SageMaker AI。下面的示例设置了初始化 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-model-id替换为 JumpStart 模型的 ID,例如meta-textgeneration-llama-3-70b

检索基准指标
  1. 要确定要部署哪种预先优化的配置,请查找 SageMaker AI 提供的选项。下面的示例显示了它们:

    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 AI 提供的配置已命名lmi-optimized。表格中提供了每种实例类型和配置的基准指标。这些指标显示了模型在不同并发用户数量下支持的吞吐量和延迟。

  2. 根据基准指标,选择最能满足性能需求的实例类型和配置名称。您在创建部署配置时将使用这些值。

部署预优化模型
  1. 创建部署配置。下面的示例使用了 ModelBuilder 实例。它将实例类型和配置名称传递给 set_deployment_config() 方法:

    model_builder.set_deployment_config( config_name="config-name", instance_type="instance-type", )

    config-name 替换为表格中的配置名称,如 lmi-optimized。将 instance-type 替换为表格中的实例类型,如 ml.p4d.24xlarge

  2. 构建模型。下面的示例使用了 ModelBuilder 实例的 .build() 方法:

    optimized_model = model_builder.build()

    .build() 方法会返回一个可部署的 Model 实例。

  3. 将模型部署到推理端点。下面的示例使用了 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 . . .'}

预先优化的模型 JumpStart

以下是具有预先优化配置的 JumpStart 型号。

Meta
  • Llama 3.1 70B Instruct

  • Llama 3.1 70B

  • Llama 3.1 405B Instruct FP8

  • Llama 3.1 405B FP8

  • Llama 3 8B Instruct

  • Llama 3 8B

  • Llama 3 70B Instruct

  • Llama 3 70B

  • Llama 2 70B Chat

  • Llama 2 7B Chat

  • Llama 2 13B Chat

HuggingFace
  • Mixtral 8x7B Instruct

  • Mixtral 8x7B

  • Mistral 7B Instruct

  • Mistral 7B

预编译模型 JumpStart

对于某些模型和配置, SageMaker AI 提供了针对特定 Inf Amazon erentia 和 Amazon Trainium 实例进行预编译的模型。对于这些,如果您创建编译优化作业,并选择 ml.inf2.48xlarge 或 ml.trn1.32xlarge 作为部署实例类型,AI 会获取已编译的工件。 SageMaker 由于作业使用的是已经编译的模型,因此无需从头开始编译就能快速完成。

以下是 SageMaker AI 已为其预编译模型的模型: JumpStart

Meta
  • Llama3 8B

  • Llama3 70B

  • Llama2 7B

  • Llama2 70B

  • Llama2 13B

  • Code Llama 7B

  • Code Llama 70B

HuggingFace
  • Mistral 7B