在 SageMaker Python SDK 中使用基础模型 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 SageMaker Python SDK 中使用基础模型

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

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

重要

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

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

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

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

  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 类及其参数的更多信息,请参阅 E JumpStartstimat or。

检查默认实例类型

在使用类微调预训练模型时,您可以选择包括特定的模型版本或实例类型。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 Python SDK,只需几行代码即可将内置算法或预训练模型部署到 SageMaker终端节点。

  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 类及其参数的更多信息,请参见JumpStart模型

检查默认实例类型

在使用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))

有关实用程序的更多信息,请参阅实用程序 API

在 SageMaker Python SDK 中使用专有的基础模型

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

在中订阅您选择的模型后 Amazon Web Services Marketplace,您可以使用与模型提供者关联的 SageMaker Python SDK 和软件开发工具包来部署基础模型。例如,AI21 Labs、Cohere 和 Cohere 分别 LightOn 使用"ai21[SM]"cohere-sagemaker、和lightonsage软件包。

例如,要使用 AI21 Labs 的 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 Python SDK 的更多信息,请参阅ModelPackage