You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改Hugging Face HF_MODULES_CACHE解决from_pretrained缓存写入权限错误

解决transformers加载模型时的缓存权限问题

问题描述

调用from_pretrained加载模型时触发权限错误,提示无./cache目录的写入权限,错误出现在transformers库的dynamic_module_utils.py第54行。

规范解决方案

你尝试的通过os.environ["HF_MODULES_CACHE"]设置缓存路径是可行的,但更规范的方案有以下几种,能避免潜在依赖问题:

  • 全局统一配置(官方推荐)
    使用TRANSFORMERS_CACHE环境变量,该变量会统一控制transformers库所有资源(模型、tokenizer、动态模块等)的缓存路径,覆盖默认设置,无依赖冲突风险:

    import os
    # 在代码开头设置
    os.environ["TRANSFORMERS_CACHE"] = "/你有写入权限的目录路径"
    

    也可以在系统层面设置(比如Linux终端):

    export TRANSFORMERS_CACHE="/你有写入权限的目录路径"
    
  • 单模型临时指定
    如果不需要全局修改,可在from_pretrained调用时直接传入cache_dir参数,精准控制当前模型的缓存位置:

    from transformers import AutoModel, AutoTokenizer
    model = AutoModel.from_pretrained("模型名称", cache_dir="/你有写入权限的目录路径")
    tokenizer = AutoTokenizer.from_pretrained("模型名称", cache_dir="/你有写入权限的目录路径")
    
  • 修改默认目录权限(仅限有权限场景)
    若你对默认的./cache目录有修改权限,可直接添加写入权限:

    chmod +w ./cache
    

补充说明

HF_MODULES_CACHE仅针对动态模块的缓存生效,而TRANSFORMERS_CACHE是全局缓存变量,覆盖所有transformers相关缓存类型,因此使用TRANSFORMERS_CACHE是更全面、规范的做法,能避免不同缓存路径带来的潜在问题。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:04:58