I am using deep java library and i want to implement reranking on retrieved documents for my chatbot implementation.
cross encoders are used to find similarity score between 2 strings
Below is the code that generates text embeddings using all-MiniLM-L6-v2 but i want to use it for cross encoding.
package ai.djl.examples.inference.nlp;
import ai.djl.ModelException;
import ai.djl.huggingface.translator.TextEmbeddingTranslatorFactory;
import ai.djl.huggingface.translator.CrossEncoderTranslator;
import ai.djl.inference.Predictor;
import ai.djl.repository.zoo.Criteria;
import ai.djl.repository.zoo.ZooModel;
import ai.djl.training.util.ProgressBar;
import ai.djl.translate.TranslateException;
import java.io.IOException;
import java.util.Arrays;
public class TextEmbedding {
private TextEmbedding() {}
public static void main(String[] args) throws IOException, ModelException, TranslateException {
String text = "This is an example sentence";
Criteria<String, float[]> criteria =
Criteria.builder()
.setTypes(String.class, float[].class)
.optModelUrls(
"djl://ai.djl.huggingface.pytorch/sentence-transformers/all-MiniLM-L6-v2")
.optEngine("PyTorch")
.optTranslatorFactory(new TextEmbeddingTranslatorFactory())
.optProgress(new ProgressBar())
.build();
try (ZooModel<String, float[]> model = criteria.loadModel();
Predictor<String, float[]> predictor = model.newPredictor()) {
float[] res = predictor.predict(text);
System.out.println("Embedding: " + Arrays.toString(res));
}
}
}
Would really appreciate any help!
I am looking for a code that outputs similarity score for a pair of given input sequences.
New contributor
Azeem Waqar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.