通过 Kubeflow XGBoost Training Operator 支持在 Kubernetes 上进行分布式 XGBoost 训练和批量预测。
操作步骤
为在 Kubernetes 集群上运行 XGBoost 作业,执行以下步骤:
在 Kubernetes 集群上安装 XGBoost Operator。
XGBoost Operator 旨在管理 XGBoost 作业的调度和监控。按照安装指南安装 XGBoost Operator。
编写由 XGBoost Operator 执行的应用程序代码。
- 要使用 XGBoost Operator,需要编写几个 Python 脚本,实现 XGBoost 的分布式训练逻辑。请参考鸢尾花分类示例。
- 数据读取器/写入器:根据所选数据源的具体要求,需要基于数据读取器和写入器的实现。例如,如果数据集存储在 Hive 表中,必须根据 worker 的索引编写代码从 Hive 表中读取或写入数据。
- 模型持久化:在鸢尾花分类示例中,模型存储在 Alibaba OSS 中。如果要将模型存储在其他存储系统(如 Amazon S3 或 Google NFS)中,需要根据所选存储系统的要求实现模型持久化逻辑。
使用 YAML 文件配置 XGBoost 作业。
YAML 文件用于配置 XGBoost 作业的计算资源和运行环境,例如工作器/主节点的数量和 CPU/GPU 的数量。请参考此 YAML 模板进行配置。
将 XGBoost 作业提交到 Kubernetes 集群。
使用 kubectl 提交分布式 XGBoost 作业,如此处所示。
参考
- https://github.com/kubeflow/training-operator
- https://github.com/kubeflow/training-operator/tree/master/examples/xgboost/xgboost-dist
- https://xgboost.readthedocs.io/en/latest/tutorials/kubernetes.html