Reranker (Cross-Encoder)

Different from embedding model, reranker uses question and document as input and directly output similarity instead of embedding. You can get a relevance score by inputting query and passage to the reranker. And the score can be mapped to a float value in [0,1] by sigmoid function.

Model Details

  • Base model : BAAI/bge-reranker-v2-m3
  • The multilingual model has been optimized for Korean.

Usage with Transformers

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model = AutoModelForSequenceClassification.from_pretrained('dragonkue/bge-reranker-v2-m3-ko')
tokenizer = AutoTokenizer.from_pretrained('dragonkue/bge-reranker-v2-m3-ko')

features = tokenizer([['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹€λ¬΄κ΅μœ‘μ„ 톡해 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ— λŒ€ν•œ μžμΉ˜λ‹¨μ²΄μ˜ 관심을 μ œκ³ ν•˜κ³  μžμΉ˜λ‹¨μ²΄μ˜ 차질 μ—†λŠ” 업무 좔진을 μ§€μ›ν•˜μ˜€λ‹€. μ΄λŸ¬ν•œ 쀀비과정을 거쳐 2014λ…„ 8μ›” 7일뢀터 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ΄ μ‹œν–‰λ˜μ—ˆλ‹€.'], 
['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹ν’ˆμ˜μ•½ν’ˆμ•ˆμ „μ²˜λŠ” 21일 κ΅­λ‚΄ μ œμ•½κΈ°μ—… μœ λ°”μ΄μ˜€λ‘œμ§μŠ€κ°€ 개발 쀑인 μ‹ μ’… μ½”λ‘œλ‚˜λ°”μ΄λŸ¬μŠ€ 감염증(μ½”λ‘œλ‚˜19) λ°±μ‹  ν›„λ³΄λ¬Όμ§ˆ β€˜μœ μ½”λ°±-19β€™μ˜ μž„μƒμ‹œν—˜ κ³„νšμ„ μ§€λ‚œ 20일 μŠΉμΈν–ˆλ‹€κ³  λ°ν˜”λ‹€.']],  padding=True, truncation=True, return_tensors="pt")

model.eval()
with torch.no_grad():
    logits = model(**features).logits
    scores = torch.sigmoid(logits)
    print(scores)
# [9.9997962e-01 5.0702977e-07]

Usage with SentenceTransformers

First install the Sentence Transformers library:

pip install -U sentence-transformers
from sentence_transformers import CrossEncoder

model = CrossEncoder('dragonkue/bge-reranker-v2-m3-ko', default_activation_function=torch.nn.Sigmoid())

scores = model.predict([['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹€λ¬΄κ΅μœ‘μ„ 톡해 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ— λŒ€ν•œ μžμΉ˜λ‹¨μ²΄μ˜ 관심을 μ œκ³ ν•˜κ³  μžμΉ˜λ‹¨μ²΄μ˜ 차질 μ—†λŠ” 업무 좔진을 μ§€μ›ν•˜μ˜€λ‹€. μ΄λŸ¬ν•œ 쀀비과정을 거쳐 2014λ…„ 8μ›” 7일뢀터 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ΄ μ‹œν–‰λ˜μ—ˆλ‹€.'], 
['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹ν’ˆμ˜μ•½ν’ˆμ•ˆμ „μ²˜λŠ” 21일 κ΅­λ‚΄ μ œμ•½κΈ°μ—… μœ λ°”μ΄μ˜€λ‘œμ§μŠ€κ°€ 개발 쀑인 μ‹ μ’… μ½”λ‘œλ‚˜λ°”μ΄λŸ¬μŠ€ 감염증(μ½”λ‘œλ‚˜19) λ°±μ‹  ν›„λ³΄λ¬Όμ§ˆ β€˜μœ μ½”λ°±-19β€™μ˜ μž„μƒμ‹œν—˜ κ³„νšμ„ μ§€λ‚œ 20일 μŠΉμΈν–ˆλ‹€κ³  λ°ν˜”λ‹€.']])
print(scores)
# [9.9997962e-01 5.0702977e-07]

Usage with FlagEmbedding

First install the FlagEmbedding library:

pip install -U FlagEmbedding
from FlagEmbedding import FlagReranker

reranker = FlagReranker('dragonkue/bge-reranker-v2-m3-ko')

scores = reranker.compute_score([['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹€λ¬΄κ΅μœ‘μ„ 톡해 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ— λŒ€ν•œ μžμΉ˜λ‹¨μ²΄μ˜ 관심을 μ œκ³ ν•˜κ³  μžμΉ˜λ‹¨μ²΄μ˜ 차질 μ—†λŠ” 업무 좔진을 μ§€μ›ν•˜μ˜€λ‹€. μ΄λŸ¬ν•œ 쀀비과정을 거쳐 2014λ…„ 8μ›” 7일뢀터 β€˜μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•β€™μ΄ μ‹œν–‰λ˜μ—ˆλ‹€.'], 
['λͺ‡ 년도에 μ§€λ°©μ„Έμ™Έμˆ˜μž…λ²•μ΄ μ‹œν–‰λμ„κΉŒ?', 'μ‹ν’ˆμ˜μ•½ν’ˆμ•ˆμ „μ²˜λŠ” 21일 κ΅­λ‚΄ μ œμ•½κΈ°μ—… μœ λ°”μ΄μ˜€λ‘œμ§μŠ€κ°€ 개발 쀑인 μ‹ μ’… μ½”λ‘œλ‚˜λ°”μ΄λŸ¬μŠ€ 감염증(μ½”λ‘œλ‚˜19) λ°±μ‹  ν›„λ³΄λ¬Όμ§ˆ β€˜μœ μ½”λ°±-19β€™μ˜ μž„μƒμ‹œν—˜ κ³„νšμ„ μ§€λ‚œ 20일 μŠΉμΈν–ˆλ‹€κ³  λ°ν˜”λ‹€.']], normalize=True)
print(scores)
# [9.9997962e-01 5.0702977e-07]

