Regression to the Mean Model
Shuffle your XGBoost training data and you can get a different model. Not different hyperparameters or different features, just a different row order. With tree_method='hist' and multiple threads, the parallel quantile sketch that determines bin boundaries depends on how rows are chunked across workers (see stableboost