Xgboost: [RFC] XGBoost 1.1.0 Release Candidate

Created on 24 Apr 2020  路  5Comments  路  Source: dmlc/xgboost

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

  • [x] Create a new branch release_1.1.0.
  • [x] Create Python wheels and upload to PyPI.
  • [x] Upload RC2 to our Maven repo.
  • [x] Create a tarball for the R package and upload to the Releases section
  • [x] 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 #5209 for additional context.
  • GPU ranking objective is currently 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:

  • [x] #5596
  • [x] #5597, #5602, #5606
  • [x] #5600
  • [x] #5604
  • [x] #5617

Merged after RC2:

  • [x] #5642
  • [x] #5649
  • [x] #5660

Most helpful comment

RC2 is released.

All 5 comments

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

That's only true for Python.

@trivialfis Thanks. I've added (Python package) prefix.

RC2 is released.

Added merged after RC2 section.

1.1.0 is now on PyPI. I'm still working on the release note and will put it up soon.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

XiaoxiaoWang87 picture XiaoxiaoWang87  路  3Comments

matthewmav picture matthewmav  路  3Comments

uasthana15 picture uasthana15  路  4Comments

FabHan picture FabHan  路  4Comments

RanaivosonHerimanitra picture RanaivosonHerimanitra  路  3Comments