安装指南

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 算法。从发布页面下载二进制包。文件名将采用 xgboost_r_gpu_[os]_[version].tar.gz 形式,其中 [os]linuxwin64。(我们为 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

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 安装。请参阅此处了解详细信息。

您可以在 https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/list.html 浏览 Maven 存储库的文件列表。

要启用 GPU 算法(device='cuda'),请改用 artifact xgboost4j-gpu_2.12xgboost4j-spark-gpu_2.12(注意 gpu 后缀)。