KLUE-benchmark / KLUE

📖 Korean NLU Benchmark

Home Page:https://klue-benchmark.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ROBERTa계열 pad_token_id 관련 issue

MignonDeveloper opened this issue · comments

안녕하세요 hugging face를 통해 klue/roberta-large 모델을 사용하는 중에 궁금한 부분이 있어 Issue 남기게 되었습니다.

현재 Hugging Face를 통해 불러온 모델의 구조를 살펴보면 아래와 같습니다. nn.Embedding Layer의 padding_idx가 1로 되어있습니다. 즉, Padding을 Tokenize할 때 1로 채워줘야 nn.Embedding이 해당하는 idx값을 만나면 embedding layer의 값이 모두 0이 됩니다.
ROBERTA_EMBEDDING

하지만 아래 그림과 같이 klue/roberta-large의 pretrained tokenizer를 확인해보면 [PAD]에 해당하는 값이 0으로 할당이 되어있는 것을 확인할 수 있습니다. 즉, pretrained된 tokenizer를 그대로 사용하게 되면 에러가 나는 것을 확인할 수 있습니다.
ROBERTA_TOKENIZER

roberta계열의 tokenizer가 klue/bert-base와 같아서 그런 것 같아요. 혹시 그렇다면 실제 roberta-large를 pretrain할 때 사용한 tokenizer와 지금 제가 fine tuning해서 진행하는 down stream task에서 사용할 tokenizer가 달라서 현 상황에서는 학습이 제대로 안될지도 궁금합니다!! 감사합니다!

@ohsuz, @dlrgy22

config로 수정가능한 부분인 것 같네요!! 감사합니다!

@MignonDeveloper

안녕하세요! 해당 내용에 대한 답변 정리가 늦었습니다.
관련 내용은 해결되었으며, https://github.com/KLUE-benchmark/KLUE/wiki/KLUE-RoBERTa%EC%9D%98-special_token_id-%EC%9D%B4%EC%8A%88 원인이 궁금하시면 여기를 참고하시면 좋을 것 같습니다 :)
감사합니다!

네! 감사합니다. 메일로도 문의드렸었고 빠르게 답변 남겨주셨습니다. klue 응원하겠습니다!