Skip to content

Fix None quantization_config equivalence with omitted param in AutoModel.from_pretrained#40783

Open
albertvillanova wants to merge 1 commit intohuggingface:mainfrom
albertvillanova:fix-quantization-config-none
Open

Fix None quantization_config equivalence with omitted param in AutoModel.from_pretrained#40783
albertvillanova wants to merge 1 commit intohuggingface:mainfrom
albertvillanova:fix-quantization-config-none

Conversation

@albertvillanova
Copy link
Copy Markdown
Member

@albertvillanova albertvillanova commented Sep 10, 2025

Fix quantization_config=None equivalence with omitted parameter in AutoModel.from_pretrained.

Currently, AutoModel.from_pretrained treats differently missing and None quantization_config. I think passing None should be treated the same as omitting the key altogether, not as an invalid quantization config.

This PR:

  • Fixes inconsistent handling of quantization_config=None vs omitted parameter in AutoModel.from_pretrained
  • Ensures quantization_config=None behaves identically to omitting the parameter entirely

Problem

When using TRL CLI with GPT OSS models, calls like:

  model = AutoModelForCausalLM.from_pretrained("my_model", quantization_config=None)

would fail with AttributeError: 'NoneType' object has no attribute 'to_dict', differently than:

model = AutoModelForCausalLM.from_pretrained("my_model")

Error traceback:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/fsx/albert/dev/transformers/src/transformers/models/auto/auto_factory.py", line 549, in from_pretrained
    config, kwargs = AutoConfig.from_pretrained(
  File "/fsx/albert/dev/transformers/src/transformers/models/auto/configuration_auto.py", line 1323, in from_pretrained
    return config_class.from_dict(config_dict, **unused_kwargs)
  File "/fsx/albert/dev/transformers/src/transformers/configuration_utils.py", line 839, in from_dict
    logger.info(f"Model config {config}")
  File "/fsx/albert/dev/transformers/src/transformers/configuration_utils.py", line 873, in __repr__
    return f"{self.__class__.__name__} {self.to_json_string()}"
  File "/fsx/albert/dev/transformers/src/transformers/configuration_utils.py", line 985, in to_json_string
    config_dict = self.to_diff_dict()
  File "/fsx/albert/dev/transformers/src/transformers/configuration_utils.py", line 887, in to_diff_dict
    config_dict = self.to_dict()
  File "/fsx/albert/dev/transformers/src/transformers/configuration_utils.py", line 964, in to_dict
    self.quantization_config.to_dict()
AttributeError: 'NoneType' object has no attribute 'to_dict'

See comment in downstream hotfix:

CC: @qgallouedec

@github-actions
Copy link
Copy Markdown
Contributor

[For maintainers] Suggested jobs to run (before merge)

run-slow: auto

@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.

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