On the link of XGBoost guide:
After training, the model can be saved.
bst.save_model(\'0001.model\')The model a
Don't use pickle or joblib as that may introduces dependencies on xgboost version. The canonical way to save and restore models is by load_model and save_model.
If you’d like to store or archive your model for long-term storage, use save_model (Python) and xgb.save (R).
This is the relevant documentation for the latest versions of XGBoost. It also explains the difference between dump_model and save_model.
Note that you can serialize/de-serialize your models as json by specifying json as the extension when using bst.save_model. If the speed of saving and restoring the model is not important for you, this is very convenient, as it allows you to do proper version control of the model since it's a simple text file.