进程内 (ONNX)
LangChain4j 提供本地评分(重排序)模型, 由 ONNX runtime 提供支持,在同一 Java 进程中运行。
只要是 ONNX 格式,就可以使用许多模型(例如,来自 Hugging Face 的模型)。
有关如何将模型转换为 ONNX 格式的信息可以在这里找到。
许多已经转换为 ONNX 格式的模型可以在这里找到。
使用方法
默认情况下,评分(重排序)模型使用 CPU。
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-onnx-scoring</artifactId>
<version>1.0.0-beta3</version>
</dependency>
String pathToModel = "/home/langchain4j/model.onnx";
String pathToTokenizer = "/home/langchain4j/tokenizer.json";
OnnxScoringModel scoringModel = new OnnxScoringModel(pathToModel, pathToTokenizer);
Response<Double> response = scoringModel.score("query", "passage");
Double score = response.content();
如果您想使用 GPU,可以在这里找到 onnxruntime_gpu
版本。
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-onnx-scoring</artifactId>
<version>1.0.0-beta3</version>
<exclusions>
<exclusion>
<groupId>com.microsoft.onnxruntime</groupId>
<artifactId>onnxruntime</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 1.18.0 支持 CUDA 12.x -->
<dependency>
<groupId>com.microsoft.onnxruntime</groupId>
<artifactId>onnxruntime_gpu</artifactId>
<version>1.18.0</version>
</dependency>
String pathToModel = "/home/langchain4j/model.onnx";
String pathToTokenizer = "/home/langchain4j/tokenizer.json";
OrtSession.SessionOptions options = new OrtSession.SessionOptions();
options.addCUDA(0);
OnnxScoringModel scoringModel = new OnnxScoringModel(pathToModel, options, pathToTokenizer);
Response<Double> response = scoringModel.score("query", "passage");
Double score = response.content();