Views
No views yet
| Mulitlingual BERT (Google) | KorBERT (ETRI) | KoBERT (SKT) | KR-BERT character | KR-BERT sub-character | |
|---|---|---|---|---|---|
| vocab size | 119,547 | 30,797 | 8,002 | 16,424 | 12,367 |
| parameter size | 167,356,416 | 109,973,391 | 92,186,880 | 99,265,066 | 96,145,233 |
| data size | - (The Wikipedia data for 104 languages) | 23GB 4.7B morphemes | - (25M sentences, 233M words) | 2.47GB 20M sentences, 233M words | 2.47GB 20M sentences, 233M words |
| Model | Masked LM Accuracy |
|---|---|
| KoBERT | 0.750 |
| KR-BERT character BidirectionalWordPiece | 0.779 |
| KR-BERT sub-character BidirectionalWordPiece | 0.769 |
1import torch
2from transformers import BertConfig, BertModel, BertForPreTraining, BertTokenizer
3from unicodedata import normalize
4
5tokenizer_krbert = BertTokenizer.from_pretrained('/path/to/vocab_file.txt', do_lower_case=False)
6
7# convert a string into sub-char
8def to_subchar(string):
9 return normalize('NFKD', string)
10
11sentence = '토크나이저 예시입니다.'
12print(tokenizer_krbert.tokenize(to_subchar(sentence)))
13| Mulitlingual BERT | KorBERT character | KoBERT | KR-BERT character WordPiece | KR-BERT character BidirectionalWordPiece | KR-BERT sub-character WordPiece | KR-BERT sub-character BidirectionalWordPiece | |
|---|---|---|---|---|---|---|---|
| 냉장고 nayngcangko "refrigerator" | 냉#장#고 nayng#cang#ko | 냉#장#고 nayng#cang#ko | 냉#장#고 nayng#cang#ko | 냉장고 nayngcangko | 냉장고 nayngcangko | 냉장고 nayngcangko | 냉장고 nayngcangko |
| 춥다 chwupta "cold" | [UNK] | 춥#다 chwup#ta | 춥#다 chwup#ta | 춥#다 chwup#ta | 춥#다 chwup#ta | 추#ㅂ다 chwu#pta | 추#ㅂ다 chwu#pta |
| 뱃사람 paytsalam "seaman" | [UNK] | 뱃#사람 payt#salam | 뱃#사람 payt#salam | 뱃#사람 payt#salam | 뱃#사람 payt#salam | 배#ㅅ#사람 pay#t#salam | 배#ㅅ#사람 pay#t#salam |
| 마이크 maikhu "microphone" | 마#이#크 ma#i#khu | 마이#크 mai#khu | 마#이#크 ma#i#khu | 마이크 maikhu | 마이크 maikhu | 마이크 maikhu | 마이크 maikhu |
| TensorFlow | PyTorch | |||
|---|---|---|---|---|
| character | sub-character | character | sub-character | |
| WordPiece tokenizer | WP char | WP subchar | WP char | WP subchar |
| Bidirectional WordPiece tokenizer | BiWP char | BiWP subchar | BiWP char | BiWP subchar |
subchar argument be True.bert for the tokenizer argument, and if you use ranked you can use our BidirectionalWordPiece tokenizer.models directory in the krbert_tensorflow directory.pretrained directory in the krbert_pytorch directory.1# pytorch
2python3 train.py --subchar {True, False} --tokenizer {bert, ranked}
3
4# tensorflow
5python3 run_classifier.py \
6 --task_name=NSMC \
7 --subchar={True, False} \
8 --tokenizer={bert, ranked} \
9 --do_train=true \
10 --do_eval=true \
11 --do_predict=true \
12 --do_lower_case=False\
13 --max_seq_length=128 \
14 --train_batch_size=128 \
15 --learning_rate=5e-05 \
16 --num_train_epochs=5.0 \
17 --output_dir={output_dir}| multilingual BERT | KorBERT | KoBERT | KR-BERT character WordPiece | KR-BERT character Bidirectional WordPiece | KR-BERT sub-character WordPiece | KR-BERT sub-character Bidirectional WordPiece | |
|---|---|---|---|---|---|---|---|
| pytorch | - | 89.84 | 89.01 | 89.34 | 89.38 | 89.20 | 89.34 |
| tensorflow | 87.08 | 85.94 | n/a | 89.86 | 90.10 | 89.76 | 89.86 |
@article{lee2020krbert,
title={KR-BERT: A Small-Scale Korean-Specific Language Model},
author={Sangah Lee and Hansol Jang and Yunmee Baik and Suzi Park and Hyopil Shin},
year={2020},
journal={ArXiv},
volume={abs/2008.03979}
}