πŸ”Ž KoE5

Introducing KoE5, a model with advanced retrieval abilities. It has shown remarkable performance in Korean text retrieval.

For details, visit the KURE repository


Model Versions

Model Name Dimension Sequence Length Introduction
KURE-v1 1024 8192 Fine-tuned BAAI/bge-m3 with Korean data via CachedGISTEmbedLoss
KoE5 1024 512 Fine-tuned intfloat/multilingual-e5-large with ko-triplet-v1.0 via CachedMultipleNegativesRankingLoss

Model Description

This is the model card of a πŸ€— transformers model that has been pushed on the Hub.

Example code

Install Dependencies

First install the Sentence Transformers library:

pip install -U sentence-transformers

Python code

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the πŸ€— Hub
model = SentenceTransformer("nlpai-lab/KoE5")

# Run inference
sentences = [
    'query: ν—Œλ²•κ³Ό 법원쑰직법은 μ–΄λ–€ 방식을 톡해 기본ꢌ 보μž₯ λ“±μ˜ λ‹€μ–‘ν•œ 법적 λͺ¨μƒ‰μ„ κ°€λŠ₯ν•˜κ²Œ ν–ˆμ–΄',
    'passage: 4. μ‹œμ‚¬μ κ³Ό κ°œμ„ λ°©ν–₯ μ•žμ„œ μ‚΄νŽ΄λ³Έ 바와 같이 우리 ν—Œλ²•κ³Ό r법원쑰직 법」은 λŒ€λ²•μ› ꡬ성을 λ‹€μ–‘ν™”ν•˜μ—¬ 기본ꢌ 보μž₯κ³Ό 민주주의 확립에 μžˆμ–΄ 닀각적인 법적 λͺ¨μƒ‰μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” 것을 κ·Όλ³Έ κ·œλ²”μœΌλ‘œ ν•˜κ³  μžˆλ‹€. λ”μš±μ΄ ν•©μ˜μ²΄λ‘œμ„œμ˜ λŒ€λ²•μ› 원리λ₯Ό μ±„νƒν•˜κ³  μžˆλŠ” 것 μ—­μ‹œ κ·Έ κ΅¬μ„±μ˜ 닀양성을 μš”μ²­ν•˜λŠ” κ²ƒμœΌλ‘œ ν•΄μ„λœλ‹€. 이와 같은 κ΄€μ μ—μ„œ λ³Ό λ•Œ ν˜„μ§ 법원μž₯κΈ‰ κ³ μœ„λ²•κ΄€μ„ μ€‘μ‹¬μœΌλ‘œ λŒ€λ²•μ›μ„ κ΅¬μ„±ν•˜λŠ” 관행은 κ°œμ„ ν•  ν•„μš”κ°€ μžˆλŠ” κ²ƒμœΌλ‘œ 보인닀.',
    'passage: β–‘ μ—°λ°©ν—Œλ²•μž¬νŒμ†ŒλŠ” 2001λ…„ 1μ›” 24일 5:3의 λ‹€μˆ˜κ²¬ν•΄λ‘œ γ€Œλ²•μ›μ‘°μ§λ²•γ€ 제169μ‘° 제2문이 ν—Œλ²•μ— ν•©μΉ˜λœλ‹€λŠ” νŒκ²°μ„ λ‚΄λ ΈμŒ β—‹ 5인의 λ‹€μˆ˜ μž¬νŒκ΄€μ€ μ†Œμ†‘κ΄€κ³„μΈμ˜ 인격ꢌ 보호, κ³΅μ •ν•œ 절차의 보μž₯κ³Ό 방해받지 μ•ŠλŠ” 법과 진싀 발견 등을 근거둜 ν•˜μ—¬ ν…”λ ˆλΉ„μ „ μ΄¬μ˜μ— λŒ€ν•œ μ ˆλŒ€μ μΈ κΈˆμ§€λ₯Ό ν—Œλ²•μ— ν•©μΉ˜ν•˜λŠ” κ²ƒμœΌλ‘œ λ³΄μ•˜μŒ β—‹ κ·ΈλŸ¬λ‚˜ λ‚˜λ¨Έμ§€ 3인의 μž¬νŒκ΄€μ€ ν–‰μ •λ²•μ›μ˜ μ†Œμ†‘μ ˆμ°¨λŠ” νŠΉλ³„ν•œ 인격ꢌ 보호의 이읡도 μ—†μœΌλ©°, ν…”λ ˆλΉ„μ „ 곡개주의둜 인해 법과 진싀 발견의 과정이 μ–Έμ œλ‚˜ μœ„νƒœλ‘­κ²Œ λ˜λŠ” 것은 μ•„λ‹ˆλΌλ©΄μ„œ λ°˜λŒ€μ˜κ²¬μ„ μ œμ‹œν•¨ β—‹ μ™œλƒν•˜λ©΄ ν–‰μ •λ²•μ›μ˜ μ†Œμ†‘μ ˆμ°¨μ—μ„œλŠ” μ†Œμ†‘λ‹Ήμ‚¬μžκ°€ 개인적으둜 직접 심리에 μ°Έμ„ν•˜κΈ°λ³΄λ‹€λŠ” λ³€ν˜Έμ‚¬κ°€ μ°Έμ„ν•˜λŠ” κ²½μš°κ°€ 많으며, μ‹¬λ¦¬λŒ€μƒλ„ μ‚¬μ‹€λ¬Έμ œκ°€ μ•„λ‹Œ 법λ₯ λ¬Έμ œκ°€ λŒ€λΆ€λΆ„μ΄κΈ° λ•Œλ¬Έμ΄λΌλŠ” κ²ƒμž„ β–‘ ν•œνŽΈ, μ—°λ°©ν—Œλ²•μž¬νŒμ†ŒλŠ” γ€Œμ—°λ°©ν—Œλ²•μž¬νŒμ†Œλ²•γ€(Bundesverfassungsgerichtsgesetz: BVerfGG) 제17a쑰에 따라 μ œν•œμ μ΄λ‚˜λ§ˆ μž¬νŒμ— λŒ€ν•œ 방솑을 ν—ˆμš©ν•˜κ³  있음 β—‹ γ€Œμ—°λ°©ν—Œλ²•μž¬νŒμ†Œλ²•γ€ 제17μ‘°μ—μ„œ γ€Œλ²•μ›μ‘°μ§λ²•γ€ 제14절 내지 제16절의 κ·œμ •μ„ μ€€μš©ν•˜λ„λ‘ ν•˜κ³  μžˆμ§€λ§Œ, λ…ΉμŒμ΄λ‚˜ μ΄¬μ˜μ„ ν†΅ν•œ μž¬νŒκ³΅κ°œμ™€ κ΄€λ ¨ν•˜μ—¬μ„œλŠ” γ€Œλ²•μ›μ‘°μ§λ²•γ€κ³Ό λ‹€λ₯Έ λ‚΄μš©μ„ κ·œμ •ν•˜κ³  있음',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6721, 0.3897],
