Please do a quick search on GitHub issues first, there might be already a duplicate issue for the one you are about to create. If the bug is trivial, just go ahead and create the issue. Otherwise, please take a few moments and fill in the following sections:
Bug description
When I use TransformersEmbeddingClient to load the local model bge-base-en-v1.5 to execute the embed(List
Environment spring-boot-starter-parent, 3.2.4 spring-ai-transformers 0.8.1 Java version, 21 Mac
Steps to reproduce
Java
TransformersEmbeddingClient transformersEmbeddingClient = new TransformersEmbeddingClient();
transformersEmbeddingClient.setDisableCaching(true);
transformersEmbeddingClient.setModelResource("file:/bge-base-en-v1.5.model.onnx");
transformersEmbeddingClient.setTokenizerResource("file:/bge-base-en-v1.5.tokenizer.json");
transformersEmbeddingClient.embed(texts);
// occurs error
bge-base-en-v1.5 ,
Expected behavior
No error occurs when executing the embed(List
Minimal Complete Reproducible example
ai.onnxruntime.OrtException: Supplied array is ragged, expected 390, found 213 at ai.onnxruntime.TensorInfo.extractShape(TensorInfo.java:501) ~[onnxruntime-1.17.0.jar:1.17.0] at ai.onnxruntime.TensorInfo.extractShape(TensorInfo.java:505) ~[onnxruntime-1.17.0.jar:1.17.0] at ai.onnxruntime.TensorInfo.constructFromJavaArray(TensorInfo.java:405) ~[onnxruntime-1.17.0.jar:1.17.0] at ai.onnxruntime.OnnxTensor.createTensor(OnnxTensor.java:372) ~[onnxruntime-1.17.0.jar:1.17.0] at ai.onnxruntime.OnnxTensor.createTensor(OnnxTensor.java:356) ~[onnxruntime-1.17.0.jar:1.17.0] at org.springframework.ai.transformers.TransformersEmbeddingClient.call(TransformersEmbeddingClient.java:258) ~[spring-ai-transformers-0.8.1.jar:0.8.1] at org.springframework.ai.transformers.TransformersEmbeddingClient.embed(TransformersEmbeddingClient.java:232) ~[spring-ai-transformers-0.8.1.jar:0.8.1] at org.springframework.ai.transformers.TransformersEmbeddingClient.embedForResponse(TransformersEmbeddingClient.java:223) ~[spring-ai-transformers-0.8.1.jar:0.8.1]
Comment From: CharleyXu
The padding parameter must be set, but padding the input sequence will increase the computational burden of the model.
transformersEmbeddingClient.setTokenizerOptions(Map.of("padding", "true", "maxLength", "768"));