安装指南
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 算法。从 Releases 页面下载二进制包。文件名格式为
xgboost_r_gpu_[os]_[version].tar.gz
,其中[os]
是linux
或win64
。(我们构建了 64 位 Linux 和 Windows 的二进制文件。)下载该文件并运行以下命令# Install dependencies R -q -e "install.packages(c('data.table', 'jsonlite'))" # Install XGBoost R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz
从 CRAN (已过时)
警告
我们正在努力更新 CRAN 上的 XGBoost 版本,在此期间,请使用 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 安装。详情请参见 此处。
您可以浏览 Maven 仓库的文件列表,地址为 https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/list.html。
要启用 GPU 算法 (device='cuda'
),请改用 artifact xgboost4j-gpu_2.12
和 xgboost4j-spark-gpu_2.12
(注意 gpu
后缀)。