Add disable_mmap kwarg to from_pretrained with hf-mount auto-detection#45547
Open
rtrompier wants to merge 3 commits intohuggingface:mainfrom
Open
Add disable_mmap kwarg to from_pretrained with hf-mount auto-detection#45547rtrompier wants to merge 3 commits intohuggingface:mainfrom
rtrompier wants to merge 3 commits intohuggingface:mainfrom
Conversation
|
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. |
ArthurZucker
approved these changes
Apr 21, 2026
Collaborator
ArthurZucker
left a comment
There was a problem hiding this comment.
sounds great ty for adding
Collaborator
|
@bot /style |
Contributor
|
Style fix bot fixed some files and pushed the changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a new
disable_mmapkwarg toPreTrainedModel.from_pretrained(and plumbs it throughload_state_dict/LoadStateDictConfig/_load_pretrained_model). When enabled, safetensors checkpoints are read fully into memory and parsed viasafetensors.torch.load(bytes)instead of being memory-mapped withsafe_open.Why
hf-mount: captured kernel stacks showed Python hanging on page-faults with a saturated FUSE queue.diffusersalready ships the exact same kwarg (disable_mmapindiffusers/models/model_loading_utils.py); adding it totransformersmakes the two libraries consistent and unblocks users who currently hitTypeError: ...__init__() got an unexpected keyword argument 'disable_mmap'when they try to pass it through.How
_is_on_hf_mount(path)helper parses/proc/mountson Linux and returnsTrueifpathresolves under a mountpoint whose device string ishf-mount(returnsFalseon non-Linux).load_state_dict(...)gains adisable_mmap: bool | None = Nonekwarg. WhenNone, it auto-detects via_is_on_hf_mount. When truthy (andmap_location != "meta"), the safetensors file is loaded withsafetensors.torch.load(open(path, "rb").read()).LoadStateDictConfiggets a matchingdisable_mmapfield;from_pretrainedforwards its new kwarg into it; the multi-shard safetensors branch in_load_pretrained_modelmirrors the same no-mmap path per file.hf-mountFUSE mount, so there's no behavior change for existing users.Tests
Adds
DisableMmapLoadingTestintests/utils/test_modeling_utils.pycovering:_is_on_hf_mountmatches when/proc/mountslistshf-mountfor the path._is_on_hf_mountdoes not match for a regular filesystem._is_on_hf_mountshort-circuits toFalseon non-Linux platforms.load_state_dict(..., disable_mmap=True)returns tensors equal to the mmap path.