Mettre à niveau XGBoost version 0.90 vers la version 1.2 - Amazon SageMaker

Mettre à niveau XGBoost version 0.90 vers la version 1.2

Si vous utilisez le kit SDK SageMaker Python, pour mettre à niveau les tâches XGBoost 0.90 existantes vers la version 1.2, vous devez disposer de la version 2.x du kit SDK installée et modifier les paramètres version et framework_version de XGBoost sur 1.2-2. Si vous utilisez Boto3, vous devez mettre à jour l'image Docker, ainsi que quelques hyperparamètres et objectifs d'apprentissage.

Mettre à niveau le kit SDK SageMaker Python version 1.x vers la version 2.x

Si vous utilisez toujours la version 1.x du SDK SageMaker Python, vous devez effectuer une mise à niveau vers la version 2.x. Pour en savoir plus sur la dernière version du kit SDK SageMaker Python, consultez Use Version 2.x of the SageMaker Python SDK. Pour installer la dernière version, exécutez :

python -m pip install --upgrade sagemaker

Modifier la balise d'image à 1.2-2

Si vous utilisez le Kit SDK SageMaker Python et que vous utilisez l'algorithme intégré XGBoost, modifiez le paramètre de version dans image_uris.retrive.

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

Si vous utilisez le kit SDK SageMaker Python et que vous utilisez XGBoost comme cadre pour exécuter vos scripts d'entraînement personnalisés, modifiez le paramètre framework_version dans l'API XGBoost.

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

sagemaker.session.s3_input dans le kit SDK SageMaker Python version 1.x a été renommé comme suit sagemaker.inputs.TrainingInput. Vous devez utiliser sagemaker.inputs.TrainingInput comme dans l'exemple suivant.

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)

Pour obtenir la liste complète des modifications apportées au kit SDK SageMaker Python version 2.x, consultez Use Version 2.x of the SageMaker Python SDK.

Modifier l'image Docker pour Boto3

Si vous utilisez Boto3 pour entraîner ou déployer votre modèle, remplacez la balise d'image docker (0.90-1 ou 0.90-2) par 1.2-2.

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

Si vous utilisez le kit SDK SageMaker Python pour récupérer le chemin de registre, modifiez le paramètre version dans image_uris.retrieve.

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

Mettre à jour les hyperparamètres et les objectifs d'apprentissage

Le paramètre silent est désormais obsolète et n'est plus disponible dans XGBoost 1.2 et versions ultérieures. Utilisez verbosity à la place. Si vous utilisiez l'objectif d'apprentissage reg:linear, il est également obsolète et a été remplacé par reg:squarederror. Utilisez reg:squarederror à la place.

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