토큰화란?
자연어 처리(NLP)에서 문장이나 문서와 같은 긴 텍스트를 분석하기 위해 토큰(Token)이라는 더 작은 단위로 나누는 과정
(텍스트를 한번에 이해하기 어렵기 때문에, 의미 있는 최소 단위로 쪼개어 수치화하는 단계)
토큰화 과정

1단계: 텍스트 토큰화(Tokenization)

문장을 모델이 처리하기 쉬운 작은 단위인 토큰(Token)으로 쪼갠다.
'는', '를' 같은 조사나 마침표(.)와 같은 문장 부호까지 별개의 토큰으로 분리한다.
- 이 단계에서 결과물은 여전히 사람이 읽을 수 있는 텍스트 형태이다.
2단계: 토큰 ID 변환(Token ID Conversion)
토큰을 토큰ID로 매핑하기 위해서는 어휘사전을 먼저 구축해야 한다.
(어휘사전은 개별 단어와 특수 문자를 고유한 정수로 매핑하는 방법을 정의)
* 때문에, 사전에 없는 단어로는 변환을 할 수 없다.

각 토큰을 미리 약속된 고유한 숫자(정수 ID)로 변환하여, 컴퓨터가 문자를 인식할 수 있게 만든다.
(어휘사전을 사용하여 텍스트 토큰을 토큰 ID로 변환)
* 여기서, 토큰에서 토큰 ID를 생성하는 것을 Encoding, 토큰 ID에서 문자열을 생성하는 것을 Decoding이라고 한다.
3단계: 토큰 임베딩(Token Embedding)
토큰 변환을 통해 컴퓨터가 있을 수 있는 숫자(토큰 ID) 배열이 만들어졌지만, '언어'의 ID와 '이해한다'의 ID는 서로 다른 숫자일 뿐 의미적으로 관련이 있다는 정보는 없다.

따라서, 각 숫자 ID를 수백, 수천 개의 실수로 이루어진 고차원의 벡터(Vector)로 변환한다.
(단어들 사이의 의미적 유사도를 벡터 공간에 표현하는 것)

Tokenizer가 텍스트를 Token ID로 변환하고 LLM 모델이 Token ID를 Token Embedding으로 변환하는 것이다.
LLM의 임베딩 층(Embedding Layer)이 토큰 ID를 받아 토큰 임베딩 벡터를 출력하는 역할을 한다.

임베딩 층은 하나의 거대한 행렬(가중치) 가지고, 이 행렬의 각 행은 하나의 토큰에 대한 임베딩 벡터를 나타낸다.
(즉, 토큰 ID가 '2'라면, 행렬의 '두 번째 행'에 있는 벡터를 조회(Lookup)하여 다음 Layer로 전달)
처음에는 행렬의 모든 값이 의미 없는 난수로 채워지지만, 다음 단어 예측과 같은 훈련을 거쳐 정답을 더 잘 맞히는 방향으로 행렬 값들을 점진적으로 업데이트한다.
* 본 게시글은 밑바닥부터 만들면서 배우는 LLM 강의를 참고하여 작성되었습니다.
'Tech > LLM' 카테고리의 다른 글
| [LLM] 바이트 페어 인코딩(BPE) (0) | 2025.12.27 |
|---|---|
| [LLM] 특수 문맥 토큰 (0) | 2025.12.27 |
| [LLM] 단어 임베딩의 이해 (1) | 2025.12.26 |
| [LLM] Transformer의 구조 (0) | 2025.12.20 |
| [LLM] LLM의 구축 단계 (0) | 2025.12.20 |
잘못된 정보가 있다면 말씀해주세요!