The Latest AIs, every day
AIs with the most favorites on Toolify
AIs with the highest website traffic (monthly visits)
AI Tools by Apps
Discover the Discord of AI
AI Tools by browser extensions
GPTs from GPT Store
Discover The Best Model For AI
Top AI lists by month and monthly visits.
Top AI lists by category and monthly visits.
Top AI lists by region and monthly visits.
Top AI lists by source and monthly visits.
Top AI lists by revenue and real traffic.

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)도 포함되어 있습니다.
이 모델은
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
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가 한국어와 영어를 얼마나 효율적으로 처리하는지 비교했습니다. 한국어 샘플 문서(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 |
걁
,
겼
,
긂
,
깄
,
뇄
,
렜
,
뢔
,
뢨
,
붴
,
뻤
,
쌘
,
얬
,
칢
,
텼
,
퉜
,
홥
처럼 잘 쓰이지 않는 한글 음절 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 토큰 길이 안에 담을 수 있는 한국어 텍스트 분량이 그만큼 적다는 뜻입니다.
[MASK]
토큰 기반의 빈칸 채우기 용도로도 적합하지 않습니다. 다운스트림 태스크에 미세조정하여 사용하는 것을 권장합니다.
| 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 토큰 |
| 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를 다르게 주어 마스킹이 적용되는 토큰을 다르게 만들었습니다.
Apache 2.0 license
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}}
}
kiwi-coco-lm-base huggingface.co is an AI model on huggingface.co that provides kiwi-coco-lm-base's model effect (), which can be used instantly with this kiwi-farm kiwi-coco-lm-base model. huggingface.co supports a free trial of the kiwi-coco-lm-base model, and also provides paid use of the kiwi-coco-lm-base. Support call kiwi-coco-lm-base model through api, including Node.js, Python, http.
kiwi-coco-lm-base huggingface.co is an online trial and call api platform, which integrates kiwi-coco-lm-base's modeling effects, including api services, and provides a free online trial of kiwi-coco-lm-base, you can try kiwi-coco-lm-base online for free by clicking the link below.
kiwi-coco-lm-base is an open source model from GitHub that offers a free installation service, and any user can find kiwi-coco-lm-base on GitHub to install. At the same time, huggingface.co provides the effect of kiwi-coco-lm-base install, users can directly use kiwi-coco-lm-base installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
