我正在尝试运行 AllenNLP 演示https://demo.allennlp.org/semantic-role-labeling。当我通过 Juptyer 运行命令行或 Python 版本时,我收到下面提到的错误。
我已经安装了所需的库?pip install allennlp==1.0.0 allennlp-models==1.0.0
运行这个给我一个错误:
from allennlp.predictors.predictor import Predictor
predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/bert-base-srl-2020.11.19.tar.gz")
predictor.predict(
sentence="Did Uriah honestly think he could beat the game in under three hours?"
)
更新:如果我使用较旧的 gz 下载,我不会收到错误,我从他们的公共模型网站 bert-base-srl-2020.09.03.tar.gz 抓取了这个
from allennlp.predictors.predictor import Predictor
predictor = Predictor.from_path("https://storage.googleapis.com/allennlp-public-models/bert-base-srl-2020.09.03.tar.gz")
text = "Did Uriah honestly think he could beat the game in under three hours?"
predictor.predict(sentence=text)
错误:
RuntimeError: Error(s) in loading state_dict for SrlBert:
Unexpected key(s) in state_dict: "bert_model.embeddings.position_ids".
操作系统和版本:
Python: 3.8.6
pip: 20.2.1
Mac OS: Catalina 10.15.7
BERT 是否有一些我可能缺少的依赖项?我对其他 AllenNLP 示例没有任何问题。
我添加了一个答案,但他们删除了它。这是您解决此问题的方法:
在 github 上发布后,从 AllenNLP 的人那里得知这是一个版本问题。我需要使用 allennlp=1.3.0 和最新型号。现在它按预期工作。
This should be fixed in the latest allennlp 1.3 release. Also, the latest archive file is structured-prediction-srl-bert.2020.12.15.tar.gz.