【transformers】TypeError: div() got an unexpected keyword argument ‘rounding_mode‘

在尝试使用transformers加载 allenai/led-base-16384 模型时遇到了错误,错误信息显示 torch 的 div() 函数不接受 'rounding_mode' 参数。问题的原因是 torch 版本过低,需要至少为1.8。解决方案是通过 pip 安装 torch==1.8 来升级 torch 版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在使用transformers加载allenai/led-base-16384的时候,出现了下面的错误:

  File "/home/eric/anaconda3/envs/sent/lib/python3.7/site-packages/transformers/models/led/modeling_led.py", line 204, in forward
    query_vectors, key_vectors, self.one_sided_attn_window_size
  File "/home/eric/anaconda3/envs/sent/lib/python3.7/site-packages/transformers/models/led/modeling_led.py", line 465, in _sliding_chunks_query_key_matmul
    chunks_count = torch.div(seq_len, window_overlap, rounding_mode="trunc") - 1
TypeError: div() got an unexpected keyword argument 'rounding_mode'

我的transformers的版本是4.2.4
python版本是3.7
torch版本是1.7

搜了一下发现是我的torch版本太低,最低需要1.8

解决方法

升级1.7版本到1.8版本

pip install torch==1.8

参考文献

TypeError: div() got an unexpected keyword argument ‘rounding_mode’

### HuggingFace LLM 初始化时出现 `TypeError` 错误的原因分析 当尝试初始化 Hugging Face 的 Transformer 模型时,如果遇到类似于 `TypeError: __init__() got an unexpected keyword argument 'tokenize_name'` 的错误,通常是因为传递给模型类构造函数的一个参数未被识别。这种问题可能由以下几个原因引起: #### 1. 参数名称拼写错误 在调用模型的 `__init__()` 方法时,可能存在参数名输入错误的情况。例如,假设开发者希望传入的是 `tokenizer_class` 而不是 `tokenize_name`,这可能导致上述错误。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained( "gpt2", tokenize_name="GPT2Tokenizer" # 此处应为 tokenizer_class 或其他有效参数 ) ``` 此代码片段中的 `tokenize_name` 是无效的关键字参数[^1]。正确的关键字可能是 `tokenizer_class` 或者其他支持的选项。 #### 2. 版本不兼容 另一个常见原因是使用的 Transformers 库版本与代码逻辑不符。某些参数可能仅存在于特定版本中,在较新或旧版库中已被移除或重命名。例如,早期版本可能不存在 `tokenizer_language` 这一参数[^3],而后期版本则引入了新的功能和接口变化。 建议检查当前安装的 Transformers 版本并确认其文档说明: ```bash pip show transformers ``` 或者升级到最新稳定版本以匹配最新的 API 定义: ```bash pip install --upgrade transformers ``` #### 3. 非法参数传递至子模块方法 有时错误并非直接来自顶层模型实例化过程本身,而是间接影响到了内部组件的行为。比如加载量化配置文件时指定非法选项也会引发类似异常[^4]: ```python import bitsandbytes as bnb quantized_model = bnb.nn.Linear8bitLt(..., empty_init=True) # 如果该实现根本不接受名为empty_init的参数,则会抛出相应异常。 ``` 对于更复杂的自定义扩展场景(如通过继承原有类来增加额外属性),务必仔细阅读官方指南以及源码注释部分了解哪些字段真正受控于目标对象及其父级结构之间关系链路之上。 --- 以下是针对此类问题的一般排查流程总结: - **验证参数合法性**: 对照所依赖的具体预训练模型类型对应的API签名表单逐一核对每一个设置项是否合理合法; - **同步环境状态**: 确认本地开发工具链各组成部分均处于一致水平下运作 (Python解释器版本号、第三方插件集合清单等); - **查阅变更日志记录**: 当发现某特性突然失效后第一时间翻阅项目维护方发布的Release Notes寻找线索. 最后附上一段修正后的示范脚本供参考: ```python from transformers import GPT2LMHeadModel, GPT2TokenizerFast try: model = GPT2LMHeadModel.from_pretrained('gpt2', pad_token_id=50256) except Exception as e: print(f"Error during initialization:{e}") if isinstance(model.config.tokenizer_class,str): tok_cls=getattr(__import__('transformers'),model.config.tokenizer_class,None) else: raise ValueError("Invalid Tokenizer Class Definition Found!") assert(tok_cls is not None),"Failed To Locate Matching Tokenizer Implementation!" tok_inst=tok_cls(vocab_file="./vocab.json", merges_file='./merges.txt') print("Successfully Initialized Both Model And Associated Text Processor Components.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值