dragonkue/bge-reranker-v2-m3-ko

Model

Reranker (Cross-Encoder)

25

14 commits

3 linked in READMEs

updated Apr 3, 2025

See the code

README

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 nameF1RecallPrecision
paraphrase-multilingual-mpnet-base-v20.35960.35960.3596
KoSimCSE-roberta0.42980.42980.4298
Cohere embed-multilingual-v3.00.35960.35960.3596
openai ada 0020.47370.47370.4737
multilingual-e5-large-instruct0.46490.46490.4649
Upstage Embedding0.65790.65790.6579
paraphrase-multilingual-MiniLM-L12-v20.29820.29820.2982
openai_embed_3_small0.54390.54390.5439
ko-sroberta-multitask0.42110.42110.4211
openai_embed_3_large0.60530.60530.6053
KU-HIAI-ONTHEIT-large-v10.71050.71050.7105
KU-HIAI-ONTHEIT-large-v1.10.71930.71930.7193
kf-deberta-multitask0.45610.45610.4561
gte-multilingual-base0.58770.58770.5877
KoE50.70180.70180.7018
BGE-m30.65780.65780.6578
bge-m3-korean0.53510.53510.5351
BGE-m3-ko0.74560.74560.7456

Cross-Encoder (Reranker)

Model nameF1RecallPrecision
gte-multilingual-reranker-base0.72810.72810.7281
jina-reranker-v2-base-multilingual0.80700.80700.8070
bge-reranker-v2-m30.87720.87720.8772
upskyy/ko-reranker-8k0.86840.86840.8684
upskyy/ko-reranker0.83330.83330.8333
mncai/bge-ko-reranker-560M0.00880.00880.0088
Dongjin-kr/ko-reranker0.85090.85090.8509
bge-reranker-v2-m3-ko0.91230.91230.9123

Top-k 3

Bi-Encoder (Sentence Transformer)

Model nameF1RecallPrecision
paraphrase-multilingual-mpnet-base-v20.23680.47370.1579
KoSimCSE-roberta0.30260.60530.2018
Cohere embed-multilingual-v3.00.28510.57020.1901
openai ada 0020.35530.71050.2368
multilingual-e5-large-instruct0.33330.66670.2222
Upstage Embedding0.42110.84210.2807
paraphrase-multilingual-MiniLM-L12-v20.20610.41230.1374
openai_embed_3_small0.36400.72810.2427
ko-sroberta-multitask0.29390.58770.1959
openai_embed_3_large0.39470.78950.2632
KU-HIAI-ONTHEIT-large-v10.43860.87720.2924
KU-HIAI-ONTHEIT-large-v1.10.44300.88600.2953
kf-deberta-multitask0.31580.63160.2105
gte-multilingual-base0.40350.80700.2690
KoE50.42540.85090.2836
BGE-m30.42540.85080.2836
bge-m3-korean0.36840.73680.2456
BGE-m3-ko0.45170.90350.3011

Cross-Encoder (Reranker)

Model nameF1RecallPrecision
gte-multilingual-reranker-base0.46050.92110.3070
jina-reranker-v2-base-multilingual0.46490.92980.3099
bge-reranker-v2-m30.47810.95610.3187
upskyy/ko-reranker-8k0.47810.95610.3187
upskyy/ko-reranker0.46490.92980.3099
mncai/bge-ko-reranker-560M0.00440.00880.0029
Dongjin-kr/ko-reranker0.47370.94740.3158
bge-reranker-v2-m3-ko0.48250.96490.3216
endpoints_compatible
safetensors
sentence-transformers
text-embeddings-inference
text-ranking
xlm-roberta

dragonkue/bge-reranker-v2-m3-ko

Model

Reranker (Cross-Encoder)

25

14 commits

3 linked in READMEs

updated Apr 3, 2025

See the code

README

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 nameF1RecallPrecision
paraphrase-multilingual-mpnet-base-v20.35960.35960.3596
KoSimCSE-roberta0.42980.42980.4298
Cohere embed-multilingual-v3.00.35960.35960.3596
openai ada 0020.47370.47370.4737
multilingual-e5-large-instruct0.46490.46490.4649
Upstage Embedding0.65790.65790.6579
paraphrase-multilingual-MiniLM-L12-v20.29820.29820.2982
openai_embed_3_small0.54390.54390.5439
ko-sroberta-multitask0.42110.42110.4211
openai_embed_3_large0.60530.60530.6053
KU-HIAI-ONTHEIT-large-v10.71050.71050.7105
KU-HIAI-ONTHEIT-large-v1.10.71930.71930.7193
kf-deberta-multitask0.45610.45610.4561
gte-multilingual-base0.58770.58770.5877
KoE50.70180.70180.7018
BGE-m30.65780.65780.6578
bge-m3-korean0.53510.53510.5351
BGE-m3-ko0.74560.74560.7456

Cross-Encoder (Reranker)

Model nameF1RecallPrecision
gte-multilingual-reranker-base0.72810.72810.7281
jina-reranker-v2-base-multilingual0.80700.80700.8070
bge-reranker-v2-m30.87720.87720.8772
upskyy/ko-reranker-8k0.86840.86840.8684
upskyy/ko-reranker0.83330.83330.8333
mncai/bge-ko-reranker-560M0.00880.00880.0088
Dongjin-kr/ko-reranker0.85090.85090.8509
bge-reranker-v2-m3-ko0.91230.91230.9123

Top-k 3

Bi-Encoder (Sentence Transformer)

Model nameF1RecallPrecision
paraphrase-multilingual-mpnet-base-v20.23680.47370.1579
KoSimCSE-roberta0.30260.60530.2018
Cohere embed-multilingual-v3.00.28510.57020.1901
openai ada 0020.35530.71050.2368
multilingual-e5-large-instruct0.33330.66670.2222
Upstage Embedding0.42110.84210.2807
paraphrase-multilingual-MiniLM-L12-v20.20610.41230.1374
openai_embed_3_small0.36400.72810.2427
ko-sroberta-multitask0.29390.58770.1959
openai_embed_3_large0.39470.78950.2632
KU-HIAI-ONTHEIT-large-v10.43860.87720.2924
KU-HIAI-ONTHEIT-large-v1.10.44300.88600.2953
kf-deberta-multitask0.31580.63160.2105
gte-multilingual-base0.40350.80700.2690
KoE50.42540.85090.2836
BGE-m30.42540.85080.2836
bge-m3-korean0.36840.73680.2456
BGE-m3-ko0.45170.90350.3011

Cross-Encoder (Reranker)

Model nameF1RecallPrecision
gte-multilingual-reranker-base0.46050.92110.3070
jina-reranker-v2-base-multilingual0.46490.92980.3099
bge-reranker-v2-m30.47810.95610.3187
upskyy/ko-reranker-8k0.47810.95610.3187
upskyy/ko-reranker0.46490.92980.3099
mncai/bge-ko-reranker-560M0.00440.00880.0029
Dongjin-kr/ko-reranker0.47370.94740.3158
bge-reranker-v2-m3-ko0.48250.96490.3216
endpoints_compatible
safetensors
sentence-transformers
text-embeddings-inference
text-ranking
xlm-roberta