微调HuggingFace模型后推理报错,求解决方案
问题解决方案
一、修复trainer.predict()的CUDA断言错误
- 推理集不要保留
label字段,同时确保编码过程仅针对文本字段处理:- 编码推理数据时,只对文本列执行tokenize操作,跳过标签相关的映射逻辑,避免残留的无效标签数据干扰模型计算。
- 执行预测前强制模型进入评估模式:调用
trainer.model.eval(),避免训练阶段的梯度计算残留引发CUDA资源冲突。
二、解决直接调用模型的AttributeError
- 调用tokenizer时添加
return_tensors="pt"参数,让其直接返回PyTorch张量而非列表,示例代码:inputs = tokenizer(your_text_data, return_tensors="pt", padding=True, truncation=True) # 若使用GPU,将张量转移到CUDA设备 inputs = {k: v.to("cuda") for k, v in inputs.items()} # 关闭梯度计算加速推理 with torch.no_grad(): outputs = model(**inputs) - 批量推理时直接传入文本列表,tokenizer会自动生成批量张量,无需手动转换格式。
额外排查建议
- 先切换到CPU环境测试推理,若CPU运行正常,说明是GPU显存或驱动问题,可调用
torch.cuda.empty_cache()清理显存后重试。 - 重新加载模型与tokenizer,确认加载的是微调后的正确权重文件,避免权重损坏或路径错误。
内容的提问来源于stack exchange,提问作者George Liu
相关产品推荐
相关产品推荐

