그러나!
nori는 elasticsearch plug-in에서만 사용가능하고
mecab의 mecab-ko-dic를 이용하여 학습시킨(vocab file을 만들때 사용) tokenizer/module들을 사용할 필요가 없어졌습니다.
-> 이유 : klue에서 이미 사용해버림 ;;;
mecab의 형태소 분석기와 huggingface의 BPE를 이용하여 vocab file을 만들고 이것을 huggingface klue benchmark에 오려두었습니다 ㅠㅠ
혹시나 하는 마음에 아래와 같은 문장을 klue의 tokenizer로 tokenize시켰는데....
결과
mopheme-based subword와 똑같습니다 ㅠㅠㅠㅠㅠ
또 klue의 모든 모델의 tokenizer는 같은 vocab file을 사용합니다.
mopheme-based subword방식이 BPE보다 더 좋은 것 같습니다.
(mopheme-based subword 방식은 형태소 기반 subword 방식입니다.)
헉!!!! 그... 그래도.... 다른 tokenizer를 바꾸면 성능이 다르지 않을까 생각해봤지만....
두둥탁!
요약 : 추후 연구자들은 기존의 tokenization전략을 사용하라고 합니다. -> 시간 낭비하지 마셈 😤
결론 : tokenizer 성능은 이미 좋은 것을 쓰고 있는 것 같습니다.
TMI
klue benchmark 성능표에서 MRC를 보면 roberta-large의 경우 EM이 76.78입니다.
이렇게 높은 이유는 (저의 개인적인 생각입니다.)
closed-domain이기 때문입니다. <- 매우매우 개인적인 뇌피셜, 근거없습니다 ㅠㅠ
klue mrc dataset을 보니 저희가 이번 대회에서 사용하는 데이터셋보다 추가적인 컬럼이 존재합니다.
ex) 질문 유형, 뉴스 카테고리 등,
(klue mrc 데이터셋은 wiki와 뉴스로 구성이 되어있으며 만약 wiki data라면 뉴스 카테고리는 none으로 설정되어 있습니다.)
작업 순서
1. 자료 찾기
mecab 설명 및 성능 : mecabhttps://github.com/yeontaek/BERT-MECAB-Korean-Model 설치 및 사용방법 : https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/
nori 설명 및 소개글 : https://github.com/eskrug/es-kr-guide/blob/master/06-text-analysis/6.7-stemming/6.7.2-nori.md => elasticsearch의 plugin으로만 사용할 수 있는 것 같다.
~2. 적용해보기~
~* 2-1 : mecab~
3. 결과 정리
원래 계획 : 여러 한국어 tokenizer를 적용해서 성능을 비교해보자
그러나! nori는 elasticsearch plug-in에서만 사용가능하고 mecab의 mecab-ko-dic를 이용하여 학습시킨(vocab file을 만들때 사용) tokenizer/module들을 사용할 필요가 없어졌습니다. -> 이유 : klue에서 이미 사용해버림 ;;;
mecab의 형태소 분석기와 huggingface의 BPE를 이용하여 vocab file을 만들고 이것을 huggingface klue benchmark에 오려두었습니다 ㅠㅠ
혹시나 하는 마음에 아래와 같은 문장을 klue의 tokenizer로 tokenize시켰는데....
결과![스크린샷 2021-10-28 오전 12 45 52](https://user-images.githubusercontent.com/22788924/139100498-30fec515-fe4f-4cd5-9a5f-1e4cb8af9d10.png)
mopheme-based subword와 똑같습니다 ㅠㅠㅠㅠㅠ
또 klue의 모든 모델의 tokenizer는 같은 vocab file을 사용합니다.
mopheme-based subword방식이 BPE보다 더 좋은 것 같습니다. (mopheme-based subword 방식은 형태소 기반 subword 방식입니다.)
헉!!!! 그... 그래도.... 다른 tokenizer를 바꾸면 성능이 다르지 않을까 생각해봤지만.... 두둥탁!
요약 : 추후 연구자들은 기존의 tokenization전략을 사용하라고 합니다. -> 시간 낭비하지 마셈 😤
결론 : tokenizer 성능은 이미 좋은 것을 쓰고 있는 것 같습니다.