使用transformers pipeline加载本地预训练模型报错无法解析modelcard.json
问题原因
- Windows路径转义识别异常:你传入的路径虽然使用了双反斜杠,但部分版本的transformers在拼接解析本地路径下的附属文件(比如modelcard.json)时,会误将拼接后的路径判定为非法URL而非本地路径。
- 未开启强制离线加载模式:transformers默认会优先尝试联网校验模型文件完整性,未开启离线开关的场景下,遇到本地文件解析异常时会直接抛出路径不合法报错,不会走纯本地加载逻辑。
- 小概率场景为你下载的
modelcard.json文件本身损坏,或是对应存放路径存在权限限制导致程序无法读取该文件,被判定为路径不存在。
解决方案
按优先级依次尝试以下操作即可解决:
- 给路径添加原始字符串前缀
r避免转义异常,同时新增local_files_only=True参数强制走纯本地加载逻辑,修改后的代码如下:
from transformers import pipeline classifier = pipeline(task='sentiment-analysis', model=r"C:\Users\me\mymodel", tokenizer=r"C:\Users\me\mymodel", local_files_only=True)
- 如果上述操作依旧报错,直接删除本地模型目录下的
modelcard.json文件即可,该文件为模型说明文档,不影响核心推理能力,删除后不会再触发该文件的解析校验逻辑。 - 若问题仍存在,检查本地模型目录下的核心文件是否完整,必须包含
pytorch_model.bin(TensorFlow版本对应为tf模型文件)、config.json、tokenizer.json、vocab.txt,缺失任意文件需要重新下载对应文件放入目录。
内容的提问来源于stack exchange,提问作者ℕʘʘḆḽḘ
相关产品推荐
相关产品推荐

