安装指南

XGBoost 为某些语言绑定提供了二进制包。二进制包支持在配备 NVIDIA GPU 的机器上使用 GPU 算法(device=cuda:0)。请注意,多 GPU 训练仅支持 Linux 平台。请参阅 XGBoost GPU 支持。我们还提供了稳定版本和夜间构建版本,请参阅下方了解如何安装它们。如需从源代码构建,请访问 此页面

稳定版本

Python

预构建的二进制轮子会为每个版本上传到 PyPI(Python 包索引)。支持的平台有 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++ Redistributable

XGBoost 需要来自 Visual C++ Redistributable 的 DLL 才能正常工作,因此请确保安装它。例外:如果您已安装 Visual Studio,您已经可以访问必要的库,因此不需要安装 Visual C++ Redistributable。

每个平台的二进制轮的功能:

平台

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 算法和联邦学习。

Conda

您可以使用 Conda 包管理器来安装 XGBoost:

conda install -c conda-forge py-xgboost

Conda 应该能够检测到您机器上是否存在 GPU,并安装正确版本的 XGBoost。如果您遇到问题,尝试明确指定版本:

# CPU only
conda install -c conda-forge py-xgboost-cpu
# Use NVIDIA GPU
conda install -c conda-forge py-xgboost-gpu

访问 Miniconda 网站 以获取 Conda。

备注

py-xgboost-gpu 在 Windows 上不可用。

py-xgboost-gpu 目前在 Windows 上不可用。如果你使用的是 Windows,请使用 pip 安装支持 GPU 的 XGBoost。

R

  • 从CRAN:

    install.packages("xgboost")
    

    备注

    使用 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构建二进制文件。)然后通过运行以下命令安装XGBoost:

    # Install dependencies
    R -q -e "install.packages(c('data.table', 'jsonlite'))"
    # Install XGBoost
    R CMD INSTALL ./xgboost_r_gpu_linux.tar.gz
    

JVM

  • XGBoost4j/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_${scala.binary.version}</artifactId>
      <version>latest_version_num</version>
  </dependency>
  <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" % "latest_version_num",
  "ml.dmlc" %% "xgboost4j-spark" % "latest_version_num"
)
  • XGBoost4j-GPU/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-gpu_${scala.binary.version}</artifactId>
      <version>latest_version_num</version>
  </dependency>
  <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-gpu" % "latest_version_num",
  "ml.dmlc" %% "xgboost4j-spark-gpu" % "latest_version_num"
)

这将检查来自 Maven Central 的最新稳定版本。

如需查看最新发布版本的版本号,请访问 发布页面

要启用GPU算法(device='cuda'),请使用工件 xgboost4j-gpu_2.12xgboost4j-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 作为依赖项:

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_${scala.binary.version}</artifactId>
      <version>latest_version_num-SNAPSHOT</version>
  </dependency>
  <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" % "latest_version_num-SNAPSHOT",
  "ml.dmlc" %% "xgboost4j-spark" % "latest_version_num-SNAPSHOT"
)
  • XGBoost4j-GPU/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-gpu_${scala.binary.version}</artifactId>
      <version>latest_version_num-SNAPSHOT</version>
  </dependency>
  <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-gpu" % "latest_version_num-SNAPSHOT",
  "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'),请使用工件 xgboost4j-gpu_2.12xgboost4j-spark-gpu_2.12 代替(注意 gpu 后缀)。