環境
- Gradient
- PyTorch 1.11
エラー内容
以下のようなコードを実行していると、4ブロック目の2行目 tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-medium")
の部分で TypeError
が出た。
!pip install transformers
from transformers import pipeline, set_seed
generator = pipeline('text-generation', model='gpt2')
set_seed(42)
generator("Hello, I'm a language model,", max_length=30, num_return_sequences=5)
!pip install sentencepiece
from transformers import T5Tokenizer, AutoModelForCausalLM
tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-medium")
tokenizer.do_lower_case = True # due to some bug of tokenizer config loading
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt2-medium")
TypeError: 'NoneType' object is not callable
原因
Stack Overflow で似たような質問があった。それに対する回答を一部引用する。
So I open a brand new colab session, and install everything including the SentencePiece before creating tokenizer, and this time it worked. The Nonetype error simply means it doesn't know what is 'albert-base-v2'. However if you install the packages in right order colab will recognize better the relationship between AlbertTokenizer and SentencePiece. In short for this to work in colab 0. Open a new Colab session 1. Install Transformers and SentencePiece 2. import AlbertTokenizer 3.create tokenizer.(MeiNan Zhu)
MeiNan Zhu's answer is correct.
Installing or importing SentencePiece before transformers works.(Mayank Soni)
コードの順番に問題があったようだ。
解決
transformes が機能する前に sentencepiece をインストールすればよい。
つまり、最初に transformes, sentencepiece をインストールすることで解決する。