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

Colab调用BERT fill_mask接口报RuntimeError设备不匹配错误如何解决

错误原因

你使用Colab的GPU环境训练时,Hugging Face的Trainer会自动将模型迁移到GPU显存中,但是后续初始化fill-mask pipeline时没有指定设备,pipeline默认会将输入文本转为CPU上的张量,就出现了模型和输入所在设备不一致的报错。

另外你的代码存在两处无意义的冗余,不影响运行但可以清理:

  • 重复导入了BertTokenizer、BertForMaskedLM
  • 中间初始化BertModel打印配置的代码完全没用,后续你重新初始化了BertForMaskedLM,这段可以直接删除。
解决方案

有两种可选的修改方式,选任意一种即可:

方式一:指定pipeline使用GPU运行

初始化pipeline时增加device=0参数,直接用GPU做推理,速度更快,适配Colab的GPU环境:

fill_mask = pipeline(
    "fill-mask",
    model=model,
    tokenizer=bert_tokenizer,
    device=0
)

方式二:将模型迁回CPU后运行

如果你不需要用GPU做推理,手动将模型移回CPU即可:

# 先把模型移到CPU
model = model.to("cpu")
fill_mask = pipeline(
    "fill-mask",
    model=model,
    tokenizer=bert_tokenizer
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 14:06:08