使用ONNX模型intfloat/multilingual-e5-large实例化EmbeddingModel报错求助
问题分析与修复方案
核心问题定位
错误提示data did not match any variant of untagged enum PreTokenizerWrapper直接指向:Spring AI的ONNX分词器解析逻辑不兼容你当前tokenizer.json里的Sequence类型预分词器嵌套配置。
具体修复步骤
1. 简化预分词器配置
intfloat/multilingual-e5-large的WhitespaceSplit逻辑已被Metaspace的split: true参数覆盖,可直接将预分词器配置简化为单一Metaspace类型,修改后的tokenizer.json片段如下:
"pre_tokenizer": { "type": "Metaspace", "replacement": "▁", "prepend_scheme": "always", "split": true }
2. 版本适配(如需保留原逻辑)
如果必须保留两步预分词的Sequence结构,需升级Spring AI到0.8.1及以上版本——该版本优化了ONNX分词器的配置解析,支持嵌套的Sequence预分词器类型。
3. 清理缓存并重启
修改配置后,清理项目构建缓存(如Maven的target目录、Gradle的build目录),重新启动Spring应用,验证EmbeddingModel实例化是否正常。
额外排查项
- 确认ONNX模型导出时使用了正确的参数:用Hugging Face Transformers的
transformers.onnx模块,指定--feature=embeddings导出,避免模型结构不兼容。 - 检查
tokenizer.json的语法完整性,比如是否存在逗号遗漏、引号不匹配等格式错误,这类问题也会触发解析异常。
内容的提问来源于stack exchange,提问作者Zakaria Hd
相关产品推荐
相关产品推荐

