在Java DJL中无法加载HuggingFace Safetensors模型求助
问题与解决方案
问题详情
尝试加载jina-embeddings-v2-base-de模型生成文本嵌入向量,使用的Java代码如下:
public static float[] getTextEmbedding(String text) throws ModelNotFoundException, MalformedModelException, IOException, TranslateException { Criteria<String, float[]> criteria = Criteria.builder() .setTypes(String.class, float[].class) .optEngine("PyTorch") .optModelPath(Paths.get("/jina-embeddings-v2-base-de")) .optTranslator( TextEmbeddingTranslator .builder(HuggingFaceTokenizer.newInstance(Paths.get("/jina-embeddings-v2-base-de"))) .build() ) .optProgress(new ProgressBar()) .optOption("trust_remote_code", "true") .build(); try (Predictor<String, float[]> predictor = ModelZoo.loadModel(criteria).newPredictor()) { return predictor.predict(text); } }
执行时触发错误:
java.io.FileNotFoundException: jina-embeddings-v2-base-de.pt file not found in: /jina-embeddings-v2-base-de
解决步骤
检查模型文件完整性
查看本地/jina-embeddings-v2-base-de目录,确认包含pytorch_model.bin、config.json、tokenizer.json等所有模型文件。该模型的原生权重文件是pytorch_model.bin,并非报错中寻找的.pt格式,若文件缺失需重新完整下载。修正模型路径配置
将optModelPath改为指向具体的权重文件,而非仅目录:.optModelPath(Paths.get("/jina-embeddings-v2-base-de/pytorch_model.bin"))适配DL4J的模型格式
由于你使用的ModelZoo属于DL4J生态,部分PyTorch模型需要格式转换。如果直接加载pytorch_model.bin仍失败,可使用DL4J的模型转换工具将Hugging Face的PyTorch模型转换为DL4J支持的.pt格式,再修改路径指向转换后的文件。确认Tokenizer文件有效性
确保HuggingFaceTokenizer.newInstance指向的目录包含完整的tokenizer配置文件(如tokenizer_config.json、vocab.txt),避免因tokenizer加载异常影响模型加载流程。
内容的提问来源于stack exchange,提问作者Richard Burkhardt
相关产品推荐
相关产品推荐