#        [0.6721, 1.0000, 0.3740],
#        [0.3897, 0.3740, 1.0000]])

Training Details

Training Data

  • ko-triplet-v1.0
  • Korean query-document-hard_negative data pair (open data)
  • About 700000+ examples used totally

Training Procedure

Evaluation

Metrics

  • Recall, Precision, NDCG, F1

Benchmark Datasets

  • Ko-StrategyQA: ν•œκ΅­μ–΄ ODQA multi-hop 검색 데이터셋 (StrategyQA λ²ˆμ—­)
  • AutoRAGRetrieval: 금육, 곡곡, 의료, 법λ₯ , 컀머슀 5개 뢄야에 λŒ€ν•΄, pdfλ₯Ό νŒŒμ‹±ν•˜μ—¬ κ΅¬μ„±ν•œ ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋
  • MIRACLRetrieval: Wikipedia 기반의 ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋
  • PublicHealthQA: 의료 및 곡쀑보건 도메인에 λŒ€ν•œ ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋
  • BelebeleRetrieval: FLORES-200 기반의 ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋
  • MrTidyRetrieval: Wikipedia 기반의 ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋
  • MultiLongDocRetrieval: λ‹€μ–‘ν•œ λ„λ©”μΈμ˜ ν•œκ΅­μ–΄ μž₯λ¬Έ 검색 데이터셋
  • XPQARetrieval: λ‹€μ–‘ν•œ λ„λ©”μΈμ˜ ν•œκ΅­μ–΄ λ¬Έμ„œ 검색 데이터셋

