我试图按照this article使用transformers
的AutoModelForCasualLM
来生成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?:
- 在脚本中使用分布式或并行设置?:
2条答案
按热度按时间nc1teljy1#
这是因为你使用了错误的类名,这个类名在你使用的变形金刚库版本中不存在。正确的类名是AutoModelForCausal LM(注意“Causal”的正确拼写)。试试这个:
from transformers import AutoTokenizer,AutoModelForCausalLM
nue99wik2#
我也遇到了同样的问题,这与拼写无关,解决我的问题的方法是安装这个版本的transformers,而不是使用git版本: