将 XGBoost 版本 0.90 升级到版本 1.5 - Amazon SageMaker

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

将 XGBoost 版本 0.90 升级到版本 1.5

如果你使用的是 SageMaker Python SDK,要将现有的 XGBoost 0.90 作业升级到 1.5 版,则必须安装软件开发工具包的 2.x 版本,然后将 XG version Boost 和参数更改为 1.5-1。framework_version如果您使用的是 Boto3,则需要更新 Docker 映像以及一些超参数和学习目标。

将 SageMaker Python SDK 版本 1.x 升级到版本 2.x

如果你仍在使用 SageMaker Python SDK 的 1.x 版本,则必须升级 Pyth SageMaker on SDK 的 2.x 版本。有关最新版本的 SageMaker Python 开发工具包的信息,请参阅使用 Pyth SageMaker on 开发工具包的 2.x 版本。要安装最新版本,请运行:

python -m pip install --upgrade sagemaker

将映像标签更改为 1.5-1

如果您使用的是 SageMaker Python SDK 并使用 XGBoost 内置算法,请更改中的版本参数。image_uris.retrive

from sagemaker import image_uris image_uris.retrieve(framework="xgboost", region="us-west-2", version="1.5-1") estimator = sagemaker.estimator.Estimator(image_uri=xgboost_container, hyperparameters=hyperparameters, role=sagemaker.get_execution_role(), instance_count=1, instance_type='ml.m5.2xlarge', volume_size=5, # 5 GB output_path=output_path)

如果您使用 SageMaker Python SDK 并使用 XGBoost 作为框架来运行自定义训练脚本,请在 XGBoo framework_version st API 中更改参数。

estimator = XGBoost(entry_point = "your_xgboost_abalone_script.py", framework_version='1.5-1', hyperparameters=hyperparameters, role=sagemaker.get_execution_role(), instance_count=1, instance_type='ml.m5.2xlarge', output_path=output_path)

sagemaker.session.s3_input在 SageMaker Python 软件开发工具包中,1.x 版本已重命名为。sagemaker.inputs.TrainingInput您必须如以下示例使用 sagemaker.inputs.TrainingInput

content_type = "libsvm" train_input = TrainingInput("s3://{}/{}/{}/".format(bucket, prefix, 'train'), content_type=content_type) validation_input = TrainingInput("s3://{}/{}/{}/".format(bucket, prefix, 'validation'), content_type=content_type)

有关 SageMaker Python SDK 版本 2.x 变更的完整列表,请参阅使用 Pyth SageMaker on SDK 的 2.x 版本

更改 Boto3 的 Docker 映像

如果您使用 Boto3 来训练或部署模型,请将 Docker 映像标签(1、0.72、0.90-1 或 0.90-2)更改为 1.5-1。

{ "AlgorithmSpecification":: { "TrainingImage": "746614075791.dkr.ecr.us-west-1.amazonaws.com/sagemaker-xgboost:1.5-1" } ... }

如果您使用 SageMaker Python SDK 检索注册表路径,请更改中的version参数image_uris.retrieve

from sagemaker import image_uris image_uris.retrieve(framework="xgboost", region="us-west-2", version="1.5-1")

更新超参数和学习目标

静默参数已弃用,在 XGBoost 1.5 及更高版本中不再可用。请改用 verbosity。如果您在使用 reg:linear 学习目标,那么它也已被弃用,转而使用 reg:squarederror。请改用 reg:squarederror

hyperparameters = { "verbosity": "2", "objective": "reg:squarederror", "num_round": "50", ... } estimator = sagemaker.estimator.Estimator(image_uri=xgboost_container, hyperparameters=hyperparameters, ...)