使用 pytorch 实现预训练的 BETO 模型(bert 的西班牙语版本)时出错

Error implementing pretrained BETO model (spanish version of bert) using pytorch

我正在尝试测试这个名为 BETO 的模型(该模型是西班牙语 Bert 的一个实现):

!pip install transformers
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/pytorch_weights.tar.gz 
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/vocab.txt 
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/config.json 
!tar -xzvf pytorch_weights.tar.gz
!mv config.json pytorch/.
!mv vocab.txt pytorch/.

import torch
from transformers import BertForMaskedLM, BertTokenizer
tokenizer = BertTokenizer.from_pretrained("pytorch/", do_lower_case=False)
model = BertForMaskedLM.from_pretrained("pytorch/")
model.eval()

环境如下:

platform            debian 10
transformers            3.4.0
python                  3.7.3
torch                   1.7.0
tensorflow              2.3.1

但在下一行中:

model = BertForMaskedLM.from_pretrained("pytorch/")

我收到这个错误:

Exception has occurred: OSError
Unable to load weights from pytorch checkpoint file. If you tried to load a PyTorch model from a TF 2.0 checkpoint, please set from_tf=True.

提前致谢

我已经在 Ubuntu 中尝试了完全相同的代码,没有任何问题。

OSError 是 Python 中的内置异常,作为 os 模块的错误 class,引发当 os 特定系统功能 returns 系统相关错误时,包括 I/O 故障,例如“找不到文件”或“磁盘已满”。

也许您可以更深入地了解您的 OSError?

试试这个:

!pip install urllib3==1.25.10
!git clone https://github.com/huggingface/transformers \
&& cd transformers \
&& git checkout a3085020ed0d81d4903c50967687192e3101e770

!pip install transformers
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/pytorch_weights.tar.gz 
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/vocab.txt 
!wget https://users.dcc.uchile.cl/~jperez/beto/cased_2M/config.json 
!tar -xzvf pytorch_weights.tar.gz
!mv config.json pytorch/.
!mv vocab.txt pytorch/.

tokenizer = BertTokenizer.from_pretrained("pytorch/", do_lower_case=False)