安装指南

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 算法或联邦学习,您有两种选择

  1. 升级到使用 glibc 2.28+ 的最新 Linux 发行版。或者

  2. 从源代码构建 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]linuxwin64。(我们构建了 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

Maven
<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>
sbt
libraryDependencies ++= Seq(
  "ml.dmlc" %% "xgboost4j-spark" % "latest_version_num"
)
  • XGBoost4j-Spark-GPU

Maven
<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>
sbt
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]linuxwin64。(我们构建了 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

Maven
<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>
sbt
resolvers += "XGBoost4J Snapshot Repo" at "https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/snapshot/"

然后添加 XGBoost4J-Spark 作为依赖项

maven
<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>
sbt
libraryDependencies ++= Seq(
  "ml.dmlc" %% "xgboost4j-spark" % "latest_version_num-SNAPSHOT"
)
  • XGBoost4j-Spark-GPU

maven
<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>
sbt
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.12xgboost4j-spark-gpu_2.12(注意 gpu 后缀)。