2주차 5일차

DONGJIN IM·2022년 5월 10일

ODQA

목록 보기
5/9
post-thumbnail

오늘 할 것

  • Tokenizer를 변경시키기
    • Kobert Tokenizer
    • klue/bert-base tokenizer
    • KKma

오늘 한 것

배운 것

한국어 Tokenizer

한국어는 다른 언어와는 다른 형태를 지니고 있기 때문에, Tokenizer도 살짝 다른 방식으로 tokenizing을 수행한다.

기본적으로 POS Tagging을 활용하는데, 이런 방식으로 한국어 Tokenizing을 할 수 있게 도와주는 대표적인 패키지가 KoNLPy이다.

KoNLPy는 아래 사이트에 매우 좋은 설명이 되어 있기 때문에, 아래 블로그에서 이해하도록 하자

Tokenizer 변경

Huggingfacec에 존재하는 수많은 Tokenizer를 활용해보았다. 하지만, 어떤 방식을 쓰더라도 좋은 점수가 나오진 않았다.


배운 점

Model에 변경된 Tokenizer 적용

model.resize_token_embeddings(len(tokenizer))를 통해 내가 지정한 Toknizer를 지정한 Model에 적용할 수 있다.

참고로, tokenizer.add_special_tokens(dict_data)메서드를 통해 Special Token을 추가할 수도 있다


느낀 점

실험을 하다보니 의문이 들었다.

우리가 가지고 온 Pretrained Parameter 값들은 결국 해당 Tokenizer를 활용하여 학습된 Model일 것이다.
그렇다면, 임의대로 Tokenizer를 변경하여 Pretrained Model에 적용시키는 것이 과연 좋은 성적을 낼 수 있을까?
(우리가 처음부터 초기화된 Parameter를 학습하는 것이 아니기 때문에)

이런 생각에 대해 멘토님께 여쭤봤고, 멘토님도 이 방식을 그렇게는 추천하지 않는다고 말씀하셨다.
결국, 이 방법으로 점수를 올리는 것은 포기했다.

항상, 실험을 하기 전에 이 방법이 정말로 효과가 있을지 고민해보고 실험을 해보자. 그냥 시도할 수 있으니까 시도하는 것은 시간만 뺏을 수도 있다는 점을 명심하자

profile
개념부터 확실히!

0개의 댓글