728x90
반응형
지금 NLP 분야에서는 새로운 모델을 학습시키는 것보다 Pre-trained 된 모델을 가져와 재학습 시키는 경우가 많다. 그럼 해당하는 모델이 사용하는 Embedding Layer를 지나가기 위해 토큰 정보를 담은 토크나이저는 수정할 수 없는걸까? 아니 커스터마이징 할 수 있다. 지금 내가 해결하고자 하는 문제에 대한 단어들이 토크나이저에 없을 수 있는데 추가할 수 있는 방법은 매우 간단하다. 일단 추가할 토큰을 명시하고 토크나이저에 추가한 다음에 해당 모델의 Embedding Layer input을 바꿔주면 된다.
1. 추가할 토큰 명시
add_tokens = ['[NEW']
2. 토크나이저 업데이트
tokenizer = AutoTokenizer.from_pretrained({model_name})
tokenizer.add_special_tokens({
'additional_special_tokens': add_tokens
})
3. 모델 layer 업데이트
model = AutoModel.from_pretrained(pretrained_model_name_or_path={model_name})
model.resize_token_embeddings(len(tokenizer))
728x90
반응형
'~2023' 카테고리의 다른 글
[Ubuntu] 터미널에서 한글을 입력할 수 없다면? (0) | 2023.05.12 |
---|---|
[konlpy] konlpy 설치해 Okt 사용하기 (0) | 2023.05.11 |
[Git] git status 후 한글 깨지는 문제 (2) | 2023.05.08 |
[Slack] 리마인더 봇 350% 활용하기 (0) | 2023.05.02 |
[DART] 공시대상회사 정보 가져오기 (0) | 2023.05.01 |