加载EleutherAI/gpt-neo-125M时报transformers无TFGPTNeoForCausalLM属性错误
报错原因
报错的核心原因是你指定了from_tf=True参数,存在两个冲突点:
- 当前你使用的4.10.0.dev0开发版transformers没有实现
TFGPTNeoForCausalLM类,无法加载TensorFlow格式的GPT-Neo权重 - EleutherAI官方发布的gpt-neo-125M默认提供的是PyTorch格式权重,不需要指定
from_tf参数加载
解决方案
方案1(推荐,直接加载原生PyTorch权重)
你本地已经安装了PyTorch 1.9.0,直接删除代码中的from_tf=True参数即可正常运行,修改后代码如下:
from transformers import AutoTokenizer, AutoModelForCausalLM # 加载线上官方权重 tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-125M") model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-neo-125M") # 如果要加载本地克隆的仓库,替换为你的本地路径即可,示例: # tokenizer = AutoTokenizer.from_pretrained("./gpt-neo-125M") # model = AutoModelForCausalLM.from_pretrained("./gpt-neo-125M")
方案2(如果必须使用TensorFlow版本模型)
- 先卸载当前开发版transformers,安装最新稳定版:
pip uninstall -y transformers pip install transformers>=4.20.0
- 修改代码直接调用TensorFlow版的GPTNeo类加载,通过
from_pt=True参数自动将官方PyTorch权重转为TensorFlow格式:
from transformers import AutoTokenizer, TFGPTNeoForCausalLM tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-125M") model = TFGPTNeoForCausalLM.from_pretrained("EleutherAI/gpt-neo-125M", from_pt=True)
内容的提问来源于stack exchange,提问作者Nicole Douglas
相关产品推荐
相关产品推荐

