Deploy an XGBoost Model using OML Services
% podman exec -it oml4py-db bash
bash-4.4$
export LANG=en_US.UTF8
export PYTHONHOME=$HOME/python
export PATH=$PYTHONHOME/bin:$PATH
export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH
unset PYTHONPATH
bash-4.4$ export LANG=en_US.UTF8
bash-4.4$ export PYTHONHOME=$HOME/python
bash-4.4$ export PATH=$PYTHONHOME/bin:$PATH
bash-4.4$ export LD_LIBRARY_PATH=$PYTHONHOME/lib:$LD_LIBRARY_PATH
bash-4.4$ unset PYTHONPATH
bash-4.4$
python3 -m pip install xgboost onnxmltools skl2onnx --user
bash-4.4$ python3 -m pip install xgboost onnxmltools skl2onnx --user
Collecting xgboost
Downloading xgboost-3.0.3-py3-none-manylinux_2_28_x86_64.whl.metadata (2.1 kB)
Collecting onnxmltools
Downloading onnxmltools-1.14.0-py2.py3-none-any.whl.metadata (8.1 kB)
Collecting skl2onnx
Downloading skl2onnx-1.19.1-py3-none-any.whl.metadata (3.8 kB)
Requirement already satisfied: numpy in ./python/lib/python3.12/site-packages (from xgboost) (2.2.0)
Collecting nvidia-nccl-cu12 (from xgboost)
Downloading nvidia_nccl_cu12-2.27.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.0 kB)
Requirement already satisfied: scipy in ./python/lib/python3.12/site-packages (from xgboost) (1.14.0)
Requirement already satisfied: onnx in ./python/lib/python3.12/site-packages (from onnxmltools) (1.18.0)
Requirement already satisfied: scikit-learn>=1.1 in ./python/lib/python3.12/site-packages (from skl2onnx) (1.5.1)
Requirement already satisfied: protobuf>=4.25.1 in ./python/lib/python3.12/site-packages (from onnx->onnxmltools) (6.31.1)
Requirement already satisfied: typing_extensions>=4.7.1 in ./python/lib/python3.12/site-packages (from onnx->onnxmltools) (4.14.1)
Requirement already satisfied: joblib>=1.2.0 in ./python/lib/python3.12/site-packages (from scikit-learn>=1.1->skl2onnx) (1.5.1)
Requirement already satisfied: threadpoolctl>=3.1.0 in ./python/lib/python3.12/site-packages (from scikit-learn>=1.1->skl2onnx) (3.6.0)
Downloading xgboost-3.0.3-py3-none-manylinux_2_28_x86_64.whl (253.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253.8/253.8 MB 3.6 MB/s 0:01:04
Downloading onnxmltools-1.14.0-py2.py3-none-any.whl (352 kB)
Downloading skl2onnx-1.19.1-py3-none-any.whl (315 kB)
Downloading nvidia_nccl_cu12-2.27.7-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (322.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 322.5/322.5 MB 4.0 MB/s 0:01:19
Installing collected packages: nvidia-nccl-cu12, xgboost, onnxmltools, skl2onnx
Successfully installed nvidia-nccl-cu12-2.27.7 onnxmltools-1.14.0 skl2onnx-1.19.1 xgboost-3.0.3
bash-4.4$
bash-4.4$ python3 housing-onnx-export.py
XGBRegressor(alpha=10, base_score=None, booster=None, callbacks=None,
colsample_bylevel=None, colsample_bynode=None,
colsample_bytree=0.3, device=None, early_stopping_rounds=None,
enable_categorical=False, eval_metric=None, feature_types=None,
feature_weights=None, gamma=None, grow_policy=None,
importance_type=None, interaction_constraints=None,
learning_rate=0.1, max_bin=None, max_cat_threshold=None,
max_cat_to_onehot=None, max_delta_step=None, max_depth=5,
max_leaves=None, min_child_weight=None, missing=nan,
monotone_constraints=None, multi_strategy=None, n_estimators=10,
n_jobs=None, ...)
Prediction:
[[1.9012693]
[1.9086367]
[1.7791952]
[1.7663374]
[2.3076754]
[2.4856815]
[2.0629597]
[2.0905418]
[2.2301753]
[2.2447908]]
Local predictions are: [1.9012694 1.9086368 1.7791953 1.7663375 2.3076756 2.4856815 2.0629597
2.090542 2.2301757 2.2447908]
bash-4.4$
bash-4.4$ cp ~/onnx_test/onnx_xgboost.model.zip ~/work/
bash-4.4$
onnx_xgboost.model % ls
metadata.json xgboost_housing.onnx
onnx_xgboost.model %
{
"function": "regression",
"input": { "float_input": ["MedInc","HouseAge","AveRooms","AveBedrms","Population","AveOccup","Latitude","Longitude"]}
}
select
to_char(prediction(XGBOOST_HOUSING using * ), '99.9999999') prediction
from housing
order by id asc
fetch first 10 rows only