Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tokenizer에 unused token 사용하기 - Bert 편 #22

Open
sangHa0411 opened this issue Dec 2, 2021 · 0 comments
Open

Tokenizer에 unused token 사용하기 - Bert 편 #22

sangHa0411 opened this issue Dec 2, 2021 · 0 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@sangHa0411
Copy link
Contributor

1. Tokenizer를 불러옵니다.

  • klue/bert-base, klue/roberta-large 등과 같은 Encoder 모델의 Tokenizer를 불러옵니다.
  • 제가 여러 실험을 하였을 때 이 모델자체에서 변형을 하는 과정에서는 unused token 변경이 힘들었습니다.
  • 그래서 이 tokenizer을 save_pretrained를 하고 밑에 생성되는 파일들을 직접 변형해주어야 했습니다.

스크린샷 2021-12-03 오전 12 49 35

2. Klue 계열 Bert Tokenizer의 unused token 은 총 500개이였습니다.

  • 총 Vocab 수가 32000개 이였고 31500 ~ 31999 이렇게 해서 500개였습니다.

스크린샷 2021-12-03 오전 12 53 43

3. 변형해주어야 하는 파일

  • 1번에서 생성된 파일들 중에서 tokenizer.json, vocab.txt 를 직접적으로 변형하고 해당 디렉토리 (위 예시에서는 ../Tokenizer)를 불러오면 해결이 되었습니다.
  • 따라서 vocab.txt 를 불러와서 [unusedN] 자리에 다른 토큰을 채워주고 tokenizer.json 도 동일하게 진행하면 되었습니다.

4. vocab.txt

  • 파일 구조 : 단순히 vocab들이 순서대로 아래로 나열되어 있는 구조 였습니다.
    스크린샷 2021-12-03 오전 12 57 27
  • 수정 이후 : 저는 논문, 법률, 잡지, 뉴스 네이터에서 UNK를 발생시키는 Character를 선정해서 교체를 해주었습니다.
    스크린샷 2021-12-03 오전 12 59 15

5. tokenizer.json

  • 파일 구조 : tokenizer.json 을 불러왔을 때 저희가 변형해주어야 할 부분은 아래의 이미지와 같이 model 부분에 vocab 부분이였습니다.
    스크린샷 2021-12-03 오전 1 03 04
  • 수정 과정 : tokenizer['model']['vocab'] 에 unused 부분을 변경한 새로운 dict 자료구조 {'vocab' : 'index'} 저장하고 json 라이브러리를 활용해서 저장을 하였습니다.
    스크린샷 2021-12-03 오전 1 06 29

6. 결과

  • 사용 방법 : from_pretrained 를 klue/roberta-large 등으로 불러오는 것이 아니라 변형된 파일이 저장된 directory로 부터 불러오면 제대로 unused token이 변형이 된 것을 확인할 수 있었습니다.
    스크린샷 2021-12-03 오전 1 08 40
@sangHa0411 sangHa0411 added the help wanted Extra attention is needed label Dec 2, 2021
@sangHa0411 sangHa0411 self-assigned this Dec 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant