Closed pometa0507 closed 3 years ago
正確な原因はわかりませんが、おそらくtransformersのバージョンが原因だと思います。 このプロジェクトの開発時には、transformers==2.3.0を使用していました。 一応2.3.0で実行を再現した時の様子が #13 にあるので、参考にしてください。
transformers==2.3.0を使用しましたが、別のエラーが発生しました。
ValueError: Can't find a vocabulary file at path '/root/.cache/torch/transformers/9e39cf0fa6e56630924b95c50c01943e8a656dd4f08c110a64fed80a4f4adec6'. To load the vocabulary from a Google pretrained model use `tokenizer = BertTokenizer.from_pretrained(PRETRAINED_MODEL_NAME)`
一応自己流で解決できました。お騒がせしました。
下記の変更で動作できました。
最新のtransformers(3.5.1)を使用。
config.pyのmodel_name = 'bert-base-japanese-whole-word-masking'
では現Verのbertモデルが読み込みできないため、
model_name = 'cl-tohoku/bert-base-japanese-whole-word-masking'
と変更しました。
また、追加で必要となったライブラリをインストールしました。
!pip install fugashi ipadic
'cl-tohoku/bert-base-japanese-whole-word-masking'
では、新にレイヤーencoder.embeddings.position_ids
が増えたので、(他のレイヤーは同じ)
run_eval.pyの18行目を以下に変更。
model.load_state_dict(state_dict['model'], strict=False)
notebookのDialog-Evaluation.ipynbを実行したところ、
!python run_eval.py
のセルでエラーが発生しました。config.pyのmodel_nameを'cl-tohoku/bert-base-japanese-whole-word-masking'として追加でライブラリをインストールすればこのエラーは発生しなくなるのですが、次はモデル読み込みでレイヤー名が合わずエラーとなってしまいます。
ちなみに、現時点でpipでインストールされるライブラリのVersionは下記となっております。 emoji-0.6.0 neologdn-0.4 sacremoses-0.0.43 sentencepiece-0.1.94 tokenizers-0.9.2 transformers-3.4.0
お手数をおかけしますが、解決方法をご教授ください。