将基础模型与 SageMaker Python SDK - Amazon SageMaker

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

将基础模型与 SageMaker Python SDK

所有 JumpStart 基础模型均可使用以编程方式部署。 SageMaker Python SDK可使用中的模型 ID 部署公开可用的文本生成基础模型公开可用的文本生成模型表。在 AWS Marketplace中订阅模型后,必须使用模型软件包信息部署专有模型。

以下各节介绍如何使用JumpStartEstimator类微调基础模型,以及如何使用该JumpStartModel类部署模型以及其他PythonSDK实用工具。

重要

某些基础模型要求明确接受最终用户许可协议(EULA)。有关更多信息,请参阅 EULA接受 SageMaker Python SDK

要参考所有公开基础模型IDs的可用模型,请参阅带有预训练模型的内置算法表。在搜索栏中搜索您选择的基础模型的名称,使用显示条目下拉菜单更改显示的条目数量,或者选择页面左侧以蓝色突出显示下一个文本来浏览可用模型。

与课堂一起微调公开可用的基础模型 JumpStartEstimator

您只需使用几行代码即可对内置算法或预训练模型进行微调。 SageMaker Python SDK

  1. 首先,在带有预训练模型的内置算法表中找到所选模型的模型 ID。

  2. 使用模型 ID,将您的训练作业定义为 JumpStart 估算器。

    from sagemaker.jumpstart.estimator import JumpStartEstimator model_id = "huggingface-textgeneration1-gpt-j-6b" estimator = JumpStartEstimator(model_id=model_id)
  3. 在模型estimator.fit()上运行,指向用于微调的训练数据。

    estimator.fit( {"train": training_dataset_s3_path, "validation": validation_dataset_s3_path} )
  4. 然后,使用该deploy方法自动部署模型以进行推理。在此示例中,我们使用来自的 GPT-J 6B 模型。Hugging Face

    predictor = estimator.deploy()
  5. 然后,您可以使用predict方法对已部署的模型进行推理。

    question = "What is Southern California often abbreviated as?" response = predictor.predict(question) print(response)
注意

此示例使用基础模型 GPT-J 6B,该模型适用于各种文本生成用例,包括问答、命名实体识别、摘要等。有关模型用例的更多信息,请参阅探索最新的基础模型

在创建模型时,您可以选择指定模型版本或实例类型JumpStartEstimator。有关该JumpStartEstimator 类及其参数的更多信息,请参见JumpStartEstimator

检查默认实例类型

在使用类对预训练模型进行微调时,您可以选择包括特定的模型版本或实例类型。JumpStartEstimator所有 JumpStart 模型都有默认的实例类型。使用以下代码检索默认训练实例类型:

from sagemaker import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope="training") print(instance_type)

您可以使用instance_types.retrieve()方法查看给定 JumpStart 模型的所有支持的实例类型。

检查默认超参数

要检查用于训练的默认超参数,可以使用hyperparameters类中的retrieve_default()方法。

from sagemaker import hyperparameters my_hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version) print(my_hyperparameters) # Optionally override default hyperparameters for fine-tuning my_hyperparameters["epoch"] = "3" my_hyperparameters["per_device_train_batch_size"] = "4" # Optionally validate hyperparameters for the model hyperparameters.validate(model_id=model_id, model_version=model_version, hyperparameters=my_hyperparameters)

有关可用超参数的更多信息,请参阅通常支持的微调超参数

检查默认指标定义

您还可以查看默认指标定义:

print(metric_definitions.retrieve_default(model_id=model_id, model_version=model_version))

JumpStartModel课堂一起部署公开可用的基础模型

