Downloads Β· 30 days
1.9K
12% of all-time downloads
KORMo-Team/KORMo-10B-sft
KORMo-10B-sft is a text generation model from KORMo-Team. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
<img src="https://github.com/MLP-Lab/KORMo-tutorial/blob/main/tutorial/attachment/kormologo.png?raw=true" style="width: 100%; max-width: 1100px;" </p --
Downloads Β· 30 days
1.9K
12% of all-time downloads
All-time downloads
16K
Public
Parameters
10.8B
409 GB on disk
Likes
131
Public
Click a slice to open those files.
.safetensors21.5 GB Β· 100%
From the Hugging Face model README
KORMo-10B is a 10.8B parameter fully open LLM capable of handling both Korean and English.
The model, training code, and training data are all fully open, allowing anyone to reproduce and extend them.
KORMoλ λΉμμ΄κΆ μ΅μ΄μ Fully Open Source LLMμΌλ‘, 곡μ΅μ νμ©μ λͺ©νλ‘ νμνμ΅λλ€.
μ°λ¦¬λ λꡬλ μΈκ³ μμ€μ μΈμ΄λͺ¨λΈμ μ§μ λ§λ€κ³ λ°μ μν¬ μ μλ νκ²½μ λ§λ€κ³ μ ν©λλ€.
KORMoμ μ£Όμ νΉμ§μ λ€μκ³Ό κ°μ΅λλ€:
1. From scratch νμ΅μΌλ‘ μ€κ³λ 10BκΈ νβμ μΆλ‘ μΈμ΄λͺ¨λΈμ
λλ€.
2. νμ΅ λ°μ΄ν°, μ½λ, λͺ¨λΈ 체ν¬ν¬μΈνΈμ νν 리μΌμ 100% 곡κ°νμ¬, λꡬλ SOTAμ κ·Όμ ν λͺ¨λΈμ μ§μ μ¬ννκ³ νμ₯ν μ μμ΅λλ€.
3. μ΄ 3.7T ν ν° κ·λͺ¨μ νμ΅ λ°μ΄ν°λ₯Ό 곡κ°ν©λλ€. νΉν μ§κΈκΉμ§ ν λ²λ 곡κ°λ μ μλ μ΄κ³ νμ§ μ μ£ΌκΈ° νκ΅μ΄ λ°μ΄ν°(μ¬μ νμ΅, μ¬ννμ΅, μΌλ°ν, μΆλ‘ ν, κ°ννμ΅ λ±)λ₯Ό μ 곡ν©λλ€.
4. μ΄ λͺ¨λ μμ
μ KAIST λ¬ΈνκΈ°μ λνμ MLPμ°κ΅¬μ€μ νλΆΒ·μμ¬μ 8λͺ
μ΄ νλ ₯νμ¬ μ§ννμΌλ©°, 45μ₯μ λ¬νλ λ
Όλ¬ΈμΌλ‘ μ 리νμ΅λλ€.
μ§κΈκΉμ§ νκ΅μ΄ λͺ¨λΈμ μ¨λ³΄λ©΄, λ²€μΉλ§ν¬ μ μλ μ’μλ° μ€μ¬μ©μμλ μ΄λκ° μ΄μνκ±°λ,
νλλ§ νλ©΄ λͺ¨λΈμ΄ λ§κ°μ§λ κ²½νμ νμ
¨μ κ²λλ€. λ΅λ΅νμ
¨μ£ ?
KORMoλ κ·Έλ° λ¬Έμ λ₯Ό μ λ©΄μΌλ‘ ν΄κ²°ν©λλ€.
λͺ¨λ μ€κ° λͺ¨λΈκ³Ό μ¬ννμ΅ λ°μ΄ν°λ₯Ό ν¨κ» 곡κ°νκΈ° λλ¬Έμ, μ¬μ©μλ λ² μ΄μ€ λͺ¨λΈ μμ μμ λ§μ λ°μ΄ν°λ₯Ό μΉμ΄ μνλ λ°©ν₯μΌλ‘ κ°ννμ΅Β·νλμ μ§νν μ μμ΅λλ€.
π "μ’μ νκ΅μ΄ λͺ¨λΈμ κ°κ³ μΆλ€λ©΄, μ΄μ μ§μ λ§λ€μ΄λ³΄μΈμ. μ½λ© λ¬΄λ£ GPUλ‘λ νλλ©λλ€! π€"
| Benchmark | KORMo-10B | smolLM3-3B | olmo2-7B | olmo2-13B | kanana1.5-8B | qwen3-8B | llama3.1-8B | gemma3-4B | gemma3-12B |
|---|---|---|---|---|---|---|---|---|---|
| πΊπΈ English Benchmarks | |||||||||
| arc_challenge | 58.96 | 55.55 | 59.13 | 61.01 | 56.48 | 63.82 | 54.61 | 53.58 | 63.82 |
| arc_easy | 85.48 | 83.21 | 85.06 | 86.57 | 82.74 | 87.50 | 84.01 | 82.83 | 87.37 |
| boolq | 83.46 | 82.17 | 84.50 | 86.48 | 84.53 | 87.71 | 81.87 | 80.70 | 86.61 |
| copa | 93.00 | 91.00 | 92.00 | 93.00 | 88.00 | 92.00 | 93.00 | 89.00 | 95.00 |
| gpqa_main | 30.13 | 26.79 | 26.34 | 29.24 | 29.24 | 30.13 | 23.44 | 30.13 | 35.71 |
| hellaswag | 60.25 | 56.78 | 61.52 | 65.02 | 59.93 | 59.54 | 60.96 | 57.56 | 63.67 |
| mmlu | 67.96 | 61.37 | 62.81 | 66.85 | 63.73 | 76.95 | 65.03 | 59.60 | 73.58 |
| mmlu_global | 63.44 | 57.52 | 59.88 | 63.99 | 60.21 | 75.05 | 61.30 | 57.23 | 70.23 |
| mmlu_pro | 40.18 | 34.94 | 27.29 | 32.50 | 34.93 | 56.58 | 36.23 | 27.79 | 37.07 |
| mmlu_redux | 69.00 | 62.95 | 63.53 | 68.37 | 65.88 | 78.19 | 65.86 | 60.86 | 75.25 |
| openbookqa | 39.00 | 36.40 | 39.00 | 39.60 | 36.80 | 39.20 | 39.00 | 37.00 | 40.20 |
| piqa | 81.12 | 78.45 | 80.79 | 82.64 | 80.30 | 79.05 | 80.90 | 79.49 | 82.59 |
| social_iqa | 52.81 | 50.72 | 55.89 | 57.57 | 57.01 | 56.96 | 53.12 | 51.84 | 56.45 |
| English Avg. | 63.45 | 59.83 | 61.36 | 64.06 | 61.52 | 67.90 | 61.49 | 59.05 | 66.73 |
| π°π· Korean Benchmarks | |||||||||
| click | 55.29 | 46.97 | 37.79 | 41.80 | 62.76 | 60.70 | 49.22 | 49.62 | 62.21 |
| csatqa | 38.00 | 26.67 | 19.33 | 24.67 | 44.67 | 52.00 | 28.67 | 28.67 | 31.33 |
| haerae | 68.29 | 55.82 | 31.62 | 37.58 | 80.75 | 67.19 | 53.25 | 60.68 | 74.34 |
| k2_eval | 84.89 | 75.23 | 49.54 | 63.43 | 84.72 | 84.72 | 76.62 | 76.39 | 85.42 |
| kobest | 75.05 | 69.13 | 57.27 | 59.02 | 81.93 | 80.05 | 70.55 | 69.33 | 77.70 |
| kobalt | 22.86 | 15.86 | 11.43 | 13.14 | 26.29 | 26.57 | 17.43 | 15.57 | 23.86 |
| kmmlu | 46.48 | 38.52 | 33.05 | 31.24 | 48.86 | 56.93 | 40.75 | 39.84 | 51.60 |
| mmlu_global (ko) | 55.16 | 44.15 | 34.00 | 36.95 | 52.65 | 61.95 | 46.34 | 46.33 | 59.68 |
| kr_clinical_qa | 77.32 | 53.97 | 48.33 | 46.22 | 65.84 | 80.00 | 63.54 | 60.00 | 77.22 |
| Korean Avg. | 58.15 | 47.37 | 35.82 | 39.34 | 60.94 | 63.35 | 49.60 | 49.60 | 60.37 |
| Benchmark | KORMo-10B | smolLM3-3B | olmo2-7B | olmo2-13B | kanana1.5-8B | qwen3-8B | llama3.1-8B | exaone3.5-8B | gemma3-12B |
|---|---|---|---|---|---|---|---|---|---|
| MT-Bench (EN) | 8.32 | 7.15 | 7.32 | 7.64 | 8.45 | 8.70 | 6.32 | 8.15 | 8.70 |
| KO-MT-Bench (KO) | 8.54 | - | - | - | 8.02 | 8.16 | 4.27 | 8.13 | 8.51 |
| LogicKor (KO) | 8.96 | - | - | - | 8.94 | 8.63 | 6.45 | 9.20 | 8.46 |
| Average | 8.61 | - | - | - | 8.47 | 8.50 | 5.68 | 8.49 | 8.56 |
git clone https://github.com/MLP-Lab/KORMo-tutorial.git
cd KORMo-tutorial
bash setup/create_uv_venv.sh
source .venv_kormo/bin/activate
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_name = "KORMo-Team/KORMo-10B-sft"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
messages = [
{"role": "user", "content": "What happens inside a black hole?"}
]
chat_prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False
)
inputs = tokenizer(chat_prompt, return_tensors="pt").to(model.device)
with torch.inference_mode():
output_ids = model.generate(
**inputs,
max_new_tokens=1024,
)
response = tokenizer.decode(output_ids[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
print("Assistant:", response)
<details>
<summary>vLLM</summary>
MODEL_ID = "KORMo-Team/KORMo-10B-sft"
ARCH = "KORMoForCausalLM"
_RENAME = {
"pre_attention_layernorm": "input_layernorm",
"pre_mlp_layernorm": "post_attention_layernorm",
}
def _remap_name(name: str) -> str:
for src, dst in _RENAME.items():
if src in name:
return name.replace(src, dst)
return name
def _build_class():
from vllm.model_executor.models.llama import LlamaForCausalLM
class KORMoForCausalLM(LlamaForCausalLM):
def load_weights(self, weights):
return super().load_weights(
(_remap_name(name), w) for name, w in weights
)
return KORMoForCausalLM
KORMoForCausalLM = _build_class()
def register_kormo():
from vllm import ModelRegistry
if ARCH not in ModelRegistry.get_supported_archs():
ModelRegistry.register_model(ARCH, "generation.kormo_vllm:KORMoForCausalLM")
</details>
If you want to enable the thinking mode, simply set enable_thinking=True:
chat_prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True
)
The model has not yet been safety-tuned or preference-aligned, which may lead to suboptimal performance or undesired repetitions in complex reasoning tasks.
[email protected]@misc{KORMo,
author = {Minjun Kim, Hyeonseok Lim, Hangyeol Yoo, Inho Won, Seungwoo Song, Minkyung Cho, Junghun Yuk, Changsu Choi, Dongjae Shin, Huije Lee, Hoyun Song, Alice Oh, and KyungTae Lim},
title = {KORMo: Korean Open Reasoning Model for Everyone},
year = {2025},
publisher = {GitHub},
journal = {Technical Report},
paperLink = {\url{https://arxiv.org/abs/2510.09426}},
},
}