Instructions to use NGA-KR/ko-embed-midm with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use NGA-KR/ko-embed-midm with sentence-transformers:
from sentence_transformers import SentenceTransformer model = SentenceTransformer("NGA-KR/ko-embed-midm") sentences = [ "The weather is lovely today.", "It's so sunny outside!", "He drove to the stadium." ] embeddings = model.encode(sentences) similarities = model.similarity(embeddings, embeddings) print(similarities.shape) # [3, 3] - Notebooks
- Google Colab
- Kaggle
Configuration Parsing Warning:In tokenizer_config.json: "tokenizer_config.chat_template" must be one of [string, array]
NGA-KR/ko-embed-midm
Korean text embedding model (2.3B parameters, 1792 dimensions) fine-tuned from K-intelligence/Midm-2.0-Mini-Instruct, KT's Mi:dm 2.0 Mini.
This is an independent fine-tune by NGA-KR. It is not an official KT release.
Results
MTEB(kor, v2), 20 tasks, average of task-type means:
| Mean | Classification | Clustering | PairClassification | Reranking | Retrieval | STS |
|---|---|---|---|---|---|---|
| 70.00 | 62.73 | 62.26 | 69.62 | 58.93 | 70.85 | 81.69 |
MTEB(kor, v1) (6 tasks) mean: 70.03. Per-task scores are on the MTEB leaderboard.
Training data
Only public English datasets were used. No Korean training set and no benchmark test split was used.
| Source | Rows |
|---|---|
| MS MARCO, Natural Questions, HotpotQA, GooAQ (retrieval) | 200,000 |
| SNLI, MultiNLI (anchor, entailment, contradiction triplets) | 100,000 |
| STS Benchmark train split (1,406 pairs with score โฅ 4.0 of 5, both directions) | 2,812 |
| Total | 302,812 |
These datasets are declared as training_datasets in the MTEB model metadata, which gives 100% zero-shot on MTEB(kor, v1) and MTEB(kor, v2).
Note that KorSTS and KorNLI are Korean translations of STS-B and SNLI/MultiNLI. This model used only the English train splits of those sources.
Usage
Requires sentence-transformers>=6.0.
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("NGA-KR/ko-embed-midm")
q = model.encode(["์ ์ธ ๊ณ์ฝ์์ ๊ธฐ๊ฐ์ ์ ์ผ์ผ๋ฉด ์ผ๋ง ๋์ ์ ํจํด?"], prompt_name="query")
d = model.encode(["์๋์ฐจ ๊ธฐ๊ฐ์ ์ ํ์ง ์๋ํ ๊ฒฝ์ฐ ๊ทธ ๊ธฐ๊ฐ์ 2๋
์ผ๋ก ๋ณธ๋ค."])
print(model.similarity(q, d))
Queries take the instruction prompt stored in the model config (prompt_name="query"):
Instruct: Given a question, retrieve passages that answer the question
Query:
Documents and symmetric inputs (STS, classification, clustering) are encoded without a prompt.
Training details
- Base: Midm-2.0-Mini-Instruct with the chat template removed
- Pooling: last token, L2-normalised
- Loss: CachedMultipleNegativesRankingLoss (in-batch negatives + 1 hard negative), temperature 0.02
- Full fine-tuning, batch 1024, lr 1e-5, cosine schedule, warmup 5%, 1 epoch, bf16 autocast
- Max sequence length: 256 in training, 512 at inference
License
MIT. The base model, Midm-2.0-Mini-Instruct, is released by KT Corporation under the MIT License (Copyright (c) 2025 KT Corporation). The full notice is in LICENSE.
- Downloads last month
- 20
Model tree for NGA-KR/ko-embed-midm
Base model
K-intelligence/Midm-2.0-Mini-Instruct