您只需使用几行代码即可将内置算法或预训练模型部署到 SageMaker终端节点。 SageMaker Python SDK

  1. 首先,在带有预训练模型的内置算法表中找到所选模型的模型 ID。

  2. 使用模型 ID 将您的模型定义为 JumpStart 模型。

    from sagemaker.jumpstart.model import JumpStartModel model_id = "huggingface-text2text-flan-t5-xl" my_model = JumpStartModel(model_id=model_id)
  3. 使用该deploy方法自动部署模型以进行推理。在此示例中,我们使用的是中的 FLAN-T5 XL 型号。Hugging Face

    predictor = my_model.deploy()
  4. 然后,您可以使用predict方法对已部署的模型进行推理。

    question = "What is Southern California often abbreviated as?" response = predictor.predict(question) print(response)
注意

此示例使用基础模型 FLAN-T5 XL,该模型适用于各种文本生成用例,包括问答、摘要、聊天机器人创建等。有关模型用例的更多信息,请参阅探索最新的基础模型

有关该JumpStartModel 类及其参数的更多信息,请参见JumpStartModel

检查默认实例类型

在使用JumpStartModel类部署预训练模型时,您可以选择包括特定的模型版本或实例类型。所有 JumpStart 模型都有默认的实例类型。使用以下代码检索默认部署实例类型:

from sagemaker import instance_types instance_type = instance_types.retrieve_default( model_id=model_id, model_version=model_version, scope="inference") print(instance_type)

使用instance_types.retrieve()方法查看给定 JumpStart 模型的所有支持的实例类型。

使用推理组件将多个模型部署到共享端点

推理组件是一个 SageMaker 托管对象,可用于将一个或多个模型部署到端点,以提高灵活性和可扩展性。您必须将 JumpStart 模型更改endpoint_type为, inference-component-based 而不是默认的基于模型的端点。

predictor = my_model.deploy( endpoint_name = 'jumpstart-model-id-123456789012', endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED )

有关使用推理组件创建端点和部署 SageMaker 模型的更多信息,请参阅与多个模型共享资源利用率

检查有效的输入和输出推理格式

要检查有效的数据输入和输出格式以进行推理,可以使用SerializersDeserializers类中的retrieve_options()方法。

print(sagemaker.serializers.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.deserializers.retrieve_options(model_id=model_id, model_version=model_version))

检查支持的内容并接受类型

同样,您可以使用retrieve_options()方法来检查支持的内容并接受模型的类型。

print(sagemaker.content_types.retrieve_options(model_id=model_id, model_version=model_version)) print(sagemaker.accept_types.retrieve_options(model_id=model_id, model_version=model_version))

有关实用程序的更多信息,请参阅实用工具APIs

将专有的基础模型与 SageMaker Python SDK

在 AWS Marketplace中订阅模型后,必须使用模型软件包信息部署专有模型。有关 SageMaker 和的更多信息 AWS Marketplace,请参阅中的买入和出售 Amazon SageMaker 算法和模型 AWS Marketplace。要查找最新专有机型的 AWS Marketplace 链接,请参阅 Amazon 入门 SageMaker JumpStart

在中订阅您选择的模型后 AWS Marketplace,您可以使用 SageMaker PythonSDK和与模型提供者SDK关联的来部署基础模型。例如,AI21Labs、Cohere 和 Cohere 分别 LightOn 使用"ai21[SM]"cohere-sagemaker、和lightonsage软件包。

例如,要使用AI21实验室中的 Jurassic-2 Jumbo Instruct 定义 JumpStart 模型,请使用以下代码:

import sagemaker import ai21 role = get_execution_role() sagemaker_session = sagemaker.Session() model_package_arn = "arn:aws:sagemaker:us-east-1:865070037744:model-package/j2-jumbo-instruct-v1-1-43-4e47c49e61743066b9d95efed6882f35" my_model = ModelPackage( role=role, model_package_arn=model_package_arn, sagemaker_session=sagemaker_session )

step-by-step 例如,在 SageMaker Studio Classic 中查找并运行与您选择的专有基础型号相关的笔记本电脑。请参阅在 Amazon SageMaker Studio 经典版中使用基础模型了解更多信息。有关更多信息 SageMaker PythonSDK,请参阅ModelPackage