Commit Graph

3823 Commits

Author SHA1 Message Date
James Lamb ac8d3afd2a [python-package] eagerly construct Dataset in scikit-learn fit() 2026-05-22 22:37:49 -05:00
Oliver Borchert 1376fd7a95 [c++] Remove incorrect const modifier from Arrow-related C API (#7284) 2026-05-18 20:11:12 -05:00
Oliver Borchert e5f2615444 [R-package] Skip compilation of Arrow-related C++ code (#7283) 2026-05-17 21:52:12 -05:00
James Lamb a3734ed272 [python-package] publish nightlies to pypi.anaconda.org (#7245) 2026-05-17 05:30:14 +00:00
James Lamb eda8bdccf2 [ci] [R-package] fix docs build, test pkgdown build in CI (#7268)
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-05-17 03:53:03 +08:00
Oliver Borchert 8490fde16a [python-package] Add official support for Python 3.14 (#7279)
* [python-package] Add official support for Python 3.14

* Fix lint

* Update .github/workflows/python_package.yml
2026-05-16 18:59:52 +00:00
Oliver Borchert d452cf8409 [python-package] Bump minimum pyarrow version to v16.0.0 (#7280)
* [python-package] Bump minimum pyarrow version to v16.0.0

* snappy
2026-05-17 01:27:47 +08:00
Oliver Borchert 634c864bc7 [python-package] Enable ruff rule B905 (#7278)
* [python-package] Enable ruff rule `B905`

* Use strict true

* Fix

* Fix

* Fix test
2026-05-16 10:57:01 +00:00
Max Buckley 3140ef489a [cuda] Fix dense histogram offset issue for global-memory (#7261)
[cuda] fix discretized dense histogram global-memory offset

CUDAConstructDiscretizedHistogramDenseKernel_GlobalMemory mis-based its
shared_hist_packed pointer on partition_column_start (column-index space)
where partition_hist_start (bin space) is required. The two coincide only
when every column has exactly one bin, which never holds in real
histogram-based training. The three analogous kernels in the same file
(non-discretized dense at line 156, non-discretized sparse at line 215,
discretized sparse at line 472) all use partition_hist_start.

Affects only the dense + use_quantized_grad + USE_GLOBAL_MEM_BUFFER
dispatch path (line 615).

Flips the regression test added in the previous commit from FAIL to PASS.

Co-authored-by: shiyu1994 <shiyu_k1994@qq.com>
2026-05-15 22:16:31 -05:00
Oliver Borchert fe2673720a [python-package] Bump minimum supported Python version to 3.10 (#7276) 2026-05-15 10:15:04 -05:00
Oliver Borchert cf4121dd75 [python-package] Bump minimum pyarrow dependency version to v14.0.2 (#7277) 2026-05-14 19:26:44 -05:00
James Lamb c259914c99 [docs] add 'darts' and 'nvForest' to list of external repositories (#7272) 2026-05-14 07:06:46 -05:00
dependabot[bot] 2a675f269d [ci]: Bump the ci-dependencies group with 3 updates (#7252)
Bumps the ci-dependencies group with 3 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact), [NuGet/setup-nuget](https://github.com/nuget/setup-nuget) and [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter).


Updates `actions/upload-artifact` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a)

Updates `NuGet/setup-nuget` from 2.0.1 to 3.1.0
- [Release notes](https://github.com/nuget/setup-nuget/releases)
- [Commits](https://github.com/nuget/setup-nuget/compare/323ab0502cd38fdc493335025a96c8fdb0edc71f...b26b823c478ee115be5c9403e62c90b0bf943843)

Updates `release-drafter/release-drafter` from 6.4.0 to 7.2.0
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/6a93d829887aa2e0748befe2e808c66c0ec6e4c7...5de93583980a40bd78603b6dfdcda5b4df377b32)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci-dependencies
- dependency-name: NuGet/setup-nuget
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci-dependencies
- dependency-name: release-drafter/release-drafter
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-05-06 15:24:39 -05:00
James Lamb 33e90a5b84 [ci] update to r-lib/actions v2.12.0, align 'pip' and 'python' to same interpreter in 'build-python.sh' (#7249) 2026-05-06 09:18:28 -05:00
James Lamb 9545905b9a [ci] cut some macOS jobs (#7223)
* [ci] cut some macOS jobs

* MPI + gcc + arm64 combination has issues... stick to known-working combinations for now
2026-04-30 23:46:21 -05:00
Kyosuke Higuchi a898cfc1c3 [docs] add LightGBM-MoE to external repositories list (#7247) 2026-04-30 14:19:58 -05:00
James Lamb 6d7d06e882 [c++] mark a few more read-only methods const (#7228) 2026-04-23 20:40:17 -05:00
James Lamb 0c4c50a286 [docs] add Michael Mayer to CODEOWNERS and docs (#7239) 2026-04-23 09:55:20 -05:00
Arjun Prakash 2ccb9fd104 [python-package] fix misleading redundant parameter warnings in Booster.refit() (#7124)
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-04-23 09:55:01 -05:00
James Lamb 4472f3901e [ci] adapt to scikit-learn ClassifierChain changes, fix {fs} install, work around pyarrow type-checking issues (#7236) 2026-04-22 23:13:23 -05:00
James Lamb 9fed960ed0 [ci] [R-package] drop 'icc' test job, update clang and GCC r-hub container jobs (#7222) 2026-04-19 22:34:32 -05:00
James Lamb f72ac26123 [ci] remove uses of azurecr.io for CI images (#7199) 2026-04-07 11:54:16 -05:00
James Lamb d7b76a92f5 [ci] enforce 'zizmor' checks in CI (#7218) 2026-04-07 11:52:09 -05:00
dependabot[bot] d14c4ba002 [ci]: Bump actions/download-artifact from 8.0.0 to 8.0.1 in the ci-dependencies group (#7216)
[ci]: Bump actions/download-artifact in the ci-dependencies group

Bumps the ci-dependencies group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/download-artifact` from 8.0.0 to 8.0.1
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 8.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 13:27:11 +02:00
James Lamb a7d00a9611 [python-package] standardize variable naming for evaluation results (#7163) 2026-04-01 11:38:47 -05:00
James Lamb 80ed9f69f5 [c++] remove unused ArrayArgs::CheckAllZero(), reduce macro scope in socket_wrapper (#7201) 2026-04-01 07:09:23 -05:00
James Lamb 940d6f368c [R-package] deprecate lgb.interprete() (#7148) 2026-04-01 07:08:33 -05:00
CoderWota 180e35c47d [python-package] Add decision_function() to LGBMClassifier (#7159)
Co-authored-by: Wota <wota@wota.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-03-31 23:10:01 -05:00
daguirre11 eb27a2f441 [python-package] Add tests on Booster.eval() handling of new validation sets (#7167)
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-03-31 22:21:09 -05:00
James Lamb 64ab66e694 [cmake] move cmake_minimum_required to first line (#7210) 2026-03-31 21:49:14 -05:00
James Lamb b301f6c8b7 [ci] restore nightly-scipy testing, update nightly floors (#7213) 2026-03-31 06:52:20 -05:00
James Lamb 648ae78b52 [ci] [dask] restore testing against new dask versions, fix {fs} install (again) (#7211) 2026-03-27 10:57:35 -05:00
James Lamb 16f7245c99 [ci] install 'CMake' in R-package jobs for {fs} (#7209) 2026-03-23 08:05:09 -05:00
James Lamb 8e7f3dcf42 [c++] fix multithreading pragma in LeafSplits::Init() (#7200) 2026-03-15 06:51:17 -05:00
James Lamb 0412fd8712 [ci] pin GitHub Actions to commit SHAs (#7192) 2026-03-11 18:42:52 -05:00
James Lamb 1d878207fc [docs] [ci] Update docs and source code for org change (#7188)
* update organization reference, copyrights

* add note about the repo change

* make all GPU CI manual-only
2026-03-11 07:02:01 -05:00
dependabot[bot] a27c84aad4 [ci]: Bump the ci-dependencies group with 3 updates (#7174)
Bumps the ci-dependencies group with 3 updates: [actions/upload-artifact](https://github.com/actions/upload-artifact), [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) and [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/upload-artifact` from 6 to 7
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

Updates `lycheeverse/lychee-action` from 2.7.0 to 2.8.0
- [Release notes](https://github.com/lycheeverse/lychee-action/releases)
- [Commits](https://github.com/lycheeverse/lychee-action/compare/v2.7.0...v2.8.0)

Updates `actions/download-artifact` from 7 to 8
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci-dependencies
- dependency-name: lycheeverse/lychee-action
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci-dependencies
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-03-07 21:11:36 -06:00
Jeff Daily bae0b7ba95 [ROCm] fix build, add rccl support (#7185)
[ROCm] update ROCm support

After #7039 was merged, ROCm builds were reported as broken.
This fixes the build, notably adding rccl support.
2026-03-06 09:39:05 +08:00
Jeff Daily e5bd90d6aa [ROCm] add ROCm support (pt. 2) (#7039)
* [ROCm] re-add support for ROCm builds

Previously #6086 added ROCm support but after numerous rebases it lost
critical changes. This PR restores the ROCm build.

There are many source file changes but most were automated using the
following:

```bash
for f in `grep -rl '#ifdef USE_CUDA'`
do
    sed -i 's@#ifdef USE_CUDA@#if defined(USE_CUDA) || defined(USE_ROCM)@g' $f
done

for f in `grep -rl '#endif  // USE_CUDA'`
do
    sed -i 's@#endif  // USE_CUDA@#endif  // USE_CUDA || USE_ROCM@g' $f
done
```

* Fix error in cpp_tests/test_arrow.cpp.

error: explicit specialization in non-namespace scope ‘class ArrowChunkedArrayTest’

* update for ROCm 7 BC-breaking change to warpSize

* lint

* Revert "Fix error in cpp_tests/test_arrow.cpp."

This reverts commit e461e868de85a6b7ef8aceeaaf95cf39d7420ab3.

* partial revert of 61ec4f1aa215ca3381e7b79e98f002dc0c021d77

Instead of replacing all #ifdef USE_CUDA, just add USE_CUDA define to ROCm build.

* add --use-rocm option to build-python.sh

* fix cuda build missing CUDASUCCESS_OR_FATAL in vector_cudahost.h

* add rocm docs

* fix doc using pre-commit

* apply reviewer suggestions

* fix build-python.sh doc

* fix build for rocm 7.0

---------

Co-authored-by: James Lamb <jaylamb20@gmail.com>
Co-authored-by: shiyu1994 <shiyu_k1994@qq.com>
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
2026-03-06 01:33:24 +08:00
shiyu1994 569f89ac07 [CUDA] Multi-GPU for CUDA Version (#6138)
* initialize nccl

* change year in header

* add implementation of nccl gbdt

* add nccl topology

* clean up

* clean up

* set nccl info

* support quantized training with categorical features on cpu

* remove white spaces

* add tests for quantized training with categorical features

* skip tests for cuda version

* fix cases when only 1 data block in row-wise quantized histogram construction with 8 inner bits

* remove useless capture

* fix inconsistency of gpu devices

* fix creating boosting object from file

* change num_gpu to num_gpus in test case

* fix objective initialization

fix lint errors

* fix c++ compilation warning

* fix lint errors

* fix compilation warnings

* change num_gpu to num_gpus in R test case

* add nccl synchronization in tree training

* fix global num data update

* fix ruff-format issues

* use global num data in split finder

* explicit initialization of NCCLInfo members

* fix compilation

* use CUDAVector

* use CUDAVector

* merge master

* use CUDAVector

* use CUDAVector for cuda tree and column data

* update gbdt

* changes for cuda tree

* use CUDAVector for cuda column data

* disable cuda by default

* fix single machine gbdt

* clean up

* fix typo

* fix lint issues

* use num_gpu instead of num_gpus

* fix compilation error

* fix cpp lint errors

* fix reset config for cuda data partition

* fix subrow copy in cuda column data

* fix cmakelint errors

* Update include/LightGBM/config.h

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update include/LightGBM/config.h

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update include/LightGBM/cuda/cuda_nccl_topology.hpp

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update include/LightGBM/config.h

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update src/treelearner/cuda/cuda_data_partition.cu

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update src/treelearner/cuda/cuda_data_partition.cu

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* Update src/treelearner/cuda/cuda_leaf_splits.cu

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* remove WARPSIZE before #6086 is merged

* Update src/treelearner/cuda/cuda_leaf_splits.cu

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* update docs

* Update src/treelearner/cuda/cuda_leaf_splits.cu

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>

* update documentation to indicate supporting of multi-node multi-gpu training of CUDA version

* add header guard

* update document for parameters

* fix lint errors

* fix header ordering

* update Nccl to NCCL

---------

Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
2026-03-02 13:18:31 +08:00
Juan Flores 55a26969b7 [python-package] plot_importance(): raise clearer exception when model has 0 splits (#7160)
* [python-package] fix plot_importance() crash when model has 0 splits

* address review: use load_breast_cancer + min_data_in_bin

---------

Co-authored-by: Juan Flores <juanf-0gravity@users.noreply.github.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-03-01 14:17:55 -06:00
Austin Wagner ae2f3e0833 [python-package] fix test_numeric_split_direction to test all parameter combinations (#7131)
The test was skipping the [use_missing=True, zero_as_missing=True] combination
instead of properly testing it. When both flags are True, zeros and NaN are both
treated as missing and reach the same leaf. The assertion now correctly checks
for same leaf (when zero_as_missing=True) vs different leaves (when False).

Co-authored-by: James Lamb <jaylamb20@gmail.com>
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
2026-02-28 22:53:43 -06:00
daguirre11 e3d52709fd [python-package] Added test for plot_metric ylim (#7164) 2026-02-23 18:14:37 -06:00
daguirre11 7831a99c71 [python-package] Added test for plot_split_value_histogram ylim (#7165) 2026-02-23 18:09:11 -06:00
James Lamb 8d4443b74c [python-package] [ci] use 'auditwheel' to check GLIBC versions for Linux wheels, update wheel tags (#7134) 2026-02-18 21:29:18 -06:00
James Lamb fb973c0ecf [python-package] [dask] [ci] fix predict() type hints, enforce mypy in CI (#7140) 2026-02-12 21:11:04 -06:00
DEBORAH FUNMILOLA OLABOYE e582feee76 [python-package] Add tests for some plotting functions (#7144) 2026-02-07 18:26:23 -06:00
dependabot[bot] 4040edf5ab [ci]: Bump release-drafter/release-drafter from 6.1.0 to 6.2.0 in the ci-dependencies group (#7146)
[ci]: Bump release-drafter/release-drafter in the ci-dependencies group

Bumps the ci-dependencies group with 1 update: [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter).


Updates `release-drafter/release-drafter` from 6.1.0 to 6.2.0
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 10:45:44 +01:00
daguirre11 93c80e614d [python-package] Added test for plot_importance(figsize) (#7143)
Co-authored-by: D’Angelo Aguirre <dangeloaguirre@DAngelos-MacBook-Air.local>
Co-authored-by: D’Angelo Aguirre <dangeloaguirre@DAngelos-Air.lan>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
2026-01-31 21:46:49 -06:00
daguirre11 74fa386346 [python-package] Added test for plotting.ylim (#7142)
Co-authored-by: D’Angelo Aguirre <dangeloaguirre@DAngelos-MacBook-Air.local>
2026-01-31 20:26:58 -06:00