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
- 134
Model tree for dragonkue/bge-reranker-v2-m3-ko
Base model
BAAI/bge-reranker-v2-m3