Paper · 2021-05-20 · cs.CL
KLUE: Korean Language Understanding Evaluation
KLUE is a Korean NLU benchmark of eight tasks (topic classification, STS, NLI, NER, relation extraction, dependency parsing, MRC, dialogue state tracking) built from openly licensed corpora, with fine-tuning baselines and KLUE-BERT and KLUE-RoBERTa pretrained models. Author-reported: KLUE-RoBERTa-large leads most tasks on the test leaderboard.
Benchmark validityLanguage model pretrainingSubword tokenizationMultilingual evaluationbenchmarkkoreannatural-language-understandinglanguage-model-pretrainingfine-tuningtokenization
arXivPDFCodeMarkdown16 min read
AI-compiled by claude-haiku-5-5 on 2026-11-06, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
Most language models are judged by a set of test tasks. Those sets exist for English, and for a few other languages, but Korean had no single standard suite that covered many kinds of language understanding. KLUE is that suite. It bundles eight tasks: sorting news headlines by topic, rating how similar two sentences are, deciding whether one sentence follows from another, finding names of people and places, finding how two entities are related, working out the grammar of a sentence, answering questions from a passage, and tracking what a user wants across a task-oriented dialogue.
The authors wanted the data to be usable by anyone. They built each task from text whose license allows reuse, and they filtered out biased, hateful and personal content. Along with the data they published two Korean pretrained language models and a fine-tuning recipe for each task, so that a team can reproduce a baseline and compare against it.
The main finding is that a larger model does better on most tasks, and that models trained on Korean text usually beat multilingual ones of similar size. The authors also found that removing personal details from the pretraining text cost little accuracy.
TL;DR
KLUE is a Korean benchmark of eight NLU tasks with per-task metrics, released under CC BY-SA. Its baselines fine-tune pretrained encoders with a small task head. Test labels are withheld, so the reported test scores come from a leaderboard submission. KLUE-RoBERTa-large gives the best test scores on most tasks, but the paper's text overstates this (see Pitfalls).
Problem
Korean had no unified NLU benchmark, unlike English (GLUE, SuperGLUE) and several other languages §1. Existing Korean datasets were often translations of English benchmarks, which can miss Korean-specific features such as agglutinative morphology and miss social context §1.1, §2. The authors also state that they want the benchmark usable without licence restrictions and free of social bias, toxic content and personal data §1.1. A benchmark only helps if its labels are unambiguous, so the paper documents annotation guidelines and their revisions §1.1.
Method
The paper has two parts: a benchmark (data and metrics) and baselines (pretrained models and fine-tuning).
Part 1: benchmark construction
- Choose tasks that cover different aspects of understanding and avoid redundancy §1.1.
- Collect source corpora that are openly licensed or not copyrighted. The paper lists ten sources, among them Yonhap News headlines, Wikipedia, Wikinews, Wikitree, policy news, ParaKQC, Airbnb reviews, the NAVER Sentiment Movie Corpus, The Korea Economy Daily and Acrofan news §1.1. Corpus selection and preprocessing are in §2.1–§2.4.
- Filter sources for noisy, toxic or biased text and for personal information, using rules and classifiers before annotation §1.1.
- Write annotation guidelines, revise them over several rounds, and drop examples that annotators do not agree on §1.1.
- Split each task's data as described per task in §3.1–§3.8. Splits follow publication date (TC), a distribution-balancing rule (STS), class balance (NLI), unseen entities in test (NER, RE), or counterfactual goals and unseen database rows (DST).
- Score each task with the metric in tab. 1. The paper deliberately does not average scores across tasks §5.3.
Part 2: baselines
- Start from a pretrained encoder. Each task adds a small head on the encoder's output, as described in §5.1.
- Fine-tune all weights with AdamW under the grid in §5.2, and keep the configuration with the best development score §5.2.
- Pretrain KLUE-BERT and KLUE-RoBERTa on about 62.65 GB of Korean text, using morpheme-aware subword tokenization §4.1.
Task overview tab. 1; split details per task in §3.1–§3.8
| Task | Type | Metric | Classes | Train / dev / test | Source |
|---|---|---|---|---|---|
| TC (YNAT) | single-sentence classification | macro F1 | 7 | 45k / 9k / 9k | news headlines |
| STS | sentence-pair regression | Pearson r; F1 after binarizing | score in [0, 5] | 11k / 0.5k / 1k (§3.2: 11,668 / 519 / 1,037) | news, review, query |
| NLI | sentence-pair classification | accuracy | 3 | 25k / 3k / 3k | news, Wikipedia, review |
| NER | sequence tagging (BIO) | entity-level and character-level macro F1 | 6 types | 21k / 5k / 5k sentences | news, review |
| RE | single-sentence classification with two entity spans | micro F1 without no_relation; AUPRC | 30 | 32k / 8k / 8k | Wikipedia, news |
| DP | sequence tagging with POS tags | UAS, LAS | 38 dependency labels | 10k / 2k / 2.5k sentences | news, review |
| MRC | span prediction | exact match; ROUGE-W | 2 (start, end) | 12k / 8k / 9k in tab. 1; 17,554 / 5,841 / 5,918 in §3.7 | Wikipedia, news |
| DST (WoS) | slot-value prediction | joint goal accuracy; slot micro F1 | 45 slots | 8k / 1k / 1k dialogues | task-oriented dialogue |
Tab. 1 gives NER as "6, 12" classes without saying what the 12 are; the code uses 12 BIO tags plus O (see Paper vs code). The MRC row conflicts with §3.7 (see Pitfalls).
Task heads and losses §5.1
- Single-sentence classification (TC, RE): the final hidden state of the first token is mapped linearly to the label count K, trained with cross-entropy. RE adds four marker tokens (
<subj>,</subj>,<obj>,</obj>) and expands the embedding matrix. - Sentence-pair regression (STS): the same first-token state is mapped to one real number, trained with mean squared error.
- Sentence-pair classification (NLI): three logits, cross-entropy.
- Slot-value prediction (DST): a TRADE-style encoder-decoder in which the encoder is the pretrained model instead of a GRU. The first token's state starts the decoder. A slot-gate classifier has two extra labels, yes and no. The generator and gate losses are summed.
- Sequence tagging (NER): each token's final state is mapped to 12 values, one per named-entity category, with cross-entropy summed over tokens. Subword labels must be aligned to characters.
- Span prediction (MRC): each passage token gets two logits (start and end), cross-entropy. For unanswerable questions the first token is the target for both start and end.
- Dependency parsing (DP): each word is represented by the concatenation of its first and last subword states, optionally with a part-of-speech embedding. A biaffine attention predicts the head and a bilinear classifier predicts the arc type. The paper follows a cited parser for this design §5.1.
# Fine-tune one pretrained encoder on one KLUE task [§5.1] [§5.2]
# Input: train_set, dev_set, one configuration from the grid
# Output: checkpoint with the best dev score
def fine_tune_task(train_set, dev_set, config):
# Pretrained encoder plus a new task head, both trained [§5.1]
model = encoder + task_head(config.task)
# AdamW, learning rate and weight decay from the grid [§5.2]
optimizer = adamw(model, config.learning_rate, config.weight_decay)
# Linear schedule; warmup is a fraction of total steps [§5.2]
scheduler = linear_warmup(optimizer, config.warmup_ratio)
for epoch in range(config.epochs):
for batch in batches(train_set, config.batch_size):
# Task loss: cross-entropy, MSE or span loss [§5.1]
loss = task_loss(model, batch)
# Clip gradient norm to 1.0 in the released code [code: run_klue.py#L56]
clip_gradients(model, max_norm=1.0)
optimizer.step()
scheduler.step()
optimizer.zero_grad()
# Select on dev, never on test [§5.2]
return best_checkpoint_by_dev_score(dev_set)Pretraining (summary)
- Two architectures: BERT (static whole-word masking, next-sentence prediction) and RoBERTa (dynamic whole-word masking) §4.1.
- Tokenization: text is split into morphemes with Mecab-ko, then byte-pair encoding (BPE) with a 32k vocabulary is learned on the morphemes. At inference only the BPE model is used, so no morphological analyser is needed §4.1.
- Personal data: 16 types detected with regular expressions, replaced with generated values, pseudonymizing 1.2% of the corpus §4.1.
- Bias and hate speech were deliberately not filtered out of the pretraining corpus, with reasons given §4.1.
Hyperparameters
Pretraining §4.1, pretraining-details table
| Model | Parameters | Masking | Training steps | Batch size | Learning rate | Device |
|---|---|---|---|---|---|---|
| KLUE-BERT (BASE) | 110M | static, WWM, NSP | 1M | 256 | 1e-4 | TPU v3-8 |
| KLUE-RoBERTa SMALL | 68M | dynamic, WWM | 1M | 2048 | 1e-4 | 8× V100 |
| KLUE-RoBERTa BASE | 110M | dynamic, WWM | 1M | 2048 | 1e-4 | 8× V100 |
| KLUE-RoBERTa LARGE | 337M | dynamic, WWM | 500k | 2048 | 1e-4 | 8× V100 |
Other pretraining settings: sequences up to 512 tokens. Other settings "same as the original configurations" of BERT and RoBERTa. Warmup, Adam betas and epsilon for pretraining are not stated in the paper §4.1.
Pretraining corpus §4.1, pretraining-corpus table
| Source | Sentences | Words | Size (GB) |
|---|---|---|---|
| MODU | 167M | 1,892,814,395 | 18.27 |
| CC-100-Kor | 103M | 1,593,887,022 | 15.46 |
| NAMUWIKI | 14M | 265,203,602 | 2.52 |
| NEWSCRAWL | 183M | 2,716,968,038 | 25.87 |
| PETITION | 5.2M | 50,631,183 | 0.53 |
| Total | 473M | 6,519,504,240 | 62.65 |
For CC-100-Kor and NEWSCRAWL, sentences under 200 characters are dropped. Sentences that appear in the benchmark tasks are removed using BM25 similarity §4.1.
Fine-tuning search space, as stated in the paper §5.2
| Hyperparameter | Values searched |
|---|---|
| Learning rate | 1e-5, 2e-5, 3e-5, 5e-5 |
| Warmup ratio | 0, 0.1, 0.2, 0.6 |
| Weight decay | 0.0, 0.01 |
| Batch size | 8, 16, 32 |
| Epochs | 3, 4, 5, 10 |
| Max sequence length | 512 for MRC and DST; 128 for all other tasks |
Optimizer: AdamW §5.2. Selection: best dev score §5.2. Number of random seeds: not stated.
Values the released code uses instead of the search run_all.sh. Each row is one task. Rows without "large" cover the small and base models in the script's loop; rows marked "large" apply to klue/roberta-large. Settings not listed use the script defaults (epochs 4, weight decay 0, no warmup, learning rate 5e-5).
| Task | Learning rate | Epochs | Batch | Warmup | Max seq | Metric key | Source |
|---|---|---|---|---|---|---|---|
| TC (YNAT) | 5e-5 | 4 | 32 | 0.1 | 128 | macro_f1 | run_all.sh#L12 |
| TC, large | 5e-5 | 4 | 32 | 0.2 | 128 | macro_f1 | run_all.sh#L15 |
| STS | 5e-5 | 4 | 32 | 0.1 | 128 | pearsonr | run_all.sh#L21 |
| STS, large | 2e-5 | 4 | 32 | 0.1 | 128 | pearsonr | run_all.sh#L24 |
| NLI | 5e-5 | 5 | 32 | 0.1 | 128 | accuracy | run_all.sh#L30 |
| NLI, large | 5e-5 | 5 | 32 | 0.2 | 128 | accuracy | run_all.sh#L33 |
| NER | 5e-5 (default) | 3 | default | none | 510 | character_macro_f1 | run_all.sh#L39 |
| NER, large | 1e-5 | 3 | 8 | none | 510 | character_macro_f1 | run_all.sh#L42 |
| RE | 5e-5 | 3 | 32 | 0.1 | 256 | micro_f1 | run_all.sh#L48 |
| RE, large | 2e-5 | 10 | 16 | 0.2 | 256 | micro_f1 | run_all.sh#L51 |
| DP | 5e-5 | 10 | 32 | 0.1 | 256 | las_macro_f1 | run_all.sh#L57 |
| DP, large | 5e-5 | 15 | 32 | 0.2 | 256 | uas_macro_f1 | run_all.sh#L60 |
| MRC | 3e-5 | 5 | 16 | none | 510 | rouge_w | run_all.sh#L66 |
| MRC, BERT-base | 3e-5 | 5 | 16 | none | 512 | rouge_w | run_all.sh#L69 |
| DST (WoS) | 3e-5 | 5 | 16 | 0.1 | 510 | slot_micro_f1 | run_all.sh#L75 |
| DST, large | 2e-5 | 5 | 8 (×2 accumulation) | 0.1 | 510 | slot_micro_f1 | run_all.sh#L78 |
Other fixed values in the script: weight decay 0 for TC, STS and NLI; 0.01 for DST; gradient clipping 1.0 for STS, NLI and DST; early-stopping patience 100000 for TC, MRC and DST (effectively off), 10000 for RE and DP, and the default of 5 for STS, NLI and NER run_all.sh; code: run_klue.py.
Code-only defaults (not in the paper): AdamW epsilon 1e-8 lightning_base.py; linear learning-rate schedule lightning_base.py; random seed 42 run_klue.py; gradient clip 1.0 run_klue.py.
Results
Author-reported. Setup: eight tasks, each scored on the KLUE test set through the authors' leaderboard §5.3, app. A. Models are BASE size unless marked LARGE. Fine-tuning hardware is not stated. Each row is one pretrained model. Bold values in the source table mark the best per column across all models; underlined values mark the best among BASE models. In this card the best value per column is marked in the text, not in the table.
Test set §5.3
| Model | TC F1 | STS R^P | STS F1 | NLI ACC | NER F1^E | NER F1^C | RE F1^mic | RE AUC | DP UAS | DP LAS | MRC EM | MRC ROUGE | DST JGA | DST F1^S |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mBERT BASE | 81.55 | 84.66 | 76.00 | 73.20 | 76.50 | 89.23 | 57.88 | 53.82 | 90.30 | 86.66 | 44.66 | 55.92 | 35.46 | 88.63 |
| XLM-R BASE | 83.52 | 89.16 | 82.01 | 77.33 | 80.37 | 92.12 | 57.46 | 54.98 | 89.20 | 87.69 | 27.48 | 53.93 | 39.82 | 89.61 |
| XLM-R LARGE | 86.06 | 92.97 | 85.86 | 85.93 | 82.27 | 93.22 | 58.39 | 61.15 | 92.71 | 88.70 | 35.99 | 66.77 | 41.20 | 89.80 |
| KR-BERT BASE | 84.58 | 88.61 | 81.07 | 77.17 | 74.58 | 90.13 | 62.74 | 60.94 | 89.92 | 87.48 | 48.28 | 58.54 | 45.33 | 90.70 |
| KoELECTRA BASE | 84.59 | 92.46 | 84.84 | 85.63 | 86.11 | 92.56 | 62.85 | 58.94 | 92.90 | 87.77 | 59.82 | 66.05 | 41.58 | 89.60 |
| KLUE-BERT BASE | 85.73 | 90.85 | 82.84 | 81.63 | 83.97 | 91.39 | 66.44 | 66.17 | 89.96 | 88.05 | 62.32 | 68.51 | 46.64 | 91.61 |
| KLUE-RoBERTa SMALL | 84.98 | 91.54 | 85.16 | 79.33 | 83.65 | 91.14 | 60.89 | 58.96 | 90.04 | 88.14 | 57.32 | 62.70 | 46.62 | 91.44 |
| KLUE-RoBERTa BASE | 85.07 | 92.50 | 85.40 | 84.83 | 84.60 | 91.44 | 67.65 | 68.55 | 93.04 | 88.32 | 68.67 | 73.98 | 47.49 | 91.64 |
| KLUE-RoBERTa LARGE | 85.69 | 93.35 | 86.63 | 89.17 | 85.00 | 91.86 | 71.13 | 72.98 | 93.48 | 88.36 | 75.58 | 80.59 | 50.22 | 92.23 |
Column keys: F1 is macro F1 except where noted. STS R^P is Pearson correlation. NER F1^E is entity-level macro F1; F1^C is character-level macro F1. RE F1^mic is micro F1 without the no-relation class. DP UAS and LAS are the attachment scores. MRC EM is exact match; ROUGE is ROUGE-W. DST JGA is joint goal accuracy; F1^S is slot-value micro F1 §3.1–§3.8, §5.3.
Headline reading (author-reported): KLUE-RoBERTa-large has the highest test score in STS (both), NLI, RE (both), DP UAS, MRC (both) and DST (both). XLM-R-large is highest on TC and DP LAS, and KoELECTRA-base on NER entity F1 §5.3. Among BASE models, the paper names KLUE-BERT best on TC and DST, KLUE-RoBERTa-base on RE and MRC, and KoELECTRA-base on STS and NLI §5.3. See Pitfalls for the paper's own overstatement of the large-model result.
Development set app. A
Same column layout as the test table above. Dev scores are for reference; test scores need submission.
| Model | TC F1 | STS R^P | STS F1 | NLI ACC | NER F1^E | NER F1^C | RE F1^mic | RE AUC | DP UAS | DP LAS | MRC EM | MRC ROUGE | DST JGA | DST F1^S |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mBERT BASE | 82.64 | 82.97 | 75.93 | 72.90 | 75.56 | 88.81 | 58.39 | 56.41 | 88.53 | 86.04 | 49.96 | 55.57 | 35.27 | 88.60 |
| XLM-R BASE | 84.52 | 88.88 | 81.20 | 78.23 | 80.48 | 92.14 | 57.62 | 57.05 | 93.12 | 87.23 | 26.76 | 53.36 | 41.54 | 89.81 |
| XLM-R LARGE | 87.30 | 93.08 | 87.17 | 86.40 | 82.18 | 93.20 | 58.75 | 63.53 | 92.87 | 87.82 | 35.23 | 66.55 | 42.44 | 89.88 |
| KR-BERT BASE | 85.36 | 87.50 | 77.92 | 77.10 | 74.97 | 90.46 | 62.83 | 65.42 | 92.87 | 87.13 | 48.95 | 58.38 | 45.60 | 90.82 |
| KoELECTRA BASE | 85.99 | 93.14 | 85.89 | 86.87 | 86.06 | 92.75 | 62.67 | 57.46 | 90.93 | 87.07 | 59.54 | 65.64 | 39.83 | 88.91 |
| KLUE-BERT BASE | 86.95 | 91.01 | 83.44 | 79.87 | 83.71 | 91.17 | 65.58 | 68.11 | 93.07 | 87.25 | 62.42 | 68.15 | 46.72 | 91.59 |
| KLUE-RoBERTa SMALL | 85.95 | 91.70 | 85.42 | 81.00 | 83.55 | 91.20 | 61.26 | 60.89 | 93.47 | 87.50 | 58.28 | 63.56 | 46.65 | 91.50 |
| KLUE-RoBERTa BASE | 86.19 | 92.91 | 86.78 | 86.30 | 83.81 | 91.09 | 66.73 | 68.11 | 93.75 | 87.77 | 69.56 | 74.64 | 47.41 | 91.60 |
| KLUE-RoBERTa LARGE | 85.88 | 93.20 | 86.13 | 89.50 | 84.54 | 91.45 | 71.06 | 73.33 | 93.84 | 87.93 | 75.26 | 80.30 | 49.39 | 92.19 |
Pretraining ablations §5.4 (KLUE-RoBERTa BASE trained on the MODU corpus only; the evaluation split is not stated in §5.4)
| Pretraining corpus | TC F1 | STS R^P | STS F1 | NLI ACC | NER F1^E | NER F1^C | RE F1^mic | RE AUC | DP UAS | DP LAS | MRC EM | MRC ROUGE | DST JGA | DST F1^S |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Original | 83.40 | 92.06 | 84.70 | 81.60 | 84.84 | 91.03 | 65.25 | 64.79 | 92.17 | 88.34 | 62.13 | 67.46 | 47.14 | 91.60 |
| Pseudonymized | 83.39 | 91.11 | 82.85 | 78.50 | 84.99 | 91.22 | 62.79 | 62.96 | 92.02 | 88.02 | 62.88 | 67.58 | 46.21 | 91.23 |
| Tokenization | TC F1 | STS R^P | STS F1 | NLI ACC | NER F1^E | NER F1^C | RE F1^mic | RE AUC | DP UAS | DP LAS | MRC EM | MRC ROUGE | DST JGA | DST F1^S |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BPE | 83.40 | 91.91 | 85.19 | 82.07 | 68.75 | 89.47 | 64.39 | 65.04 | 89.89 | 89.47 | 51.12 | 65.79 | 21.38 | 77.68 |
| Morpheme-based subword | 83.40 | 92.06 | 84.70 | 81.60 | 84.84 | 91.03 | 65.25 | 64.79 | 92.17 | 88.34 | 62.13 | 67.46 | 47.14 | 91.60 |
Tokenizer statistics on the Wikipedia corpus with 32k vocabularies §5.4: BPE has fertility 2.073, 57.8% continued words and UNK ratio 0.011; morpheme-based subword has fertility 2.468, 76.5% continued words and UNK ratio 0.009.
Paper vs code
Code: the KLUE-benchmark organization's KLUE-baseline repository at commit 8a03c9447e4c225e806877a84242aea11258c790 (Apache-2.0). The paper links the same organization's repository in its ethics section §6, which is why it is treated as official. The paper itself doesn't name KLUE-baseline.
Checked against the code: the paper's search grid, the per-task heads and the DST loss all match the code, except for the items below.
- Hyperparameters are fixed per model in the script, not searched. The paper says the best configuration is chosen from a grid §5.2.
run_all.shhard-codes one setting per task and model size run_all.sh. The script can therefore not reproduce a search, and the grid values in the paper do not all appear there. - Epochs outside the stated grid. DP-large trains for 15 epochs run_all.sh; the paper's grid is {3, 4, 5, 10} §5.2.
- Sequence length differs from the paper's stated values. The paper says 128 for all tasks except MRC and DST §5.2. The script uses 256 for RE and DP run_all.sh and 510 for NER run_all.sh. MRC and DST use 510 for the RoBERTa models, but 512 for the BERT-base MRC run run_all.sh.
- Dependency parser has LSTM layers not described in §5.1. The code puts a bidirectional LSTM encoder with dropout 0.33 on top of the pretrained encoder dependency_parsing.py and an ELU projection before the biaffine and bilinear heads dependency_parsing.py. The paper's §5.1 describes only the heads and cites a parser for the design, so the LSTMs are implied at most.
- DP metric names do not match the standard attachment score. The paper defines UAS and LAS as the fraction of correctly attached heads and labels §3.6. The code computes macro and micro F1 over the head labels and the arc-type labels functional.py. The script reports
uas_macro_f1andlas_macro_f1run_all.sh. These are not the same numbers as the paper's UAS and LAS unless the paper also used F1; the paper does not say which. - NER output size. The paper says the tagging head outputs 12 values §5.1. The label set in code has 12 BIO tags plus
O, that is 13 labels klue_ner.py. - NER character F1 excludes
O. The code's character macro F1 is computed over the entity labels only functional.py. The paper says only "character-level macro-F1" §3.4, tab. 1. - STS F1 threshold. The paper says the similarity scores are binarized "as in paraphrase detection" but does not give the threshold §3.2. The code uses 3 functional.py.
- Dependency parsing training versus validation. During training the code uses gold head indices; at validation time it uses argmax predictions dependency_parsing.py. The paper does not state which is used at test time.
- MRC scoring against several gold answers. The code takes the maximum EM and ROUGE-W over all gold answers for each question utils.py. The paper does not say how multiple references are handled.
- Early stopping. Default patience is 5 epochs run_klue.py but the script sets 100000 for most tasks, which effectively disables it run_all.sh. The checkpoint saved is the one with the best validation metric run_klue.py. The paper does not describe early stopping.
- Data version. The script pins KLUE data
v1.1run_all.sh. The paper does not name a data version. - Random seed and weight decay on biases and LayerNorm. The code uses seed 42 run_klue.py and excludes bias and LayerNorm weights from weight decay lightning_base.py. Neither appears in the paper.
- Pretrained checkpoints are not in this repository. The script loads the models by Hugging Face names such as
klue/bert-baserun_all.sh. The morpheme-based tokenizer (§4.1) is not implemented in the repository. The repository does not include the pretraining code. - Test scores cannot be reproduced locally. The README states that test sets are not public and that scores come from submitting a model to the authors' system README.md.
No discrepancies were checked for the pretraining code, because none is in the repository.
Pitfalls
- Table 1 disagrees with §3.7 for MRC. The overview table lists about 12k train, 8k dev and 9k test examples tab. 1. The detailed split table in §3.7 gives 17,554 train, 5,841 dev and 5,918 test, totalling 29,313 §3.7. Use the §3.7 figures.
- Table 1 and §3.1 disagree on the TC size. The text says 70,000 headlines were kept §3.1. The split counts in the §3.1 table sum to 63,892 (45,678 train, 9,107 dev, 9,107 test). The paper does not explain the difference.
- The paper overstates its own results. The text says KLUE-RoBERTa-large beats all other models on every task except NER §5.3. In the test table, XLM-R-large scores higher on TC (86.06 vs 85.69) and DP LAS (88.70 vs 88.36) §5.3. The claim is true for most tasks, not all.
- Test scores need submission. Test labels are not released. Submissions are limited to one per day to slow saturation of the benchmark app. A. Any comparison using test scores depends on the leaderboard state at the time.
- Dev scores are not test scores. The paper picks each model's configuration using dev §5.2. Dev numbers are in app. A for reference only.
- Hyperparameter search is not reproducible from the paper alone. The grid §5.2 is given as sets, but the number of random seeds, warmup and weight decay for pretraining, and the search budget are not stated. The script uses fixed values, not the grid (see Paper vs code).
- Pretraining learning rate. The paper says it lowered the learning rate because its batch (2,048) is smaller than RoBERTa's 8k, then fixed it at 1e-4 for both models §4.1. The warmup schedule and optimizer betas are not stated.
- NER label count. §5.1 says the output is 12-dimensional, while the BIO scheme over six entity types plus
Ogives 13 labels (see Paper vs code). - Metric definitions are partly loose. DP "UAS/LAS" in the paper is not the same computation as the code's macro F1 variants (Paper vs code 5). NER character F1 excludes
Oin code but the paper does not say so (Paper vs code 7). - Morpheme analysis runs only when building the vocabulary. Mecab-ko is used for the vocabulary and corpus; at inference the BPE model alone is used §4.1. The paper's ablation shows BPE trails badly on NER entity F1 (68.75 vs 84.84) and DST JGA (21.38 vs 47.14) §5.4. The ablation does not say whether BPE with a morpheme analyser at inference would close the gap.
- Pseudonymization is cheap but not free. The ablation shows small drops; the largest are NLI accuracy (81.60 vs 78.50) and RE micro F1 (65.25 vs 62.79) §5.4.
- Licensing of the data. The benchmark data is released under CC BY-SA §6. Redistributed copies must keep that license. The paper does not say whether models fine-tuned on KLUE count as derivatives; check before commercial use.
- Bias is kept in pretraining. The authors did not filter bias or hate speech from the pretraining corpus §4.1. Pseudonymization covers only personal identifiers.
- Long MRC and DST inputs. MRC and DST use a 512-token limit in the paper §5.2; several RoBERTa runs in the script use 510 run_all.sh. Two-token differences matter if you compare exact figures.
Lineage
- Builds on: BERT and RoBERTa architectures and their pretraining objectives, used as KLUE-BERT and KLUE-RoBERTa §4.1. TRADE for DST §5.1. A cited biaffine-style dependency parser for DP §5.1. A cited entity-marker method for RE §5.1.
- Compared against: mBERT, XLM-R (BASE and LARGE), KR-BERT and KoELECTRA §4.2.
- Superseded by: not stated in this wiki.
Source and license
Adapted from “KLUE: Korean Language Understanding Evaluation” by Sungjoon Park, Jihyung Moon, Sungdong Kim, Won Ik Cho, Jiyoon Han, Jangwon Park, Chisung Song, Junseong Kim, Yongsook Song, Taehwan Oh, Joohong Lee, Juhyun Oh, Sungwon Lyu, Younghoon Jeong, Inkwon Lee, Sangwoo Seo, Dongjun Lee, Hyunwoo Kim, Myeonghwa Lee, Seongbo Jang, Seungwon Do, Sunkyoung Kim, Kyungtae Lim, Jongwon Lee, Kyumin Park, Jamin Shin, Seonghyun Kim, Lucy Park, Alice Oh, Jung-Woo Ha, Kyunghyun Cho (arXiv:2105.09680), used under CC BY-SA 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors. This page is licensed under CC BY-SA 4.0. Code citations refer to https://github.com/KLUE-benchmark/KLUE-baseline at commit 8a03c9447e4c (Apache-2.0). Any quoted code is shown under that license.