Jupyter Notebook加载Phi-3-Mini量化版遇AutoTokenizer配置识别错误
解决Phi-3-mini ONNX量化版加载Tokenizer时的ValueError问题
加载Phi-3-mini的ONNX量化版本时触发ValueError: Unrecognized configuration class ... to build an AutoTokenizer,但常规版本能正常运行,问题出在ONNX仓库的Tokenizer配置和模型加载方式上,按以下步骤解决:
核心解决思路
- Tokenizer复用常规版本:ONNX量化版和常规版共享同一套Tokenizer,直接从常规模型仓库加载即可,无需从ONNX仓库加载。
- 用Optimum加载ONNX模型:原生
AutoModelForCausalLM不支持直接加载ONNX格式模型,需要借助optimum库的ONNXRuntime专用类处理。
具体操作步骤
1. 安装依赖库
如果还没安装optimum和onnxruntime-gpu,先执行:
pip install optimum onnxruntime-gpu
2. 修正后的代码
from transformers import AutoTokenizer from optimum.onnxruntime import AutoModelForCausalLM as ORTAutoModelForCausalLM # 加载常规版本的Tokenizer(和量化版通用) tokenizer = AutoTokenizer.from_pretrained("microsoft/Phi-3-mini-128k-instruct", trust_remote_code=True) # 用ONNXRuntime加载量化版模型,自动分配到GPU model = ORTAutoModelForCausalLM.from_pretrained( "microsoft/Phi-3-mini-128k-instruct-onnx", trust_remote_code=True, device_map="auto" )
原因说明
- ONNX模型仓库仅存放量化后的权重和ONNX运行配置,没有单独维护Tokenizer,因此直接从该仓库加载Tokenizer会出现配置识别错误。
transformers原生的AutoModelForCausalLM针对PyTorch/TensorFlow模型设计,ONNX模型需要通过optimum提供的适配类来加载,才能正确解析ONNX格式并利用GPU加速。
内容的提问来源于stack exchange,提问作者Christoph
相关产品推荐
相关产品推荐

