You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Huggingface模型首次运行正常 二次运行报Tokenizer加载错误怎么解决

问题根因

你遇到的报错核心是模型加载时的模型ID/路径不匹配+本地缓存文件校验失败,具体有两个触发点:

  • 报错信息中检索的模型是cardiffnlp/twitter-roberta-base-emotion,但你实际开发用的是情感分析对应的cardiffnlp/twitter-roberta-base-sentiment,首先确认你代码里的task变量赋值是否正确,加载tokenizer、模型时传入的模型ID是否和你要使用的版本一致。
  • 你项目根目录生成的cardiffnlp文件夹是模型缓存目录,说明你调用from_pretrained方法时指定了cache_dir='./'参数。首次运行时库会从远端拉取完整模型文件存到该目录,运行正常;第二次运行时库会优先读取本地缓存文件,若你修改了task参数、或者首次下载时有文件缺失/损坏,就会触发找不到tokenizer的报错。
  • 你贴的代码是拉取标签映射表的逻辑,和模型加载、缓存逻辑完全无关,你需要定位代码中调用AutoTokenizer.from_pretrained、AutoModelForSequenceClassification.from_pretrained的部分做调整。

解决方案

  • 确认模型加载代码的入参正确,模型ID和你的任务匹配,示例正确写法如下:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_name = "cardiffnlp/twitter-roberta-base-sentiment"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
  • 如果你希望优先使用本地已下载的模型,直接传入本地模型文件夹的绝对/相对路径即可,避免库在本地路径和远端ID之间匹配出错:
# 替换为你本地模型文件夹的实际路径
tokenizer = AutoTokenizer.from_pretrained("./cardiffnlp/twitter-roberta-base-sentiment")
model = AutoModelForSequenceClassification.from_pretrained("./cardiffnlp/twitter-roberta-base-sentiment")
  • 如果你不需要把模型存在项目目录下,删掉from_pretrained方法中传入的cache_dir参数,让库使用默认的全局缓存路径,不会在项目根目录生成冗余文件夹,也能避免本地路径和远端ID的冲突问题。
  • 如果确认参数正确仍报错,加载时添加force_download=True参数,强制重新拉取对应模型的完整文件,覆盖本地损坏的缓存:
tokenizer = AutoTokenizer.from_pretrained(model_name, force_download=True)
model = AutoModelForSequenceClassification.from_pretrained(model_name, force_download=True)

内容的提问来源于stack exchange,提问作者sewpahot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:06:05