서브워드 토크나이저

모와이·2026년 1월 20일

llm

목록 보기
4/20

서브워드(Subword)란

자연어 처리(NLP)에서 하나의 단어를 더 작은 의미 단위인 부분 단어로 분절하는 방식

왜 토큰화/벡터화 해야하나

  • 딥러닝 모델은 문자열을 그대로 연산 불가능
  • 따라서 텍스트를 모델에 넣기 위해서는 문자열 -> 토큰 -> 정수ID시퀸스 -> (임베딩) 실수 벡터로 바꿔야함
  • 유사도 학습(비슷한 단어/문장)을 하려면 거리/각도 같은 수치연산이 가능한 벡터 공간 필요

timestep이란

시퀸스 모델에서 순서가 있는 입력의 한 칸

['오늘', '학원', '간다'] -> timestep1 = '오늘', timestep2 = '학원'

서브워드 토크나이징이 필요한 이유

단어 사전(상위 단어 N개) 방식의 한계

  • 한국어는 활용/조사/띄어쓰기 등 변형이 많고 신조어도 많아 OOV가 계속 생김
  • 단어 사전은 OOV를 <unk>로 처리하기에 정보 손실이 큼

서브워드의 장점

  1. 모르는 단어도 조각으로 조합 가능-> <UNK>감소
  2. 띄어쓰기, 오타에도 강함
  3. VOCAB SIZE를 고정하면서도 커버리지 확보 가능

vocab_size가 정확히 뭔가?

1) vocab_size = 토큰 "종류" 개수(사전 크기)

SentencePiece가 학습해서 만드는 서브워드 조각 종휴(10000개)

2) 문장 토큰 수(시퀸스 길이) = 실제 한 문장이 쪼개진 토큰 "개수"

  • 같은 문장이라도 vocab_size가 더 크면 큰 조각을 더 많이 쓸수 있어서 문장 토큰 개수는 줄어들수 있다

SentencePiece와 WordPiece

  1. SentencePiece(이하 spm)는 "▁"기호를 사용하여 공백(단어 경계))를 표현
  2. WordPiece는 ##가 공백표시가 아닌 단어 내부 접두 표식(앞 토큰에 붙는 조각)
profile
공부하는거 정리하는 블로그

0개의 댓글