Results

μ•„λž˜λŠ” λͺ¨λ“  λͺ¨λΈμ˜, λͺ¨λ“  벀치마크 데이터셋에 λŒ€ν•œ 평균 κ²°κ³Όμž…λ‹ˆλ‹€. μžμ„Έν•œ κ²°κ³ΌλŠ” KURE Githubμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

Top-k 1

Model Average Recall_top1 Average Precision_top1 Average NDCG_top1 Average F1_top1
nlpai-lab/KURE-v1 0.52640 0.60551 0.60551 0.55784
dragonkue/BGE-m3-ko 0.52361 0.60394 0.60394 0.55535
BAAI/bge-m3 0.51778 0.59846 0.59846 0.54998
Snowflake/snowflake-arctic-embed-l-v2.0 0.51246 0.59384 0.59384 0.54489
nlpai-lab/KoE5 0.50157 0.57790 0.57790 0.53178
intfloat/multilingual-e5-large 0.50052 0.57727 0.57727 0.53122
jinaai/jina-embeddings-v3 0.48287 0.56068 0.56068 0.51361
BAAI/bge-multilingual-gemma2 0.47904 0.55472 0.55472 0.50916
intfloat/multilingual-e5-large-instruct 0.47842 0.55435 0.55435 0.50826
intfloat/multilingual-e5-base 0.46950 0.54490 0.54490 0.49947
intfloat/e5-mistral-7b-instruct 0.46772 0.54394 0.54394 0.49781
Alibaba-NLP/gte-multilingual-base 0.46469 0.53744 0.53744 0.49353
Alibaba-NLP/gte-Qwen2-7B-instruct 0.46633 0.53625 0.53625 0.49429
openai/text-embedding-3-large 0.44884 0.51688 0.51688 0.47572
Salesforce/SFR-Embedding-2_R 0.43748 0.50815 0.50815 0.46504
upskyy/bge-m3-korean 0.43125 0.50245 0.50245 0.45945
jhgan/ko-sroberta-multitask 0.33788 0.38497 0.38497 0.35678

Top-k 3

Model Average Recall_top1 Average Precision_top1 Average NDCG_top1 Average F1_top1
nlpai-lab/KURE-v1 0.68678 0.28711 0.65538 0.39835
dragonkue/BGE-m3-ko 0.67834 0.28385 0.64950 0.39378
BAAI/bge-m3 0.67526 0.28374 0.64556 0.39291
Snowflake/snowflake-arctic-embed-l-v2.0 0.67128 0.28193 0.64042 0.39072
intfloat/multilingual-e5-large 0.65807 0.27777 0.62822 0.38423
nlpai-lab/KoE5 0.65174 0.27329 0.62369 0.37882
BAAI/bge-multilingual-gemma2 0.64415 0.27416 0.61105 0.37782
jinaai/jina-embeddings-v3 0.64116 0.27165 0.60954 0.37511
intfloat/multilingual-e5-large-instruct 0.64353 0.27040 0.60790 0.37453
Alibaba-NLP/gte-multilingual-base 0.63744 0.26404 0.59695 0.36764
Alibaba-NLP/gte-Qwen2-7B-instruct 0.63163 0.25937 0.59237 0.36263
intfloat/multilingual-e5-base 0.62099 0.26144 0.59179 0.36203
intfloat/e5-mistral-7b-instruct 0.62087 0.26144 0.58917 0.36188
openai/text-embedding-3-large 0.61035 0.25356 0.57329 0.35270
Salesforce/SFR-Embedding-2_R 0.60001 0.25253 0.56346 0.34952
upskyy/bge-m3-korean 0.59215 0.25076 0.55722 0.34623
jhgan/ko-sroberta-multitask 0.46930 0.18994 0.43293 0.26696

Top-k 5