Fine-tune

Refer to https://github.com/FlagOpen/FlagEmbedding

Evaluation

Bi-encoder and Cross-encoder

Bi-Encoders convert texts into fixed-size vectors and efficiently calculate similarities between them. They are fast and ideal for tasks like semantic search and classification, making them suitable for processing large datasets quickly.

Cross-Encoders directly compare pairs of texts to compute similarity scores, providing more accurate results. While they are slower due to needing to process each pair, they excel in re-ranking top results and are important in Advanced RAG techniques for enhancing text generation.

Korean Embedding Benchmark with AutoRAG

(https://github.com/Marker-Inc-Korea/AutoRAG-example-korean-embedding-benchmark)

This is a Korean embedding benchmark for the financial sector.

Top-k 1

Bi-Encoder (Sentence Transformer)

Model name F1 Recall Precision
paraphrase-multilingual-mpnet-base-v2 0.3596 0.3596 0.3596
KoSimCSE-roberta 0.4298 0.4298 0.4298
Cohere embed-multilingual-v3.0 0.3596 0.3596 0.3596
openai ada 002 0.4737 0.4737 0.4737
multilingual-e5-large-instruct 0.4649 0.4649 0.4649
Upstage Embedding 0.6579 0.6579 0.6579
paraphrase-multilingual-MiniLM-L12-v2 0.2982 0.2982 0.2982
openai_embed_3_small 0.5439 0.5439 0.5439
ko-sroberta-multitask 0.4211 0.4211 0.4211
openai_embed_3_large 0.6053 0.6053 0.6053
KU-HIAI-ONTHEIT-large-v1 0.7105 0.7105 0.7105
KU-HIAI-ONTHEIT-large-v1.1 0.7193 0.7193 0.7193
kf-deberta-multitask 0.4561 0.4561 0.4561
gte-multilingual-base 0.5877 0.5877 0.5877
KoE5 0.7018 0.7018 0.7018
BGE-m3 0.6578 0.6578 0.6578
bge-m3-korean 0.5351 0.5351 0.5351
BGE-m3-ko 0.7456 0.7456 0.7456

Cross-Encoder (Reranker)

Model name F1 Recall Precision
gte-multilingual-reranker-base 0.7281 0.7281 0.7281
jina-reranker-v2-base-multilingual 0.8070 0.8070 0.8070
bge-reranker-v2-m3 0.8772 0.8772 0.8772
upskyy/ko-reranker-8k 0.8684 0.8684 0.8684
upskyy/ko-reranker 0.8333 0.8333 0.8333
mncai/bge-ko-reranker-560M 0.0088 0.0088 0.0088
Dongjin-kr/ko-reranker 0.8509 0.8509 0.8509
bge-reranker-v2-m3-ko 0.9123 0.9123 0.9123

Top-k 3

Bi-Encoder (Sentence Transformer)

Model name F1 Recall Precision
paraphrase-multilingual-mpnet-base-v2 0.2368 0.4737 0.1579
KoSimCSE-roberta 0.3026 0.6053 0.2018
Cohere embed-multilingual-v3.0 0.2851 0.5702 0.1901
openai ada 002 0.3553 0.7105 0.2368
multilingual-e5-large-instruct 0.3333 0.6667 0.2222
Upstage Embedding 0.4211 0.8421 0.2807
paraphrase-multilingual-MiniLM-L12-v2 0.2061 0.4123 0.1374
openai_embed_3_small 0.3640 0.7281 0.2427
ko-sroberta-multitask 0.2939 0.5877 0.1959
openai_embed_3_large 0.3947 0.7895 0.2632
KU-HIAI-ONTHEIT-large-v1 0.4386 0.8772 0.2924
KU-HIAI-ONTHEIT-large-v1.1 0.4430 0.8860 0.2953
kf-deberta-multitask 0.3158 0.6316 0.2105
gte-multilingual-base 0.4035 0.8070 0.2690
KoE5 0.4254 0.8509 0.2836
BGE-m3 0.4254 0.8508 0.2836
bge-m3-korean 0.3684 0.7368 0.2456
BGE-m3-ko 0.4517 0.9035 0.3011

Cross-Encoder (Reranker)

Model name F1 Recall Precision
gte-multilingual-reranker-base 0.4605 0.9211 0.3070
jina-reranker-v2-base-multilingual 0.4649 0.9298 0.3099
bge-reranker-v2-m3 0.4781 0.9561 0.3187
upskyy/ko-reranker-8k 0.4781 0.9561 0.3187
upskyy/ko-reranker 0.4649 0.9298 0.3099
mncai/bge-ko-reranker-560M 0.0044 0.0088 0.0029
Dongjin-kr/ko-reranker 0.4737 0.9474 0.3158
bge-reranker-v2-m3-ko 0.4825 0.9649 0.3216
Downloads last month
738
Safetensors
Model size
568M params
Tensor type
F32
Β·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The HF Inference API does not support text-classification models for sentence-transformers library.

Model tree for dragonkue/bge-reranker-v2-m3-ko

Finetuned
(5)
this model