본문 바로가기
AI-Tech 부스트캠프/NLP

LLM에서 padtoken을 eostoken으로 사용하는 이유

by Alan_Kim 2025. 3. 20.
728x90
반응형

 

LLM 학습코드를 보면 다음과 같은 코드를 흔하게 볼 수 있다.

from transformers import AutoTokenzier
tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side="left")
tokenizer.pad_token = tokenizer.eos_token

 

 

왜 pad_token을 eos_token으로 사용할까??

 

이는 메모리 절약 및 모델의 일관성 유지 때문이라한다.

 

  • pad_token: 시퀀스 길이를 맞추기 위해 추가하는 토큰. 일반적으로 학습 과정에서 무시됨
  • eos_token: 시퀀스의 끝을 나타내는 토큰으로, 디코더모델에서 중요하게 사용

 

(1) 메모리 절약

  • LLM에서는 거대한 단어 사전을 사용하므로 pad_token을 따로 정의하면 추가 메모리 필요
  • eos_token을 pad_token역할로 사용하면, 별도의 pad_toekn생성하지 않아도 됨

 

(2) 토큰 임베딩 재사용

  • pad_token을 추가하면 모델이 이를 학습해야하고 연산량 증가

 

PAD 토큰을 별도로 정의하는 경우

Sequence2Sequence 모델 사용할 때 (BART, T5)

인코더 디코더에서는 pad_token을 명확하게 구분하는 것이 필요

728x90
반응형

댓글