安装指南
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 算法或联邦学习,你有两个选择:
升级到 glibc 2.28+ 的最新 Linux 发行版。 或
从源代码构建 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
<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>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j" % "latest_version_num",
"ml.dmlc" %% "xgboost4j-spark" % "latest_version_num"
)
XGBoost4j-GPU/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-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>
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.12
和 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 作为依赖项:
<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>
libraryDependencies ++= Seq(
"ml.dmlc" %% "xgboost4j" % "latest_version_num-SNAPSHOT",
"ml.dmlc" %% "xgboost4j-spark" % "latest_version_num-SNAPSHOT"
)
XGBoost4j-GPU/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-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>
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.12
和 xgboost4j-spark-gpu_2.12
代替(注意 gpu
后缀)。