Skip to content

Forward merge release/25.12 into main#7519

Merged
rapids-bot[bot] merged 7 commits intorapidsai:mainfrom
jcrist:main-merge-release-25.12
Nov 21, 2025
Merged

Forward merge release/25.12 into main#7519
rapids-bot[bot] merged 7 commits intorapidsai:mainfrom
jcrist:main-merge-release-25.12

Conversation

@jcrist
Copy link
Copy Markdown
Member

@jcrist jcrist commented Nov 20, 2025

Not sure why this had issues (I saw no conflicts locally when fixing things), but I think I followed the process right. Should fix #7515.

This:

- Cleans up `SGD`, `MBSGDClassifier`, and `MBSGDRegressor`, following all the guidelines in rapidsai#7317.
- Adds a new `fit_sgd` function to handle fitting a linear model using SGD. This was the last part of rapidsai#6938 sans deprecation/removal of the solver classes themselves.
- Removes the undocumented `solver_model` attribute in favor of storing the fitted attributes on the models themselves.
- Adds support for all label types to `MBSGDClassifier`, bringing it in line with our other classifiers
- Adds a validation check to `MBSGDClassifier` to ensure it's fitting a binary classification problem, since multiclass is currently not supported.
- Removes the `SGD.predictClass` method. This method is now unused. It didn't validate the `SGD` represented a classification problem, didn't handle non [0, 1] classes, and didn't match any standard method name or interface. Our other solvers only support regression problems, with the caller required to convert the output to solve a classification problem when needed. I dropped it as a breaking change here since I doubt anyone is using it, but could back off to a deprecation if people feel strongly. Dropping it lets us rip out `target_dtype` sooner/easier.

Breaking Change Summary:
- Removal of `SGD.predictClass`
- `MBSGDClassifier.classes_` is now always a `numpy.ndarray` (mirroring the recent work on our other classifiers)

With this cleanup, `target_dtype` is no longer used. After this is in we can remove that bit from our api decorators/base class to simplify our internals further.

Part of rapidsai#7317.
Fixes rapidsai#6938.

Authors:
  - Jim Crist-Harif (https://github.com/jcrist)

Approvers:
  - Simon Adorf (https://github.com/csadorf)

URL: rapidsai#7504
@jcrist jcrist requested a review from a team as a code owner November 20, 2025 15:51
@jcrist jcrist requested a review from csadorf November 20, 2025 15:51
@github-actions github-actions Bot added the Cython / Python Cython or Python issue label Nov 20, 2025
@jcrist jcrist added improvement Improvement / enhancement to an existing function non-breaking Non-breaking change labels Nov 20, 2025
Copy link
Copy Markdown
Contributor

@csadorf csadorf left a comment

Choose a reason for hiding this comment

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

Looks correct to me.

We need to make sure to not squash this and usemerge nosquash for merge.

trxcllnt and others added 6 commits November 20, 2025 17:00
With all the work in rapidsai#7317, we're now at a point where `target_dtype` is no longer used.

This PR removes `target_dtype` and all supporting infra. This simplifies our decorators and base class, and reduces the amount of state stored on an estimator. Since this was all private implementation details, this is not a breaking change.

Authors:
  - Jim Crist-Harif (https://github.com/jcrist)

Approvers:
  - Anupam (https://github.com/aamijar)
  - Simon Adorf (https://github.com/csadorf)

URL: rapidsai#7516
…dsai#7481)

Closes rapidsai#7143

This PR improves memory usage in UMAP when given a precomputed knn graph.
Previously, a user-given knn graph will occupy GPU memory throughout the full UMAP pipeline even though it is not needed in later steps of UMAP.

In this PR, if the user-given knn graph is on host memory, we keep it on host memory and copy to device at the cpp level to allow better memory management.

### This PR with precomputed knn graph on CPU
<img width="808" height="313" alt="Screenshot 2025-11-12 at 7 00 33 PM" src="https://github.com/user-attachments/assets/6c752f62-a1b2-4fb1-a44d-d86ed468915b" />

### Before with precomputed knn graph on CPU
<img width="828" height="316" alt="Screenshot 2025-11-12 at 7 01 12 PM" src="https://github.com/user-attachments/assets/8237fdd4-e0bb-48f5-bc46-71878ce14b33" />

Authors:
  - Jinsol Park (https://github.com/jinsolp)

Approvers:
  - Philip Hyunsu Cho (https://github.com/hcho3)
  - Simon Adorf (https://github.com/csadorf)
  - Tarang Jain (https://github.com/tarang-jain)

URL: rapidsai#7481
Dropping xgboost from our CI for now while upstream builds are fixed.

Stopgap for rapidsai#7520. Supersedes rapidsai#7523.

Authors:
  - Jim Crist-Harif (https://github.com/jcrist)

Approvers:
  - https://github.com/jakirkham

URL: rapidsai#7526
@jcrist jcrist force-pushed the main-merge-release-25.12 branch from 398a59c to 1f27d78 Compare November 21, 2025 21:24
@jcrist jcrist requested review from a team as code owners November 21, 2025 21:24
@jcrist jcrist requested review from msarahan and vyasr November 21, 2025 21:24
Copy link
Copy Markdown
Contributor

@bdice bdice left a comment

Choose a reason for hiding this comment

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

Approving CI/packaging changes. We'll want to revert the xgboost changes to re-enable it in both release/25.12 (and forward-merge to main) as soon as rapidsai/xgboost-feedstock#110 goes in.

@jcrist
Copy link
Copy Markdown
Member Author

jcrist commented Nov 21, 2025

/merge

@rapids-bot rapids-bot Bot merged commit a158710 into rapidsai:main Nov 21, 2025
200 of 204 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci conda conda issue CUDA/C++ Cython / Python Cython or Python issue improvement Improvement / enhancement to an existing function non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants