About this page

This is an API reference for XGBoost in BentoML. Please refer to the XGBoost guide for more information about how to use XGBoost in BentoML.


You can find more examples for XGBoost in our examples/xgboost directory.

bentoml.xgboost.save_model(name: str, model: xgb.Booster | xgb.XGBModel, *, signatures: dict[str, ModelSignatureDict] | None = None, labels: dict[str, str] | None = None, custom_objects: dict[str, t.Any] | None = None, external_modules: t.List[ModuleType] | None = None, metadata: dict[str, t.Any] | None = None) bentoml.Model[source]#

Save an XGBoost model instance to the BentoML model store.

  • name – The name to give to the model in the BentoML store. This must be a valid Tag name.

  • model – The XGBoost model to be saved.

  • signatures – Signatures of predict methods to be used. If not provided, the signatures default to {"predict": {"batchable": False}}. See ModelSignature for more details.

  • labels – A default set of management labels to be associated with the model. An example is {"training-set": "data-1"}.

  • custom_objects

    Custom objects to be saved with the model. An example is {"my-normalizer": normalizer}.

    Custom objects are currently serialized with cloudpickle, but this implementation is subject to change.

  • external_modules – user-defined additional python modules to be saved alongside the model or custom objects, e.g. a tokenizer module, preprocessor module, model configuration module

  • metadata

    Metadata to be associated with the model. An example is {"max_depth": 2}.

    Metadata is intended for display in model management UI and therefore must be a default Python type, such as str or int.


A BentoML tag with the user-defined name and a generated version.


import xgboost as xgb
import bentoml

# read in data
dtrain = xgb.DMatrix('demo/data/agaricus.txt.train')
dtest = xgb.DMatrix('demo/data/agaricus.txt.test')
# specify parameters via map
param = dict(max_depth=2, eta=1, objective='binary:logistic')
num_round = 2
bst = xgb.train(param, dtrain, num_round)

# `save` the booster to BentoML modelstore:
bento_model = bentoml.xgboost.save_model("my_xgboost_model", bst, booster_params=param)
bentoml.xgboost.load_model(bento_model: str | Tag | bentoml.Model) xgb.Booster | xgb.XGBModel[source]#

Load the XGBoost model with the given tag from the local BentoML model store.


bento_model (str | Tag | Model) – Either the tag of the model to get from the store, or a BentoML ~bentoml.Model instance to load the model from.


The XGBoost model loaded from the model store or BentoML Model.


import bentoml
# target model must be from the BentoML model store
booster = bentoml.xgboost.load_model("my_xgboost_model")
bentoml.xgboost.get(tag_like: str | bentoml._internal.tag.Tag) Model[source]#

Get the BentoML model with the given tag.


tag_like (str | Tag) – The tag of the model to retrieve from the model store.


A BentoML Model with the matching tag.

Return type:



import bentoml
# target model must be from the BentoML model store
model = bentoml.xgboost.get("my_xgboost_model")