Skip to content

FIX Transformers v5 fixes#2934

Merged
BenjaminBossan merged 8 commits into
huggingface:mainfrom
BenjaminBossan:fix-issues-with-transformers-v5-rc
Dec 3, 2025
Merged

FIX Transformers v5 fixes#2934
BenjaminBossan merged 8 commits into
huggingface:mainfrom
BenjaminBossan:fix-issues-with-transformers-v5-rc

Conversation

@BenjaminBossan

@BenjaminBossan BenjaminBossan commented Dec 2, 2025

Copy link
Copy Markdown
Member

DON'T MERGE YET this installs transformers v5 rc in CI.

With the v5 rc being out, we should now ensure that the PEFT tests pass. This PR contains fixes to achieve that.

  1. hub_online_once was failing because transformers.utils.hub._is_offline_mode no longer exists. Using the new function instead if transformers v5 is detected.
  2. tests/test_encoder_decoder_models.py::TestEncoderDecoderModels::test_merge_layers[LoraConfig-config_kwargs10-peft-internal-testing/tiny-random-BartForConditionalGeneration] failing due to TrainableTokensWrapper not being applied to all layers owing to changes to _tied_weights_keys.
  3. While working on this, I discovered a tangential bug in TrainableTokensLayer.get_merged_weights. This method returns a torch.Tensor but the expected type is nn.Parameter (since foo.bar.weight is supposed to be a nn.Parameter). This type mismatch would cause torch's model.get_parameter, which I used in _get_module_names_tied_with_embedding, to fail. At first, I wanted to change the return type to nn.Parameter but this causes all kinds of issues. Therefore, I left this bug as is. Instead, in _get_module_names_tied_with_embedding, I opted to use attrgetter instead of model.get_parameter.

With the v5 rc being out, we should now ensure that the PEFT tests pass.
This PR contains fixes to achieve that.

1. hub_online_once was failing because
transformers.utils.hub._is_offline_mode no longer exists. Using the new
function instead if transformers v5 is detected.
@HuggingFaceDocBuilderDev

Copy link
Copy Markdown

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@githubnemo githubnemo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks, especially for the pain of dealing with get_tied_weights_keys :')

@BenjaminBossan BenjaminBossan marked this pull request as ready for review December 3, 2025 15:37
@BenjaminBossan BenjaminBossan merged commit b4f56dd into huggingface:main Dec 3, 2025
9 of 10 checks passed
@BenjaminBossan BenjaminBossan deleted the fix-issues-with-transformers-v5-rc branch December 3, 2025 16:14
BenjaminBossan added a commit to BenjaminBossan/peft that referenced this pull request Jan 8, 2026
With the v5 rc being out, we should now ensure that the PEFT tests pass.
This PR contains fixes to achieve that.

1. hub_online_once was failing because
transformers.utils.hub._is_offline_mode no longer exists. Using the new
function instead if transformers v5 is detected.

2.
tests/test_encoder_decoder_models.py::TestEncoderDecoderModels::test_merge_layers[LoraConfig-config_kwargs10-peft-internal-testing/tiny-random-BartForConditionalGeneration]
failing due to TrainableTokensWrapper not being applied to all layers
owing to changes to _tied_weights_keys.

3. While working on this, I discovered a tangential bug in
TrainableTokensLayer.get_merged_weights. This method returns a
torch.Tensor but the expected type is nn.Parameter (since foo.bar.weight
is supposed to be a nn.Parameter). This type mismatch would cause
torch's model.get_parameter, which I used in
_get_module_names_tied_with_embedding, to fail. At first, I wanted to
change the return type to nn.Parameter but this causes all kinds of
issues. Therefore, I left this bug as is. Instead, in
_get_module_names_tied_with_embedding, I opted to use attrgetter instead
of model.get_parameter.
BenjaminBossan added a commit to BenjaminBossan/peft that referenced this pull request Jan 8, 2026
BenjaminBossan added a commit that referenced this pull request Jan 9, 2026
* FIX Transformers v5 fixes (#2934)

With the v5 rc being out, we should now ensure that the PEFT tests pass.
This PR contains fixes to achieve that.

1. hub_online_once was failing because
transformers.utils.hub._is_offline_mode no longer exists. Using the new
function instead if transformers v5 is detected.

2.
tests/test_encoder_decoder_models.py::TestEncoderDecoderModels::test_merge_layers[LoraConfig-config_kwargs10-peft-internal-testing/tiny-random-BartForConditionalGeneration]
failing due to TrainableTokensWrapper not being applied to all layers
owing to changes to _tied_weights_keys.

3. While working on this, I discovered a tangential bug in
TrainableTokensLayer.get_merged_weights. This method returns a
torch.Tensor but the expected type is nn.Parameter (since foo.bar.weight
is supposed to be a nn.Parameter). This type mismatch would cause
torch's model.get_parameter, which I used in
_get_module_names_tied_with_embedding, to fail. At first, I wanted to
change the return type to nn.Parameter but this causes all kinds of
issues. Therefore, I left this bug as is. Instead, in
_get_module_names_tied_with_embedding, I opted to use attrgetter instead
of model.get_parameter.

* FIX Detect if torch.distributed is available (#2963)

E.g. it's not available for the torch rocm build.

Signed-off-by: vladmandic <mandic00@live.com>

* FIX Don't implicitly require transformers v4.52 (#2976)

Resolves #2975

In #2826, we inadvertently added a dependency on transformers v4.52 to
PEFT. However, this is really only needed under very specific
circumstances (aLoRA + gradient checkpointing). With this PR, unless
we're in these circumstances, this requirement is no longer there.

* Release: v0.18.1

Contains the following changes:

- #2934
- #2963
- #2976

---------

Signed-off-by: vladmandic <mandic00@live.com>
Co-authored-by: Vladimir Mandic <mandic00@live.com>
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.

3 participants