Home

Awesome

DistilKoBERT

Distillation of KoBERT (SKTBrain KoBERT 경량화)

January 27th, 2020 - Update: 10GB의 Corpus를 가지고 새로 학습하였습니다. Subtask에서 성능이 소폭 상승했습니다.
May 14th, 2020 - Update: 기존 Transformers의 padding_idx 이슈를 해결하였습니다. 자세한 사항은 KoBERT-Transformers를 참고하시면 됩니다.

Pretraining DistilKoBERT

KoBERT / DistilKoBERT for transformers library

Dependencies

How to Use

>>> from transformers import BertModel, DistilBertModel
>>> bert_model = BertModel.from_pretrained('monologg/kobert')
>>> distilbert_model = DistilBertModel.from_pretrained('monologg/distilkobert')
>>> from tokenization_kobert import KoBertTokenizer
>>> tokenizer = KoBertTokenizer.from_pretrained('monologg/kobert') # monologg/distilkobert도 동일
>>> tokenizer.tokenize("[CLS] 한국어 모델을 공유합니다. [SEP]")
['[CLS]', '▁한국', '어', '▁모델', '을', '▁공유', '합니다', '.', '[SEP]']
>>> tokenizer.convert_tokens_to_ids(['[CLS]', '▁한국', '어', '▁모델', '을', '▁공유', '합니다', '.', '[SEP]'])
[2, 4958, 6855, 2046, 7088, 1050, 7843, 54, 3]

What is different between BERT and DistilBERT

Result on Sub-task

KoBERTDistilKoBERTBert-multilingual
Model Size (MB)351108681
NSMC (acc)89.6388.4187.07
Naver NER (F1)86.1184.1384.20
KorQuAD (Dev) (EM/F1)52.81/80.2754.12/77.8077.04/87.85

Citation

이 코드를 연구용으로 사용하는 경우 아래와 같이 인용해주세요.

@misc{park2019distilkobert,
  author = {Park, Jangwon},
  title = {DistilKoBERT: Distillation of KoBERT},
  year = {2019},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/monologg/DistilKoBERT}}
}

Reference