Model Average Recall_top1 Average Precision_top1 Average NDCG_top1 Average F1_top1
nlpai-lab/KURE-v1 0.73851 0.19130 0.67479 0.29903
dragonkue/BGE-m3-ko 0.72517 0.18799 0.66692 0.29401
BAAI/bge-m3 0.72954 0.18975 0.66615 0.29632
Snowflake/snowflake-arctic-embed-l-v2.0 0.72962 0.18875 0.66236 0.29542
nlpai-lab/KoE5 0.70820 0.18287 0.64499 0.28628
intfloat/multilingual-e5-large 0.70124 0.18316 0.64402 0.28588
BAAI/bge-multilingual-gemma2 0.70258 0.18556 0.63338 0.28851
jinaai/jina-embeddings-v3 0.69933 0.18256 0.63133 0.28505
intfloat/multilingual-e5-large-instruct 0.69018 0.17838 0.62486 0.27933
Alibaba-NLP/gte-multilingual-base 0.69365 0.17789 0.61896 0.27879
intfloat/multilingual-e5-base 0.67250 0.17406 0.61119 0.27247
Alibaba-NLP/gte-Qwen2-7B-instruct 0.67447 0.17114 0.60952 0.26943
intfloat/e5-mistral-7b-instruct 0.67449 0.17484 0.60935 0.27349
openai/text-embedding-3-large 0.66365 0.17004 0.59389 0.26677
Salesforce/SFR-Embedding-2_R 0.65622 0.17018 0.58494 0.26612
upskyy/bge-m3-korean 0.65477 0.17015 0.58073 0.26589
jhgan/ko-sroberta-multitask 0.53136 0.13264 0.45879 0.20976

Top-k 10

Model Average Recall_top1 Average Precision_top1 Average NDCG_top1 Average F1_top1
nlpai-lab/KURE-v1 0.79682 0.10624 0.69473 0.18524
dragonkue/BGE-m3-ko 0.78450 0.10492 0.68748 0.18288
BAAI/bge-m3 0.79195 0.10592 0.68723 0.18456
Snowflake/snowflake-arctic-embed-l-v2.0 0.78669 0.10462 0.68189 0.18260
intfloat/multilingual-e5-large 0.75902 0.10147 0.66370 0.17693
nlpai-lab/KoE5 0.75296 0.09937 0.66012 0.17369
BAAI/bge-multilingual-gemma2 0.76153 0.10364 0.65330 0.18003
jinaai/jina-embeddings-v3 0.76277 0.10240 0.65290 0.17843
intfloat/multilingual-e5-large-instruct 0.74851 0.09888 0.64451 0.17283
Alibaba-NLP/gte-multilingual-base 0.75631 0.09938 0.64025 0.17363
Alibaba-NLP/gte-Qwen2-7B-instruct 0.74092 0.09607 0.63258 0.16847
intfloat/multilingual-e5-base 0.73512 0.09717 0.63216 0.16977
intfloat/e5-mistral-7b-instruct 0.73795 0.09777 0.63076 0.17078
openai/text-embedding-3-large 0.72946 0.09571 0.61670 0.16739
Salesforce/SFR-Embedding-2_R 0.71662 0.09546 0.60589 0.16651
upskyy/bge-m3-korean 0.71895 0.09583 0.60258 0.16712
jhgan/ko-sroberta-multitask 0.61225 0.07826 0.48687 0.13757

FAQ

- Do I need to add the prefix "query: " and "passage: " to input texts?

Yes, this is how the model is trained, otherwise you will see a performance degradation.

Here are some rules of thumb:

  • Use "query: " and "passage: " correspondingly for asymmetric tasks such as passage retrieval in open QA, ad-hoc information retrieval.

  • Use "query: " prefix for symmetric tasks such as semantic similarity, bitext mining, paraphrase retrieval.

  • Use "query: " prefix if you want to use embeddings as features, such as linear probing classification, clustering.

Citation

If you find our paper or models helpful, please consider cite as follows:

@misc{KURE,
  publisher = {Youngjoon Jang, Junyoung Son, Taemin Lee},
  year = {2024},
  url = {https://github.com/nlpai-lab/KURE}
},

@misc{KoE5,
  author = {NLP & AI Lab and Human-Inspired AI research},
  title = {KoE5: A New Dataset and Model for Improving Korean Embedding Performance},
  year = {2024},
  publisher = {Youngjoon Jang, Junyoung Son, Taemin Lee},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/nlpai-lab/KoE5}},
}

Limitations

Long texts will be truncated to at most 512 tokens.

Downloads last month
18,360
Safetensors
Model size
560M params
Tensor type
F32
Β·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for nlpai-lab/KoE5

Finetuned
(68)
this model
Finetunes
1 model

Dataset used to train nlpai-lab/KoE5