Downloads · 30 days
18
3% of all-time downloads
KennethTM/MiniLM-L6-danish-reranker-v2
MiniLM-L6-danish-reranker-v2 is a text ranking model from KennethTM. Use it for the text ranking task on the model card, and read the license before you ship it in a product. It is set up for sentence-transformers. The card lists the license as mit.
This an updated version of KennethTM/MiniLM-L6-danish-reranker. This version is just trained on more data (GooAQ dataset translated to Danish) and is otherwise the same
Downloads · 30 days
18
3% of all-time downloads
All-time downloads
643
Public
Parameters
22.7M
90.9 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors90.9 MB · 98%
From the Hugging Face model README
This an updated version of KennethTM/MiniLM-L6-danish-reranker. This version is just trained on more data (GooAQ dataset translated to Danish) and is otherwise the same
This is a lightweight (~22 M parameters) sentence-transformers model for Danish NLP: It takes two sentences as input and outputs a relevance score. Therefore, the model can be used for information retrieval, e.g. given a query and candidate matches, rank the candidates by their relevance.
The maximum sequence length is 512 tokens (for both passages).
The model was not pre-trained from scratch but adapted from the English version of cross-encoder/ms-marco-MiniLM-L-6-v2 with a Danish tokenizer.
Trained on ELI5 and SQUAD data machine translated from English to Danish.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
import torch.nn.functional as F
model = AutoModelForSequenceClassification.from_pretrained('KennethTM/MiniLM-L6-danish-reranker-v2')
tokenizer = AutoTokenizer.from_pretrained('KennethTM/MiniLM-L6-danish-reranker-v2')
# Two examples where the first is a positive example and the second is a negative example
queries = ['Kører der cykler på vejen?',
'Kører der cykler på vejen?']
passages = ['I Danmark er cykler et almindeligt transportmiddel, og de har lige så stor ret til at bruge vejene som bilister. Cyklister skal dog følge færdselsreglerne og vise hensyn til andre trafikanter.',
'Solen skinner, og himlen er blå. Der er ingen vind, og temperaturen er perfekt. Det er den perfekte dag til at tage en tur på landet og nyde den friske luft.']
features = tokenizer(queries, passages, padding=True, truncation=True, return_tensors="pt")
model.eval()
with torch.no_grad():
scores = model(**features).logits
# The scores are raw logits, these can be transformed into probabilities using the sigmoid function
# Higher values are higher relevance
print(scores)
print(F.sigmoid(scores))
The usage becomes easier when you have SentenceTransformers installed. Then, you can use the pre-trained models like this:
from sentence_transformers import CrossEncoder
import numpy as np
sigmoid_numpy = lambda x: 1/(1 + np.exp(-x))
# Provide examples as a list of query-passage tuples
pairs = [('Kører der cykler på vejen?',
'I Danmark er cykler et almindeligt transportmiddel, og de har lige så stor ret til at bruge vejene som bilister. Cyklister skal dog følge færdselsreglerne og vise hensyn til andre trafikanter.'),
('Kører der cykler på vejen?',
'Solen skinner, og himlen er blå. Der er ingen vind, og temperaturen er perfekt. Det er den perfekte dag til at tage en tur på landet og nyde den friske luft.')]
model = CrossEncoder('KennethTM/MiniLM-L6-danish-reranker-v2', max_length=512)
scores = model.predict(pairs)
print(scores)
print(sigmoid_numpy(scores))