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

运行Pegasus改写代码遇'NoneType'不可调用错误,如何规避?

解决PegasusTokenizer初始化时的TypeError问题

问题重现

已安装SentencePiece、sentence-splitter和transformers库,运行以下代码时:

import torch
from transformers import PegasusForConditionalGeneration, PegasusTokenizer
model_name = 'tuner007/pegasus_paraphrase'
torch_device = 'cuda' if torch.cuda.is_available() else 'cpu'
tokenizer = PegasusTokenizer.from_pretrained(model_name)
model = PegasusForConditionalGeneration.from_pretrained(model_name).to(torch_device)

def get_response(input_text,num_return_sequences,num_beams):
  batch = tokenizer([input_text],truncation=True,padding='longest',max_length=60, return_tensors="pt").to(torch_device)
  translated = model.generate(**batch,max_length=60,num_beams=num_beams, num_return_sequences=num_return_sequences, temperature=1.5)
  tgt_text = tokenizer.batch_decode(translated, skip_special_tokens=True)
  return tgt_text

出现错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-6-f42eb9e8dd56> in <module>
      5 model_name = 'tuner007/pegasus_paraphrase'
      6 torch_device = 'cuda' if torch.cuda.is_available() else 'cpu'
----> 7 tokenizer = PegasusTokenizer.from_pretrained(model_name)
      8 model = PegasusForConditionalGeneration.from_pretrained(model_name).to(torch_device)
      9 

TypeError: 'NoneType' object is not callable

解决方案

这个错误源于transformers版本兼容性问题,新版本中PegasusTokenizer的from_pretrained方法已被废弃或指向空对象,可通过以下方式修复:

  • 替换为AutoTokenizer:
    修改导入语句和tokenizer初始化代码,用AutoTokenizer自动适配模型对应的tokenizer类型:

    import torch
    from transformers import PegasusForConditionalGeneration, AutoTokenizer
    model_name = 'tuner007/pegasus_paraphrase'
    torch_device = 'cuda' if torch.cuda.is_available() else 'cpu'
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = PegasusForConditionalGeneration.from_pretrained(model_name).to(torch_device)
    
    def get_response(input_text,num_return_sequences,num_beams):
      batch = tokenizer([input_text],truncation=True,padding='longest',max_length=60, return_tensors="pt").to(torch_device)
      translated = model.generate(**batch,max_length=60,num_beams=num_beams, num_return_sequences=num_return_sequences, temperature=1.5)
      tgt_text = tokenizer.batch_decode(translated, skip_special_tokens=True)
      return tgt_text
    
  • 指定兼容的transformers版本:
    如果替换后仍有问题,可安装经过验证的兼容版本:

    pip install transformers==4.28.0
    
  • 清理缓存重新下载:
    若模型缓存损坏,删除~/.cache/huggingface/hub目录下对应模型的缓存文件,重新运行代码让系统自动下载完整的模型和tokenizer文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:35:15