[Transformer] 토큰화 (Tokenization) / 임베딩 (Embedding)

Ann Jongmin·2025년 8월 14일

Transformer

목록 보기
7/7

트랜스포머 모델에서 토큰화가 필요한 이유

1. 컴퓨터가 언어를 이해하도록 변환

  • 컴퓨터는 텍스트를 직접 처리할 수 없다. 때문에 "단어" 또는 "문장"과 같은 자연 언어를 컴퓨터가 이해할 수 있는 숫자의 배열/벡터로 변환해야한다.

이 과정 중의 첫번째가 토큰화이다. 토큰화는 텍스트를 모델이 처리할 수 있는 단위로 쪼갠다.

2. 모델의 성능 그리고 효율성 향상

1) 어휘 크기의 제한
트랜스포머 모델은 고정된 크기의 어휘(vocabulary)만을 처리할 수 있다. 토큰화를 통해 의미 있는 단위로 쪼개면 모델이 전체 단어는 알지 못해도 쪼개진 토큰으로 전체 단어를 모델이 유추할 수 있다.

2) 긴 문장 처리
-토큰화는 문장의 길이를 줄여주는 효과를 준다. 문장 길이가 줄면 좀 더 효율적으로 모델이 동작한다.
- "안녕하세요" -> ["안녕", "하세요"]

3) 미등록 단어 (Out Of Vocabulary / OOV)

  • 만약 모델이 unbelievable라는 단어를 학습 중 보지 못해 알지 못한다고 가정하면, 의미있는 부분의 단어로 쪼갠다.
    - "unbelievable" -> ["un", "believ", "able"]

3. 모델의 문맥적 이해

  • 트랜스포머의 핵심인 셀프 어텐션(Self-Attention) 메커니즘에서, 셀프 어텐션이 작동하는 기본 단위는 토큰이다. 각 토큰에 대한 임베딩(embedding) 벡터를 생성한 뒤, 이 벡터들을 기반으로 어텐션 스코어가 계산되어 문장의 문맥적 의미를 알 수 있게 된다.

-> 토큰화는 텍스트 데이터를 트랜스포머 모델이 효과적으로 다루고 학습할 수 있도록하고, 문맥적 의미를 추론하는 데에 도움을 주는 전처리 과정이다.


토큰화와 임배딩 벡터화

토큰화와 임베딩은 서로 다른 별개의 과정이지만, 트랜스포머 모델에서 텍스트를 처리하는 데 있어서는 서로 연결된 중요한 단계이다.

  • 토큰화 : 텍스트를 모델이 이해하도록 작은 단위로 나누는 과정. 토큰화 과정을 거쳐 결론적으로는 ID 리스트로 변환된다.

  • 임배딩 : 토큰화로 생성된 각 토큰 ID를 벡터(숫자 배열)로 변환하는 과정.
    이 벡터는 "의미"를 담고있다.

토큰화부터 임배딩 벡터화 과정 (순서 파악)

  1. 토큰화
  • "안녕하세요" -> ["안녕" / "하세요"]
  1. 토큰을 ID로 변환
  • ["안녕" / "하세요"] -> ["123" / "456"]
  1. 토큰 ID들을 모델이 학습한 임베딩 테이블을 통해 의미를 담고 있는 벡터로 변환
  • ["123" / "456"] -> [[0.1, 0.2, ...], [0.3, 0.4, ...]]

토큰화 후에도 모델이 보지 못한 단어라면?

  • 만약 토큰화 과정에서 어휘 사전에 없는 처음 보는 단어나 토큰을 만나게 되면 크게 두 가지 방법으로 처리한다.
  1. 서브워드(Subword) 토큰화 기법
  • 위에서 설명한 방법으로 전체 단어를 모델이 의미를 아는 서브단어로 쪼갠다.
    - "unbelievable" -> "un", "believ", "able"
  1. UNK(Unknown) 토큰 사용
  • 알고있는 단어로 쪼갤 수 없는 경우 (아예 새로운 토큰인 경우) 에는 "알 수 없는 단어" 로 분류한다.
    - [UNK] 또는 <unk>
  • 토큰화기는 문장에서 어떠한 서브워드로도 분해할 수 없는 토큰을 발견하면, 해당 토큰을 [UNK] 토큰으로 대체하고, 그에 해당하는 ID를 부여.
  • 모델은 [UNK] 토큰의 임베딩을 통해 "알 수 없는 단어"의 의미를 학습

트랜스포머가 Unknown 토큰을 처리하는 방법

  • [UNK] 토큰이 등장하면 모델은 그 위치에 있는 단어의 정확한 의미는 알지 못하지만, 임배딩을 통해 "알 수 없는 단어"로 분류하고, 셀프 어텐션을 통해 문맥적으로 해당 알 수 없는 단어가 어떤 의미로 사용되는지 유추한다.
    - "나는 어제 <UNK> 을/를 마셨다."
  • 모델은 [UNK] 이 무엇인지는 모르지만, 문맥상 '마셨다'라는 동사 뒤에 있으므로 음료수나 액체류일 것이라고 유추할 수 있다.

-> 모델은 [UNK] 토큰을 완전히 처리하지 못하는 것이 아니다. 그 토큰의 정확한 의미 정보가 부족한 상태로 주변 토큰들의 도움을 받아 문맥을 이해하려하는 것이다.

profile
AI Study

0개의 댓글