python-3.x 无法导入Transformers AutoModelForCasualLM

4nkexdtk  于 9个月前  发布在  Python
关注(0)|答案(2)|浏览(446)

我试图按照this article使用transformersAutoModelForCasualLM来生成bloom文本。但是我一直得到一个错误,说python不能从transformers中AutoModelForCasualLM。我试过多台电脑和多个版本的变压器,但我总是得到以下错误。(来源于最新版本的transformers)

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[28], line 1
----> 1 from transformers import AutoTokenizer, AutoModelForCasualLM, BloomConfig
      2 from transformers.models.lboom.modeling_bloom import BloomBlock, build_alibi_tensor

ImportError: cannot import name 'AutoModelForCasualLM' from 'transformers' (/mnt/MLDr/venv/lib/python3.10/site-packages/transformers/__init__.py)

发生错误的代码片段(前10行):

import os
import torch
import torch.nn as nn
from collections import OrderedDict
def get_state_dict(shard_num, prefix=None):
    d = torch.load(os.path.join(model_path, f"pytorch_model_{shard_num:05d}-of-00072.bin"))
    return d if prefix is None else OrderedDict((k.replace(prefix, ''), v) for k, v in d.items())
from transformers import AutoTokenizer, AutoModelForCasualLM, BloomConfig
from transformers.models.lboom.modeling_bloom import BloomBlock, build_alibi_tensor
model = "./bloom"
config = BloomConfig.from_pretrained(model_path)
device = 'cpu'

transformers-EQUENV结果:

  • transformers版本:4.25.1
  • 平台:Linux-5.15.0-58-generic-x86_64-with-glibc 2.35
  • Python版本:3.10.6
  • Huggingface_hub版本:0.11.1
  • PyTorch版本(GPU?):1.13.1+ cu 117(假)
  • tensorflow 版本(GPU?):2.11.0(False)
  • 亚麻版本(CPU?/GPU?/TPU?):未安装(NA)
  • Jax版本:未安装
  • JaxLib版本:未安装
  • 是否在脚本中使用GPU?:
  • 在脚本中使用分布式或并行设置?:
nc1teljy

nc1teljy1#

这是因为你使用了错误的类名,这个类名在你使用的变形金刚库版本中不存在。正确的类名是AutoModelForCausal LM(注意“Causal”的正确拼写)。试试这个:
from transformers import AutoTokenizer,AutoModelForCausalLM

nue99wik

nue99wik2#

我也遇到了同样的问题,这与拼写无关,解决我的问题的方法是安装这个版本的transformers,而不是使用git版本:

!pip install transformers==4.20

相关问题