You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XGBoost模型序列化反序列化问题:SageMaker训练本地加载报错

解决SageMaker训练的XGBoost模型本地pickle加载报错问题

问题原因

你遇到的报错是因为Python的pickle序列化会保留XGBoost模型与训练环境绑定的底层信息,跨环境(SageMaker到本地)加载时,XGBoost底层的JSON解析逻辑无法识别这些环境相关内容,从而抛出解析错误。另外XGBoost官方并不推荐用pickle保存模型,更建议使用其自带的标准模型保存方式。

解决方案

步骤1:在SageMaker上重新保存模型

替换原pickle保存代码,使用XGBoost自带的save_model方法:

model.save_model('xgboost_model.model')

步骤2:本地匹配XGBoost版本

确保本地环境的XGBoost版本与SageMaker上完全一致(1.6.1),执行安装命令:

pip install xgboost==1.6.1

步骤3:本地加载模型

使用XGBoost的load_model方法加载标准格式的模型:

import xgboost as xgb

# 初始化Booster对象
loaded_model = xgb.Booster()
# 加载模型文件
loaded_model.load_model('xgboost_model.model')

额外说明

如果是SageMaker Pipeline中的XGBoost模型,要确保获取到的是原生XGBoost模型对象再执行save_model,避免保存Pipeline的封装对象引发其他问题。

内容的提问来源于stack exchange,提问作者Petr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:39:15