-
Notifications
You must be signed in to change notification settings - Fork 55
KLUE RoBERTa의 special_token_id 이슈
Jihyung Moon edited this page Jul 27, 2021
·
1 revision
첫 배포 때 klue/roberta
의 special_token_id
가 학습 시 klue/roberta
와 달라서 fine-tuning 시 special_token_id
가 모두 꼬임
bos: 0
pad: 1
eos: 2
unk: 3
mask: 4
- https://github.com/pytorch/fairseq/blob/97969ac5f52090fd172f508975a3e9069c57e1af/fairseq/data/dictionary.py#L34
- https://github.com/pytorch/fairseq/blob/0794f9ae21bb50f940ff9b1bc3f28be08dfa7b76/fairseq/tasks/masked_lm.py#L119
2. 초기 klue/roberta tokenizer
는 BertTokenizer
를 기반으로 하고 있고 bert
의 special_token_index
를 그대로 사용하고 있음 (아래 참고)
pad: 0
unk: 1
cls: 2
sep: 3
mask: 4
pad: 0 -> 1
unk: 1 -> 3
cls: 2 -> 0
sep: 3 -> 2
mask: 4 -> 4
-
tokenizer_config.json
과special_tokens_map.json
에bos_token
과eos_token
추가tokenizer_config.json
{
"do_lower_case": false,
"do_basic_tokenize": true,
"never_split": null,
"unk_token": "[UNK]",
"sep_token": "[SEP]",
"pad_token": "[PAD]",
"cls_token": "[CLS]",
"mask_token": "[MASK]",
"bos_token": "[CLS]",
"eos_token": "[SEP]",
"tokenize_chinese_chars": true,
"strip_accents": null,
"model_max_length": 512
}
-
special_tokens_map.json
{
"unk_token": "[UNK]",
"sep_token": "[SEP]",
"pad_token": "[PAD]",
"cls_token": "[CLS]",
"mask_token": "[MASK]",
"bos_token": "[CLS]",
"eos_token": "[SEP]"
}