Sorry for the late reply, might be missing the notification.
I am using Ray 2.8.1, which should be using the json format.
I have raised the issue in GitHub.
It is kind of weird, I haven’t found the root cause. Seems only I can reproduce the issue.
=> No matter what I specify the XGBoostTrainer._save_model(), somehow it will call the legacy version of booster.save_model() again somewhere, and the checkpoint contents are not successfully copied from the temp directory to where it should be persisted on NAS. (In Ray 2.8+ will use ray.train.report to copy to persistent storage.