Skip to content

Conversation

@trivialfis
Copy link
Member

  • Support multi-target for the following objectives:
    • hinge
    • poisson
    • tweedie
    • pseudohubererror
    • squaredlogerror
  • Add tests.

ref #9043

- Support multi-target for the following objectives:
  + hinge
  + poisson
  + tweedie
  + pseudohubererror
  + squaredlogerror
- Add tests.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Extends XGBoost’s multi-target (multi-output tree) coverage for additional built-in objectives, and adds CPU/GPU Python tests to guard against regressions.

Changes:

  • Update regression objectives to correctly handle multi-target gradient shapes/indices (notably Poisson/Tweedie; fix indexing for squaredlog/pseudohuber).
  • Add reusable label validation types for Poisson/Tweedie label constraints.
  • Add CPU + GPU Python test cases covering the newly supported objectives (and broader regression objective coverage).

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/python/test_multi_target.py Adds CPU test entry points for additional objectives under multi-target training.
tests/python-gpu/test_gpu_multi_target.py Adds GPU test entry points for the same objectives under multi-target training.
src/objective/regression_obj.cu Implements/adjusts multi-target gradient computation for Poisson/Tweedie and fixes per-target gradient indexing for some objectives.
src/objective/regression_loss.h Introduces Poisson/Tweedie label validation helpers used by objectives.
src/objective/aft_obj.cu Adds a runtime check clarifying AFT label usage requirements.
python-package/xgboost/testing/multi_target.py Adds a common regression-objective test helper and new per-objective multi-target test runners.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@trivialfis
Copy link
Member Author

cc @rongou

@trivialfis trivialfis merged commit 81ae2e9 into dmlc:master Jan 28, 2026
76 checks passed
@trivialfis trivialfis deleted the mt-obj-tests branch January 28, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants