安装指南
XGBoost 为某些语言绑定提供了二进制包。这些二进制包支持在配备 NVIDIA GPU 的机器上使用 GPU 算法(device=cuda:0)。请注意,多 GPU 训练仅支持 Linux 平台。请参阅XGBoost GPU 支持。我们有稳定版本和每夜构建版本,请参阅下文了解如何安装它们。有关从源代码构建的信息,请访问此页面。
稳定版本
Python
每个版本都会将预构建的二进制 wheel 上传到 PyPI (Python Package Index)。支持的平台包括 Linux (x86_64, aarch64)、Windows (x86_64) 和 MacOS (x86_64, Apple Silicon)。
# Pip 21.3+ is required
pip install xgboost
如果您遇到权限错误,可能需要使用 --user 标志运行命令或使用 virtualenv。
注意
Python 包的部分内容现在需要 glibc 2.28+
从 2.1.0 版本开始,XGBoost Python 包将以两种变体发布
manylinux_2_28:适用于 glibc 2.28 或更新版本的最新 Linux 发行版。此变体启用所有功能。manylinux2014:适用于 glibc 版本低于 2.28 的旧 Linux 发行版。此变体不支持 GPU 算法或联邦学习。
pip 包管理器将根据您的系统自动选择正确的变体。
从 2025 年 5 月 31 日开始,我们将停止分发 manylinux2014 变体,并仅分发 manylinux_2_28 变体。我们做出此决定是为了使我们的 CI/CD 管道不再依赖于已终止支持的软件组件(如 CentOS 7)。我们强烈建议所有人迁移到最新的 Linux 发行版,以便使用未来版本的 XGBoost。
注意:如果您想在较旧的 Linux 发行版上使用 GPU 算法或联邦学习,您有两种选择
升级到 glibc 2.28+ 的最新 Linux 发行版。或
从源代码构建 XGBoost。
注意
Windows 用户需要安装 Visual C++ 可再发行组件
XGBoost 需要来自Visual C++ 可再发行组件的 DLL 才能运行,因此请务必安装它。例外:如果您已安装 Visual Studio,则您已经拥有必要的库,因此无需安装 Visual C++ 可再发行组件。
各平台二进制 wheel 的功能
平台 |
GPU |
多节点多 GPU |
|---|---|---|
Linux x86_64 |
✔ |
✔ |
Linux aarch64 |
✘ |
✘ |
MacOS x86_64 |
✘ |
✘ |
MacOS Apple Silicon |
✘ |
✘ |
Windows |
✔ |
✘ |
最小安装 (仅限 CPU)
使用 pip 的默认安装将安装完整的 XGBoost 包,包括对 GPU 算法和联邦学习的支持。
您可以选择安装 xgboost-cpu 以减小安装包的大小并节省磁盘空间。
pip install xgboost-cpu
xgboost-cpu 变体将大幅减小磁盘占用,但不提供某些功能,例如 GPU 算法和联邦学习。
目前,xgboost-cpu 包适用于 x86_64 (amd64) Linux 和 Windows 平台。
Conda
您可以使用 Conda 包管理器安装 XGBoost
conda install -c conda-forge py-xgboost
Conda 应该能够检测您机器上是否存在 GPU 并安装正确版本的 XGBoost。如果您遇到问题,请尝试明确指出版本
# CPU variant
conda install -c conda-forge py-xgboost=*=cpu*
# GPU variant
conda install -c conda-forge py-xgboost=*=cuda*
要在没有 NVIDIA GPU 的机器上强制安装 GPU 版本,请使用环境变量 CONDA_OVERRIDE_CUDA,如 conda 文档中的“管理虚拟包”所述。
export CONDA_OVERRIDE_CUDA="12.8"
conda install -c conda-forge py-xgboost=*=cuda*
您可以从以下链接安装 Conda:下载 conda-forge 安装程序。
R
从 R Universe
install.packages('xgboost', repos = c('https://dmlc.r-universe.dev', 'https://cloud.r-project.org'))
注意
在 Mac OSX 上使用所有 CPU 核心 (线程)
如果您使用的是 Mac OSX,您应该首先通过运行以下命令安装 OpenMP 库(libomp)
brew install libomp
然后运行 install.packages("xgboost")。如果没有 OpenMP,XGBoost 将只使用一个 CPU 核心,导致训练速度不佳。
我们还提供带有 GPU 支持的实验性预构建二进制文件。使用此二进制文件,您无需从源代码构建 XGBoost 即可使用 GPU 算法。从发布页面下载二进制包。文件名将采用
xgboost_r_gpu_[os]_[version].tar.gz形式,其中[os]是linux或win64。(我们为 64 位 Linux 和 Windows 构建二进制文件。)然后通过运行以下命令安装 XGBoost# Install dependencies R -q -e "install.packages(c('data.table', 'jsonlite'))" # Install XGBoost R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz
从 CRAN (已过时)
警告
我们正在努力更新 XGBoost 的 CRAN 版本,在此期间,请使用 R-universe 中的包。
install.packages("xgboost")
注意
在 Mac OSX 上使用所有 CPU 核心 (线程)
如果您使用的是 Mac OSX,您应该首先通过运行以下命令安装 OpenMP 库(libomp)
brew install libomp
然后运行 install.packages("xgboost")。如果没有 OpenMP,XGBoost 将只使用一个 CPU 核心,导致训练速度不佳。
JVM
XGBoost4j-Spark
<properties>
...
<!-- Specify Scala version in package name -->
<scala.binary.version>2.12</scala.binary.version>
</properties>
<dependencies>
...
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j-spark_${scala.binary.version}</artifactId>
<version>latest_version_num</version>
</dependency>
</dependencies>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j-spark" % "latest_version_num"
)
XGBoost4j-Spark-GPU
<properties>
...
<!-- Specify Scala version in package name -->
<scala.binary.version>2.12</scala.binary.version>
</properties>
<dependencies>
...
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j-spark-gpu_${scala.binary.version}</artifactId>
<version>latest_version_num</version>
</dependency>
</dependencies>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j-spark-gpu" % "latest_version_num"
)
这将从 Maven Central 检出最新的稳定版本。
有关最新发布版本号,请查看发布页面。
要启用 GPU 算法(device='cuda'),请改用 artifact xgboost4j-spark-gpu_2.12(注意 gpu 后缀)。
注意
JVM 包不支持 Windows
目前,XGBoost4J-Spark 不支持 Windows 平台,因为分布式训练算法在 Windows 上无法运行。请使用 Linux 或 MacOS。
每夜构建
Python
提供每夜构建版本。您可以访问此页面,找到您想要的提交 ID 的 wheel 并使用 pip 安装
pip install <url to the wheel>
Python 预构建 wheel 的功能与稳定版本相同。
R
除了标准的 CRAN 安装外,我们还提供带有 GPU 支持的实验性预构建二进制文件。您可以访问此页面,找到您想要安装的提交 ID,然后找到文件 xgboost_r_gpu_[os]_[commit].tar.gz,其中 [os] 是 linux 或 win64。(我们为 64 位 Linux 和 Windows 构建二进制文件。)下载并运行以下命令
# Install dependencies
R -q -e "install.packages(c('data.table', 'jsonlite', 'remotes'))"
# Install XGBoost
R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz
JVM
XGBoost4j/XGBoost4j-Spark
<repository>
<id>XGBoost4J Snapshot Repo</id>
<name>XGBoost4J Snapshot Repo</name>
<url>https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/snapshot/</url>
</repository>
resolvers += "XGBoost4J Snapshot Repo" at "https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/snapshot/"
然后将 XGBoost4J-Spark 添加为依赖项
<properties>
...
<!-- Specify Scala version in package name -->
<scala.binary.version>2.12</scala.binary.version>
</properties>
<dependencies>
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j-spark_${scala.binary.version}</artifactId>
<version>latest_version_num-SNAPSHOT</version>
</dependency>
</dependencies>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j-spark" % "latest_version_num-SNAPSHOT"
)
XGBoost4j-Spark-GPU
<properties>
...
<!-- Specify Scala version in package name -->
<scala.binary.version>2.12</scala.binary.version>
</properties>
<dependencies>
<dependency>
<groupId>ml.dmlc</groupId>
<artifactId>xgboost4j-spark-gpu_${scala.binary.version}</artifactId>
<version>latest_version_num-SNAPSHOT</version>
</dependency>
</dependencies>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j-spark-gpu" % "latest_version_num-SNAPSHOT"
)
请查看 pom.xml 中的 version 字段以获取正确的版本号。
SNAPSHOT JAR 由 XGBoost 项目托管。 master 分支中的每次提交都会自动触发新的 SNAPSHOT JAR 的生成。您可以通过指定 updatePolicy 来控制 Maven 应该多久升级一次您的 SNAPSHOT 安装。请参阅此处了解详细信息。
您可以在 https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/list.html 浏览 Maven 存储库的文件列表。
要启用 GPU 算法(device='cuda'),请改用 artifact xgboost4j-gpu_2.12 和 xgboost4j-spark-gpu_2.12(注意 gpu 后缀)。