Kiwi COCO-LM

Table of Contents

  1. Model Summary
  2. Usage
  3. Evaluation
  4. Limitations
  5. Training
  6. License
  7. Citation

Model Summary

Kiwi COCO-LM์€ ModernBERT-base๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ•œ๊ตญ์–ดยท์˜์–ด ์ธ์ฝ”๋” ๋ชจ๋ธ๋กœ, ์ตœ๋Œ€ 8192 ํ† ํฐ ๊ธธ์ด์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ModernBERT-base์˜ ์–ดํœ˜์—์„œ ์‚ฌ์šฉ ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ๋‹ค๊ตญ์–ด ํ† ํฐ์„ ๋œ์–ด๋‚ด๊ณ  ๊ทธ ์ž๋ฆฌ์— ํ•œ๊ตญ์–ด ํ† ํฐ์„ ์ถ”๊ฐ€ํ•œ ๋’ค, ๊ธฐ์กด ๊ฐ€์ค‘์น˜๋ฅผ ์ด์–ด๋ฐ›์•„ ํ•œ๊ตญ์–ดยท์˜์–ด ๋ง๋ญ‰์น˜๋กœ ์ถ”๊ฐ€ ์‚ฌ์ „ํ•™์Šต์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์‚ฌ์ „ํ•™์Šต์—๋Š” COCO-LM์˜ ๋ฐฉ๋ฒ•๋ก ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ELECTRA์˜ Replaced Token Detection(RTD)์€ ๊ฐ ํ† ํฐ์ด ์น˜ํ™˜๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋งŒ ํŒ๋ณ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ง๋ญ‰์น˜๋กœ๋ถ€ํ„ฐ ์–ป๋Š” ํ•™์Šต ์‹ ํ˜ธ๊ฐ€ ์ œํ•œ์ ์ž…๋‹ˆ๋‹ค. COCO-LM์€ ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์น˜ํ™˜ ์—ฌ๋ถ€ ํŒ๋ณ„๊ณผ ํ•จ๊ป˜ ์›๋ž˜ ํ† ํฐ์„ ๋ณต์›ํ•˜๋Š” Corrective Language Modeling(CLM)์œผ๋กœ ํ† ํฐ ์ˆ˜์ค€์˜ ํ•™์Šต์„ ๊ฐ•ํ™”ํ•˜๊ณ , Sequence Contrastive Learning(SCL)์œผ๋กœ ์‹œํ€€์Šค ์ˆ˜์ค€์˜ ํ‘œํ˜„๋„ ํ•จ๊ป˜ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ModernBERT์— ์ด ํ•™์Šต ๋ฐฉ๋ฒ•๋ก ์„ ์ ์šฉํ•œ ๊ฒฐ๊ณผ Kiwi COCO-LM์€ ํ•œ๊ตญ์–ด(KLUE)์™€ ์˜์–ด(GLUE) ๋ฒค์น˜๋งˆํฌ ๋ชจ๋‘์—์„œ ๋น„์Šทํ•œ ๊ทœ๋ชจ์˜ ๋ชจ๋ธ๊ณผ ๊ฒฌ์ค„ ๋งŒํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค(Evaluation ์ฐธ๊ณ ).

์ด ์ €์žฅ์†Œ๋Š” Kiwi COCO-LM์˜ Discriminator๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” Discriminator๋ฅผ ๋‹ค์šด์ŠคํŠธ๋ฆผ ํƒœ์Šคํฌ์— ๋ฏธ์„ธ์กฐ์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜์ง€๋งŒ, Generator๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด Kiwi COCO-LM Generator ์ €์žฅ์†Œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ข…๋ฅ˜ ๋ ˆ์ด์–ด ๊ฐœ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๋ช…
Generator 6 80M Discriminator๊ฐ€ ์ž˜ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ทธ๋Ÿด์‹ธํ•œ ๋…ธ์ด์ฆˆ๋ฅผ ์ƒ์„ฑ
Discriminator 22 161M Generator๊ฐ€ ์ƒ์„ฑํ•œ ๋…ธ์ด์ฆˆ๋“ค์„ ํŒŒ์•…ํ•˜๊ณ  ๊ทธ ์•ˆ์—์„œ ์›๋ž˜ ์˜๋ฏธ๋ฅผ ๋ณต์›ํ•˜๋„๋ก ํ•™์Šต.

โ€ป ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š” ์ž„๋ฒ ๋”ฉ(64k ร— 768, ์•ฝ 49M)์„ ํฌํ•จํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Discriminator์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜์—๋Š” ์‚ฌ์ „ํ•™์Šต์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” RTD/SCL ํ—ค๋“œ(์•ฝ 1.3M)๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Usage

์ด ๋ชจ๋ธ์€ transformers v5 ์ด์ƒ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (ํ† ํฌ๋‚˜์ด์ € ์„ค์ •์ด v5 ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ์–ด v4.x์—์„œ๋Š” AutoTokenizer ๋กœ๋”ฉ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

pip install -U "transformers>=5.0.0"

์ž„๋ฒ ๋”ฉ ์ถ”์ถœ

import torch
from transformers import AutoTokenizer, AutoModel

model_id = "kiwi-farm/kiwi-coco-lm-base"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModel.from_pretrained(model_id)

inputs = tokenizer(["ํ‚ค์œ„๋Š” ํ•œ๊ตญ์–ด ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ์ž…๋‹ˆ๋‹ค.", "Kiwi is a Korean morphological analyzer."], padding=True, return_tensors="pt")
with torch.no_grad():
    outputs = model(**inputs)
cls_embeddings = outputs.last_hidden_state[:, 0]  # [CLS] ํ† ํฐ ์ž„๋ฒ ๋”ฉ

๋‹ค์šด์ŠคํŠธ๋ฆผ ํƒœ์Šคํฌ ๋ฏธ์„ธ์กฐ์ •

๋ถ„๋ฅ˜, ๊ฐœ์ฒด๋ช… ์ธ์‹, ์งˆ์˜์‘๋‹ต, ๊ฒ€์ƒ‰ ๋“ฑ์˜ ๋‹ค์šด์ŠคํŠธ๋ฆผ ํƒœ์Šคํฌ์—๋Š” ์ผ๋ฐ˜์ ์ธ BERT ๊ณ„์—ด ๋ชจ๋ธ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฏธ์„ธ์กฐ์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

from transformers import AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained("kiwi-farm/kiwi-coco-lm-base", num_labels=7)

๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ rtd_head, scl_head ๋“ฑ ์‚ฌ์ „ํ•™์Šต์šฉ ํ—ค๋“œ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค(UNEXPECTED)๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” COCO-LM ์‚ฌ์ „ํ•™์Šต์—๋งŒ ์“ฐ์ด๋Š” ๋ณด์กฐ ํ—ค๋“œ์ด๋ฏ€๋กœ ๋ฌด์‹œํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

โš ๏ธ fill-mask ์‚ฌ์šฉ ๊ด€๋ จ ์ฃผ์˜: ์ด ๋ชจ๋ธ์€ COCO-LM ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”์ธ ๋ชจ๋ธ์€ [MASK] ํ† ํฐ์ด ์•„๋‹ˆ๋ผ Generator๊ฐ€ ์น˜ํ™˜ํ•œ ํ† ํฐ์ด ์„ž์ธ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์›๋ž˜ ํ† ํฐ์„ ๋ณต์›(Corrective LM)ํ•˜๋„๋ก ํ•™์Šต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ fill-mask ํŒŒ์ดํ”„๋ผ์ธ์— [MASK] ํ† ํฐ์„ ๋„ฃ์–ด ๋นˆ์นธ์„ ์ฑ„์šฐ๋Š” ์šฉ๋„๋กœ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋ฏธ์„ธ์กฐ์ • ํ›„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

โš ๏ธ ModernBERT์˜ ์•„ํ‚คํ…์ฒ˜๋Š” Flash Attention 2์—์„œ ํšจ๊ณผ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด Flash Attention์„ ์„ค์น˜ํ•œ ๋’ค ์‚ฌ์šฉํ•˜๋Š”๊ฑธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค:

pip install flash-attn

Evaluation

KLUE ํƒœ์Šคํฌ ์ค‘ ์ผ๋ถ€(๋ชจ๋ธ ํฌ๊ธฐ Base ๊ธฐ์ค€)

Model Avg YNAT KLUE-STS KLUE-NLI KLUE-NER KLUE-RE KLUE-MRC
MacroF1 PearsonR / F1 Accuracy Ent. MacroF1 / Chr. MacroF1 MicroF1 / AUC EM / RougeW
Kiwi COCO-LM 82.34 86.15 92.23 / 86.90 87.87 84.44 / 93.02 65.36 / 69.67 71.38 / 77.00
KLUE RoBERTa 80.44 85.99 92.68 / 85.89 85.63 83.47 / 90.77 63.11 / 63.54 68.98 / 73.60
KoELECTRA 77.79 86.05 93.13 / 86.23 87.23 85.59 / 92.61 59.09 / 53.44 55.18 / 61.68
A.X-Encoder 82.91 85.77 92.58 / 86.33 87.37 87.63 / 93.29 65.74 / 68.40 74.97 / 79.70
KF-DeBERTa 82.89 86.53 92.63 / 87.45 87.73 85.26 / 92.62 67.16 / 70.38 72.92 / 77.73
ModernBERT 62.36 77.05 76.63 / 69.62 67.40 74.96 / 86.15 39.40 / 29.13 39.51 / 44.02
mmBERT 79.33 84.24 90.51 / 81.58 83.30 85.49 / 92.42 61.95 / 69.06 65.26 / 70.65

GLUE ํƒœ์Šคํฌ ์ค‘ ์ผ๋ถ€

Model Avg SST2 CoLA MRPC STS-B QQP MNLI QNLI RTE WNLI
Accuracy MCC Accuracy / F1 PearsonR / SpearmanRho Accuracy / F1 Accuracy Accuracy Accuracy Accuracy
Kiwi COCO-LM 83.02 93.01 61.16 90.93 / 93.47 91.00 / 90.79 91.12 / 88.10 87.64 93.26 83.03 56.34
KLUE RoBERTa 70.75 87.27 4.45 83.82 / 88.26 85.24 / 84.92 89.44 / 85.50 79.78 86.78 63.54 56.34
KoELECTRA 69.49 81.65 11.84 86.03 / 89.69 84.48 / 84.24 86.35 / 80.87 72.73 84.94 62.09 56.34
A.X-Encoder 74.99 90.48 24.23 85.05 / 89.32 87.55 / 87.41 90.28 / 86.90 83.53 91.05 66.07 56.34
KF-DeBERTa 71.34 86.47 9.25 85.05 / 89.57 86.81 / 86.54 88.34 / 84.10 78.46 88.19 63.18 56.34
ModernBERT 80.30 95.30 61.92 86.52 / 90.30 90.00 / 89.95 90.83 / 87.74 88.73 93.34 66.43 49.30
mmBERT 81.01 93.69 60.79 87.75 / 91.38 90.81 / 90.79 91.35 / 88.42 87.46 93.06 80.14 43.66

Tokenizer

์œ„ ํ‘œ์— ๋‚˜์˜จ ๋ชจ๋ธ๋“ค์˜ tokenizer๊ฐ€ ํ•œ๊ตญ์–ด์™€ ์˜์–ด๋ฅผ ์–ผ๋งˆ๋‚˜ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๋น„๊ตํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ์ƒ˜ํ”Œ ๋ฌธ์„œ(6,162 ๋ฐ”์ดํŠธ, 534 ์–ด์ ˆ)์™€ ์˜์–ด ์ƒ˜ํ”Œ ๋ฌธ์„œ(4,503 ๋ฐ”์ดํŠธ, 693 ๋‹จ์–ด)๋ฅผ ํ† ํฐํ™”ํ•œ ๊ฒฐ๊ณผ์ด๋ฉฐ, ์ž์„ธํ•œ ๋ถ„์„ ๋ฐฉ๋ฒ•๊ณผ ์ „์ฒด ๊ฒฐ๊ณผ๋Š” korean-tokenizer-analysis์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Model ๋ฐฉ์‹ ์ „์ฒด vocab ์ˆ˜ ํ•œ๊ธ€ ํฌํ•จ vocab ์ˆ˜ ํ•œ๊ตญ์–ด ์–ด์ ˆ๋‹น ํ† ํฐ ์ˆ˜ ํ•œ๊ตญ์–ด ํ† ํฐ๋‹น ๋ฐ”์ดํŠธ ์ˆ˜ ์˜์–ด ๋‹จ์–ด๋‹น ํ† ํฐ ์ˆ˜ ๋“œ๋ฌธ ์Œ์ ˆ 16๊ฐœ ์ค‘ UNK ์ˆ˜
Kiwi COCO-LM Byte-level BPE 64,000 26,858 (41.97%) 2.37 4.87 1.31 0
KLUE RoBERTa WordPiece 32,000 28,445 (88.89%) 2.41 4.79 2.54 14
KoELECTRA WordPiece 35,000 29,021 (82.92%) 2.44 4.73 2.48 10
A.X-Encoder WordPiece 50,000 24,084 (48.17%) 2.54 4.54 1.89 0
KF-DeBERTa WordPiece 130,000 104,522 (80.40%) 2.19 5.26 1.62 10
ModernBERT Byte-level BPE 50,368 25 (0.05%) 7.12 1.62 1.30 0
mmBERT BPE (byte fallback) 256,000 2,295 (0.90%) 3.30 3.50 1.24 0
  • ํ† ํฐ ์ˆ˜์—๋Š” [CLS], [SEP] ๋“ฑ ํŠน์ˆ˜ ํ† ํฐ์„ ํฌํ•จํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์–ด์ ˆ(๋‹จ์–ด)์€ ๊ณต๋ฐฑ ๋ฌธ์ž๋กœ ๋‚˜๋ˆˆ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
  • ๋“œ๋ฌธ ์Œ์ ˆ 16๊ฐœ ์ค‘ UNK ์ˆ˜: ๊ฑ, ๊ฒผ, ๊ธ‚, ๊น„, ๋‡„, ๋ œ, ๋ข”, ๋ขจ, ๋ถด, ๋ปค, ์Œ˜, ์–ฌ, ์นข, ํ…ผ, ํ‰œ, ํ™ฅ์ฒ˜๋Ÿผ ์ž˜ ์“ฐ์ด์ง€ ์•Š๋Š” ํ•œ๊ธ€ ์Œ์ ˆ 16๊ฐœ๋ฅผ ๊ฐ๊ฐ ํ† ํฐํ™”ํ–ˆ์„ ๋•Œ [UNK]๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ์›๋ž˜ ๊ธ€์ž๋ฅผ ์žƒ์–ด๋ฒ„๋ฆฐ ์Œ์ ˆ ์ˆ˜์ž…๋‹ˆ๋‹ค.

Kiwi COCO-LM์˜ tokenizer๋Š” ํ•œ๊ตญ์–ด ์–ด์ ˆ๋‹น 2.37ํ† ํฐ์œผ๋กœ, ํ•œ๊ตญ์–ด ์ „์šฉ WordPiece tokenizer์ธ KLUE RoBERTa(2.41), KoELECTRA(2.44)์™€ ๋น„์Šทํ•˜๊ฑฐ๋‚˜ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์— ์˜์–ด๋Š” ๋‹จ์–ด๋‹น 1.31ํ† ํฐ์œผ๋กœ, ์›๋ณธ์ธ ModernBERT(1.30)์™€ ๊ฑฐ์˜ ๊ฐ™์€ ํšจ์œจ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด ํšจ์œจ์ด ๊ฐ€์žฅ ์ข‹์€ KF-DeBERTa(2.19)๋Š” vocab ํฌ๊ธฐ๊ฐ€ Kiwi COCO-LM์˜ 2๋ฐฐ๊ฐ€ ๋„˜๊ณ  ์˜์–ด ํšจ์œจ์€ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค(1.62). ๋˜ํ•œ Kiwi COCO-LM์˜ tokenizer๋Š” Byte-level BPE๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— WordPiece ๊ธฐ๋ฐ˜ tokenizer์™€ ๋‹ฌ๋ฆฌ ์–ด๋–ค ๊ธ€์ž๋„ [UNK]๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•œํŽธ ModernBERT๋Š” ํ•œ๊ธ€ vocab์ด 25๊ฐœ๋ฟ์ด๋ผ ํ•œ๊ตญ์–ด๋ฅผ ๋Œ€๋ถ€๋ถ„ UTF-8 ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๋ฉฐ, ์–ด์ ˆ๋‹น 7.12ํ† ํฐ์œผ๋กœ Kiwi COCO-LM๋ณด๋‹ค ์•ฝ 3๋ฐฐ ๋งŽ์€ ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ 8192 ํ† ํฐ ๊ธธ์ด ์•ˆ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ํ•œ๊ตญ์–ด ํ…์ŠคํŠธ ๋ถ„๋Ÿ‰์ด ๊ทธ๋งŒํผ ์ ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

Limitations

  • ํ•œ๊ตญ์–ด์™€ ์˜์–ด ์œ„์ฃผ๋กœ ํ•™์Šต๋˜์—ˆ์œผ๋ฉฐ, ModernBERT-base์˜ ์–ดํœ˜ ์ค‘ ์‚ฌ์šฉ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ์™ธ๊ตญ์–ด ํ† ํฐ์„ ์ œ๊ฑฐํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์™ธ ์–ธ์–ด์— ๋Œ€ํ•œ ์„ฑ๋Šฅ์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์›น ์ปค๋ฎค๋‹ˆํ‹ฐ ๋Œ“๊ธ€ ๋“ฑ ์ •์ œ๋˜์ง€ ์•Š์€ ํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด, ๋ชจ๋ธ์ด ํ•™์Šต ๋ฐ์ดํ„ฐ์— ์กด์žฌํ•˜๋Š” ํŽธํ–ฅ์ด๋‚˜ ๋ถ€์ ์ ˆํ•œ ํ‘œํ˜„์„ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • COCO-LM ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต๋œ ์ธ์ฝ”๋” ๋ชจ๋ธ์ด๋ฏ€๋กœ ํ…์ŠคํŠธ ์ƒ์„ฑ์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, [MASK] ํ† ํฐ ๊ธฐ๋ฐ˜์˜ ๋นˆ์นธ ์ฑ„์šฐ๊ธฐ ์šฉ๋„๋กœ๋„ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์šด์ŠคํŠธ๋ฆผ ํƒœ์Šคํฌ์— ๋ฏธ์„ธ์กฐ์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ๋Œ€ 8192 ํ† ํฐ๊นŒ์ง€ ์ž…๋ ฅ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ฒค์น˜๋งˆํฌ ํ‰๊ฐ€๋Š” ์ฃผ๋กœ ์งง์€ ๋ฌธ์žฅ/๋ฌธ๋‹จ ๋‹จ์œ„ ํƒœ์Šคํฌ์—์„œ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

Training

  • ์•„ํ‚คํ…์ฒ˜: ModernBERT๋ฅผ ๊ทธ๋Œ€๋กœ ์ฑ„์šฉ
  • ํ† ํฌ๋‚˜์ด์ €: ModernBERT-base์˜ ํ† ํฌ๋‚˜์ด์ €์—์„œ ์‚ฌ์šฉ๋นˆ๋„๊ฐ€ ์ ์€ ์™ธ๊ตญ์–ด ํ† ํฐ๋“ค์„ ๋œ์–ด๋‚ด๊ณ  ํ•œ๊ตญ์–ด ํ† ํฐ์„ ์ถ”๊ฐ€ํ•˜์—ฌ 64k ํฌ๊ธฐ์˜ Vocab์„ ๊ตฌ์„ฑ. ํ•œ๊ตญ์–ด ํ† ํฐ์˜ ๊ฒฝ์šฐ kiwipiepy์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜•ํƒœ์†Œ ๊ฒฝ๊ณ„๋ฅผ ๊ณ ๋ คํ•œ Byte-level BPE tokenizer๋ฅผ ์ด์šฉํ•ด ํ•™์Šต
  • ๊ฐ€์ค‘์น˜ ์žฌ์‚ฌ์šฉ: ModernBERT-base์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ํ•œ๊ตญ์–ด & ์˜์–ด ๋ง๋ญ‰์น˜๋ฅผ ์ถ”๊ฐ€๋กœ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹ ์‚ฌ์šฉ
  • ํ•˜๋“œ์›จ์–ด: NVIDIA RTX 4070 Ti SUPER 1๋Œ€์—์„œ ์•ฝ 1239์‹œ๊ฐ„(51์ผ) ํ•™์Šต
  • ํ•™์Šต ์ตœ์ ํ™”: Muon Optimizer์— Stochastic Rounding์„ ์ ์šฉํ•˜์—ฌ Weight, Activation, Gradient, Optimizer State๋ฅผ ๋ชจ๋‘ BF16 ํƒ€์ž…์œผ๋กœ ํ•™์Šต ์ง„ํ–‰. Liger Kernel๊ณผ Flash Attention 2๋ฅผ ์ ์šฉํ•˜์—ฌ ํ•™์Šต ์†๋„ ์ตœ์ ํ™”.
  • SCL ํ•™์Šต ๋ฐฉ์‹ ๋ณ€๊ฒฝ: COCO-LM์˜ Sequence Contrastive Learning(SCL)์€ ์›๋ณธ ์‹œํ€€์Šค์˜ ์ผ๋ถ€ ๊ตฌ๊ฐ„์„ ์ž˜๋ผ๋‚ธ(crop) ์‹œํ€€์Šค์™€ ์ƒ์„ฑ๊ธฐ๊ฐ€ ํ† ํฐ์„ ์น˜ํ™˜ํ•œ ์‹œํ€€์Šค๋ฅผ positive ์Œ์œผ๋กœ, ๋ฐฐ์น˜ ๋‚ด ๋‹ค๋ฅธ ์‹œํ€€์Šค๋ฅผ negative๋กœ ์‚ผ์•„ ๋‘ ์‹œํ€€์Šค์˜ [CLS] ํ‘œํ˜„์ด ๊ฐ€๊นŒ์›Œ์ง€๋„๋ก ํ•™์Šตํ•˜๋Š”๋ฐ Kiwi COCO-LM์—์„œ๋Š” ์ด๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Œ:
    • whole-word crop: ์„œ๋ธŒ์›Œ๋“œ ํ† ํฐ ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ ๋‹จ์–ด(์–ด์ ˆ) ๊ฒฝ๊ณ„ ๋‹จ์œ„๋กœ cropํ•˜์—ฌ ๋‹จ์–ด๊ฐ€ ์ค‘๊ฐ„์— ์ž˜๋ฆฌ์ง€ ์•Š๋„๋ก ํ–ˆ์Œ.
    • ๊ธด ์‹œํ€€์Šค์˜ ๊ตฌ๊ฐ„ crop: 1,024 ํ† ํฐ๋ณด๋‹ค ๊ธด ์‹œํ€€์Šค๋Š” ์ตœ๋Œ€ 1,024 ํ† ํฐ ๊ธธ์ด์˜ ๊ตฌ๊ฐ„์„ ๋ฌด์ž‘์œ„๋กœ ๊ณ ๋ฅธ ๋’ค ๊ทธ ์•ˆ์—์„œ cropํ•ฉ๋‹ˆ๋‹ค. ๊ธด ์‹œํ€€์Šค๋ฅผ ํ†ต์งธ๋กœ cropํ•˜๋ฉด ๋ชจ๋ธ์ด ๋‚ด์šฉ ๋Œ€์‹  ์‹œํ€€์Šค ๊ธธ์ด ์ •๋ณด๋งŒ์œผ๋กœ positive ์Œ์„ ์ฐพ์•„๋‚ด๋Š” ์ง€๋ฆ„๊ธธ(shortcut)์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ.
    • crop ์‹œํ€€์Šค์— stop-gradient ์ ์šฉ: crop ์‹œํ€€์Šค๋Š” ๋น„๊ต ๋Œ€์ƒ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ forward๋งŒ ๊ณ„์‚ฐํ•˜๊ณ  gradient๋Š” ํ˜๋ฆฌ์ง€ ์•Š์Œ. ๋”ฐ๋ผ์„œ ๋ฐฐ์น˜ ์ „์ฒด(1,024๊ฐœ)์˜ crop ํ‘œํ˜„์„ activation์„ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด ๋‘˜ ์ˆ˜ ์žˆ๊ณ , ๊ฐ micro step์˜ ์น˜ํ™˜ ์‹œํ€€์Šค๋ฅผ 1,024๊ฐœ crop ํ‘œํ˜„ ์ „์ฒด์™€ ๋Œ€์กฐํ•  ์ˆ˜ ์žˆ์Œ. ๋•๋ถ„์— GradCache ๊ฐ™์€ ๊ธฐ๋ฒ• ์—†์ด๋„ 16GB VRAM GPU 1๋Œ€์—์„œ ๋ฐฐ์น˜ ํฌ๊ธฐ 1,024 ์ด์ƒ์˜ ๋Œ€์กฐ ํ•™์Šต์ด ๊ฐ€๋Šฅํ–ˆ์Œ.
  • ๊ธธ์ด ํ˜ผํ•ฉ ๋ฐฐ์น˜ ๊ตฌ์„ฑ: Gradient Accumulation์„ 16์Šคํ… ๋™์•ˆ ์ ์šฉํ•˜๋˜ ๊ฐ ์Šคํ…๋ณ„๋กœ Seq Length๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•˜์—ฌ ๋ชจ๋ธ์ด ๋‹ค์–‘ํ•œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ณด๋„๋ก ์„ค๊ณ„ํ•˜์˜€์Œ. Optimizer 1ํšŒ ์—…๋ฐ์ดํŠธ๋‹น ์ด 1024๊ฐœ์˜ Sequence๋ฅผ ๋ณด๊ฒŒ ๋˜๋ฉฐ ์‹ค์ œ forward/backward ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋˜๋Š” ๊ฐ๊ฐ์˜ Micro ์Šคํ… ๊ตฌ์„ฑ์€ ์•„๋ž˜์ชฝ์— ๊ฐ™์ด ์„ค์ •ํ•˜์˜€์Œ.
Seq Length Batch Size Tokens per Batch
8192 4 32K
8192 4 32K
8192 4 32K
8192 4 32K
4096 8 32K
4096 8 32K
2048 16 32K
2048 16 32K
1024 32 32K
1024 32 32K
512 64 32K
512 64 32K
256 128 32K
256 128 32K
128 256 32K
128 256 32K
์ด 16 ์Šคํ… ์ด 1024 ๋ฐฐ์น˜ ์ด 512K ํ† ํฐ

Training Data

Language Dataset Tokens (1M)
Korean ํ•œ๊ตญ์–ด ์œ„ํ‚ค๋ฐฑ๊ณผ 601.4
Korean KcBERT ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ 2747.8
Korean ํ•œ๊ตญ์–ด ์›น ์ปค๋ฎค๋‹ˆํ‹ฐ ๋Œ“๊ธ€ 133.7
Korean Koreascience.kr ์ดˆ๋ก ๋ง๋ญ‰์น˜ 214.9
Korean ๋‚˜๋ฌด์œ„ํ‚ค 1149.8
Korean AIHub ๋Œ€๊ทœ๋ชจ ๊ตฌ๋งค๋„์„œ ๋ง๋ญ‰์น˜ 1118.4
Korean AIHub ์ „๋ฌธ๋ถ„์•ผ ๋ง๋ญ‰์น˜ 1608.4
Korean AIHub ๋‰ด์Šค ๋ง๋ญ‰์น˜ 439.8
Korean AIHub ๋Œ€ํ™” ๋ง๋ญ‰์น˜ 71.4
Korean NIK ๊ตฌ์–ด ๋ง๋ญ‰์น˜ 244.7
Korean NIK ๋ฌธ์–ด ๋ง๋ญ‰์น˜ 1452.2
Korean NIK ์‹ ๋ฌธ ๋ง๋ญ‰์น˜ 2280.2
Korean NIK ์˜จ๋ผ์ธ ๊ฒŒ์‹œ์ž๋ฃŒ ๋ง๋ญ‰์น˜ 80.4
- Total 12143.3
Language Dataset Tokens (1M)
English English Wikipedia 8191.2
Multilingual FLAN Zero-shot (Train Set, Random Sampled) 6833.1
- Total 15024.3

ํ•™์Šต ๋ฐ์ดํ„ฐ๋Š” ์•ฝ 27.2B ํ† ํฐ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ํ•œ๊ตญ์–ด ๋ฐ์ดํ„ฐ๋Š” 12143.3M ํ† ํฐ์„, ์˜์–ด(๋ฐ ๋‹ค๊ตญ์–ด) ๋ฐ์ดํ„ฐ๋Š” 15024.3M ํ† ํฐ์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด 5 epoch ๋ฐ˜๋ณตํ•˜์—ฌ ์•ฝ 136B ํ† ํฐ์„ ํ•™์Šตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ ๋™์ผํ•œ ๋ง๋ญ‰์น˜๋ฅผ ๋‹ค์‹œ ํ•™์Šตํ•˜๋”๋ผ๋„ ์ž…๋ ฅ ์ž์ฒด๋Š” ๋‹ฌ๋ผ์ง€๋„๋ก ๋งค epoch๋งˆ๋‹ค random seed๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฃผ์–ด ๋งˆ์Šคํ‚น์ด ์ ์šฉ๋˜๋Š” ํ† ํฐ์„ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

License

Apache 2.0 license

Citation

If you use Kiwi COCO-LM in your work, please cite:

@misc{kiwi-coco-lm-2026,
  author       = {Minchul Lee},
  title        = {Kiwi COCO-LM: A Korean-English Long-Context Encoder based on ModernBERT},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/kiwi-farm/kiwi-coco-lm-base}}
}
Downloads last month
93
Safetensors
Model size
0.2B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for kiwi-farm/kiwi-coco-lm-base

Finetuned
(1504)
this model

Paper for kiwi-farm/kiwi-coco-lm-base