Skip to content

[RFC] XGBoost 1.1.0 Release Candidate #5593

@hcho3

Description

@hcho3

Roadmap: #5337

We are about to release version 1.1.0 of XGBoost. In the next two weeks, we invite everyone to try out the release candidate (RC).

Feedback period: until the end of May 8, 2020 May 15, 2020 (extended because we made RC2). No new feature will be added to the release; only critical bug fixes will be added.

@dmlc/xgboost-committer

Now available

  • Python package. RC2 available on PyPI. Try it out with the command
python3 -m pip install xgboost==1.1.0rc2
  • R package. RC2 available from the Releases section. Download the tarball file xgboost_1.1.0.1.tar.gz and run
R CMD INSTALL xgboost_1.1.0.1.tar.gz
  • JVM packages. RC2 available from our Maven repository. Add XGBoost4J as dependency to your Java application.

Maven

<dependencies>
  ...
  <dependency>
      <groupId>ml.dmlc</groupId>
      <artifactId>xgboost4j_${scala.binary.version}</artifactId>
      <version>1.1.0-RC2</version>
  </dependency>
  <dependency>
      <groupId>ml.dmlc</groupId>
      <artifactId>xgboost4j-spark_${scala.binary.version}</artifactId>
      <version>1.1.0-RC2</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
    <id>XGBoost4J Release Repo</id>
    <name>XGBoost4J Release Repo</name>
    <url>https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/release/</url>
  </repository>
</repositories>

For scala.binary.version, you may choose 2.11 or 2.12.

SBT

libraryDependencies ++= Seq(
  "ml.dmlc" %% "xgboost4j" % "1.1.0-RC2",
  "ml.dmlc" %% "xgboost4j-spark" % "1.1.0-RC2"
)
resolvers += ("XGBoost4J Release Repo"
              at "https://s3-us-west-2.amazonaws.com/xgboost-maven-repo/release/")

TODOs

  • Create a new branch release_1.1.0.
  • Create Python wheels and upload to PyPI.
  • Upload RC2 to our Maven repo.
  • Create a tarball for the R package and upload to the Releases section
  • Write release note

Known limitations

  • (Python package) When early stopping is activated with early_stopping_rounds, the prediction method (xgb.train()) behaves in a surprising way. If XGBoost runs for M rounds and chooses iteration N (N < M) as the best iteration, then the prediction method will use M trees by default. To use the best iteration (N trees), users will need to manually take the best iteration field bst.best_iteration and pass it as the ntree_limit argument to xgb.predict(). See [R] Best iteration index from early stopping is discarded when model is saved to disk #5209 for additional context.
  • GPU ranking objective is currently not deterministic (GPU ranking objective is not deterministic. #5561).
  • When training parameter reg_lambda is set to zero, some leaf nodes may be assigned a NaN value. (See discussion) For now, please set reg_lambda to a nonzero value.

Deprecation notices

  • Python 3.5. This release is the last release to support Python 3.5. The following release (1.2.0) will require Python 3.6.
  • CUDA 9.0. This release requires CUDA 9.2, and is the last release to support CUDA 9.x. The following release (1.2.0) will require CUDA 10.0.
  • Scala 2.11. Currently XGBoost4J supports Scala 2.11. However, if a future release of XGBoost adopts Spark 3, it will not support Scala 2.11, as Spark 3 requires Scala 2.12+. We do not yet know which XGBoost release will adopt Spark 3.
  • Python package manager (Pip). Your Linux machine may have an old version of Pip and may attempt to install a source package, leading to long installation time. This is because we are now using manylinux2010 tag in the binary wheel release. Ensure you have Pip 19.0 or newer by running python3 -m pip -V to check the version. Upgrade Pip with command
python3 -m pip install --upgrade pip

Outstanding patches that should make it into the 1.1.0 release:

Merged after RC1:

Merged after RC2:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions