机器学习 基础教程

机器学习 集成学习

机器学习 笔记

xgboost 加载模型导致 AssertError:read can not have position excceed buffer length 错误的原因及解决方法

机器学习 笔记 机器学习 笔记


xgboost 加载模型时,出现 AssertError:read can not have position excceed buffer length 错误,如果是线上的 java 服务有可能导致 java 进程挂掉,那是什么原因导致的呢?解决方法是什么?

报错信息及原因

报错信息如下:

AssertError:read can not have position excceed buffer length

原因最有可能的是,训练出来的模型的 xgboost 版本与线上使用的 xgboost jar 包版本不一致导致兼容性问题,一般情况下,离线的 xgboost 版本高于线上使用的。

解决方法

xgboost 的 model 文件有兼容性问题。

高版本的 xgboost 可以兼容低版本的,但是低版本的 xgboost 不能兼容高版本

笔者 case 的解决方式是升级线上的 xgboost 版本让其大于等于离线的 xgb 版本,或者离线的 xgb 版本对齐线上的