Skip to content

[release-2.57.0][release] Fix huggingface_accelerate release test: floor peft>=0.18 for transformers 5.x (#65062) - #65101

Merged
elliot-barn merged 1 commit into
releases/2.57.0from
elliot-barn/cherry-pick-2.57.0-peft-floor
Jul 29, 2026
Merged

[release-2.57.0][release] Fix huggingface_accelerate release test: floor peft>=0.18 for transformers 5.x (#65062)#65101
elliot-barn merged 1 commit into
releases/2.57.0from
elliot-barn/cherry-pick-2.57.0-peft-floor

Conversation

@elliot-barn

Copy link
Copy Markdown
Collaborator

Cherry-pick of #65062 onto releases/2.57.0.

Why are these changes needed?

The huggingface_accelerate nightly release test fails at startup with:

ImportError: cannot import name 'HybridCache' from 'transformers'

Root cause: after the HuggingFace stack upgrade (#64054), the ray-ml base-extra-testdeps lock pairs transformers==5.11.0 with peft==0.17.1. peft has no source pin — it is pulled in transitively by lm_eval — so uv left it at a stale resolution. peft 0.17.x imports HybridCache from transformers at module scope, but transformers 5.x removed that class, and transformers' trainer_utils imports peft whenever it is installed, so any import transformers on the image crashes.

Fix: add a peft>=0.18 floor (0.18 made the HybridCache import lazy and version-guarded) to the ml byod source requirements for both py3.10 and py3.13, and recompile the affected locks.

Clean cherry-pick of merge commit 6e160e6 — no conflicts, diff identical to master.

Successful release test run on master: https://buildkite.com/ray-project/release/builds/102272/canvas

🤖 Generated with Claude Code

…or transformers 5.x (#65062)

## Why are these changes needed?

The `huggingface_accelerate` nightly release test fails at startup with:

```
ImportError: cannot import name 'HybridCache' from 'transformers'
```

Root cause: after the HuggingFace stack upgrade (#64054), the ray-ml
base-extra-testdeps lock pairs `transformers==5.11.0` with
`peft==0.17.1`.
`peft` has no source pin — it is pulled in transitively by `lm_eval` —
so uv
left it at a stale resolution. peft 0.17.x imports `HybridCache` from
transformers at module scope, but transformers 5.x removed that class,
and
transformers' `trainer_utils` imports peft whenever it is installed, so
any
`import transformers` on the image crashes.

Fix: add a `peft>=0.18` floor (0.18 made the `HybridCache` import lazy
and
version-guarded; verified 0.19.1 only references it inside a deferred
Gemma-specific code path) to the ml byod source requirements for both
py3.10
and py3.13, and recompile the affected locks:

-
`python/deplocks/base_extra_testdeps/ray-ml-base_extra_testdeps_py3.10.lock`:
peft 0.17.1 → 0.19.1 (no other resolution changes)
- `release/ray_release/byod/ml_torchft_py3.13.lock`: already resolved
peft 0.19.1; only picks up the new `via` annotation

## Related issue number

N/A — nightly release-test failure (`huggingface_accelerate`, Train
tests group).

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] I've run `scripts/format.sh` to lint the changes in this PR.
(pre-commit hooks ran at commit time)
- [ ] I've included any doc changes needed for
https://docs.ray.io/en/master/.
- [ ] I've added any new APIs to the API Reference.
- [x] I've made sure the tests are passing. Note that there might be a
few flaky tests, see the recent failures at https://flakey-tests.ray.io/

Testing:
- Locks regenerated with `bazel run //ci/raydepsets:raydepsets -- build
ci/raydepsets/configs/rayimg.depsets.yaml --name
ray_ml_base_extra_testdeps_cuda_310` and `... build
ci/raydepsets/configs/release_ml_torchft_tests.depsets.yaml` (both
compiled successfully; diffs are minimal as described above).
- Verified against the peft 0.19.1 wheel that `peft/peft_model.py` no
longer imports `HybridCache` at module scope.
- End-to-end verification requires a nightly image rebuild +
release-test run of `huggingface_accelerate`.

AI assistance: this PR was prepared with AI assistance (Claude Code); I
reviewed every changed line. Not a duplicate: searched open PRs for
`peft` and `huggingface_accelerate` — no existing PR addresses this
failure.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Successful release test run:
https://buildkite.com/ray-project/release/builds/102272/canvas

---------

Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
(cherry picked from commit 6e160e6)
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
@elliot-barn
elliot-barn requested a review from a team as a code owner July 29, 2026 01:55

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the peft dependency to version 0.19.1 (with a constraint of >=0.18) to prevent runtime import issues with newer versions of transformers. It also removes the obsolete byod_huggingface_transformers_test.sh post-build script, updates the Hugging Face test datasets to use the correct path (Yelp/yelp_review_full), imports AdamW from torch.optim instead of transformers, and updates evaluation_strategy to eval_strategy in TrainingArguments. There are no review comments, so I have no feedback to provide.

@ray-gardener ray-gardener Bot added the release-test release test label Jul 29, 2026
@elliot-barn
elliot-barn merged commit 44e5ef3 into releases/2.57.0 Jul 29, 2026
5 of 6 checks passed
@elliot-barn
elliot-barn deleted the elliot-barn/cherry-pick-2.57.0-peft-floor branch July 29, 2026 20:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-test release test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant