‹ Lecture 2 10 / 23

Tokenizer Transfer

Tokenizer는 문자열을 IDs로 바꾸고 모델은 그 IDs로 Embedding rows를 찾는다. 그래서 새 Tokenizer가 같은 숫자에 다른 문자열을 배정하면, 모델은 새 문자열을 읽으면서도 옛 vector를 가져온다. Tokenizer transfer는 사전 파일의 교체가 아니라 ID와 학습된 표현을 다시 맞추는 adaptation 과정이다. 목표는 새 언어·도메인의 token 효율을 얻으면서 기존 network의 지식을 활용하는 데 있다.

  1. 새 Tokenizer
  2. vocab 병합/교체
  3. 새 Embedding 초기화
  4. 단계적 학습
  5. adaptation

Tokenizer Adaptation

Pre-training 이후 Tokenizer는 보통 고정된다. old ID1000=school인데 new ID1000=학교로 바꾸면 같은 row의 의미가 맞지 않는다. XPT 예시는 English encoder를 유지하고 Korean SentencePiece50K와 Embedding을 교체한 뒤 encoder frozen 상태의 adapters/embeddings 학습 → 전체 unfreeze로 진행한다.

Embedding Initialization

Vocab transplant에서는 새 corpus로 Tokenizer를 학습하고 기존 Vocabulary와 병합한다. 예를 들어 기존 32K에 새 8K를 붙이면 Embedding은 40K rows가 된다. 이때 새 rows를 random으로만 초기화하면 기존 network가 이미 쓰던 표현 공간과 맞추는 cold start 부담이 생긴다. 추가 학습 corpus와 compute가 제한되어 있다면 시작점 자체가 중요하다.

새 token을 old Tokenizer로 분해해 기존 pieces의 Embedding 평균을 초기값으로 주면, 적어도 그 구성 요소에 가까운 위치에서 시작할 수 있다. 학교를 학 / 교로 나눈다는 예시에서 초기화 규칙은 다음과 같다.

Enew(학교)=Eold(학)+Eold(교)2E_{\mathrm{new}}(\text{학교}) =\frac{E_{\mathrm{old}}(\text{학})+E_{\mathrm{old}}(\text{교})}{2}

이는 초기값이지 학교의 최종 의미가 두 vector의 평균으로 확정된다는 뜻은 아니다. 실제 old pieces는 Tokenizer마다 다르며, 이어지는 training에서 새 row를 조정한다. Embeddings → upper blocks → full model처럼 점차 unfreeze하면 입력 표현이 갑자기 달라진 부담을 단계적으로 흡수할 수 있다.

Vocabulary Extension

EEVE는 SOLAR10.7B/Phi2에 Korean vocab을 확장하고 Subword-mean init과 7-stage freezing curriculum,2B continued pre-training tokens를 썼다. 강의는 적은 adaptation budget과 init/schedule을 강조하며 2B를 보편적 정답으로 제시하지 않는다.

Transfer Strategies

ZeTT는 original Tokenizer로 새 token을 분해하고 original embeddings를 hypernetwork에 넣어 새 Embedding row를 구성한다. model별 hypernetwork를 학습한 뒤 새 Tokenizer에 zero-shot 적용한다. XLM-R/Mistral7B에서 확인했고 완전 무손실은 아니며 추가<1B tokens로 gap을 줄였다는 보고다.

ZeTT의 예시에서 새 token _flowerbeds를 old Tokenizer로 _flower / bed / s로 나눈다. 원래 Embeddings를 lookup한 뒤 학습된 hypernetwork H가 이를 조합하여 새 row를 만든다. 단순 평균과 달리 조합 방법 자체를 학습하는 것이며, hypernetwork는 원래 token들을 여러 방식으로 분해한 입력에서 표현을 구성하도록 학습할 수 있다.

여기서 zero-shot은 hypernetwork도 학습하지 않는다는 뜻이 아니다. 모델별로 학습한 hypernetwork를 새 Tokenizer에 적용할 때의 zero-shot이다. 이미 fine-tuned된 variants에도 재사용할 수 있지만, untied LM head는 입력 Embedding과 따로 있으므로 output rows도 맞추어야 한다. 원자력 같은 특정 도메인의 새 어휘를 확장할 때도 이 ID–input–output 정렬을 함께 고려해야 한다.

ID 의미가 바뀌면 EE와 untied LM head도 맞춰야 한다.

Check

Tokenizer만 교체했을 때 ID1000이 가리키는 의미가 바뀌면 어떤 문제가 생기는가?

Answer

기존 EE[1000]이 old token을 학습한 상태라 new token의 의미와 어긋난다. Tokenizer와 Embedding, 필요하면 LM head를 함께 정렬해야 한다.

EEVE와 ZeTT의 새 row 초기화는 어떻게 다른가?

Answer

EEVE는 old Subword embedding 평균과 staged unfreeze, ZeTT는 학습한 hypernetwork가 old pieces의 embeddings를 조합하는 방식이다.

Contents