本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将基础模型与 SageMaker Python SDK
所有 JumpStart 基础模型均可使用以编程方式部署。 SageMaker Python SDK可使用中的模型 ID 部署公开可用的文本生成基础模型公开可用的文本生成模型表。在 AWS Marketplace中订阅模型后,必须使用模型软件包信息部署专有模型。
以下各节介绍如何使用JumpStartEstimator
类微调基础模型,以及如何使用该JumpStartModel
类部署模型以及其他PythonSDK实用工具。
重要
某些基础模型要求明确接受最终用户许可协议(EULA)。有关更多信息,请参阅 EULA接受 SageMaker Python SDK。
要参考所有公开基础模型IDs的可用模型,请参阅带有预训练模型的内置算法表
与课堂一起微调公开可用的基础模型 JumpStartEstimator
您只需使用几行代码即可对内置算法或预训练模型进行微调。 SageMaker Python SDK
首先,在带有预训练模型的内置算法表中找到所选模型的模型
ID。 使用模型 ID,将您的训练作业定义为 JumpStart 估算器。
from sagemaker.jumpstart.estimator import JumpStartEstimator model_id =
"huggingface-textgeneration1-gpt-j-6b"
estimator = JumpStartEstimator(model_id=model_id)在模型
estimator.fit()
上运行,指向用于微调的训练数据。estimator.fit( {"train":
training_dataset_s3_path
, "validation":validation_dataset_s3_path
} )然后,使用该
deploy
方法自动部署模型以进行推理。在此示例中,我们使用来自的 GPT-J 6B 模型。Hugging Facepredictor = estimator.deploy()
然后,您可以使用
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
首先,在带有预训练模型的内置算法表中找到所选模型的模型
ID。 使用模型 ID 将您的模型定义为 JumpStart 模型。
from sagemaker.jumpstart.model import JumpStartModel model_id =
"huggingface-text2text-flan-t5-xl"
my_model = JumpStartModel(model_id=model_id)使用该
deploy
方法自动部署模型以进行推理。在此示例中,我们使用的是中的 FLAN-T5 XL 型号。Hugging Facepredictor = my_model.deploy()
然后,您可以使用
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 模型的更多信息,请参阅与多个模型共享资源利用率。
检查有效的输入和输出推理格式
要检查有效的数据输入和输出格式以进行推理,可以使用Serializers
和Deserializers
类中的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